add second lesson

This commit is contained in:
k_ 2021-04-11 02:05:03 +02:00
parent 6fe6b5b71c
commit 8213e9d93f
9 changed files with 391 additions and 0 deletions

19
Corso_2/addN.pd Normal file
View File

@ -0,0 +1,19 @@
#N canvas 1041 206 707 324 12;
#X obj 73 184 + \$1;
#X floatatom 73 149 5 0 0 0 - - -;
#X floatatom 73 209 5 0 0 0 - - -;
#X obj 73 114 inlet;
#X obj 73 233 outlet;
#X obj 246 35 f \$0;
#X floatatom 246 59 5 0 0 0 - - -;
#X obj 246 4 loadbang;
#X text 301 34 la variabile \$0 si riferisce al numero univoco che
pd assegna d ogni abstraction;
#X text 130 179 \$1 assume il valore del primo argomento con cui è
creata questa abstraction;
#X connect 0 0 2 0;
#X connect 1 0 0 0;
#X connect 2 0 4 0;
#X connect 3 0 1 0;
#X connect 5 0 6 0;
#X connect 7 0 5 0;

18
Corso_2/bpmToMs.pd Normal file
View File

@ -0,0 +1,18 @@
#N canvas 170 468 347 336 12;
#X obj 31 257 /;
#X msg 31 218 60000;
#X floatatom 31 127 5 0 0 1 bpm - -;
#X obj 31 177 t b f;
#X floatatom 83 219 5 0 0 0 - - -;
#X obj 31 299 outlet;
#X msg 31 59 60;
#X obj 31 28 loadbang;
#X connect 0 0 5 0;
#X connect 1 0 0 0;
#X connect 2 0 3 0;
#X connect 3 0 1 0;
#X connect 3 1 4 0;
#X connect 4 0 0 1;
#X connect 6 0 2 0;
#X connect 7 0 6 0;
#X coords 0 -1 1 1 100 60 1 20 100;

319
Corso_2/main.pd Normal file
View File

@ -0,0 +1,319 @@
#N canvas 0 61 1920 983 12;
#X obj 40 277 bpmToMs;
#X floatatom 40 359 5 0 0 0 - - -;
#X obj 193 495 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 193 450 sel 0 1 2 3, f 35;
#X obj 161 277 myCounter;
#N canvas 0 50 450 250 (subpatch) 0;
#X array mySequence 8 float 3;
#A 0 1442.85 2188.54 2644.3 3058.53 3514.23 4259.93 4674.21 5295.62
;
#X coords 0 6000 8 200 200 140 1 0 0;
#X restore 1325 339 graph;
#X obj 1647 764 dac~;
#X floatatom 1672 699 5 0 1 0 - - -;
#X floatatom 1648 435 5 0 0 0 - - -;
#X msg 1719 726 0;
#X msg 1708 479 0;
#N canvas 189 137 956 554 dephtFirst 0;
#X obj 137 215 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X msg 58 283 23;
#X msg 162 287 10;
#X obj 162 311 + 2;
#X obj 162 335 + 7;
#X obj 162 359 * 10;
#X floatatom 162 383 5 0 0 0 - - -;
#X obj 58 307 + 1;
#X floatatom 58 331 5 0 0 0 - - -;
#X floatatom 245 288 5 0 0 0 - - -;
#X floatatom 162 213 5 0 0 0 - - -;
#X obj 162 413 print primo;
#X obj 245 313 print secondo;
#X obj 460 208 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X msg 485 285 23;
#X msg 699 291 10;
#X obj 699 315 + 2;
#X obj 699 339 + 7;
#X obj 699 363 * 10;
#X floatatom 699 394 5 0 0 0 - - -;
#X obj 485 309 + 1;
#X floatatom 485 333 5 0 0 0 - - -;
#X obj 485 238 trigger bang float bang, f 31;
#X floatatom 592 283 5 0 0 0 - - -;
#X floatatom 485 206 5 0 0 0 - - -;
#X obj 699 427 print primo;
#X obj 592 428 print secondo;
#X obj 485 426 print terzo;
#X obj 58 354 print terzo;
#X text 73 47 quando un bang si dirama \, attraversa ogni percorso
fino in fondo prima di eseguire il successivo \; l'ordine dipende dall'ordine
di collegamento (indipendentemente dalla lunghezza del "percorso" \;
\; la box trigger rende l'ordine esplicito e chiaro;
#X connect 0 0 10 0;
#X connect 1 0 7 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 11 0;
#X connect 7 0 8 0;
#X connect 8 0 28 0;
#X connect 9 0 12 0;
#X connect 10 0 2 0;
#X connect 10 0 9 0;
#X connect 10 0 1 0;
#X connect 13 0 24 0;
#X connect 14 0 20 0;
#X connect 15 0 16 0;
#X connect 16 0 17 0;
#X connect 17 0 18 0;
#X connect 18 0 19 0;
#X connect 19 0 25 0;
#X connect 20 0 21 0;
#X connect 21 0 27 0;
#X connect 22 0 14 0;
#X connect 22 1 23 0;
#X connect 22 2 15 0;
#X connect 23 0 26 0;
#X connect 24 0 22 0;
#X restore 81 77 pd dephtFirst;
#N canvas 1023 273 733 497 sampler 0;
#N canvas 0 50 450 250 (subpatch) 0;
#X array kick 27367 float 2;
#X coords 0 1 27367 -1 200 140 1;
#X restore 34 274 graph;
#N canvas 0 50 450 250 (subpatch) 0;
#X array snare 9568 float 2;
#X coords 0 1 9568 -1 200 140 1;
#X restore 257 278 graph;
#N canvas 0 50 450 250 (subpatch) 0;
#X array hihat 5566 float 2;
#X coords 0 1 5566 -1 200 140 1;
#X restore 484 279 graph;
#X obj 32 24 loadbang;
#X obj 32 52 t b b b;
#X msg 55 118 read -resize ../sources/samples/snare-1.wav snare;
#X msg 32 146 read -resize ../sources/samples/hihat.wav hihat;
#X obj 55 215 soundfiler;
#X msg 78 90 read -resize ../sources/samples/kick.wav kick;
#X connect 3 0 4 0;
#X connect 4 0 6 0;
#X connect 4 1 5 0;
#X connect 4 2 8 0;
#X connect 5 0 7 0;
#X connect 6 0 7 0;
#X connect 8 0 7 0;
#X restore 240 735 pd sampler;
#X obj 161 734 tabplay~;
#X obj 160 850 *~ 0.2;
#X obj 160 917 dac~;
#X msg 193 586 set kick;
#X msg 253 543 set hihat;
#X msg 313 590 set snare;
#X obj 253 497 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 314 499 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 374 500 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 161 636 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 161 418 t b f;
#X msg 246 825 0.2;
#X msg 246 853 0;
#X text 284 837 volume;
#X text 463 469 esempio esplicativo della "depth first" \; lo stesso
float del counter viene separato in due eventi distinti attraverso
la box "trigger" \; 1 prima seleziona lo strumento \; 2 poi esegue
il campione \; \; (anche se sembra avvenire contemporaneamente);
#N canvas 261 243 1175 689 gliArray 0;
#N canvas 0 50 450 250 (subpatch) 0;
#X array myFirstArray 10 float 3;
#A 0 0.428566 0.685706 -0.0714289 -0.628566 0.0285701 0.228568 -0.0285722
-0.557138 0.128569 0.457137;
#X coords 0 1 10 -1 200 140 1;
#X restore 40 200 graph;
#X obj 794 27 table hiddenArray;
#X text 789 54 la box table crea un array "nascosto" graficamente;
#X obj 41 416 tabread myFirstArray;
#X obj 207 416 tabread~ myFirstArray;
#X obj 38 505 tabwrite myFirstArray;
#X obj 208 505 tabwrite~ myFirstArray;
#X text 298 198 il grafico rappresenta i valori contenuti \; \; le
x sono gli indici (la loro posizione) \; le y sono i valori \; \; PS
\; - il range si modifica dalle "Properties" \; - i valori possono
essere modificati interattivamente con il mouse;
#X text 402 411 per leggere i valori (con messaggi float o segnali)
;
#X text 403 502 per scrivere i valori (con messaggi float o segnali)
;
#X text 37 31 l'array è un contenitore di valori multipli indicizzati
\; \; quando si crea (ctrl-shift-A) dobbiamo: \; 1 assegnare un nome
univoco \; 2 settare una dimensione (quantità di valori) \;;
#X restore 242 77 pd gliArray;
#N canvas 946 325 759 534 rampe 0;
#X obj 251 286 line;
#X msg 40 133 0.2;
#X msg 83 134 1;
#X msg 123 135 0;
#X msg 308 127 0 1000;
#X msg 251 129 1 750;
#X floatatom 251 311 10 0 0 0 - - -;
#X text 37 75 messaggi singoli \; --> jump al valore;
#X text 245 73 liste: \; valoreDiDestinazione Tempo;
#X text 489 77 combo \; jump e rampe in sequenza;
#X msg 495 135 1 \, 0 1000;
#X msg 580 137 0.5 \, 0 1500;
#X connect 0 0 6 0;
#X connect 1 0 0 0;
#X connect 2 0 0 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 5 0 0 0;
#X connect 10 0 0 0;
#X connect 11 0 0 0;
#X restore 517 79 pd rampe;
#N canvas 637 158 849 479 liste 0;
#X msg 54 90 25;
#X msg 95 188 74 27 89;
#X msg 100 286 74 27 \, 89;
#X obj 54 398 print;
#X text 180 179 più valori separati da uno spazio nei messaggi creano
una lista (un messaggio :: più valori);
#X text 193 293 la virgola spezza il messaggio in più messaggi;
#X msg 102 315 74 \, 27 \, 89;
#X connect 0 0 3 0;
#X connect 1 0 3 0;
#X connect 2 0 3 0;
#X connect 6 0 3 0;
#X restore 382 78 pd liste;
#X obj 1647 727 *~ 0;
#X obj 1646 653 osc~;
#X obj 1077 693 *~;
#X obj 1077 806 dac~;
#X obj 1186 661 line;
#X obj 1077 382 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1
0 1;
#X obj 1077 511 f;
#X obj 1113 511 + 1;
#X obj 1077 538 mod 8;
#X obj 1077 444 t b b, f 16;
#X floatatom 1115 724 5 0 1 0 - - -;
#X msg 1162 751 0;
#X obj 1077 647 osc~;
#X obj 1077 576 tabread mySequence;
#X obj 1647 590 tabread~ mySequence;
#X obj 1648 541 *~ 8;
#X text 1694 434 speed (Hz);
#X text 1745 478 restart (phase);
#X floatatom 1137 385 5 0 0 0 - - -;
#X text 1183 384 speed (ms);
#X text 1205 734 volume;
#X text 1758 708 volume;
#X text 1308 258 l'indice per la lettura dell'array \; può essere
gestito da messaggi float \; o da segnali audio;
#X text 1332 518 due tipi di sequencer \; <--messages vs signal-->
;
#X text 44 218 Esempi:;
#X text 82 35 Argomenti trattati:;
#X text 952 226 \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \;
\; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \;
\; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \; \;
\; \; \; \; \; \; \;;
#X text 209 150 __________________________________________________________
;
#X text 344 725 esempio di applicazione degli array: un campionatore
\; (gli array possono salvare anche file audio);
#X msg 922 65 \; pd dsp 1 \;;
#X obj 922 27 loadbang;
#X msg 1161 724 0.1;
#X msg 1718 699 0.1;
#X msg 1095 478 0;
#X text 1132 478 restart (step);
#X obj 1077 416 metro 125;
#X msg 1186 628 1 \, 0 100;
#X text 1265 628 <-- \; rampa sincronizzata con il bang \; per controllo
dell'inviluppo;
#X obj 1648 511 phasor~ 1;
#X floatatom 199 822 5 0 1 0 - - -;
#X obj 1075 751 *~ 0.1;
#N canvas 687 316 897 601 dollarSigns 0;
#X obj 35 377 addN 5;
#X floatatom 35 342 5 0 0 0 - - -;
#X floatatom 35 414 5 0 0 0 - - -;
#X msg 42 47 \$1;
#X text 90 47 nei messaggi raccolgono i valori ricevuti;
#X floatatom 42 11 5 0 0 0 - - -;
#X obj 42 200 print, f 6;
#X msg 96 105 25 75 98;
#X text 171 116 i.e. \; selezionano elementi di una lista ricevuta
e ricompongono una nuova lista;
#X text 117 369 le variabili nelle box oggetto si riferiscono agli
argomenti con cui è creata l'abstraction (apri addN per vedere l'esempio)
;
#X msg 96 130 \$3 \$1;
#X connect 0 0 2 0;
#X connect 1 0 0 0;
#X connect 3 0 6 0;
#X connect 5 0 3 0;
#X connect 7 0 10 0;
#X connect 10 0 6 0;
#X restore 640 78 pd dollarSigns;
#X connect 0 0 1 0;
#X connect 2 0 16 0;
#X connect 3 0 2 0;
#X connect 3 1 19 0;
#X connect 3 2 20 0;
#X connect 3 3 21 0;
#X connect 4 0 23 0;
#X connect 7 0 31 1;
#X connect 8 0 69 0;
#X connect 9 0 31 1;
#X connect 10 0 69 1;
#X connect 13 0 14 0;
#X connect 14 0 15 0;
#X connect 14 0 15 1;
#X connect 16 0 13 0;
#X connect 17 0 13 0;
#X connect 18 0 13 0;
#X connect 19 0 17 0;
#X connect 20 0 18 0;
#X connect 21 0 17 0;
#X connect 22 0 13 0;
#X connect 23 0 22 0;
#X connect 23 1 3 0;
#X connect 24 0 14 1;
#X connect 25 0 14 1;
#X connect 31 0 6 0;
#X connect 31 0 6 1;
#X connect 32 0 31 0;
#X connect 33 0 71 0;
#X connect 35 0 33 1;
#X connect 36 0 66 0;
#X connect 37 0 38 0;
#X connect 37 0 39 0;
#X connect 38 0 37 1;
#X connect 39 0 44 0;
#X connect 40 0 37 0;
#X connect 40 1 67 0;
#X connect 41 0 71 1;
#X connect 42 0 71 1;
#X connect 43 0 33 0;
#X connect 44 0 43 0;
#X connect 45 0 32 0;
#X connect 46 0 45 0;
#X connect 49 0 66 1;
#X connect 61 0 60 0;
#X connect 62 0 71 1;
#X connect 63 0 31 1;
#X connect 64 0 37 1;
#X connect 66 0 40 0;
#X connect 67 0 35 0;
#X connect 69 0 46 0;
#X connect 70 0 14 1;
#X connect 71 0 34 0;
#X connect 71 0 34 1;
#X coords 0 983 1 982 500 60 0;

26
Corso_2/myCounter.pd Normal file
View File

@ -0,0 +1,26 @@
#N canvas 540 469 404 476 12;
#X obj 113 344 f;
#X obj 151 346 + 1;
#X msg 131 315 0;
#X obj 113 381 mod 4;
#X obj 113 261 metro 1000;
#X obj 117 130 tgl 24 0 empty empty on/off 30 12 0 10 -258113 -1 -1
1 1;
#X floatatom 118 167 5 0 0 1 ms - -;
#X obj 131 291 sel 0;
#X obj 113 423 outlet;
#X obj 257 102 loadbang;
#X msg 257 135 500;
#X connect 0 0 1 0;
#X connect 0 0 3 0;
#X connect 1 0 0 1;
#X connect 2 0 0 1;
#X connect 3 0 8 0;
#X connect 4 0 0 0;
#X connect 5 0 4 0;
#X connect 5 0 7 0;
#X connect 6 0 4 1;
#X connect 7 0 2 0;
#X connect 9 0 10 0;
#X connect 10 0 6 0;
#X coords 0 -1 1 1 100 100 1 100 100;

View File

@ -14,3 +14,12 @@
- Counter
- Sequencer
- Primo Oscillatore
## Seminario n°2 07/04/21
#### Argomenti trattati:
- Depth First
- Array
- Liste e messaggi
- Rampe
- Variabili (dollarSigns)
- Sequencer "analogico"

BIN
sources/samples/hihat.wav Normal file

Binary file not shown.

BIN
sources/samples/kick-1.wav Normal file

Binary file not shown.

BIN
sources/samples/kick.wav Normal file

Binary file not shown.

BIN
sources/samples/snare-1.wav Normal file

Binary file not shown.