-
Notifications
You must be signed in to change notification settings - Fork 4
/
1-PD~.pd
5321 lines (5321 loc) · 285 KB
/
1-PD~.pd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
#N canvas 1044 207 675 679 12;
#X declare -path abs;
#X text 178 35 <- ceci est un sous-patch. Il est possible de double
clicker dessus pour voir ce qui est à l'intérieur. Celui-ci est vide
car je n'ai rien mis à l'intérieur.;
#N canvas 680 82 667 679 commentaires 0;
#X text 14 9 - on ajoute des commentaires en allant dans le menu "Put"
et en choisissant "comment" (on peut aussi faire la combinaison de
touche CTRL+5 - ou Pomme+5 sous mac);
#X text 15 90 Il est utile de mettre des commentaires \, surtout lorsque
l'on débute pour bien se rappeler de ce que l'on a compris en étudiant
un patch \, ou de se rappeler de ce que l'on a voulu faire \, ou aussi
de noter les pbs que l'on a pour y revenir plus tard :);
#X text 19 220 Essayez d'ajouter un commentaire ci-dessous et de lui
faire dire ce que vous voulez.;
#X text 20 256 Pour le valider il suffit de cliquer a côté dans un
partie blanche du patch.;
#X text 83 356 comment;
#X restore 37 81 pd commentaires;
#X text 179 81 <- voir des infos sur les commentaires;
#N canvas 680 82 667 679 modes 0;
#X obj 41 369 osc~;
#X text 119 347 ceci est un objet : en mode play vous ne pouvez pas
interagir directement avec lui \, en mode edit vous pouvez le sélectionner
et le déplacer \, changer son nom et tirer un cable depuis ça sortie.
Essayez ... !;
#X floatatom 38 241 5 0 0 0 - - -, f 5;
#X text 116 240 ceci est un gui : en mode play vous pouvez cliquer
dessus puis inscrire à nombre à l'intérieur à l'aide des touches
de votre clavier \, ou alors cliquer puis laisser appuyer de déplacer
la souris pour changer ça valeur. En mode edit vous pouvez le déplacer
et tirer un cable depuis ça sortie.;
#X text 8 0 - il existe deux mode dans pure data : le mode "edit" et
le mode "play" \, on peut passer de l'un à l'autre à tout moment
en utilisant la combinaison de touches CTRL+E ou Pomme+E;
#X text 8 64 - le mode "edit" permet de modifier le patch (le code)
et donc de déplacer/créer des objets et de réaliser des connections
entre les objets à l'aide de fils. Le mode edit est caractérisé
par un curseur de souris en forme de main.;
#X text 11 145 -le mode "play" permet d'interagir avec les éléments
dit "GUI" \, c'est à dire les éléments graphiques comme les sliders
\, les boites de nombres etc ... en mode play le curseur de la souris
à une apparence classique de flêche.;
#X text 25 455 essayer d'ajouter un commentaire \, puis regarder comment
vous pouvez interagir avec lui dans chacun des modes \, puis indiquer
sous forme de commentaire vos observations.;
#X text 31 533 Les cables permettent de connecter les objets entre
eux c'est à dire de faire passer des valeurs ou des signaux audio.
;
#X restore 37 110 pd modes;
#X text 179 108 <- le mode edit et le mode play pour bien commencer
;
#N canvas 680 82 667 679 objets 0;
#X text -255 2 On crée un objet un allant dans le menu "Put" et en
choisissant "objet" ou en utilisant la combinaison de touches CTRL+1
ou Pomme+1.;
#X obj -209 64;
#X text -162 62 ceci est un objet qui n'a pas été initialisé;
#X obj -209 105 osc~;
#X text -155 103 on l'initialise en tapant son nom à l'intérieur
de la boîte;
#X obj -242 271 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj -175 271 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X text -259 198 Tous les objets inclus dans Pure Data ont un fichier
d'aide (en anglais mais c'est mieux que rien) Il suffit de cliquer
droit et de choisir "help" pour en savoir plus. Vous pouvez essayer
sur les quelques objets présents sur cette page.;
#N canvas 0 50 450 300 mon-sous-patch 0;
#X text 34 30 Encore un fois un sous patch vide ...;
#X text 46 84 vous pouvez certainement y ajouter quelques objets;
#X restore -251 496 pd mon-sous-patch;
#X text -251 425 un sous-patch est un objet dans lequel on va pouvoir
coder par nous même. Pour créer un sous patch \, on va créer un
nouvel objet (CTRL+1) et on va le nommer "pd nom-de-mon-sous-patch"
;
#X text -251 546 le fait d'utiliser "pd" avant le nom permet d'indiquer
à pure-data que l'on veut créer un nouvel objet.;
#X text -251 593 Créez un nouveau sous patch nommé "test" et créer
un objet "osc~ 400" à l'intérieur;
#X floatatom -3 270 5 0 0 0 - - -, f 5;
#X text -260 143 Quelques objets sont disponibles directement depuis
le menu "Ajouter" (/Put) vous pouvez essayer d'en créer quelques uns
:;
#X obj -245 362 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X text -218 341 cet objet est un "bang" \, il représenter un évenement
logique \, qui est vrai au moment ou il est activé \, c'est une sorte
de dirac. Pure-Data est un langage évenementiel \, le bang est un
éléments très utilisé.;
#X restore 37 138 pd objets;
#X text 178 135 <- que sont donc toutes ces boites ?;
#N canvas 683 50 667 679 IO 0;
#X text 11 -9 Un objet à un certain nombre d'entrées et de sorties
(il peut aussi en avoir aucune).;
#X obj 156 87 select 10 18 52;
#X text 14 55 Les entrées sont en haut \, les sorties en bas :;
#X text 10 121 cet objet à une entrée et quatre sorties. Il est possible
de tirer un fil d'une sortie (si on est en mode "edit") mais pas d'une
entrée.;
#X text 10 232 Dans les fils ce sont des nombres ou des bangs qui sont
envoyés d'un objet à l'autre.;
#X floatatom 71 286 5 0 0 0 - - -, f 5;
#X floatatom 108 332 5 0 0 0 - - -, f 5;
#X obj 70 391 +;
#X floatatom 70 458 5 0 0 0 - - -, f 5;
#X text 196 337 en mode edit vous pouvez essayer de recréer cet agencement
d'objets en changeant l'opération proposée ( essayer avec un objet
"-" \, "*" \, "/";
#X text 197 291 en mode play vous pouvez changer les valeurs des boites
de nombre pour effectuer un opération;
#X text 40 283 A;
#X text 85 330 B;
#X text 24 459 A+B;
#X text 192 417 Remarque : Si vous modifier la valeur B (valeur qui
entre dans l'entrée droite de "+") la valeur de A+B n'est pas actualisée
immédiatement. Elle ne le sera que lorsque vous modifierez à nouveau
la valeur A;
#X text 190 500 Ceci est dû à la notion d'entrée "chaude" ou "froide".
Si un objet à plusieurs entrées seule l'entrée tout à gauche est
considérée comme "chaude" \, la sortie de l'objet ne sera alors évaluée
que si cette entrée reçoit une valeur.;
#X text 190 568 Cela peut paraître annecdotique mais ça aura son
importance plus tard.;
#X text 8 182 On va donc toujours travailler du haut vers le bas \,
en tirant des fils des sorties des objets vers les entrées d'autres
objets.;
#X connect 5 0 7 0;
#X connect 6 0 7 1;
#X connect 7 0 8 0;
#X restore 37 166 pd IO;
#X text 178 162 <- les entrées ("inlet") et les sorties ("outlet")
;
#N canvas 683 50 667 679 IO~ 0;
#X obj 11 -155 +;
#X obj 11 -56 +~;
#X obj 11 -101 -;
#X obj 10 11 -~;
#X text 15 -255 Certains objet ont un "~" dans leur noms généralement
ces objets ont au moins une entrée audio ou une sortie audio. Cela
permet d'identifier les objets qui traitent un signal audio \, les
fils qui sortent ou entrent de ces sorties ou entrées audio sont plus
épais !;
#X text 19 -130 <- fil normal = données classiques;
#X text 15 -31 <- fil épais = données audio;
#X text 12 64 génralement on ne peut pas tirer un fil d'une sortie
normale vers une entrée audio \, ni sortie audio vers entrée normale.
;
#X text 11 114 dans certains cas c'est possible ... on peut par exemple
multiplier un signal par un valeur fixe pour contrôler le volume.
;
#X text 9 197 Sous windows le "~" se fait en utilisant la combinaison
de touches AltGr+2 (le Alt qui est à droite de la barre d'espace)
il faut ensuite faire espace pour que le carctère apparaissent.;
#X text 10 270 Sous mac il faut utiliser le Alt+N (avec le Alt situés
à gauche de la barre d'espace) \, il faut aussi appuyer sur espace
pour faire apparaitre le caractère.;
#X text 22 350 c'est comme l'accent circonflexe en français ^;
#X connect 0 0 2 0;
#X connect 1 0 3 0;
#X restore 37 195 pd IO~;
#X text 179 192 <- les entrées audio("inlet~") et les sorties audio
("outlet~");
#N canvas 645 82 667 679 souspatch2 0;
#X text 13 -142 On peut créer une entrée ou une sortie en créeant
un objet de manière classique et en tapants comme nom "inlet" \, "outlet"
\, "inlet~" \, "outlet~";
#X obj 20 -66 inlet;
#X obj 94 -67 outlet;
#X obj 169 -67 inlet~;
#X obj 243 -67 outlet~;
#X text 12 -20 Créeons un sous patch nommé test;
#N canvas 0 50 450 300 test 0;
#X text 70 68 tojours vide ...;
#X restore 308 -18 pd test;
#X text 11 24 Si nous ajoutons des objets entrées à l'intérieur
\, cela créera des entrées qui pourront recevoir des cables on pourra
donc lui faire passer des données pour qu'il les transforme.;
#N canvas 0 50 450 300 test 0;
#X obj 27 20 inlet;
#X restore 63 118 pd test;
#X text 140 116 avec une entrée;
#N canvas 0 50 450 300 test 0;
#X obj 27 20 inlet;
#X obj 88 20 inlet;
#X restore 61 149 pd test;
#X text 142 147 avec deux entrées;
#N canvas 0 50 450 300 test 0;
#X obj 155 27 inlet;
#X obj 216 27 inlet;
#X obj 57 27 inlet~;
#X restore 61 186 pd test;
#X text 5 324 Du coup il est possible de les relier entre eux.;
#N canvas 0 50 450 300 test 0;
#X obj 41 266 outlet;
#X restore 313 117 pd test;
#X text 384 115 avec une sortie;
#X text 53 217 Vous pouvez maintenant créer votre propre sous patch
avec le nombre d'entrée et de sorties que vous voulez ! Etant donné
que l'on travaille du haut vers le bas \, placez vos entrées en haut
et de gauche à droite et les sorties en bas et de gauche à droite
aussi !;
#N canvas 0 50 450 300 void-in 0;
#X obj 32 246 outlet;
#X restore 8 392 pd void-in;
#N canvas 0 50 450 300 void-out 0;
#X obj 36 78 inlet;
#X restore 8 475 pd void-out;
#N canvas 0 50 450 300 void-pass 0;
#X obj 36 251 outlet;
#X obj 36 78 inlet;
#X connect 1 0 0 0;
#X restore 8 432 pd void-pass;
#N canvas 0 50 450 300 void-in 0;
#X obj 32 246 outlet~;
#X restore 555 388 pd void-in;
#N canvas 0 50 450 300 void-out 0;
#X obj 36 78 inlet~;
#X restore 555 471 pd void-out;
#N canvas 0 50 450 300 void-pass 0;
#X obj 36 78 inlet~;
#X obj 36 251 outlet~;
#X connect 0 0 1 0;
#X restore 555 428 pd void-pass;
#X text 112 466 Le patch de gauche ne fait rien du tout \, le patch
de droite non plus ... mais avec de l'audio !;
#X text 138 185 avec une entrée audio et deux entrées classiques
données;
#X connect 17 0 19 0;
#X connect 19 0 18 0;
#X connect 20 0 22 0;
#X connect 22 0 21 0;
#X restore 37 226 pd souspatch2;
#X text 178 228 <- retour sur les sous patchs et les entrée sorties.
;
#N canvas 674 92 667 679 sources~ 0;
#X obj 29 172 phasor~ 440;
#X obj 29 207 noise~;
#X obj 30 272 adc~;
#X text 144 170 le phasor~ fonctionne de la même façon que l'oscillateur
;
#X text 100 208 le noise~ génère un bruit blanc.;
#X text 101 270 n'est pas vraiment une source \, mais permet d'avoir
accès au micro \, le signal qui en sort vient directement du micro
de votre ordinateur ou d'un micro extérieur.;
#X text 24 419 le mieux étant d'essayer de ne pas faire trop de copier/coller
\, et de se souvenir ce qu'on a fait précédement \, bien entendu.
;
#X text 26 364 Nous verrons plus tard qu'il est assez facile de créer
de nouvelles sources.;
#X obj 31 330 sig~ 16;
#X obj 26 17 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
;
#X obj 26 36 switch~;
#X text 61 12 <- clicker pour activer les calculs dsp dans ce sous
patch;
#X text 22 87 Il existe d'autres sources \, essayez de reconstuire
un patch similaire à celui de la chaine audio ci-dessous dans un sous-patch
mais utilisant un autre source et en ajoutant un controle de volume
avec slider;
#X text 103 328 génère un valeur numérique continue à sample rate
audio (utile dans des cas bien précis);
#X connect 9 0 10 0;
#X restore 36 478 pd sources~;
#X text 255 392 <- le DAC~ ou la sortie audio;
#X text 255 419 <- le flux audio \, de la source aux hp;
#X text 256 449 <- un simple contrôle de volume;
#X text 256 480 <- quelques nouveaux objet pour produire du son;
#X obj 6 41 cnv 15 25 25 empty empty 1 5 12 0 20 -1 -262144 0;
#N canvas 262 82 450 300 souspatch 0;
#X restore 37 43 pd souspatch;
#X obj 6 78 cnv 15 25 25 empty empty 2 5 12 0 20 -1 -262144 0;
#X obj 6 107 cnv 15 25 25 empty empty 3 5 12 0 20 -1 -262144 0;
#X obj 6 135 cnv 15 25 25 empty empty 4 5 12 0 20 -1 -262144 0;
#X obj 6 164 cnv 15 25 25 empty empty 5 5 12 0 20 -1 -262144 0;
#X obj 6 193 cnv 15 25 25 empty empty 6 5 12 0 20 -1 -262144 0;
#X obj 6 224 cnv 15 25 25 empty empty 7 5 12 0 20 -1 -262144 0;
#X obj 3 8 cnv 15 649 25 empty empty Le_fonctionnement_de_base 5 12
0 20 -1 -262144 0;
#X obj 2 359 cnv 15 649 25 empty empty Produire_du_son 5 12 0 20 -1
-262144 0;
#X obj 5 389 cnv 15 25 25 empty empty 1 5 12 0 20 -1 -262144 0;
#X obj 5 418 cnv 15 25 25 empty empty 2 5 12 0 20 -1 -262144 0;
#X obj 5 446 cnv 15 25 25 empty empty 3 5 12 0 20 -1 -262144 0;
#X obj 5 475 cnv 15 25 25 empty empty 4 5 12 0 20 -1 -262144 0;
#N canvas 680 82 667 679 tempo 0;
#X text 13 10 Afin d'obtenir une base de temps utilisable pour la création
musicale \, nous pouvons utiliser l'objet [metro] \, il prend un argument
qui sera le temps en millisecondes entre deux bangs émis à la sortie
;
#X obj 43 100 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 43 167 metro 500;
#X obj 43 207 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X text 79 97 <- cet objet est un interrupteur \, il vaut 0 s'il est
décoché et 1 s'il est coché \, ce qui permet d'activer / désactiver
le metronome.;
#X text 122 161 <- un bang tous les 500 ms.;
#X text 14 232 Il pourrait être intéressant de construire un ensemble
de boites qui permettraient de convertir de bpm en ms;
#X text 15 276 Cela combiné au compteur que nous avions crée lors
de la découverte des entrées chaudes et entrées froide nous permet
d'avoir un base de temps qui défile à une vitesse paramétrable.
;
#X obj 43 351 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 43 404 f 0;
#X obj 77 404 + 1;
#X obj 43 371 metro 1000;
#X floatatom 43 430 5 0 0 0 - - -, f 5;
#X text 15 471 Nous ne sommes plus qu'à un pas de pouvoir créer un
premier séquenceur...;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 8 0 11 0;
#X connect 9 0 10 0;
#X connect 9 0 12 0;
#X connect 10 0 9 1;
#X connect 11 0 9 0;
#X restore 36 654 pd tempo;
#N canvas 683 50 667 679 sequenceurs 0;
#X obj 68 5 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
;
#X obj 68 58 f 0;
#X obj 102 58 + 1;
#X obj 68 25 metro 1000;
#X obj 68 95 mod 4;
#X obj 68 131 sel 0 1 2 3;
#X obj 68 247 abs/synth_polyosc;
#X obj 68 278 dac~;
#X obj 68 207 f 60;
#X obj 104 207 f 72;
#X obj 177 207 f 65;
#X obj 141 207 f 63;
#X text 174 32 notre compteur rythmé;
#X text 121 97 un modulo pour compter de 0 à 3 indéfiniment;
#X text 168 118 selectionner une valeur en entrée eg. si une valeur
est égale à un des arguments fournis \, alors un bang sortira Ã
la première sortie s'elle égale au premier argument etc.;
#X text 172 171 Un peu comme [route] vu précédement \, mais avec
des bangs/;
#X text 215 193 On stocke les valeurs midi de notes que l'on veut jouer
et on les connecte pour qu'elles soient jouée sur les temps qui nous
conviennent.;
#X text 201 249 Notre synthé polyphonique vu précédement;
#N canvas 0 50 450 300 (subpatch) 0;
#X coords 0 1 100 -1 100 100 1 0 0;
#X restore 23 310 graph;
#X text 144 312 <- ceci est un GOP (graph on parent) \, il va nous
permettre de cacher certaines parties de nos programmes pour ne faire
apparaitre que les objets gui.;
#N canvas 0 50 1194 630 (subpatch) 0;
#X obj -404 61 f 0;
#X obj -370 61 + 1;
#X obj -404 28 metro 1000;
#X obj -404 98 mod 4;
#X obj -404 154 sel 0 1 2 3;
#X obj -404 238 f 60;
#X obj -368 238 f 72;
#X obj -295 238 f 65;
#X obj -331 238 f 63;
#X floatatom 9 6 5 60 72 1 note1 - -, f 5;
#X floatatom 9 29 5 60 72 1 note2 - -, f 5;
#X floatatom 9 52 5 60 72 1 note3 - -, f 5;
#X floatatom 9 75 5 60 72 1 note4 - -, f 5;
#X obj -405 -1 inlet;
#X obj -179 -142 inlet;
#X obj -179 -105 unpack f f f f;
#X obj -404 293 f;
#X obj -404 324 outlet;
#X connect 0 0 1 0;
#X connect 0 0 3 0;
#X connect 1 0 0 1;
#X connect 2 0 0 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 4 1 6 0;
#X connect 4 2 8 0;
#X connect 4 3 7 0;
#X connect 5 0 16 0;
#X connect 6 0 16 0;
#X connect 7 0 16 0;
#X connect 8 0 16 0;
#X connect 9 0 5 1;
#X connect 10 0 6 1;
#X connect 11 0 8 1;
#X connect 12 0 7 1;
#X connect 13 0 2 0;
#X connect 14 0 15 0;
#X connect 15 0 9 0;
#X connect 15 1 10 0;
#X connect 15 2 11 0;
#X connect 15 3 12 0;
#X connect 16 0 17 0;
#X coords 0 1 100 -1 100 100 1 0 0;
#X restore 201 476 graph;
#X obj 201 606 dac~;
#X text 147 358 En cliquant droit dessus on peut modifier les propriétés
(dimensions) et on peut aussi l'ouvrir et copier du code à l'intérieur.
Ils peuvent aussi avoir des entrées et sorties.;
#X obj 201 449 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X msg 286 420 60 72 63 65;
#X msg 317 449 58 63 60 72;
#X text 112 446 on / off;
#X text 314 484 changer les 4 notes avec un message;
#X text 315 505 ou en interagissant avec les gui dans le gop.;
#X obj 201 581 abs/synth_polyosc;
#X obj 67 -48 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 67 -29 switch~;
#X text 102 -53 <- clicker pour activer les calculs dsp dans ce sous
patch;
#X connect 0 0 3 0;
#X connect 1 0 2 0;
#X connect 1 0 4 0;
#X connect 2 0 1 1;
#X connect 3 0 1 0;
#X connect 4 0 5 0;
#X connect 5 0 8 0;
#X connect 5 1 9 0;
#X connect 5 2 11 0;
#X connect 5 3 10 0;
#X connect 6 0 7 0;
#X connect 6 0 7 1;
#X connect 8 0 6 0;
#X connect 9 0 6 0;
#X connect 10 0 6 0;
#X connect 11 0 6 0;
#X connect 20 0 29 0;
#X connect 23 0 20 0;
#X connect 24 0 20 1;
#X connect 25 0 20 1;
#X connect 29 0 21 0;
#X connect 29 0 21 1;
#X connect 30 0 31 0;
#X restore 36 682 pd sequenceurs;
#N canvas 677 87 667 679 enveloppes 0;
#X obj -741 178 line~;
#X obj -535 251 vline~;
#X obj -884 128 line;
#X text -897 4 Généralement pour créer la dynamique d'un son on
va en fait générer des signaux qui vont être multpliés par le son
source.;
#X text -886 178 et sa version audio;
#X msg -884 104 500 5000;
#X floatatom -884 152 5 0 0 0 - - -, f 5;
#X text -895 53 Pour créer ces enveloppes \, ou d'autres signaux de
contrôle on peut utiliser l'objet line qui utilise un MESSAGE pour
prendre ses instructions;
#X text -794 104 le premier chiffre représente la valeur à atteindre
;
#X text -793 122 le second chiffre représente le temps (en millisecondes)
que va durer notre rampe.;
#X text -894 199 Il faut noter que l'objet garde en mémoire la dernière
valeur atteinte et va interpoler à partir de cette valeur mémorisée
;
#X obj -469 197 line;
#X floatatom -469 221 5 0 0 0 - - -, f 5;
#X msg -469 142 500 500;
#X msg -454 166 600 500;
#X msg -429 196 0 500;
#X text -689 176 comment;
#X text -894 248 Il existe une variante \, permettant d'éviter cela
:;
#X obj -891 -36 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1
0 1;
#X obj -891 -17 switch~;
#X text -856 -41 <- clicker pour activer les calculs dsp dans ce sous
patch;
#X text -893 270 Dans l'exemple de contrôle du volume précédent
\, on entendait un grattement lorsqu'on l'on bougeait le slider rapidement.
;
#X obj -895 328 cnv 15 420 40 empty empty empty 20 12 0 14 -258113
-66577 0;
#X text -887 329 Utilisez l'objet line~ pour créer un contrôle de
volume qui ne "gratte" pas;
#X text -890 396 ici on peut observe une propriété particulière
des messages \, le \$1 va permettre d'utiliser une valeur donnée en
entrée de du message. Un message [\$1 5( signifie que l'on va générer
une rampe de la valeur mémorisée à la nouvelle valeur spécifiée
en entrée sur un temps de 5 ms;
#X obj -893 481 cnv 15 420 40 empty empty empty 20 12 0 14 -258113
-66577 0;
#X obj -719 531 dbtorms;
#X text -885 485 Pour le contrôle du volume on peut aussi utiliser
un échelle logarithmique ...;
#X obj -888 566 cnv 15 420 40 empty empty empty 20 12 0 14 -258113
-66577 0;
#X text -880 570 Ajoutez aussi une visualisation comme vu précédément
;
#X connect 2 0 6 0;
#X connect 5 0 2 0;
#X connect 11 0 12 0;
#X connect 13 0 11 0;
#X connect 14 0 11 0;
#X connect 15 0 11 0;
#X connect 18 0 19 0;
#X restore 37 536 pd enveloppes;
#X text 256 539 <- comment créer la dynamique d'un son;
#N canvas 683 50 667 679 mon_premier_synthetiseur 0;
#X obj -1112 182 *~;
#X obj -1112 209 dac~;
#X obj -1113 132 osc~ 440;
#X text -1160 7 En réalité quand nous avions fait ce patch et l'étape
précédente nous avions déjà crée un synthétiseur \, il ne nous
reste plus qu'Ã pouvoir changer la hauteur du son;
#X floatatom -1113 108 5 0 0 0 - - -, f 5;
#X text -1161 54 Il suffit d'ajouter un boite de nombre en entrée
de l'oscillateur pour changer sa fréquence d'oscillation (entre 0
et 20000 Hz);
#X obj -1031 161 abs/adsr 0.5 50 10 25 100;
#X obj -1114 333 *~;
#X obj -1114 360 dac~;
#X obj -1114 307 osc~ 440;
#X obj -1033 308 abs/adsr 0.5 50 10 25 100;
#X obj -1114 280 mtof;
#X floatatom -1114 254 5 0 0 0 - - -, f 5;
#X text -1071 277 conversion midi -> fréquence;
#X text -1153 232 On peut aussi utilise des notes midi :;
#X text -1116 429 36 est un DO;
#X text -1116 444 37 est un DO#;
#X text -1116 459 38 est un RE;
#X text -1116 474 39 est un RE#;
#X text -1116 491 40 est un MI;
#X text -1149 381 les notes midi vont de 0 à 127 et décrivent une
octave toutes les 12 occurences \, chaque pas correspond à un demi-ton
:;
#X text -1116 506 41 est un FA;
#X text -1116 521 42 est un FA#;
#X text -1116 536 43 est un SOL;
#X text -1116 552 44 est un SOL#;
#X text -1116 567 45 est un LA;
#X text -1116 582 46 est un LA#;
#X text -1116 597 47 est un SI;
#X text -1115 611 48 est un DO;
#X text -953 531 etc.;
#X obj -1154 -37 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1
0 1;
#X obj -1154 -18 switch~;
#X text -1119 -42 <- clicker pour activer les calculs dsp dans ce sous
patch;
#X connect 0 0 1 0;
#X connect 0 0 1 1;
#X connect 2 0 0 0;
#X connect 4 0 2 0;
#X connect 4 0 6 0;
#X connect 6 0 0 1;
#X connect 7 0 8 0;
#X connect 7 0 8 1;
#X connect 9 0 7 0;
#X connect 10 0 7 1;
#X connect 11 0 9 0;
#X connect 11 0 10 0;
#X connect 12 0 11 0;
#X connect 30 0 31 0;
#X restore 37 594 pd mon_premier_synthetiseur;
#N canvas 678 86 667 679 effets_simples 1;
#X obj 27 418 rzero~;
#X obj 28 450 rpole~;
#X obj 70 64 lop~;
#X obj 70 105 hip~;
#X obj 74 154 bp~;
#X obj 26 389 vcf~;
#X obj 88 450 cpole~;
#X obj 88 418 czero~;
#X text 17 4 Il vous faudra insérer un gui pour contrôler l'entrée
de gauche de chaque objet avec un plage de valeur adaptée.;
#X text 110 65 entrée 2 : fréquence de coupure du filtre en HZ (0-20000)
;
#X text 111 77 sortie : signal audio traité;
#X text 110 53 entrée 1 : signal audio à traiter;
#X text 108 107 entrée 2 : fréquence de coupure du filtre en HZ (0-20000)
;
#X text 109 119 sortie : signal audio traité;
#X text 108 94 entrée 1 : signal audio à traiter;
#X text 108 147 entrée 2 : fréquence de coupure du filtre en HZ (0-20000)
;
#X text 108 171 sortie : signal audio traité;
#X text 108 136 entrée 1 : signal audio à traiter;
#X text 108 159 entrée 3 : résonance du filtre (5-100);
#X text 16 -30 Vous pouvez essayer d'utiliser les objets ci-dessous
qui sont les principaux effets "simples" intégrés à Pure-Data.;
#X obj 25 284 abs/effect-drive;
#N canvas 0 50 450 300 (subpatch) 0;
#X array array2 512 float 5;
#A 0 -0.70283 -0.656888 -0.608366 -0.557455 -0.504354 -0.44927 -0.392417
-0.334023 -0.274318 -0.213536 -0.151916 -0.0896987 -0.027129 0.0355478
0.0980858 0.160237 0.221758 0.282408 0.341949 0.400146 0.456773 0.511605
0.56443 0.615038 0.663223 0.708802 0.751596 0.791439 0.828174 0.861656
0.891755 0.918352 0.941344 0.96063 0.976137 0.98781 0.995605 0.999489
0.99945 0.995486 0.987612 0.975861 0.960271 0.940901 0.917836 0.891167
0.860998 0.827449 0.79065 0.750746 0.707894 0.66226 0.614016 0.563361
0.510495 0.455624 0.398963 0.340736 0.281171 0.220501 0.158964 0.0968009
0.034258 -0.0284188 -0.0909837 -0.153191 -0.214797 -0.27556 -0.335241
-0.393606 -0.450422 -0.505465 -0.558524 -0.609389 -0.65786 -0.703749
-0.746873 -0.787066 -0.824167 -0.858027 -0.888509 -0.915502 -0.9389
-0.95861 -0.974557 -0.986676 -0.99492 -0.999258 -0.999668 -0.99614
-0.9887 -0.977378 -0.962217 -0.943278 -0.920635 -0.894377 -0.864606
-0.831439 -0.794994 -0.755427 -0.712895 -0.667563 -0.61961 -0.569223
-0.516601 -0.46195 -0.405484 -0.347421 -0.287992 -0.227433 -0.165982
-0.103879 -0.0413677 0.0213061 0.0838967 0.146159 0.207845 0.268714
0.328527 0.387049 0.444052 0.49931 0.552608 0.603736 0.652494 0.698687
0.742128 0.782654 0.820106 0.854338 0.885215 0.912616 0.936433 0.956573
0.972955 0.985503 0.99418 0.998953 0.999803 0.996728 0.989739 0.978863
0.964143 0.945637 0.923404 0.897543 0.868158 0.835364 0.79929 0.760077
0.717879 0.672862 0.625202 0.57508 0.522696 0.468261 0.411987 0.354095
0.294813 0.234373 0.173012 0.110971 0.0484935 -0.0141749 -0.076787
-0.139097 -0.200861 -0.261835 -0.321782 -0.380466 -0.437656 -0.493126
-0.546654 -0.598034 -0.647065 -0.693555 -0.737322 -0.778193 -0.816008
-0.85062 -0.881891 -0.909686 -0.933907 -0.954461 -0.971267 -0.984258
-0.993384 -0.99861 -0.999914 -0.997291 -0.99074 -0.980295 -0.966 -0.947912
-0.926101 -0.900654 -0.871669 -0.839262 -0.803558 -0.764692 -0.722817
-0.678105 -0.63073 -0.580878 -0.528745 -0.474535 -0.418462 -0.360745
-0.301609 -0.241285 -0.180015 -0.118038 -0.0555981 0.00706029 0.0696911
0.132049 0.193888 0.254967 0.31504 0.373876 0.431243 0.486916 0.540677
0.592314 0.641627 0.688419 0.73251 0.773713 0.811876 0.84685 0.878499
0.906698 0.931336 0.952317 0.969558 0.982993 0.992557 0.998217 0.999958
0.997772 0.991669 0.981671 0.967818 0.950164 0.92878 0.903742 0.875146
0.843114 0.807771 0.769256 0.727721 0.683328 0.636251 0.586676 0.534794
0.480805 0.424928 0.367384 0.308397 0.248198 0.187026 0.125118 0.0627185
7.19655e-05 -0.0625749 -0.124975 -0.186884 -0.248059 -0.30826 -0.36725
-0.424798 -0.480678 -0.534672 -0.58656 -0.636141 -0.683224 -0.727623
-0.769165 -0.807687 -0.843037 -0.875077 -0.90368 -0.928728 -0.950121
-0.967783 -0.981644 -0.991651 -0.997763 -0.999957 -0.998224 -0.992572
-0.983017 -0.96959 -0.952356 -0.931382 -0.906751 -0.878559 -0.846917
-0.811949 -0.773793 -0.732596 -0.688512 -0.641724 -0.592417 -0.540783
-0.487026 -0.431357 -0.373993 -0.31516 -0.255089 -0.194012 -0.132174
-0.0698174 -0.00718688 0.0554716 0.117912 0.17989 0.241162 0.301488
0.360627 0.418347 0.474424 0.528637 0.580775 0.630631 0.678012 0.72273
0.76461 0.803484 0.839194 0.871608 0.900599 0.926053 0.947871 0.965967
0.980269 0.990722 0.997283 0.999913 0.998618 0.993401 0.984283 0.9713
0.954503 0.933957 0.909744 0.881957 0.850695 0.816091 0.778283 0.737418
0.693658 0.647174 0.598149 0.546774 0.493251 0.437785 0.380599 0.321919
0.261974 0.201002 0.13924 0.0769305 0.0143188 -0.0483497 -0.110828
-0.172871 -0.234233 -0.294676 -0.353961 -0.411856 -0.468133 -0.522573
-0.574961 -0.62509 -0.672756 -0.71778 -0.759985 -0.799205 -0.835286
-0.868088 -0.897481 -0.923349 -0.945592 -0.964107 -0.978835 -0.989719
-0.996717 -0.999801 -0.998958 -0.994193 -0.985523 -0.972984 -0.956611
-0.936478 -0.912668 -0.885274 -0.854404 -0.820179 -0.782732 -0.742212
-0.698776 -0.652591 -0.603838 -0.552714 -0.49942 -0.444165 -0.387166
-0.328647 -0.268836 -0.207969 -0.146284 -0.0840229 -0.0214327 0.0412412
0.103753 0.165857 0.22731 0.287871 0.347302 0.405369 0.461838 0.516493
0.569119 0.61951 0.667469 0.712806 0.755344 0.794917 0.831368 0.864543
0.894321 0.920586 0.943237 0.962183 0.977351 0.988681 0.996128 0.999664
0.999264 0.994935 0.986699 0.974588 0.95865 0.938948 0.915559 0.888574
0.858099 0.824249 0.787154 0.746969 0.70385 0.657968 0.609502 0.558643
0.505589 0.45055 0.393739 0.335377 0.275698 0.214938 0.153333 0.091127
0.0285627 -0.0341142 -0.0966576 -0.158822 -0.220361 -0.281033 -0.340601
-0.398831 -0.455495 -0.510371 -0.563242 -0.613902 -0.662152 -0.707794
-0.750653 -0.790563 -0.827369 -0.860926 -0.891102 -0.917779 -0.940852
-0.960231 -0.975831 -0.987591 -0.995473 -0.999445 -0.999493 -0.995616
-0.987829 -0.976163 -0.960664 -0.941387 -0.918403 -0.891813 -0.86172
-0.828244 -0.791516 -0.751679 -0.70889 -0.663317 -0.615139 -0.564535
-0.511714 -0.456885 -0.400262 -0.342068 -0.282529 -0.221882 -0.160362
;
#X coords 0 1 511 -1 160 100 1 0 0;
#X restore 307 245 graph;
#X obj 174 280 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X obj 174 301 metro 100;
#X obj 174 326 tabwrite~ array2;
#X obj 134 259 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X floatatom 79 254 5 0 0 0 - - -, f 5;
#X text 24 205 Exemple 1 : Onde sinusoidal / onde carrée;
#X text 157 383 ... et d'autres filtres;
#X obj 151 450 biquad~;
#X obj 409 418 rev1~;
#X obj 410 442 rev2~ 100 90 3000 20;
#X obj 410 468 rev3~ 100 90 3000 20;
#X text 337 383 ... reverbs et résonateurs...;
#X text 25 508 Il en existe bien sûr d'autres sans compter ceux construits
et partagés par la communauté.;
#X obj 18 -76 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X obj 18 -57 switch~;
#X text 53 -81 <- clicker pour activer les calculs dsp dans ce sous
patch;
#X obj 26 229 osc~ 440;
#X connect 20 0 24 0;
#X connect 22 0 23 0;
#X connect 23 0 24 0;
#X connect 25 0 20 2;
#X connect 26 0 20 1;
#X connect 35 0 36 0;
#X connect 38 0 20 0;
#X restore 36 755 pd effets_simples;
#N canvas 674 92 667 679 sortie_audio~ 0;
#X obj 41 243 dac~;
#X text 40 147 la sortie audio s'appelle "dac~" pour la créer on créer
un objet nommé "dac~";
#X text 39 184 L'objet dispose de deux entrées audio qui n'accepte
donc que des signaux.;
#X text 106 231 Le dac~ sont les haut-parleurs de votre système audio
\, il va transformer les signaux audio que vous lui envoyez en une
variation de position de la membrane du haut parleur;
#X text 44 330 Il y a deux entrée car on présume que la plus part
des personnes vont travailler avec un système d'écoute stéréophonique
\, mais il est tout à fait possible d'avoir plus de sorties.;
#X text 40 12 dans cette partie (et la plupart des suivantes) \, il
faut veiller a bien avoir cocher la case "compute audio" ou "DSP" dans
la console de démarrage de Pure-Data. Si cette case n'est pas cochée
aucun des objets audio (donc ceux dont le nom comporte un ~ ) ne sera
activé. Vous pouvez tester l'audio à tout moment en allant dans "Média"
-> "TEST AUDIO AND MIDI" et changer les GUI de la partie commentée
"TEST TONES";
#X restore 36 392 pd sortie_audio~;
#N canvas 677 87 667 679 chaine_audio~ 0;
#X obj 185 317 osc~ 440;
#X obj 185 572 dac~;
#X floatatom 185 272 8 0 0 0 - - -, f 8;
#X text 248 268 l'oscillateur qui accepte en entrée la fréquence
à laquelle il doit osciller (entre 0 et 20000 a priori);
#X obj 184 426 *~;
#X obj 202 372 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 184 495 *~ 0.5;
#X text 250 316 le 440 permet d'initialiser la fréquence d'oscilation
à 440 Hz.;
#X obj 381 384 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X floatatom 381 404 5 0 0 0 - - -, f 5;
#X text 254 364 <- un nouveau GUI \, qui vaut 0 s'il n'est pas coché
et 1 s'il l'est :;
#X text 244 427 on multiplie le signal par 0 ou 1 du coup soit il est
nul \, soit il est identique à lui même ! cela permet de "muter"
une source;
#X text 242 568 on envoit le signal à la sortie pour pouvoir l'écouter
;
#X obj 150 272 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 150 322 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 151 368 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 151 497 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 150 554 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 150 581 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X text 16 293 SYNTHESE DU SIGNAL;
#X text 6 421 TRAITEMENT DU SIGNAL;
#X text 8 562 DIFFUSION DU SIGNAL;
#X text 242 491 on divise le volume par 2 parce qu'un sinus tout seul
c'est quand même fort.;
#X text 23 188 on ne dispose que de quelques objet permettant de "produire"
un signal audio. Ces objets on tous au moins une sortie audio \, il
se retrouveront généralement au point de départ (donc en haut de
nos patchs);
#X text 32 -17 Pour utiliser des objets audio \, il faut que le dsp
soit activé \, il suffit de cliquer (en mode interaction) sur ce MESSAGE
:;
#X msg 142 25 \; pd dsp 1;
#X text 26 72 Les messages sont un nouveau type d'objet celui-ci permet
d'envoyer un message à pure-data lui même (" \; pd" signifie que
ce n'est pas notre programme qui va recevoir le message mais pure-data).
"dsp 1" signifie que l'on veut allumer (1 à l'opposé de 0) le "digital
signal processing" \, soit les calculs faits par les objets audio.
;
#X obj 31 -62 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 31 -43 switch~;
#X text 66 -67 <- clicker pour activer les calculs dsp dans ce sous
patch;
#X connect 0 0 4 0;
#X connect 2 0 0 0;
#X connect 4 0 6 0;
#X connect 5 0 4 1;
#X connect 6 0 1 0;
#X connect 6 0 1 1;
#X connect 8 0 9 0;
#X connect 13 0 14 0;
#X connect 15 0 16 0;
#X connect 17 0 18 0;
#X connect 27 0 28 0;
#X restore 36 421 pd chaine_audio~;
#N canvas 677 87 667 679 controle_du_volume~ 0;
#X text 26 32 Le traitement du signal permet d'agi sur un des signaux
fondamentaux que l'on a vu à l'aide de différentes opérations.;
#X obj 70 116 osc~ 440;
#X obj 70 191 *~ 0.5;
#X obj 71 220 dac~;
#X obj 71 163 *~;
#X obj 92 141 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X text 27 76 Par exemple il est très facile de créer un contrôle
de volume (comme on l'a déjà vu).;
#X text 150 114 source;
#X text 116 137 mute;
#X text 130 190 division du vol par 2;
#X text 120 219 hauts-parleurs;
#X obj 124 322 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X text 23 493 On peut donc faire click droit sur le slider et choisir
"propreties" \, on peut alors modifier son aspect graphique et sa plage
de sortie "output range" au lieu de 0-127 dans left on rentre 0 et
dans right 1 \, le sliders nous donnera 0 lorsque l'on sera tout Ã
gauche et 1 lorsqu'on sera tout à droite.;
#X obj 502 503 hsl 110 25 0 1 0 0 empty empty empty -2 -8 0 10 -257985
-4034 -159808 0 1;
#X floatatom 499 533 5 0 0 0 - - -, f 5;
#X text 23 595 Vous pouvez vous aussi vous faire un beau slider avec
des couleurs flashy et profitez en pour reproduire l'exemple ci-dessus
mais cette fois faites en sorte que ça ne casse pas les oreilles :)
;
#X obj 29 -13 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 29 6 switch~;
#X text 64 -18 <- clicker pour activer les calculs dsp dans ce sous
patch;
#X obj 36 255 cnv 15 420 40 empty empty empty 20 12 0 14 -258113 -66577
0;
#X text 50 258 Créez un contrôle dynamique à l'aide d'un objet gui
: le slider;
#X text 18 412 attention aux oreilles ... parce que le slider par défaut
va sortir des valeurs entre 0 et 127 Du coup si on multiplie un signal
par 127 il sera 127 fois trop fort ... on veut des valeurs entre 0
et 1 ...;
#X connect 1 0 4 0;
#X connect 2 0 3 0;
#X connect 2 0 3 1;
#X connect 4 0 2 0;
#X connect 5 0 4 1;
#X connect 13 0 14 0;
#X connect 16 0 17 0;
#X restore 36 449 pd controle_du_volume~;
#X obj 6 504 cnv 15 25 25 empty empty 5 5 12 0 20 -1 -262144 0;
#N canvas 690 102 667 679 visualiser 0;
#X text -888 6 Il est très simple de visualiser un signal à tout
moment. Pour rappel les signaux audio de sortie que l'on attend seront
compris entre -1 et 1;
#X obj -484 259 tabwrite~;
#N canvas 0 50 450 300 (subpatch) 0;
#X array array1 512 float 5;
#A 0 0.690141 0.646796 0.596868 0.54086 0.479332 0.412927 0.34232 0.268227
0.191396 0.112617 0.0326925 -0.0475656 -0.12734 -0.205814 -0.282194
-0.355701 -0.425589 -0.491131 -0.551674 -0.606601 -0.655355 -0.697425
-0.732388 -0.759896 -0.77967 -0.791502 -0.795258 -0.79092 -0.778533
-0.758221 -0.730169 -0.694683 -0.652127 -0.602933 -0.547592 -0.486669
-0.420793 -0.350634 -0.276904 -0.200347 -0.121752 -0.0419183 0.0383432
0.118214 0.196879 0.27354 0.347418 0.417756 0.483833 0.544984 0.600589
0.650082 0.692938 0.728738 0.757122 0.7778 0.790548 0.795236 0.791831
0.780366 0.760955 0.733776 0.69913 0.657368 0.608914 0.554248 0.493937
0.428598 0.358897 0.285538 0.209267 0.130867 0.0511344 -0.0291196 -0.109076
-0.187922 -0.264854 -0.339091 -0.409871 -0.476473 -0.538225 -0.594498
-0.644719 -0.688359 -0.724993 -0.754247 -0.775826 -0.789488 -0.795107
-0.792635 -0.782095 -0.763585 -0.737286 -0.703485 -0.662523 -0.614817
-0.560833 -0.501141 -0.43635 -0.367116 -0.294138 -0.218163 -0.139968
-0.0603478 0.0198879 0.0999204 0.178935 0.256128 0.330715 0.401928
0.469046 0.53139 0.588325 0.639266 0.683687 0.721148 0.75127 0.773746
0.788321 0.794872 0.793332 0.783718 0.766111 0.740696 0.707743 0.667586
0.620629 0.567339 0.508276 0.444039 0.375282 0.302694 0.227025 0.149046
0.069549 -0.0106576 -0.090755 -0.169928 -0.247371 -0.322298 -0.393934
-0.461559 -0.524486 -0.582076 -0.63373 -0.678924 -0.717209 -0.748193
-0.771558 -0.787049 -0.794529 -0.793923 -0.785236 -0.768535 -0.744008
-0.711908 -0.672562 -0.62636 -0.573772 -0.515345 -0.451672 -0.3834
-0.311214 -0.235861 -0.158108 -0.078745 0.00142186 0.0815734 0.160894
0.238577 0.313832 0.385884 0.454007 0.517509 0.575746 0.628105 0.674069
0.713171 0.745015 0.769265 0.785671 0.79408 0.794407 0.786647 0.770855
0.747218 0.715975 0.677445 0.632005 0.580125 0.522341 0.459241 0.391461
0.319688 0.244662 0.167145 0.0879265 0.00780998 -0.0723848 -0.151842
-0.229755 -0.305327 -0.377785 -0.446397 -0.510466 -0.569339 -0.622399
-0.669124 -0.709039 -0.741737 -0.766869 -0.784187 -0.793524 -0.794784
-0.787948 -0.773072 -0.750329 -0.719948 -0.68224 -0.637567 -0.586403
-0.529271 -0.466751 -0.399473 -0.328122 -0.253433 -0.176164 -0.0970998
-0.0170447 0.0631825 0.142767 0.220899 0.296778 0.369632 0.438724 0.503351
0.56285 0.616607 0.664088 0.70481 0.738359 0.764369 0.782598 0.792861
0.795055 0.789142 0.775184 0.753338 0.723823 0.686937 0.64304 0.592599
0.536126 0.474196 0.407427 0.336509 0.262167 0.185155 0.106256 0.0262732
-0.0539758 -0.133676 -0.212016 -0.288192 -0.361433 -0.430995 -0.496171
-0.556288 -0.610735 -0.658965 -0.700488 -0.734878 -0.761768 -0.780904
-0.792092 -0.795219 -0.790231 -0.777194 -0.756246 -0.727602 -0.691542
-0.64843 -0.598718 -0.542913 -0.48158 -0.415331 -0.344854 -0.270869
-0.194125 -0.115401 -0.035502 0.0447577 0.124562 0.2031 0.279564 0.353182
0.423205 0.488921 0.549649 0.604777 0.65375 0.69607 0.731295 0.759063
0.779105 0.791217 0.795275 0.791213 0.779097 0.759052 0.731282 0.696052
0.65373 0.604754 0.549623 0.488893 0.423174 0.35315 0.279531 0.203065
0.124527 0.0447221 -0.0355377 -0.115437 -0.19416 -0.270902 -0.344887
-0.415361 -0.481609 -0.542939 -0.598742 -0.648451 -0.69156 -0.727616
-0.756257 -0.777201 -0.790235 -0.795219 -0.792089 -0.780897 -0.761758
-0.734865 -0.700471 -0.658945 -0.610712 -0.556263 -0.496143 -0.430965
-0.361401 -0.288159 -0.211982 -0.13364 -0.0539402 0.0263088 0.106291
0.18519 0.2622 0.336542 0.407458 0.474225 0.536153 0.592623 0.643061
0.686956 0.723838 0.753349 0.775192 0.789146 0.795056 0.792858 0.782592
0.764359 0.738345 0.704793 0.664068 0.616585 0.562825 0.503323 0.438694
0.3696 0.296744 0.220864 0.142732 0.063147 -0.0170804 -0.0971353 -0.176199
-0.253467 -0.328155 -0.399504 -0.46678 -0.529297 -0.586427 -0.637588
-0.682258 -0.719963 -0.75034 -0.773081 -0.787952 -0.794786 -0.793522
-0.784181 -0.76686 -0.741724 -0.709023 -0.669105 -0.622377 -0.569314
-0.510438 -0.446367 -0.377754 -0.305294 -0.229721 -0.151807 -0.0723493
0.00784565 0.0879619 0.16718 0.244696 0.31972 0.391492 0.45927 0.522368
0.580149 0.632026 0.677464 0.715991 0.74723 0.770864 0.786652 0.794409
0.794078 0.785665 0.769256 0.745002 0.713155 0.67405 0.628084 0.575721
0.517482 0.453978 0.385852 0.313799 0.238543 0.160859 0.0815379 0.00138619
-0.0787805 -0.158143 -0.235895 -0.311247 -0.383432 -0.451701 -0.515372
-0.573797 -0.626383 -0.672581 -0.711924 -0.74402 -0.768544 -0.785242
-0.793925 -0.794528 -0.787044 -0.771549 -0.748181 -0.717193 -0.678906
-0.633708 -0.582052 -0.524459 -0.46153 -0.393903 -0.322266 -0.247337
-0.169893 -0.0907196 -0.0106219 0.0695846 0.149081 0.227059 0.302727
0.375313 0.444068 0.508303 0.567364 0.620652 0.667605 0.707759 0.740709
0.766121 0.783724 0.793334 0.794871 0.788316 0.773738 0.751258 0.721133
0.683669 0.639245 0.588301 0.531363 0.469017 0.401897 0.330683 0.256094
0.1789 0.0998851 0.0198523 -0.0603833 -0.140003 -0.218197;
#X coords 0 1 511 -1 160 100 1 0 0;
#X restore -818 129 graph;
#X text -889 53 Pour cela nous pouvons utiliser un tableau (menu ajouter
-> Tableau (/Array). Cet objet peut aussi servir à stocker des fichiers
audio (mais nous y reviendrons plus tard);
#X text -891 258 Ensuite nous aurons besoin d'un objet au nom explicite
:;
#X text -891 229 Les tableau eux aussi ont des propriétés permettant
notament des les redimensionner.;
#X text -891 290 Deux possibilités s'offrent à nous : représenter
le signal en "pseudo-continu" ou une image à un instant précis. Il
suffit de préciser dans quelle table on veut dessiner et à quel rythme
;
#X obj -683 435 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj -834 511 tabwrite~ array1;
#X obj -683 458 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1
0 1;
#X obj -669 508 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj -832 378 osc~ 600;
#X obj -683 482 metro 100;
#X obj -829 359 hsl 128 15 0 2000 0 0 empty empty empty -2 -8 0 10
-262144 -1 -1 0 1;
#X obj -833 424 *~;
#X obj -797 409 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X text -686 353 contrôle de fréquence;
#X text -660 406 contrôle de volume;
#X text -655 430 cliquer pour représenter à l'instant t;
#X text -656 455 cliquer pour raffraichir toutes les 100 ms;
#X obj -833 552 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X text -809 541 cet objet est un "bang" \, il représenter un évenement
logique \, qui est vrai au moment ou il est cliqué;
#X obj -886 583 metro 100;
#X text -803 575 est un métronome cà d un objet qui sortira des bangs
toutes les x millisecondes;
#X obj -886 -37 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1
0 1;
#X obj -886 -18 switch~;
#X text -851 -42 <- clicker pour activer les calculs dsp dans ce sous
patch;
#X connect 7 0 8 0;
#X connect 9 0 12 0;
#X connect 11 0 14 0;
#X connect 12 0 10 0;
#X connect 12 0 8 0;
#X connect 13 0 11 0;
#X connect 14 0 8 0;
#X connect 15 0 14 1;
#X connect 24 0 25 0;
#X restore 37 507 pd visualiser;
#N canvas 680 82 667 679 send_et_receive 0;
#X text 31 19 Au lieu de tirer des cables on peut utiliser des objets
dédiés [send] et [receive];
#X obj 46 98 send valeur;
#X floatatom 46 74 5 0 0 0 - - -, f 5;
#X obj 168 72 receive valeur;
#X floatatom 168 98 5 0 0 0 - - -, f 5;
#X text 27 138 On peut aussi utiliser leurs abréviations :;
#X floatatom 48 162 5 0 0 0 - - -, f 5;
#X floatatom 170 186 5 0 0 0 - - -, f 5;
#X obj 48 186 s valeur1;
#X obj 170 160 r valeur1;
#X text 32 222 Cela marche aussi pour l'audio :;
#X obj 50 258 s~ signal;
#X obj 171 256 r~ signal;
#X obj 54 362 throw~ sig;
#X obj 175 360 catch~ sig;
#X text 39 300 Pour l'audio il existe aussi [throw~] et [catch~] \,
la seul différence avec [s~] et [r~] est que l'on ne peut pas avoir
deux objets [catch~] avec le même nom.;
#X text 40 404 Il est aussi possible d'utiliser des variables d'un
façon classique comme dans d'autres langages de programmation \, Ã
l'aide de l'objet [value];
#X obj 75 515 value variable;
#X obj 77 601 value variable;
#X obj 77 578 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X floatatom 77 631 5 0 0 0 - - -, f 5;
#X floatatom 75 488 5 0 0 0 - - -, f 5;
#X text 44 459 Fixer la valeur de notre variable :;
#X text 46 544 Rappeler cette valeur :;
#X connect 2 0 1 0;
#X connect 3 0 4 0;
#X connect 6 0 8 0;
#X connect 9 0 7 0;
#X connect 18 0 20 0;
#X connect 19 0 18 0;
#X connect 21 0 17 0;
#X restore 36 287 pd send_et_receive;
#X text 256 508 <- oscilloscope;