読者です 読者をやめる 読者になる 読者になる

aa develop

開発と成長

Pure Dataでシンセサイザーを作成する

今までPure Dataで作成してきたものを組み合わせて、鍵盤・VCO・VCF・VCA・EG・LFOがついたシンセサイザーを作成しました。

キーボードの「abcdefgh」がそれぞれ「ドレミファソラシ」に対応しています。

f:id:aa_debdeb:20160827192407p:plain

ソースコード
#N canvas 5 23 1271 755 10;
#X obj 276 195 phasor~;
#X obj 261 365 vcf~;
#X obj 340 589 *~;
#X obj 303 658 output~;
#N canvas 819 401 450 300 keyboard 1;
#X obj 203 234 outlet;
#X obj 101 222 outlet;
#X obj 294 233 outlet;
#X obj 176 212 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 320 177 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 100 181 mtof;
#X obj 106 25 key;
#X obj 52 88 select 97 115 100 102 103 104 106;
#X obj 297 30 keyup;
#X msg 20 128 60;
#X msg 59 128 62;
#X msg 110 131 64;
#X msg 149 128 65;
#X msg 186 130 67;
#X msg 223 133 69;
#X msg 276 130 71;
#X connect 3 0 0 0;
#X connect 4 0 2 0;
#X connect 5 0 1 0;
#X connect 5 0 3 0;
#X connect 6 0 7 0;
#X connect 7 0 9 0;
#X connect 7 1 10 0;
#X connect 7 2 11 0;
#X connect 7 3 12 0;
#X connect 7 4 13 0;
#X connect 7 5 14 0;
#X connect 7 6 15 0;
#X connect 8 0 4 0;
#X connect 9 0 5 0;
#X connect 10 0 5 0;
#X connect 11 0 5 0;
#X connect 12 0 5 0;
#X connect 13 0 5 0;
#X connect 14 0 5 0;
#X connect 15 0 5 0;
#X restore 430 11 pd keyboard;
#X obj 375 561 hsl 128 15 0 5 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X obj 275 419 *~;
#X obj 369 193 osc~;
#X text -28 141 VCO;
#X text 216 368 VCF;
#X text 277 547 VCA;
#X text 646 38 EG;
#X obj 413 148 hsl 128 15 0 50 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X obj 683 317 vline~;
#X obj 710 45 vsl 15 128 0 1000 0 0 empty empty empty 0 -9 0 10 -262144
-1 -1 0 1;
#X obj 754 46 vsl 15 128 0 1000 0 0 empty empty empty 0 -9 0 10 -262144
-1 -1 0 1;
#X obj 799 46 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144
-1 -1 0 1;
#X obj 844 47 vsl 15 128 0 1000 0 0 empty empty empty 0 -9 0 10 -262144
-1 -1 0 1;
#X text 712 21 A;
#X text 757 21 D;
#X text 803 20 S;
#X text 849 20 R;
#X obj 638 230 pack f f f f;
#X obj 760 229 pack f f;
#X msg 638 267 1 \$2 \, \$4 \$3 \$2;
#X msg 760 265 0 \$2;
#X obj 377 317 hsl 128 15 0 30 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X obj 369 262 +~;
#X obj 414 229 hsl 128 15 0 2000 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X obj 369 227 *~;
#X obj 416 193 hsl 128 15 0 500 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X obj 412 444 osc~;
#X obj 461 407 hsl 128 15 0 50 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X obj 412 478 *~;
#X obj 462 448 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X obj 332 537 *~;
#X obj 412 512 +~ 1;
#X text 364 110 LFO for VCF;
#X text 325 438 LFO for VCA;
#X obj -19 236 expr~ $v1 > 0.5;
#X obj -19 190 phasor~;
#X obj 121 218 expr if($f1 == 0 \, 1 \, 0);
#X obj 83 266 expr if($f1 == 1 \, 1 \, 0);
#X obj -19 292 *~;
#X obj 277 304 *~;
#N canvas 0 22 450 278 (subpatch) 0;
#X array wave 440 float 1;
#A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0;
#X coords 0 1 439 -1 200 140 1;
#X restore 554 544 graph;
#X obj 407 674 tabwrite~ wave;
#X obj 407 636 metro 100;
#X obj 407 603 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 91 160 vradio 15 1 0 2 empty empty empty 0 -8 0 10 -262144 -1
-1 0;
#X text 113 160 saw-tooth;
#X text 113 176 square;
#X text 414 127 rate;
#X text 414 171 intensity;
#X text 370 292 Q;
#X text 416 212 cutoff;
#X text 461 386 rate;
#X text 461 430 intensity;
#X text 377 540 volume;
#X connect 0 0 44 0;
#X connect 1 0 6 0;
#X connect 2 0 3 0;
#X connect 2 0 3 1;
#X connect 2 0 46 0;
#X connect 4 0 0 0;
#X connect 4 0 40 0;
#X connect 4 1 22 0;
#X connect 4 2 23 0;
#X connect 5 0 2 1;
#X connect 6 0 35 0;
#X connect 7 0 29 0;
#X connect 12 0 7 0;
#X connect 13 0 6 1;
#X connect 14 0 22 1;
#X connect 15 0 22 2;
#X connect 16 0 22 3;
#X connect 17 0 23 1;
#X connect 22 0 24 0;
#X connect 23 0 25 0;
#X connect 24 0 13 0;
#X connect 25 0 13 0;
#X connect 26 0 1 2;
#X connect 27 0 1 1;
#X connect 28 0 27 1;
#X connect 29 0 27 0;
#X connect 30 0 29 1;
#X connect 31 0 33 0;
#X connect 32 0 31 0;
#X connect 33 0 36 0;
#X connect 34 0 33 1;
#X connect 35 0 2 0;
#X connect 36 0 35 1;
#X connect 39 0 43 0;
#X connect 40 0 39 0;
#X connect 41 0 44 1;
#X connect 42 0 43 1;
#X connect 43 0 1 0;
#X connect 44 0 1 0;
#X connect 47 0 46 0;
#X connect 48 0 47 0;
#X connect 49 0 42 0;
#X connect 49 0 41 0;