Something went wrong on our end
Select Git revision
bfex_BassSequencer.pd
bfex_BassSequencer.pd 11.76 KiB
#N canvas 0 95 1099 753 10;
#X declare -path ..;
#X declare -stdpath mrpeach;
#X declare -stdpath mrpeach/net;
#X declare -stdpath osc;
#X declare -stdpath cxc;
#X declare -stdpath mapping;
#X declare -path ../modules;
#X declare -path ../bf-pd;
#X obj 474 406 dac~;
#X obj 483 377 *~;
#X floatatom 212 182 5 0 0 1 step - -;
#N canvas 160 78 450 300 declares 0;
#X obj 13 71 declare -path ..;
#X obj 13 101 declare -stdpath mrpeach;
#X obj 12 127 declare -stdpath mrpeach/net;
#X obj 12 157 declare -stdpath osc;
#X obj 12 187 declare -stdpath cxc;
#X obj 14 216 declare -stdpath mapping;
#X obj 14 14 declare -path ../modules;
#X obj 14 44 declare -path ../bf-pd;
#X restore 856 19 pd declares;
#X floatatom 417 215 5 0 0 0 - - -;
#X text 417 194 note;
#X obj 521 125 loadbang;
#X obj 559 333 rev1~;
#X floatatom 559 314 5 0 0 0 - - -;
#X obj 559 356 *~;
#N canvas 11 97 495 329 gaincalc 0;
#X obj 36 25 inlet;
#X floatatom 78 103 5 0 0 0 - - -;
#X obj 78 168 dbtorms;
#X floatatom 155 168 5 0 0 0 - - -;
#X obj 36 72 sel 0;
#X msg 35 98 0;
#X obj 78 144 + 65;
#X obj 77 122 * 45;
#X text 189 166 gain in dB (100 = 0 dbFS);
#X floatatom 155 202 5 0 0 0 - - -;
#X text 195 202 linear gain;
#X obj 71 211 line~;
#X msg 71 194 \$1 10;
#X obj 71 228 outlet~;
#X obj 36 47 / 127;
#X text 24 259 control volume over a useful range with an input that
is [0 \, 127];
#X connect 0 0 14 0;
#X connect 1 0 7 0;
#X connect 2 0 9 0;
#X connect 2 0 12 0;
#X connect 4 0 5 0;
#X connect 4 1 1 0;
#X connect 5 0 2 0;
#X connect 6 0 3 0;
#X connect 6 0 2 0;
#X connect 7 0 6 0;
#X connect 11 0 13 0;
#X connect 12 0 11 0;
#X connect 14 0 4 0;
#X restore 601 356 pd gaincalc;
#X msg 595 313 clear;
#N canvas 0 23 413 334 note6 0;
#X obj 126 261 outlet;
#X obj 105 60 inlet;
#X obj 238 65 inlet;
#X floatatom 157 142 5 0 0 0 - - -;
#X obj 174 97 != 0;
#X obj 157 119 spigot;
#X text 132 288 value;
#X obj 222 260 outlet;
#X text 228 287 index;
#N canvas 897 92 450 300 counter6 0;
#X obj 202 36 inlet;
#X obj 189 143 outlet;
#X obj 189 73 float 0;
#X obj 189 99 t f f;
#X obj 250 87 expr ($f1+1)%6;
#X connect 0 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 1 0;
#X connect 3 1 4 0;
#X connect 4 0 2 1;
#X restore 222 224 pd counter6;
#X obj 157 161 t f b;
#X connect 1 0 5 0;
#X connect 2 0 4 0;
#X connect 3 0 10 0;
#X connect 4 0 5 1;
#X connect 5 0 3 0;
#X connect 9 0 7 0;
#X connect 10 0 0 0;
#X connect 10 1 9 0;
#X restore 44 137 pd note6;
#X obj 44 114 notein;
#X obj 559 266 loadbang;
#X msg 588 292 47;
#X msg 559 293 50;
#X obj 442 264 *~ 0.5;
#N canvas 356 167 450 300 clock6 0;
#X obj 202 36 inlet;
#X obj 202 219 outlet;
#X obj 202 82 float 0;
#X obj 202 99 t f f;
#X obj 241 99 expr ($f1+1)%6;
#X msg 256 60 0;
#X obj 255 36 inlet;
#X text 169 18 clock pulse;
#X text 258 18 reset counter;
#X connect 0 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 1 0;
#X connect 3 1 4 0;
#X connect 4 0 2 1;
#X connect 5 0 2 1;
#X connect 6 0 5 0;
#X restore 212 161 pd clock6;
#X obj 212 143 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X msg 521 145 0.2;
#X obj 269 434 bf-instrument bassInst-\$0;
#N canvas 2 94 595 380 bassSynth 0;
#X obj 290 238 vline~;
#N canvas 25 462 621 354 filtcalc 0;
#X obj 86 65 inlet;
#X obj 166 66 inlet;
#X obj 99 146 +;
#X text 63 44 midi note;
#X text 164 40 fc [0 \, 1];
#X obj 219 248 mtof~;
#X obj 388 65 inlet~;
#X obj 219 302 outlet~;
#X obj 283 66 inlet;
#X text 386 45 env sig;
#X text 281 44 filtmod [0 \, 1];
#X obj 388 148 *~;
#X obj 388 182 +~;
#X obj 166 95 * 60;
#X obj 166 117 - 0;
#X obj 283 88 * 52;
#X connect 0 0 2 0;
#X connect 1 0 13 0;
#X connect 2 0 12 1;
#X connect 5 0 7 0;
#X connect 6 0 11 0;
#X connect 8 0 15 0;
#X connect 11 0 12 0;
#X connect 12 0 5 0;
#X connect 13 0 14 0;
#X connect 14 0 2 1;
#X connect 15 0 11 1;
#X restore 255 212 pd filtcalc;
#X obj 275 260 *~;
#X obj 373 112 loadbang;
#X obj 261 165 loadbang;
#X obj 200 191 mtof;
#N canvas 0 23 581 325 osc1 0;
#X obj 121 34 inlet;
#X obj 248 37 inlet;
#X text 120 15 freq;
#X text 248 19 wave select;
#X obj 122 104 phasor~;
#X obj 122 131 *~ 2048;
#X obj 138 256 outlet~;
#N canvas 395 107 1045 734 osctab1 0;
#X obj 119 36 inlet;
#X floatatom 120 78 5 0 0 0 - - -;
#X obj 197 173 sel 0 1 2 3;
#X obj 123 106 t b f;
#X text 351 358 Square with 13 harmonics;
#X text 377 266 Sawtooth with 13 harmonics;
#X text 357 445 Triangle with 13 harmonics;
#N canvas 0 22 450 278 (subpatch) 0;
#X array osctable1-\$0 2051 float 2;
#X coords 0 1 2051 -1 200 140 1;
#X restore 654 233 graph;
#X msg 324 111 \; osctable1-\$0 sinesum 2051 1 0.5 0.333333 0.25 0.2
0.166667 0.142857 0.125 0.111111 0.1 0.090909 0.0833333 0.076923;
#X obj 54 242 symbol osctable1-\$0;
#X msg 12 292 \; \$1 normalize 1;
#X msg 209 292 \; \$1 sinesum 2051 1 0.5 0.333333 0.25 0.2 0.166667
0.142857 0.125 0.111111 0.1 0.090909 0.0833333 0.076923;
#X obj 209 266 symbol osctable1-\$0;
#X obj 174 358 symbol osctable1-\$0;
#X msg 174 380 \; \$1 sinesum 2051 1 0 0.333333 0 0.2 0 0.142857 0
0.111111 0 0.090909 0 0.076923;
#X msg 176 467 \; \$1 sinesum 2051 1 0 -0.111111 0 0.04 0 -0.0204082
0 0.0123457 0 -0.00826446 0 0.00591716;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 2 0 13 0;
#X connect 2 1 12 0;
#X connect 3 0 9 0;
#X connect 3 1 2 0;
#X connect 9 0 10 0;
#X connect 12 0 11 0;
#X connect 13 0 14 0;
#X restore 246 72 pd osctab1;
#X obj 355 158 tabread osctable1-\$0;
#X floatatom 361 119 5 0 0 0 - - -;
#X floatatom 352 205 5 0 0 0 - - -;
#X obj 122 154 tabread4~ osctable1-\$0;
#X connect 0 0 4 0;
#X connect 1 0 7 0;
#X connect 4 0 5 0;
#X connect 5 0 11 0;
#X connect 8 0 10 0;
#X connect 9 0 8 0;
#X connect 11 0 6 0;
#X restore 200 212 pd osc1;
#X obj 318 186 vline~;
#N canvas 31 245 796 471 envF 0;
#X obj 122 261 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
-262144 -1 -1 2 256;
#X obj 235 278 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
-262144 -1 -1 87 256;
#X obj 122 302 pack f f;
#X obj 67 260 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X msg 67 353 2 87;
#X msg 122 323 set \$1 \$2;
#X obj 122 84 inlet;
#X obj 67 85 inlet;
#X obj 80 426 outlet;
#X text 65 64 bang;
#X text 180 261 attack time (ms);
#X text 290 276 decay time (ms);
#X text 293 312 This generates a message to send to vline~ to create
an attack/decay envelope.;
#X text 120 62 duration;
#X obj 122 128 *;
#X obj 122 151 *;
#X obj 122 106 t f f f;
#X text 157 152 cube to get more resolution at low values;
#X obj 235 229 + 60;
#X obj 122 177 t b f;
#X msg 122 199 2;
#X obj 235 207 * 1000;
#X msg 67 380 1 \$1 \, 0 \$2 \$1;
#X connect 0 0 2 0;
#X connect 1 0 2 1;
#X connect 2 0 5 0;
#X connect 3 0 4 0;
#X connect 4 0 22 0;
#X connect 5 0 4 0;
#X connect 6 0 16 0;
#X connect 7 0 3 0;
#X connect 14 0 15 0;
#X connect 15 0 19 0;
#X connect 16 0 14 0;
#X connect 16 1 14 1;
#X connect 16 2 15 1;
#X connect 18 0 1 0;
#X connect 19 0 20 0;
#X connect 19 1 21 0;
#X connect 20 0 0 0;
#X connect 21 0 18 0;
#X connect 22 0 8 0;
#X restore 318 165 pd envF;
#N canvas 132 249 796 471 envA 0;
#X obj 122 261 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
-262144 -1 -1 7.16 256;
#X obj 235 278 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
-262144 -1 -1 141 256;
#X obj 122 302 pack f f;
#X obj 67 260 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X msg 67 353 7.16 141;
#X msg 122 323 set \$1 \$2;
#X obj 122 84 inlet;
#X obj 67 85 inlet;
#X obj 80 426 outlet;
#X text 65 64 bang;
#X text 180 261 attack time (ms);
#X text 290 276 decay time (ms);
#X text 293 312 This generates a message to send to vline~ to create
an attack/decay envelope.;
#X obj 122 177 t f f;
#X text 120 62 duration;
#X obj 122 128 *;
#X obj 122 151 *;
#X obj 122 106 t f f f;
#X text 157 152 cube to get more resolution at low values;
#X obj 235 207 * 3000;
#X obj 235 229 + 60;
#X obj 122 228 + 5;
#X msg 67 380 1 \$1 \, 0 \$2 \$1;
#X obj 122 206 * 80;
#X connect 0 0 2 0;
#X connect 1 0 2 1;
#X connect 2 0 5 0;
#X connect 3 0 4 0;
#X connect 4 0 22 0;
#X connect 5 0 4 0;
#X connect 6 0 17 0;
#X connect 7 0 3 0;
#X connect 13 0 23 0;
#X connect 13 1 19 0;
#X connect 15 0 16 0;
#X connect 16 0 13 0;
#X connect 17 0 15 0;
#X connect 17 1 15 1;
#X connect 17 2 16 1;
#X connect 19 0 20 0;
#X connect 20 0 1 0;
#X connect 21 0 0 0;
#X connect 22 0 8 0;
#X connect 23 0 21 0;
#X restore 333 212 pd envA;
#X obj 239 191 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X obj 166 125 t b b f f;
#X obj 282 114 loadbang;
#X obj 236 239 vcf~ 12;
#X msg 261 187 0.02;
#X text 402 134 decay;
#X msg 373 132 0.3;
#X obj 275 281 outlet~;
#X obj 159 52 inlet;
#X text 156 31 midi note;
#X obj 403 51 inlet;
#X text 400 30 filter mod;
#X obj 251 57 inlet;
#X text 248 34 sqr/saw;
#X connect 0 0 2 1;
#X connect 1 0 13 1;
#X connect 2 0 17 0;
#X connect 3 0 16 0;
#X connect 4 0 14 0;
#X connect 5 0 6 0;
#X connect 6 0 13 0;
#X connect 7 0 1 3;
#X connect 8 0 7 0;
#X connect 9 0 0 0;
#X connect 10 0 6 1;
#X connect 11 0 9 0;
#X connect 11 1 8 0;
#X connect 11 2 5 0;
#X connect 11 3 1 0;
#X connect 12 0 10 0;
#X connect 13 1 2 0;
#X connect 14 0 1 1;
#X connect 16 0 8 1;
#X connect 16 0 9 1;
#X connect 18 0 11 0;
#X connect 20 0 1 2;
#X connect 22 0 10 0;
#X restore 443 237 pd bassSynth;
#X obj 477 214 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X text 458 195 sqr/saw;
#X text 42 66 play MIDI notes in to set the notes in the sequence,
f 18;
#X text 28 575 This is an example patch for how to build an instrument
and use bf parameters when using bf-pd. Bf-pd is an implementation
of the BOEUF framework by Luke Dahl and Florent Berthaut. More details
on https://gitlab.cristal.univ-lille.fr/boeuf/bf-pd;
#X text 484 575 This instrument can be used together with bfex_DrumSequencer.pd
to show how the watch busses in bf-pd can be used. In the collaboration
window you can use the clockOut output in the drum sequencer to trigger
playNote in this instrument;
#X text 43 16 A bass sequencer instrument using bf-pd;
#X text 212 59 Trigger notes;
#X text 57 192 The sequence of notes;
#X obj 263 142 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X text 280 144 reset counter;
#N canvas 150 50 495 329 gaincalc 0;
#X obj 36 25 inlet;
#X floatatom 78 103 5 0 0 0 - - -;
#X obj 78 168 dbtorms;
#X floatatom 155 168 5 0 0 0 - - -;
#X obj 36 72 sel 0;
#X msg 35 98 0;
#X obj 78 144 + 65;
#X obj 77 122 * 45;
#X text 189 166 gain in dB (100 = 0 dbFS);
#X floatatom 155 202 5 0 0 0 - - -;
#X text 195 202 linear gain;
#X obj 71 211 line~;
#X msg 71 194 \$1 10;
#X obj 71 228 outlet~;
#X text 24 259 control volume over a useful range with an input that
is [0 \, 127];
#X connect 0 0 4 0;
#X connect 1 0 7 0;
#X connect 2 0 9 0;
#X connect 2 0 12 0;
#X connect 4 0 5 0;
#X connect 4 1 1 0;
#X connect 5 0 2 0;
#X connect 6 0 3 0;
#X connect 6 0 2 0;
#X connect 7 0 6 0;
#X connect 11 0 13 0;
#X connect 12 0 11 0;
#X restore 268 372 pd gaincalc;
#X obj 212 78 bf-param bassInst-\$0 playNote 1 bang 0;
#X obj 44 210 bf-param bassInst-\$0 notes 6 midi 1;
#X obj 521 169 bf-param bassInst-\$0 filtMod 1 cont 2;
#X obj 639 287 bf-param bassInst-\$0 reverbLvl 1 midi 3;
#X obj 269 304 bf-param bassInst-\$0 volume 1 cont 4;
#X obj 14 285 bf-output bassInst-\$0 midipitch 1 midi 0;
#X obj 857 49 loadbang;
#X msg 857 73 dsp 1;
#X obj 857 97 s pd;
#X connect 1 0 0 0;
#X connect 1 0 0 1;
#X connect 1 0 21 0;
#X connect 2 0 35 2;
#X connect 4 0 22 0;
#X connect 6 0 20 0;
#X connect 7 0 9 0;
#X connect 8 0 7 1;
#X connect 9 0 1 1;
#X connect 10 0 9 1;
#X connect 11 0 7 2;
#X connect 12 0 35 0;
#X connect 12 1 35 1;
#X connect 13 0 12 0;
#X connect 13 1 12 1;
#X connect 14 0 16 0;
#X connect 14 0 15 0;
#X connect 15 0 37 0;
#X connect 16 0 8 0;
#X connect 17 0 7 0;
#X connect 17 0 1 1;
#X connect 18 0 2 0;
#X connect 19 0 18 0;
#X connect 20 0 36 0;
#X connect 22 0 17 0;
#X connect 23 0 22 1;
#X connect 31 0 18 1;
#X connect 33 0 1 0;
#X connect 34 0 19 0;
#X connect 35 2 4 0;
#X connect 35 2 39 0;
#X connect 36 0 22 2;
#X connect 37 0 10 0;
#X connect 38 0 33 0;
#X connect 40 0 41 0;
#X connect 41 0 42 0;