連休中に色々と調べものしてて、dsp.jsというライブラリを見つけたので使ってみた。Chrome14でしか動作確認してない。Git覚えたくてgithubに上げたけど、これくらいならgistでよかったと思った。
SoundCheck
Audioletも面白そう。
最近node.jsも触ってみてるので、audiolib.jsも入れてみた。
node.jsはHomebrewからとかソースをビルドとか試してみたけど、nvm使って複数のバージョンを入れて動かすのが良さそう。
連休中に色々と調べものしてて、dsp.jsというライブラリを見つけたので使ってみた。Chrome14でしか動作確認してない。Git覚えたくてgithubに上げたけど、これくらいならgistでよかったと思った。
SoundCheck
Audioletも面白そう。
最近node.jsも触ってみてるので、audiolib.jsも入れてみた。
node.jsはHomebrewからとかソースをビルドとか試してみたけど、nvm使って複数のバージョンを入れて動かすのが良さそう。

+of
-addons_contributed
+of_preRelease_v0.06_xcode_FAT
-addons
+apps
-addonsExamples
-examples
-sketch
-libs
-other
-samples
#ifndef _TEST_APP
#define _TEST_APP
#include "ofMain.h"
#include "ofxSndObj.h"
#include "AudioDefs.h"
class testApp : public ofBaseApp{
public:
void setup();
ofxSOTable t;
ofxSOOscillator o;
ofxSndObj sndobj;
};
#endif
#include "testApp.h"
void testApp::setup(){
sndobj.startOut(true, 1);
t.init(sndobj, 2500l, SINE, 1.f);
o.init(sndobj, t, 440.f, 10000.f);
sndobj.setOutput(o, OFXSNDOBJOSCILLATOR, 1);
sndobj.startProcessing();
}
import com.echonest.api.v3.artist.Artist;
import com.echonest.api.v3.artist.ArtistAPI;
import com.echonest.api.v3.artist.Audio;
import com.echonest.api.v3.EchoNestException;
import com.echonest.api.v3.artist.Scored;
import java.util.List;
String API_KEY = "自分のAPI KEY";
String ARTISTNAME = "weezer";
ArtistAPI artistAPI;
try {
artistAPI = new ArtistAPI(API_KEY);
List<Artist> artists = artistAPI.searchArtist(ARTISTNAME, false);
if(artists.size()>0) {
for(int i=0; i<artists.size(); i++) {
Artist artist = artists.get(i);
List<Scored<Artist>> similars = artistAPI.getSimilarArtists(artists, 0, 10);
println(" === Similar artists for " + artist.getName() + " ===");
for(int j=0;j<similars.size(); j++) {
Scored<Artist> simArtist = similars.get(j);
println(simArtist.getItem());
}
}
}
}
catch(EchoNestException e) {
System.err.println("Trouble: " + e);
}
=== Similar artists for Weezer ===
The Smashing Pumpkins
Ozma
Biffy Clyro
The Breeders
Rivers Cuomo
Nerf Herder
Jimmy Eat World
Foo Fighters
Veruca Salt
The Flaming Lips
=== Similar artists for Weezer Tribute ===
The Smashing Pumpkins
Ozma
Biffy Clyro
The Breeders
Rivers Cuomo
Nerf Herder
Jimmy Eat World
Foo Fighters
Veruca Salt
The Flaming Lips
=== Similar artists for Matt Sharp (of Weezer, The Rentals) ===
The Smashing Pumpkins
Ozma
Biffy Clyro
The Breeders
Rivers Cuomo
Nerf Herder
Jimmy Eat World
Foo Fighters
Veruca Salt
The Flaming Lips

PImage img;
int x = 0;
int y = 0;
int imgW;
int imgH;
float val;
float amp;
background(255);
colorMode(HSB, 255);
img = loadImage("lisa.jpg");
imgW = img.width;
imgH = img.height;
size(imgW*2, imgH);
image(img, 0, 0);
loadPixels();
for(y = 0; y < imgH; y++) {
for(x = 0; x < imgW; x+=5) {
val = brightness(pixels[y*imgW*2+x]);
amp = (255-val)*0.05;
stroke(100, amp+100);
line(imgW+x-amp, y, imgW+x+amp, y);
}
}
saveFrame("nonformatize.jpg");
さて、イベントハンドラ内では 2048 以上 8192 以下のサンプルデータを書き込みます。パフォーマンス上はできるだけ多くのサンプルデータを (つまり 8192 個) 書くのが有利と考えられます。
package {
import flash.display.Sprite;
import flash.media.Sound;
import flash.events.Event;
import flash.events.SampleDataEvent;
public class SoundTest extends Sprite{
private var sound:Sound;
private var freq:Number = 440;
private var rate:Number = 44100;
private var phase:Number = 0;
public function SoundTest() {
init();
}
private function init():void {
sound = new Sound();
sound.addEventListener(SampleDataEvent.SAMPLE_DATA, sineWaveGenerator);
sound.play();
}
private function sineWaveGenerator(event:SampleDataEvent):void {
for(var i:int = 0; i < 8192; i++) {
phase += freq / rate;
var phaseAngle:Number = phase * Math.PI * 2;
var sample:Number = Math.sin(phaseAngle)*0.25;
event.data.writeFloat(sample);
event.data.writeFloat(sample);
}
}
}
}
s o n i c o d e
s o n i c o d e
s o n i c o d e
s o n i c o d e
s o n i c o d e
s o n i c o d e
電子音楽
電子 楽
子音
電子音楽
電 音楽
子音
電子fdさfdさfdさ 楽
子 楽
電子音楽
電子音楽
電子音楽
電子音楽
電子音楽
電子音楽
S
S O
SON
SONI
CODE
ODE
DE
E
C /
O /
D /
E /
C C
O O
D D
E E
S
S O/
SON/
SONI/
CODE/
ODE/
DE/
E/
S O N I C O D E
S O N I C O D E
S O N I C O D E
S O N I C O D E
S O N I C O D E
SONIC♪
CODE ♬
SONIC♪♪
CODE ♬ ♬
SONIC♪♪/
CODE ♬ ♬ /
S O N I C O D E /
S O N I C O D E / /
S O N I C O D E / / /
S O N I C O D E / / / /
S O N I C O D E / / / / /
S O N I C O D E / / / / / /
S O N I C O D E / / / / / / /
㍿ ㍿ ㍿ ㍿
㍿ ㍿ ㍿ ㍿
㍿ ㍿ ㍿ ㍿
㍿ ㍿ ㍿ ㍿
㍿ ㍿ ㍿ ㍿
㍿ ㍿ ㍿ ㍿
㍿ ㍿ ㍿ ㍿
㍿ ㍿ ㍿ ㍿
㍿ ㍿ ㍿ ㍿
㍿ ㍿ ㍿ ㍿
㍿ ㍿ ㍿ ㍿
㍿ ㍿ ㍿ ㍿
㈱
㈱ ㌕
㈱ ㌕ ㌖
へへへへへへへへへへへへへ
へへ へへ へへ へへ
へ へ へ へ
wwwwwwwwwwwww
wwwwwwwwwwwww
wwwwwwwwwwwww
IAMAS
IAMAS
IAMAS
IAMAS
IAMAS
IAMAS
I
I
I
I
I
A
A
A
A
M
M
M
M
A
A
A
A
M
M
M
M
A
A
A
A
M
M
M
M
S
S
S
S
S
2
2
2
0
0
0
0
0
0
8
8
8
2008
8
08
008
2008
8
08
008
2008
Number of Devices: 4
0 : "Built-in Microphone"
1 : "Built-in Input"
2 : "Built-in notification is on
"supercollider" Input Device
Streams: 1
0 channels 2
"supercollider" Output Device
Streams: 1
0 channels 2




