-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathautomatonism.pd
More file actions
1354 lines (1354 loc) · 63.4 KB
/
Copy pathautomatonism.pd
File metadata and controls
1354 lines (1354 loc) · 63.4 KB
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 0 0 958 956 10;
#X declare -path patch_editor_abs/reloaded;
#X declare -path iemguts;
#X declare -lib iemguts;
#X obj 102 188 bng 15 250 50 0 \$0-open-quick-guide! empty <--QUICK-GUIDE 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 102 203 bng 15 250 50 0 \$0-open-manual! empty <--MANUAL 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 102 240 bng 15 250 50 0 \$0-open-modules! empty <-MENU-> 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 221 188 bng 15 250 50 0 \$0-save-s \$0-save-r <--SAVE!(ctrl+s) 17 7 0 10 #fcfcfc #00fc04 #000000;
#X obj 221 203 bng 15 250 50 0 \$0-open-reset-warning! empty <--RESET! 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 991 472 r MIDI_LEARN_OK;
#X msg 953 517 -1;
#N canvas 0 22 450 300 CPU-load 0;
#X floatatom 118 256 0 0 0 0 - - - 0;
#X obj 118 168 cputime;
#X obj 118 28 loadbang;
#X obj 118 112 metro 1000;
#X msg 118 56 1;
#X floatatom 118 84 0 0 0 0 - - - 0;
#X obj 118 140 t b b;
#X obj 118 228 * 0.1;
#X obj 118 197 int;
#X text 163 84 <-- on/off;
#X obj 235 255 s \$0-CPU;
#X connect 0 0 10 0;
#X connect 1 0 8 0;
#X connect 2 0 4 0;
#X connect 3 0 6 0;
#X connect 4 0 5 0;
#X connect 5 0 3 0;
#X connect 6 0 1 0;
#X connect 6 1 1 1;
#X connect 7 0 0 0;
#X connect 8 0 7 0;
#X restore 81 329 pd CPU-load;
#X obj 366 341 text define \$0-midi_mapping;
#X obj 328 442 symbol \$0-callback;
#X obj 1457 538 r \$0-callback;
#X obj 1457 563 text insert \$0-midi_mapping;
#X obj 298 244 bng 15 250 50 0 empty empty view 17 7 0 10 #fcfcfc #000000 #000000;
#X msg 366 319 clear \, click;
#X msg 328 464 getinfo symbol \$1;
#X obj 299 262 bng 8 250 50 0 empty empty clear! 13 3 0 10 #fc0400 #000000 #000000;
#X msg 207 331 clear;
#X obj 297 221 cnv 15 50 20 empty \$0-midi_in empty 1 12 0 10 #fce0c4 #404040 0;
#N canvas 675 732 450 250 (subpatch) 0;
#X coords 0 1 100 -1 49 49 1 0 0;
#X restore 298 222 graph;
#X text 298 204 midimap;
#X obj 1160 678 s STOP-MORPH!;
#X obj 1158 620 r MIDI_LEARN;
#X obj 1158 645 select 1;
#X text 1251 638 stop morphing when midilearn;
#X obj 731 924 s ACTIVE_DOLLARZERO;
#X text 151 14 [RELOADED];
#X obj 98 102 cnv 15 248 85 empty \$0-active-rcv empty 20 12 0 14 #ccffcc #ccffcc 0;
#X obj 104 110 cnv 5 5 5 empty empty AUTOMATONISM 0 0 0 14 #fcfcfc #404040 0;
#X obj 212 110 cnv 5 5 5 empty empty [RELOADED]v4.2 0 0 0 12 #fcfcfc #404040 0;
#X floatatom 151 167 5 0 0 1 - \$0-CPU - 0;
#X text 162 150 CPU;
#X text 150 150 %;
#X obj 197 133 bng 50 250 50 0 \$0-midi_learn \$0-midi_learn-rcv LEARN 10 15 0 10 #fce0c0 #fce0c0 #000000;
#X obj 247 133 bng 50 250 50 0 \$0-midi_map_from \$0-midi_map_from-rcv FROM 14 15 0 10 #d8fcd8 #d8fcd8 #000000;
#X obj 297 133 bng 50 250 50 0 \$0-midi_map_to \$0-midi_map_to-rcv TO 20 15 0 10 #d8fcfc #d8fcfc #000000;
#X text 209 117 MIDI;
#X text 263 117 MAP;
#X text 309 117 MAP;
#X obj 1039 51 declare -path patch_editor_abs/reloaded;
#X obj 664 456 r \$0-target_patch;
#N canvas 789 161 1119 718 open_modules 0;
#X obj 31 8 inlet;
#X obj 26 149 v \$0-modules_menu_opened;
#X obj 26 113 delay 100;
#X obj 27 180 == 0;
#X obj 35 205 s \$0-modules_menu_opened;
#X obj 122 280 select 0 1;
#X msg 76 334 vis 0;
#X obj 122 256 r \$0-modules_menu_opened;
#X msg 192 347 vis 1;
#X obj 110 389 s pd-\$0-modules;
#X obj 250 396 s \$0-target_patch;
#X obj 171 314 delay 100;
#X msg 263 343 editmode 0;
#X connect 0 0 2 0;
#X connect 1 0 3 0;
#X connect 2 0 1 0;
#X connect 3 0 4 0;
#X connect 5 0 6 0;
#X connect 5 1 11 0;
#X connect 5 1 12 0;
#X connect 6 0 9 0;
#X connect 7 0 5 0;
#X connect 8 0 9 0;
#X connect 11 0 8 0;
#X connect 12 0 10 0;
#X restore 78 750 pd open_modules;
#X text 213 607 appui sur la touche ESC pour faire apparaitre le menu MODULES, f 21;
#X obj 733 831 change;
#X obj 907 640 r ACTIVE_DOLLARZERO;
#X msg 855 826 set \$1;
#X obj 745 723 loadbang;
#X text 595 511 iemguts;
#N canvas 1003 228 313 240 dynamic_patching_stuff 0;
#N canvas 0 7 1920 1023 oscillators 0;
#X obj 24 9 module_create \$0 \$1 basic-osc;
#X obj 24 42 module_create \$0 \$1 bwl-osc;
#X obj 31 119 module_create \$0 \$1 2op-fm;
#X obj 25 142 module_create \$0 \$1 karplus;
#X obj 24 166 module_create \$0 \$1 trigons;
#X obj 33 214 module_create \$0 \$1 kick;
#X obj 28 242 module_create \$0 \$1 snare;
#X obj 30 267 module_create \$0 \$1 noise;
#X obj 29 292 module_create \$0 \$1 polysynth;
#X obj 29 313 module_create \$0 \$1 polyfm;
#X obj 31 337 module_create \$0 \$1 pd-303;
#X obj 31 360 module_create \$0 \$1 looper;
#X obj 30 382 module_create \$0 \$1 sampler;
#X obj 30 434 module_create \$0 \$1 chord-synth;
#X obj 30 459 module_create \$0 \$1 complex-percussion;
#X obj 30 483 module_create \$0 \$1 complex-kick;
#X obj 30 507 module_create \$0 \$1 complex-snare;
#X obj 30 532 module_create \$0 \$1 hihat;
#X obj 286 2 module_create \$0 \$1 algomatrix;
#X obj 27 66 module_create \$0 \$1 wtable;
#X obj 32 189 module_create \$0 \$1 triad;
#X obj 30 408 module_create \$0 \$1 percussion;
#N canvas 0 50 450 250 (subpatch) 0;
#X text 0 0 plugdatainfo <?xml version="1.0" encoding="UTF-8"?> <plugdatainfo/>;
#X coords 0 1 100 -1 15 15 1;
#X restore 0 0 graph;
#X obj 27 91 module_create \$0 \$1 graphic-osc;
#X restore 37 31 pd oscillators;
#N canvas 0 23 992 769 sound-processors 0;
#X obj 31 47 module_create \$0 \$1 lp-filter;
#X obj 31 71 module_create \$0 \$1 ladder-filter;
#X obj 31 93 module_create \$0 \$1 hp-filter;
#X obj 31 117 module_create \$0 \$1 bp-filter;
#X obj 31 141 module_create \$0 \$1 analog-filter;
#X obj 30 164 module_create \$0 \$1 bob-filter;
#X obj 30 186 module_create \$0 \$1 formant;
#X obj 30 210 module_create \$0 \$1 bitcrush;
#X obj 30 234 module_create \$0 \$1 wavefold;
#X obj 30 258 module_create \$0 \$1 phasor;
#X obj 30 282 module_create \$0 \$1 combfilter;
#X obj 30 306 module_create \$0 \$1 granular-delay;
#X obj 30 330 module_create \$0 \$1 millerverb;
#X obj 30 354 module_create \$0 \$1 stereo-delay;
#X obj 286 49 module_create \$0 \$1 tremolo;
#X obj 289 77 module_create \$0 \$1 audiofreeze;
#X obj 289 108 module_create \$0 \$1 starlight;
#X obj 30 378 module_create \$0 \$1 chorus;
#X obj 30 402 module_create \$0 \$1 overdrive;
#X obj 30 426 module_create \$0 \$1 filterbank;
#X obj 30 449 module_create \$0 \$1 megaverb;
#X obj 30 471 module_create \$0 \$1 pitchshifter;
#X obj 30 494 module_create \$0 \$1 compressor;
#X obj 30 515 module_create \$0 \$1 channel-eq;
#X obj 30 537 module_create \$0 \$1 vintageverb;
#X restore 37 53 pd sound-processors;
#N canvas 0 112 371 457 modulation 0;
#X obj 14 112 module_create \$0 \$1 ahr;
#X obj 14 135 module_create \$0 \$1 slope;
#X obj 14 158 module_create \$0 \$1 decay;
#X obj 14 183 module_create \$0 \$1 basic-lfo;
#X obj 14 204 module_create \$0 \$1 random-gates;
#X obj 14 234 module_create \$0 \$1 s&h;
#X obj 14 260 module_create \$0 \$1 adsr;
#X obj 14 285 module_create \$0 \$1 random-voltages;
#X obj 14 309 module_create \$0 \$1 sinebank;
#X restore 37 75 pd modulation;
#N canvas 0 112 283 301 vca/mixers 0;
#X obj 14 20 module_create \$0 \$1 vca;
#X obj 13 41 module_create \$0 \$1 lpg;
#X obj 13 63 module_create \$0 \$1 xfade;
#X obj 13 85 module_create \$0 \$1 3way-xfade;
#X obj 13 108 module_create \$0 \$1 polarizer;
#X obj 13 131 module_create \$0 \$1 mixer2;
#X obj 13 154 module_create \$0 \$1 mixer4;
#X obj 13 177 module_create \$0 \$1 toggle-matrix;
#X obj 14 198 module_create \$0 \$1 maestro4;
#X obj 14 225 module_create \$0 \$1 random-mixer;
#X restore 37 97 pd vca/mixers;
#N canvas 0 172 348 548 utility/logic 0;
#X obj 14 20 module_create \$0 \$1 clock;
#X obj 14 43 module_create \$0 \$1 clock-multiply;
#X obj 15 68 module_create \$0 \$1 clock-divider-even;
#X obj 14 93 module_create \$0 \$1 clock-divider-odd;
#X obj 14 158 module_create \$0 \$1 vc-counter;
#X obj 14 180 module_create \$0 \$1 trigger-delay;
#X obj 14 202 module_create \$0 \$1 inverter;
#X obj 14 224 module_create \$0 \$1 scope;
#X obj 14 247 module_create \$0 \$1 slew;
#X obj 14 271 module_create \$0 \$1 probability;
#X obj 14 342 module_create \$0 \$1 4to1-switch;
#X obj 13 367 module_create \$0 \$1 1to4-switch;
#X obj 14 398 module_create \$0 \$1 env-follower;
#X obj 14 421 module_create \$0 \$1 trigger-train;
#X obj 14 446 module_create \$0 \$1 audio-recorder;
#X obj 14 472 module_create \$0 \$1 multitrack-recorder;
#X obj 15 497 module_create \$0 \$1 external-audio;
#X obj 15 524 module_create \$0 \$1 manual-triggers;
#X obj 15 544 module_create \$0 \$1 manual-toggle;
#X obj 15 564 module_create \$0 \$1 playhead;
#X obj 250 17 module_create \$0 \$1 swing;
#X obj 14 125 module_create \$0 \$1 abl-link;
#X obj 14 295 module_create \$0 \$1 _quantizer;
#X restore 37 119 pd utility/logic;
#N canvas 0 142 248 284 sequencers 0;
#X obj 14 20 module_create \$0 \$1 8steps;
#X obj 14 43 module_create \$0 \$1 mega-sequencer;
#X obj 14 67 module_create \$0 \$1 trigger-seq;
#X obj 14 93 module_create \$0 \$1 gate-seq;
#X obj 14 118 module_create \$0 \$1 ratchet-seq;
#X obj 14 145 module_create \$0 \$1 euklid;
#X obj 14 175 module_create \$0 \$1 euclid777;
#X obj 13 202 module_create \$0 \$1 seqtable;
#X restore 37 141 pd sequencers;
#N canvas 0 112 287 294 organelle-modules 0;
#X obj 14 32 module_create \$0 \$1 organelle-knobs;
#X obj 14 57 module_create \$0 \$1 organelle-keyboard;
#X obj 15 83 module_create \$0 \$1 organelle-adsr;
#X obj 14 106 module_create \$0 \$1 organelle-aux;
#X obj 13 129 module_create \$0 \$1 audio-in;
#X obj 13 152 module_create \$0 \$1 poly-pulse;
#X obj 13 176 module_create \$0 \$1 poly-saw;
#X obj 13 202 module_create \$0 \$1 organelle-output;
#X restore 37 163 pd organelle-modules;
#N canvas 0 22 465 369 midi-modules 0;
#X obj 15 32 module_create \$0 \$1 midi-in;
#X obj 15 63 module_create \$0 \$1 cc-in;
#X obj 13 87 module_create \$0 \$1 midi-out;
#X obj 10 114 module_create \$0 \$1 cc-out;
#X obj 10 144 module_create \$0 \$1 midi-polyin;
#X restore 37 185 pd midi-modules;
#N canvas 0 82 229 228 user-made-modules 0;
#X restore 37 207 pd user-made-modules;
#N canvas 0 22 450 300 macro-structural-tools 0;
#X obj 20 30 module_create \$0 \$1 preset-manager;
#X obj 20 63 module_create \$0 \$1 param-nudge;
#X obj 20 93 module_create \$0 \$1 morph-seq;
#X obj 20 119 module_create \$0 \$1 time-manager;
#X obj 20 147 module_create \$0 \$1 random-time-manager;
#X obj 20 177 module_create \$0 \$1 macro-control;
#X obj 20 207 module_create \$0 \$1 macro-xy-control;
#X restore 38 230 pd macro-structural-tools;
#N canvas 1164 203 342 191 extra-modules 0;
#X obj 13 21 module_create \$0 \$1 extra-sampler;
#X restore 38 254 pd extra-modules;
#X restore 359 687 pd dynamic_patching_stuff;
#X text 584 242 dynamically add [declare -path] to parent canvas if not declared, f 22;
#X obj 741 663 r \$0-open-modules!;
#N canvas 0 7 1920 1023 manual_popups 0;
#N canvas 236 274 489 175 \$0-state-saving 0;
#X obj 17 12 cnv 15 400 60 empty empty STATE_SAVING 20 12 0 14 #dc4c90 #fcfcfc 0;
#N canvas 2 586 450 276 deprecated 0;
#X text 20 22 The state saving system works by writing parameter values to reloaded/textfile \$0s in the folder "statesave" inside the "patch_editor_abs" folder. When you load a module form the module list it is automatically being given a unique creation argument which creates a reloaded/textfile \$0 unique for that instance of the module. To save your patch \, simply save as you normally would from the FILE menu and the press ENTER on your keyboard or click the SAVE button in the upper left corner of the main window.;
#X text 20 196 IMPORTANT!!! To start a new project \, the entire folder structure needs to be copied since the abstractions and reloaded/textfile \$0s are unique to every project. Click the RESET button in the upper left corner to reset the counter that gives unique creation arguments for the modules.;
#X restore 28 153 pd deprecated;
#X text 27 83 Automatonism [RELOADED] saves the state of modules with the patch. No need to recopy full Automatonism folder structure for every project. Different project can coexist in a same folder.;
#X text 124 151 <- this was the old behaviour with Automatonism;
#X restore 35 504 pd \$0-state-saving;
#X obj 34 526 r \$0-open-state-saving!;
#X msg 34 547 vis 1;
#X obj 34 571 s pd-\$0-state-saving;
#X obj 443 261 r \$0-open-quick-guide!;
#N canvas 0 23 1004 774 \$0-quick-guide 0;
#X obj 17 17 cnv 15 750 60 empty empty Welcome_to_AUTOMATONISM:_Making_Music_with_Self-playing_Machines 20 12 0 14 #90d4b0 #fcfcfc 0;
#X text 19 86 FOLLOW THESE SIMPLE STEPS TO GET STARTED:;
#X text 19 246 2 Create a BASIC-OSC from the module list.;
#X text 20 422 4 Pure Data has an EDIT MODE and a PERFORMANCE MODE. To make patch connections between objects we need to be in EDIT MODE and to interact with the GUI we need to be in PERFORMANCE MODE. Toggle between the two modes with cmd+e.;
#X text 23 289 3 Open the module list and create the module in the lower right corner called MAESTRO4(dac~). This is the digital-to-analog-converter and is one of the modules that passes on sound to your speakers. Now you can soon make a sound.;
#X text 19 519 5 All inputs are at the top of the modules and all outputs are at the bottom. In EDIT MODE \, connect the BASIC-OSC's output CH1 on the MAESTRO4. Now \, you should have sound. Switch to PERFORMANCE MODE and use the mouse to move the PITCH slider on the BASIC-OSC module.;
#X text 20 622 6 Right click on any module and choose HELP to read more about a module's functions.;
#X text 33 42 RIGHT+CLICK & CHOOSE 'HELP' ON ANY MODULE!;
#X text 396 125 7 In Automatonism [RELOADED] \, to save parameter states on each module \, you have to save the pd file \, like you normally would do from the FILE menu or cmd+s.;
#X text 19 127 1 When you press "esc" key \, you'll see a list of all current available modules. Click the button to the left of the module you want to load and it will appear in the parent window. The module list will then disappear. To call back the module list you can click the MENU button in AUTOMATONISM or simply upress "esc" on your keyboard.;
#X text 396 193 8 You can add modules without using the modules-menu simply by creating a new object in pd and type the module's name. For the state saving mechanism to work properly you do need to give the module a unique numerical argument. Type "basic-osc 1" for an oscillator and "basic-osc 2" if you need another one. By using the MODULES list this unique numbering is done automatically for you. Use the RESET link in the upper left corner when starting a new patch as this will reset the counter of unique numbers for modules.;
#X coords 0 0 1 1 749 63 1 16 17;
#X restore 353 15 pd \$0-quick-guide;
#X msg 443 283 vis 1;
#X obj 443 307 s pd-\$0-quick-guide;
#X msg 439 386 vis 1;
#X obj 439 411 s pd-\$0-signal-flow;
#X obj 439 364 r \$0-open-signal-flow!;
#N canvas 416 23 852 668 \$0-signal-flow 0;
#X obj 22 10 cnv 15 365 30 empty empty SIGNAL-FLOW 20 12 0 14 #dc4c90 #fcfcfc 0;
#X obj 26 161 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 #9898dc #fcfcfc #000000 0 1;
#X obj 24 214 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 #90d4b0 #000000 #000000 0 1;
#X obj 21 281 cnv 5 5 5 empty empty CLOCK-IN 0 0 0 8 #fcfcfc #dc4c90 0;
#X text 17 328 All inputs and outputs in the editor are at signal rate within the range of -1 to 1 In contrast to normal pd-programming there is no distinction between control rate and signal rate messages. Everything is converted to signal rate.;
#X msg 20 439 bang;
#X msg 20 461 1 0 \, 0 1 1;
#X obj 20 483 vline~;
#X msg 23 535 bang;
#X msg 23 557 1 0 \, 0 1 1;
#X obj 23 579 vline~;
#X msg 23 623 bang;
#X text 19 404 How to convert a simple bang to a trigger/gate signal in the patch editor:;
#X obj 23 601 threshold~ 0.99 0 1 0;
#X text 21 518 How to convert back to a control rate bang:;
#X obj 404 569 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 401 589 / 127;
#X obj 401 611 sig~;
#X text 398 534 How convert control numbers to the patch editor's signal flow:;
#X text 541 568 0-127;
#X text 21 178 Purple sliders and inlets means the slider will function as an attenuator for incoming CV.;
#X text 21 48 There are three types of signals in the patch editor: audio \, cv and trigger/gate/pulse/clock. The latter are marked with PINK inlets and outlets. General rule in the patch editor is that all connections are possible. Or \, at least \, just like in any hardware modular system - all connections might not work but there's no harm in trying. ! ! The patch-editor uses color-coding to clarify the signal flow as much as possible.;
#X text 18 287 And pink inlets means the input is expecting a trigger/gate signal to function properly.;
#X text 19 230 Green sliders and inlets tells you that the parameter is bi-polar \, most oftenly working as an attenueverter for incoming CV.;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 10 0 13 0;
#X connect 13 0 11 0;
#X connect 15 0 16 0;
#X connect 16 0 17 0;
#X restore 440 342 pd \$0-signal-flow;
#X msg 437 496 vis 1;
#X obj 437 520 s pd-\$0-color-code;
#N canvas 138 156 591 276 \$0-color-code 0;
#X obj 140 39 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 #9898dc #fcfcfc #000000 0 1;
#X obj 140 100 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 #90d4b0 #000000 #000000 0 1;
#X obj 137 175 cnv 5 5 5 empty empty CLOCK-IN 0 0 0 8 #fcfcfc #dc4c90 0;
#X text 134 56 Purple sliders and inlets means the slider will function as an attenuator for incoming CV.;
#X text 133 117 Green sliders and inlets tells you that the parameter is bi-polar \, most oftenly working as an attenueverter for incoming CV.;
#X text 135 181 And pink inlets means the input is expecting a trigger/gate signal or short impulse(square-wave) to function properly.;
#X restore 438 452 pd \$0-color-code;
#N canvas 217 322 377 247 \$0-manual 0;
#X obj 17 12 cnv 15 320 60 empty empty WELCOME-TO-THE-AUTOMATONISM-MANUAL! 20 12 0 14 #90d4b0 #fcfcfc 0;
#X obj 22 82 hsl 115 30 0 127 0 0 \$0-open-signal-flow! empty empty -2 -8 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 79 82 cnv 15 60 30 empty empty FLOW 6 12 0 14 #e0e0e0 #404040 0;
#X obj 19 82 cnv 15 60 30 empty empty SIGNAL 4 12 0 14 #e0e0e0 #404040 0;
#X obj 21 119 hsl 115 30 0 127 0 0 \$0-open-color-code! empty empty -2 -8 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 79 119 cnv 15 60 30 empty empty CODE 6 12 0 14 #e0e0e0 #404040 0;
#X obj 18 119 cnv 15 60 30 empty empty COLOR 18 12 0 14 #e0e0e0 #404040 0;
#X obj 21 157 hsl 115 30 0 127 0 0 \$0-open-state-saving! empty empty -2 -8 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 79 157 cnv 15 60 30 empty empty SAVING 6 12 0 14 #e0e0e0 #404040 0;
#X obj 18 157 cnv 15 60 30 empty empty STATE 18 12 0 14 #e0e0e0 #404040 0;
#X obj 21 196 hsl 115 30 0 127 0 0 \$0-open-help-files! empty empty -2 -8 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 79 196 cnv 15 60 30 empty empty FILES 6 12 0 14 #e0e0e0 #404040 0;
#X obj 18 196 cnv 15 60 30 empty empty HELP 18 12 0 14 #e0e0e0 #404040 0;
#X obj 157 156 hsl 155 30 0 127 0 0 \$0-open-folder-hierarchy! empty empty -2 -8 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 215 156 cnv 15 100 30 empty empty HIERARCHY 20 12 0 14 #e0e0e0 #404040 0;
#X obj 154 156 cnv 15 60 30 empty empty FOLDER 18 12 0 14 #e0e0e0 #404040 0;
#X obj 158 192 hsl 170 30 0 127 0 0 \$0-open-feedback-loops! empty empty -2 -8 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 153 192 cnv 15 180 30 empty empty FEEDBACK-&-DSP-LOOPS 18 12 0 14 #e0e0e0 #404040 0;
#X obj 156 228 hsl 115 30 0 127 0 0 \$0-open-license! empty empty -2 -8 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 153 228 cnv 15 120 30 empty empty LICENSE 18 12 0 14 #e0e0e0 #404040 0;
#X obj 160 81 hsl 155 30 0 127 0 0 \$0-open-external-msg! empty empty -2 -8 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 152 81 cnv 15 120 30 empty empty EXTERNAL 18 12 0 14 #e0e0e0 #404040 0;
#X obj 237 81 cnv 15 80 30 empty empty MESSAGES 6 12 0 14 #e0e0e0 #404040 0;
#X obj 155 119 hsl 115 30 0 127 0 0 \$0-open-midi-mapping! empty empty -2 -8 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 152 119 cnv 15 60 30 empty empty MIDI 18 12 0 14 #e0e0e0 #404040 0;
#X obj 213 119 cnv 15 60 30 empty empty MAPPING -5 12 0 14 #e0e0e0 #404040 0;
#X coords 0 0 1 1 321 62 1 16 11;
#X restore 437 688 pd \$0-manual;
#X obj 438 590 r \$0-open-manual!;
#X msg 438 612 vis 1;
#X obj 438 636 s pd-\$0-manual;
#X obj 437 474 r \$0-open-color-code!;
#X obj 628 257 r open-organelle-map!;
#X obj 633 357 r open-tips-&-tricks!;
#X msg 633 410 \; pd-tips-&-tricks vis \$1;
#X obj 627 142 r \$0-open-help-files!;
#X msg 627 168 vis 1;
#N canvas 93 118 438 191 \$0-help-files 0;
#X obj 17 12 cnv 15 400 60 empty empty HELP-FILES 20 12 0 14 #dc4c90 #fcfcfc 0;
#X text 20 84 Right + click on individual modules and choose "HELP" to access detailed help-files on each modules inlets \, outlets and functionalities.;
#X restore 627 121 pd \$0-help-files;
#X obj 627 192 s pd-\$0-help-files;
#X msg 628 279 vis 1;
#X obj 628 303 s pd-\$0-organelle-map;
#N canvas 0 22 434 295 \$0-organelle-map 0;
#X obj 17 12 cnv 15 400 60 empty empty MAPPING-ORGANELLE-KNOBS/KEYS 20 12 0 14 #dc4c90 #fcfcfc 0;
#X text 20 84 There are specific modules for integrating the Organelle knobs and keyboard into your patches. Use "organelle-keyboard and "organelle-knobs" to connect the keyboard or knobs to parameter values in your patch. Remember that the parameter slider on the module acts as an offset when external cv is connected so set the slider to zero to access the entire range of the parameter with the organelle keyboard or knobs. See the"organelle-keyboard" and "organelle-knobs" help-files for more info. There are many ways to use PD with the Organelle. The "organelle-keyboard" and "organelle-knobs" modules use a simplistic approach. Use your own more elaborate pd-code for deeper control.;
#X restore 628 236 pd \$0-organelle-map;
#N canvas 0 22 435 328 \$0-tips-&-tricks 0;
#X obj 17 12 cnv 15 400 60 empty empty TIPS&TRICKS 20 12 0 14 #dc4c90 #fcfcfc 0;
#X text 20 110 Hide portions of a complex patch in a subpatch to gain more space.;
#X text 20 175 Don't forget to use utility modules;
#X text 20 201 Existing modular synthesis tutorials ond patches can be translated to the XOUDLAR playGROUND \; like nord modular patches \, sound on sound synthesis secrets \, allen strange's book \, make noise shared system patches \, buchla patches etc;
#X text 20 84 Useful tips and tricks:;
#X text 20 149 Use [switch~] in subpatches in large projects too free CPU;
#X text 20 266 If you want two same modules to share exact parameters copy&paste the module instead of loading a new from the module list.;
#X restore 635 334 pd \$0-tips-&-tricks;
#N canvas 0 23 432 479 \$0-advanced-pd-users 0;
#X obj 17 12 cnv 15 400 60 empty empty ADVANCED-PD-USERS 20 12 0 14 #e0e0e0 #404040 0;
#X text 20 84 Some useful information for advanced pd users who want to change \, interact or expand on the XODULAR PLAYGROUND code:;
#X text 21 141 LOREM IPSUM;
#X restore 632 464 pd \$0-advanced-pd-users;
#N canvas 0 22 673 716 \$0-make-your-own-module 0;
#X obj 17 12 cnv 15 400 60 empty empty MAKE-YOUR-OWN-MODULE 20 12 0 14 #dc4c90 #fcfcfc 0;
#X msg 24 128 bang;
#X msg 24 150 1 0 \, 0 1 1;
#X obj 24 172 vline~;
#X msg 23 222 bang;
#X msg 23 244 1 0 \, 0 1 1;
#X obj 23 266 vline~;
#X msg 23 310 bang;
#X text 23 93 How to convert a simple bang to a trigger/gate signal in the patch editor:;
#X obj 23 288 threshold~ 0.99 0 1 0;
#X text 21 205 How to convert back to a control rate bang:;
#X obj 28 389 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 25 409 / 127;
#X obj 25 431 sig~;
#X text 22 354 How convert control numbers to the patch editor's signal flow:;
#X text 165 388 0-127;
#X text 21 509 GRAPH ON PARENT;
#X text 22 539 MODULE TITLE;
#X text 24 575 INLET/OUTLET LABELS;
#X text 33 614 STATE-SAVING;
#X text 20 477 CV INPUTS:;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 9 0;
#X connect 9 0 7 0;
#X connect 11 0 12 0;
#X connect 12 0 13 0;
#X restore 631 567 pd \$0-make-your-own-module;
#X msg 633 379 vis 1;
#X obj 630 487 r \$0-open-advanced-pd-users!;
#X msg 630 509 vis 1;
#X obj 630 533 s pd-\$0-advanced-pd-users;
#X obj 629 590 r \$0-open-make-your-own-module!;
#X msg 629 612 vis 1;
#X obj 629 636 s pd-\$0-make-your-own-module;
#X obj 828 139 r \$0-reset!;
#X obj 828 161 delay 500;
#N canvas 293 233 501 213 \$0-reset-warning 0;
#X obj 25 160 bng 15 250 50 0 \$0-reset! empty <--RESET! 17 7 0 10 #fcfcfc #000000 #000000;
#X text 18 49 WARNING!;
#X text 19 68 Never press the RESET! button in the middle of working of a patch since it can cause the state saving mechanism to malfunction. Only use it when starting a new patch and you want the module counters to start over at zero. PRESS THE BUTTON BELOW TO RESET:;
#X coords 0 0 1 1 368 133 1 14 46;
#X restore 29 111 pd \$0-reset-warning;
#X obj 828 62 r \$0-open-reset-warning!;
#X msg 828 84 vis 1;
#X msg 831 311 vis 1;
#X obj 828 108 s pd-\$0-reset-warning;
#X msg 828 185 vis 0;
#X obj 828 208 s pd-\$0-reset-warning;
#N canvas 472 160 472 672 \$0-external-msg 0;
#X obj 17 12 cnv 15 400 60 empty empty EXTERNAL_MESSAGES 20 12 0 14 #dc4c90 #fcfcfc 0;
#X text 27 86 You can send external control messages into Automatonism modules since Automatonsim 3.0. This makes it easier to map midi controllers to specific parameters and integrate your patches with other Pure Data patches. External Messages routing in Automatonism works like this:;
#X obj 41 181 hsl 128 15 0 127 0 0 empty empty 0-127 -2 -8 0 10 #fcfcfc #000000 #000000 0 1;
#X floatatom 38 201 5 0 0 0 - - - 0;
#X msg 38 221 PITCH \$1 1;
#X obj 38 242 s basic-osc;
#X text 36 276 Send a value between 0-127;
#X text 38 395 To control the P-WIDTH slider of the BASIC-OSC with instance number 3 \, do this instead:;
#X obj 41 451 hsl 128 15 0 127 0 0 empty empty 0-127 -2 -8 0 10 #fcfcfc #000000 #000000 0 1;
#X floatatom 38 471 5 0 0 0 - - - 0;
#X msg 38 491 P-WIDTH \$1 3;
#X obj 38 512 s basic-osc;
#X text 37 296 Write a message where the first word is the name of the slider you are trying to externally control \, type "\$1" to pass on your value to the module and finally type the instance number of the specific module you want to control. The instance number is always showcased to the right of the module's title. Then create a send object and send to the name of the module \, for example [s basic-osc];
#X text 35 549 CAUTION : If you have several patches simultaneously opened (as you can do it with AUTOMATONISM [reloaded] ) \, those external messages may interfere with all of them.;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X restore 833 266 pd \$0-external-msg;
#X obj 831 289 r \$0-open-external-msg!;
#X obj 831 335 s pd-\$0-external-msg;
#X msg 831 421 vis 1;
#N canvas 472 160 579 624 \$0-midi-mapping 0;
#X obj 17 12 cnv 15 400 60 empty empty MIDI_MAPPING 20 12 0 14 #dc4c90 #fcfcfc 0;
#X obj 12 140 vradio 50 1 0 3 \$0-edit_mapping empty empty 0 -8 0 10 #fcfcfc #000000 #000000 0;
#X obj 12 140 tgl 50 0 MIDI_LEARN MIDI_LEARN-rcv MIDI_LEARN 2 7 0 10 #fce0c4 #000000 #000000 0 1;
#X obj 12 190 tgl 50 0 MIDI_MAP_FROM MIDI_MAP_FROM-rcv MAP_FROM 2 7 0 10 #c4fcc4 #000000 #000000 0 1;
#X obj 12 240 tgl 50 0 MIDI_MAP_TO MIDI_MAP_TO-rcv MAP_TO 2 7 0 10 #c4fcfc #000000 #000000 0 1;
#X text 122 143 2) move your midi controler;
#X text 117 259 1) click LEARN \, but don't touch your midi controler;
#X text 116 276 2) then click to the target slider you want to unmap;
#X text 87 231 * to cancel a midi-mapping :;
#X text 84 94 * to create a midi-mapping;
#X text 122 124 1) click MIDI_LEARN;
#X text 122 164 3) then click to the target widget you want to midi-map;
#X text 122 362 1) click on MAP_FROM (resp. MAP_TO);
#X text 124 388 2) editable widgets become green (resp. blue);
#X text 82 335 * to edit bounds values;
#X text 125 414 3) With the mouse \, change the bound value \, then uncheck MAP_FROM (MAP_TO);
#X text 158 185 (mappable widgets are drawn in orange);
#X restore 833 376 pd \$0-midi-mapping;
#X obj 831 399 r \$0-open-midi-mapping!;
#X obj 831 445 s pd-\$0-midi-mapping;
#X obj 861 501 r \$0-open-folder-hierarchy!;
#N canvas 0 233 509 237 \$0-folder-hierarchy 0;
#X obj 17 12 cnv 15 400 60 empty empty FOLDER-HIEARCHY 20 12 0 14 #dc4c90 #fcfcfc 0;
#N canvas 1341 384 450 276 deprecated 0;
#X text 14 34 Inside your project folder you'll find a file called "main.pd" and a folder called "patch_editor_abs". The "main.pd" must stay named the same for Automatonism to function properly. Also \, each of your projects/patches needs tp be in a separet folder with its own "main.pd" and "patch_editor_abs" folder. Copy & paste the project folder \, which you can give any name \, when you want to start a new project/patch.;
#X restore 38 194 pd deprecated;
#X text 26 88 You have to store the Automatonism folder structure in a path that has been included in pd search paths.;
#X text 28 140 For example : /home/<user>/documents/pd/externals/ may be a good choice.;
#X text 147 195 <- this was the old behaviour with Automatonism 3.1;
#X restore 862 478 pd \$0-folder-hierarchy;
#X msg 861 523 vis 1;
#X obj 861 547 s pd-\$0-folder-hierarchy;
#N canvas 0 233 493 352 \$0-feedback-loops 0;
#X obj 17 12 cnv 15 400 60 empty empty FEEDBACK-&-DSP-LOOPS 20 12 0 14 #dc4c90 #fcfcfc 0;
#X text 23 83 Feedback patching is very much possible in the AUTOMATONISM \, just a little bit differently from physical modular systems. If you try to patch a module into itself or any kind of feedback routing \, Pure Data will become silent and you'll get a "DSP loop detected" message in the Pd window. To avoid this you need to delay the signal a tiny tiny bit. Normal [send~) and [receive~] objects automatically does this in Pd. Send the signal to be feedbacked into a [send~ MyFeedback] and pick it up using [receive~ MyFeedback] and then patch into the input to close the feedback loop. Obviously "MyFeedback" could be anything and the abbreviation for send and receive [s~] and [r~] work equally as well.;
#X restore 1069 481 pd \$0-feedback-loops;
#X obj 1067 504 r \$0-open-feedback-loops!;
#X msg 1067 526 vis 1;
#X obj 1067 550 s pd-\$0-feedback-loops;
#N canvas 0 23 525 315 \$0-license 0;
#X obj 17 12 cnv 15 400 60 empty empty LICENSE 20 12 0 14 #e0e0e0 #404040 0;
#X text 17 88 Copyright © 2017 \, Johan Eriksson Automatonism is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation \, either version 3 of the License \, or any later version. This program is distributed in the hope that it will be useful \, but WITHOUT ANY WARRANTY \; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.;
#X text 17 264 Automatonism [RELOADED] \, Copyright © 2021-25 by Jean-Yves Gratius \, is a fork of Johan Eriksson's Automatonism work https://www.automatonism.com/;
#X text 17 316 The same type of license GNU >v3 should be applied.;
#X restore 1068 595 pd \$0-license;
#X obj 1066 618 r \$0-open-license!;
#X msg 1066 640 vis 1;
#X obj 1066 664 s pd-\$0-license;
#N canvas 0 23 432 503 \$0-export-patches 0;
#X obj 17 12 cnv 15 400 60 empty empty EXPORT-PATCH 20 12 0 14 #e0e0e0 #404040 0;
#X text 20 84 So \, how do you export patces made in the editor to the Organelle?;
#X text 26 131 LOREM IPSUM.;
#X restore 858 605 pd \$0-export-patches;
#X obj 857 628 r \$0-open-export-patches!;
#X msg 857 650 vis 1;
#X obj 857 674 s pd-\$0-export-patches;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 4 0 6 0;
#X connect 6 0 7 0;
#X connect 8 0 9 0;
#X connect 10 0 8 0;
#X connect 12 0 13 0;
#X connect 16 0 17 0;
#X connect 17 0 18 0;
#X connect 19 0 12 0;
#X connect 20 0 27 0;
#X connect 21 0 33 0;
#X connect 23 0 24 0;
#X connect 24 0 26 0;
#X connect 27 0 28 0;
#X connect 33 0 22 0;
#X connect 34 0 35 0;
#X connect 35 0 36 0;
#X connect 37 0 38 0;
#X connect 38 0 39 0;
#X connect 40 0 41 0;
#X connect 41 0 47 0;
#X connect 43 0 44 0;
#X connect 44 0 46 0;
#X connect 45 0 51 0;
#X connect 47 0 48 0;
#X connect 50 0 45 0;
#X connect 52 0 55 0;
#X connect 54 0 52 0;
#X connect 56 0 58 0;
#X connect 58 0 59 0;
#X connect 61 0 62 0;
#X connect 62 0 63 0;
#X connect 65 0 66 0;
#X connect 66 0 67 0;
#X connect 69 0 70 0;
#X connect 70 0 71 0;
#X coords 0 -1 1 1 85 60 1 0 0;
#X restore 949 1268 pd manual_popups;
#X text 47 15 AUTOMATONISM;
#X obj 1402 56 declare -path iemguts;
#X obj 1397 83 declare -lib iemguts;
#N canvas 0 25 543 417 check_installed_externals 0;
#X obj 98 24 inlet;
#X obj 96 306 outlet;
#X text 326 204 vanilla;
#X obj 183 21 loadbang;
#X obj 183 111 f \$1;
#X obj 182 136 select 0;
#X msg 225 171 1;
#X text 111 333 iemguts;
#X obj 98 227 route 0 1;
#X obj 98 198 list prepend 0;
#X msg 178 161 0;
#X obj 183 64 delay 100;
#X obj 225 305 outlet;
#X connect 0 0 9 0;
#X connect 3 0 11 0;
#X connect 4 0 5 0;
#X connect 5 0 10 0;
#X connect 5 1 6 0;
#X connect 6 0 9 1;
#X connect 8 0 1 0;
#X connect 8 1 12 0;
#X connect 9 0 8 0;
#X connect 10 0 9 1;
#X connect 11 0 4 0;
#X restore 660 483 pd check_installed_externals;
#X msg 1410 269 \; pd dsp 0;
#X obj 1409 167 loadbang;
#X obj 1410 244 delay 1;
#X obj 1410 197 t b b;
#X msg 1506 303 \; pd dsp 1;
#X obj 1506 248 delay 1000;
#X obj 950 426 r \$0-midi_learn_ok;
#X obj 327 293 t b b b;
#X obj 366 415 s ACTIVE_DOLLARZERO;
#X obj 328 486 s MIDI_MAP_SETTINGS;
#X obj 209 302 t b b;
#X obj 207 399 s MIDI_MAP_SETTINGS;
#X obj 236 377 s ACTIVE_DOLLARZERO;
#X obj 90 505 key;
#X obj 661 511 sendcanvas 1;
#X obj 733 881 t b f;
#X obj 82 1060 unpack f f;
#X obj 80 909 route motion zoom;
#X obj 82 1114 / 1;
#X obj 148 1116 / 1;
#X obj 80 1160 pack f f;
#X obj 80 1185 s \$0-coords;
#X obj 80 1027 spigot 1;
#X obj 116 992 == 0;
#X obj 116 963 r \$0-modules_menu_opened;
#X obj 232 995 select 0;
#X msg 232 1020 200 200;
#X obj 77 790 receivecanvas 1;
#X obj 177 235 cnv 5 1 1 empty empty Esc.Key 0 0 0 9 #feffc6 #404040 0;
#X obj 173 242 vradio 11 1 0 2 \$0-disable_escape \$0-disable_escape-rcv ON 14 4 0 7 #fffff7 #000000 #000000 0;
#X text 99 223 MODULES;
#X obj 1008 918 s \$0-active-rcv;
#X obj 985 788 change;
#X obj 985 813 select 1 0;
#X msg 1106 876 color #aaaaaa #aaaaaa #aaaaaa;
#X msg 959 855 color #ccffcc #ccffcc #ccffcc;
#X obj 145 512 r ACTIVE_DOLLARZERO;
#N canvas 0 0 542 432 check_if_vanilla 0;
#X obj 70 44 loadbang;
#X obj 60 250 delay 1;
#N canvas 288 173 596 300 \$0-AUTOMATONISM 0;
#X text 72 96 You can rename it and save it anywhere on your filesystem;
#N canvas 741 118 450 252 open_automatonism_template 0;
#X obj 96 15 inlet;
#X obj 91 192 pdcontrol;
#X msg 92 161 dir;
#X msg 89 225 \; pd open _main_patch(template).pd \$1;
#X connect 0 0 2 0;
#X connect 1 0 3 0;
#X connect 2 0 1 0;
#X restore 176 138 pd open_automatonism_template;
#X obj 177 119 bng 15 250 50 0 empty empty OPEN_AUTOMATONISM_VANILLA_TEMPLATE 17 7 0 10 #fcfcfc #000000 #000000;
#X text 60 156 ** OR **;
#X text 25 182 (for enhanced editing features);
#X text 35 78 -Please start using the vanilla patch named _main_patch(template).pd, f 92;
#X obj 10 49 cnv 16 500 15 empty empty empty 20 12 0 10 #ff8300 #404040 0;
#X obj 13 14 cnv 16 500 30 empty empty WELCOME\ TO\ AUTOMATONISM\ (RELOADED) 20 12 0 20 #c6ffc7 #404040 0;
#X text 17 48 !!! You are using a PureData vanilla setup (i.e. without iemguts external) !!!, f 82;
#X text 30 203 - Add iemguts external (menu tools -> find externals and search for iemguts, f 77;
#X text 31 223 - and restart (by typing [automatonism] in a blanck patch);
#X connect 2 0 1 0;
#X restore 240 30 pd \$0-AUTOMATONISM;
#X msg 61 331 vis 1;
#X obj 60 368 s pd-\$0-AUTOMATONISM;
#X obj 60 298 select 1;
#X obj 60 274 v ELSE_NOT_LOADED;
#X obj 70 90 delay 1;
#X obj 60 131 v is_patch_editor_path_declared;
#X obj 70 176 select 1;
#X obj 337 234 r \$1-saveas;
#X msg 337 255 menusaveas;
#X obj 337 276 s \$1-this;
#X text 318 213 enable to rename template;
#X connect 0 0 7 0;
#X connect 1 0 6 0;
#X connect 3 0 4 0;
#X connect 5 0 3 0;
#X connect 6 0 5 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 9 0 1 0;
#X connect 10 0 11 0;
#X connect 11 0 12 0;
#X restore 731 392 pd check_if_vanilla;
#N canvas 1073 552 450 252 check_if_plugdata 0;
#X obj 89 129 r playhead;
#X obj 85 163 route playing, f 15;
#X msg 80 198 1;
#X obj 80 227 v IS_PLUGDATA;
#X text 150 62 next plugdataversions;
#X text 181 129 waiting for official release;
#X obj 53 62 r __playhead;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 6 0 1 0;
#X restore 731 370 pd check_if_plugdata;
#N canvas 465 103 979 798 check 0;
#X obj 517 601 v is_patch_editor_path_declared;
#X msg 518 572 1;
#X obj 119 697 s \$0-target_patch;
#X obj 58 455 f;
#X obj 62 484 +;
#X obj 121 247 print Automatonism;
#X text 267 289 ______;
#X obj 119 587 select 1 3 2;
#X obj 61 512 select 0;
#X obj 45 801 print Automatonism;
#X msg 47 757 Error : couldn't find automatonism's core directories. Please check your installation.;
#X obj 60 180 t b b b b b;
#X obj 48 128 file which;
#X obj 48 77 loadbang;
#X obj 580 330 file which;
#X obj 579 374 t b;
#X text 581 281 path to automatonism folder declared ?;
#X obj 91 352 file which;
#X obj 89 380 t b;
#X msg 579 399 2;
#X msg 82 413 1;
#X text 120 288 path to automatonism parent folder declared ?;
#X text 128 28 Checking declared pathes;
#X msg 93 310 symbol automatonism/patch_editor_abs/is_patch_editor_path_declared.pd, f 64;
#X msg 47 102 symbol is_patch_editor_path_declared.pd;
#X msg 579 304 symbol patch_editor_abs/is_patch_editor_path_declared.pd;
#X msg 122 208 Welcome to Automatonism [reloaded] ! \, [declare] object is being added to main patch.;
#X obj 118 549 t f b;
#X msg 114 619 obj 10 30 declare -path automatonism/patch_editor_abs;
#X msg 175 668 obj 10 30 declare -path patch_editor_abs;
#X connect 1 0 0 0;
#X connect 3 0 4 0;
#X connect 4 0 8 0;
#X connect 7 0 28 0;
#X connect 7 1 28 0;
#X connect 7 2 29 0;
#X connect 8 0 10 0;
#X connect 8 1 27 0;
#X connect 10 0 9 0;
#X connect 11 0 3 0;
#X connect 11 1 23 0;
#X connect 11 2 25 0;
#X connect 11 3 26 0;
#X connect 12 1 11 0;
#X connect 13 0 24 0;
#X connect 14 0 15 0;
#X connect 15 0 19 0;
#X connect 17 0 18 0;
#X connect 18 0 20 0;
#X connect 19 0 4 1;
#X connect 20 0 3 1;
#X connect 23 0 17 0;
#X connect 24 0 12 0;
#X connect 25 0 14 0;
#X connect 26 0 5 0;
#X connect 27 0 7 0;
#X connect 27 1 1 0;
#X connect 28 0 2 0;
#X connect 29 0 2 0;
#X restore 732 341 pd check declared paths;
#X obj 410 993 t f b;
#X obj 436 1076 v IS_PLUGDATA;
#X obj 436 1105 == 0;
#X obj 410 1143 spigot 1;
#N canvas 0 25 723 566 modes(midi_learn/midi_map_from/midi_map_to 0;
#X obj 153 18 inlet;
#X obj 216 294 == 0;
#X msg 193 253 1;
#X obj 149 61 + 1;
#X obj 130 322 * 1;
#X obj 179 290 f 1;
#X obj 406 335 s MIDI_MAP_TO;
#X obj 559 339 s MIDI_MAP_FROM;
#X msg 282 196 \$1 0;
#X obj 130 358 select 0;
#X obj 130 383 f;
#X msg 130 408 \$1 0;
#X msg 191 407 \$1 1;
#X obj 305 293 t f f;
#X obj 367 294 t f f;
#X obj 433 297 t f f;
#X obj 264 170 f;
#X obj 207 229 t b b;
#X obj 326 252 route 1 3 2;
#X obj 163 173 select;
#X obj 272 464 select 0 1;
#X msg 263 505 color 4 4;
#X msg 342 503 color 13 13;
#X obj 462 464 select 0 1;
#X obj 642 464 select 0 1;
#X msg 712 503 color 16 16;
#X msg 633 505 color 6 6;
#X msg 453 505 color 7 7;
#X msg 532 503 color 17 17;
#X obj 263 530 s \$0-midi_learn-rcv;
#X obj 453 530 s \$0-midi_map_to-rcv;
#X obj 633 530 s \$0-midi_map_from-rcv;
#X obj 324 54 r \$0-midi_learn;
#X msg 464 80 2;
#X msg 592 81 3;
#X msg 324 79 1;
#X obj 464 55 r \$0-midi_map_from;
#X obj 550 17 r \$0-midi_map_to;
#X obj 131 105 t f f f f f b;
#X obj 393 193 s ACTIVE_DOLLARZERO;
#X obj 285 332 s MIDI_LEARN;
#X obj 395 159 f \$1;
#X obj 415 121 r \$0-dollarzero;
#X connect 0 0 3 0;
#X connect 1 0 5 1;
#X connect 2 0 5 0;
#X connect 3 0 38 0;
#X connect 4 0 9 0;
#X connect 5 0 1 0;
#X connect 5 0 4 1;
#X connect 8 0 18 0;
#X connect 9 0 10 0;
#X connect 9 1 12 0;
#X connect 10 0 11 0;
#X connect 11 0 18 0;
#X connect 12 0 18 0;
#X connect 13 0 40 0;
#X connect 13 1 20 0;
#X connect 14 0 6 0;
#X connect 14 1 23 0;
#X connect 15 0 7 0;
#X connect 15 1 24 0;
#X connect 16 0 8 0;
#X connect 17 0 2 0;
#X connect 17 1 16 0;
#X connect 18 0 13 0;
#X connect 18 1 14 0;
#X connect 18 2 15 0;
#X connect 19 0 5 0;
#X connect 19 1 17 0;
#X connect 20 0 21 0;
#X connect 20 1 22 0;
#X connect 21 0 29 0;
#X connect 22 0 29 0;
#X connect 23 0 27 0;
#X connect 23 1 28 0;
#X connect 24 0 26 0;
#X connect 24 1 25 0;
#X connect 25 0 31 0;
#X connect 26 0 31 0;
#X connect 27 0 30 0;
#X connect 28 0 30 0;
#X connect 32 0 35 0;
#X connect 33 0 38 0;
#X connect 34 0 38 0;
#X connect 35 0 38 0;
#X connect 36 0 33 0;
#X connect 37 0 34 0;
#X connect 38 0 4 0;
#X connect 38 1 10 1;
#X connect 38 2 19 1;
#X connect 38 3 16 1;
#X connect 38 4 19 0;
#X connect 38 5 41 0;
#X connect 41 0 39 0;
#X connect 42 0 41 1;
#X restore 954 551 pd modes(midi_learn/midi_map_from/midi_map_to;
#N canvas 0 25 1217 770 midi_input_for_mapping 0;
#X obj 87 100 r MIDI_LEARN;
#X msg 88 170 -1;
#X obj 444 34 ctlin;
#X obj 488 160 v MIDI_CHANNEL;
#X obj 303 148 notein;
#X obj 136 220 v MIDI_MAP_NUM;
#X obj 131 251 v MIDI_MAP_TYPE;
#X obj 471 194 v MIDI_MAP_NUM;
#X obj 132 187 v MIDI_MAP_CHANNEL;
#X obj 451 249 v MIDI_MAP_TYPE;
#X msg 455 225 0;
#X obj 342 174 v MIDI_CHANNEL;
#X obj 310 254 v MIDI_MAP_NUM;
#X obj 322 230 v MIDI_MAP_TYPE;
#X msg 326 206 1;
#X floatatom 516 108 5 0 0 0 - - - 0;
#X msg 579 115 1;
#X obj 705 294 r MIDI_LEARN;
#X obj 303 361 spigot;
#X obj 310 321 pack f f;
#X obj 609 288 pack f f;
#X obj 611 331 spigot;
#X obj 606 403 s \$0-midi_in;
#X msg 611 367 label ctl:\$2:\$1;
#X msg 303 394 label note:\$2:\$1;
#X msg 77 310 label ...;
#X obj 88 145 select 1 0;
#X msg 193 298 label;
#X obj 943 215 v MIDI_CHANNEL;
#X obj 906 251 v MIDI_MAP_NUM;
#X obj 861 337 v MIDI_MAP_TYPE;
#X msg 857 289 3;
#X obj 858 118 t b l l;
#X obj 900 160 unpack f f;
#X obj 1094 294 r MIDI_LEARN;
#X obj 1051 326 spigot;
#X msg 1051 351 label MACRO:\$2:\$1;
#X obj 855 77 r MACRO_MAP;
#X text 908 287 3 = macro;
#X obj 586 496 key;
#X connect 0 0 26 0;
#X connect 1 0 5 0;
#X connect 1 0 8 0;
#X connect 1 0 6 0;
#X connect 2 1 7 0;
#X connect 2 1 10 0;
#X connect 2 1 20 0;
#X connect 2 2 3 0;
#X connect 2 2 20 1;
#X connect 4 0 12 0;
#X connect 4 0 14 0;
#X connect 4 0 19 0;
#X connect 4 2 11 0;
#X connect 4 2 19 1;
#X connect 10 0 9 0;
#X connect 14 0 13 0;
#X connect 15 0 7 0;
#X connect 15 0 10 0;
#X connect 16 0 3 0;
#X connect 17 0 18 1;
#X connect 17 0 21 1;
#X connect 18 0 24 0;
#X connect 19 0 18 0;
#X connect 20 0 21 0;
#X connect 21 0 23 0;
#X connect 23 0 22 0;
#X connect 24 0 22 0;
#X connect 25 0 22 0;
#X connect 26 0 1 0;
#X connect 26 0 25 0;
#X connect 26 1 27 0;
#X connect 27 0 22 0;
#X connect 31 0 30 0;
#X connect 32 0 31 0;
#X connect 32 1 33 0;
#X connect 32 2 35 0;
#X connect 33 0 29 0;
#X connect 33 1 28 0;
#X connect 34 0 35 1;
#X connect 35 0 36 0;
#X connect 36 0 22 0;
#X connect 37 0 32 0;
#X restore 955 581 pd midi_input_for_mapping;
#X obj 581 176 canvasargs;
#X msg 582 153 list \\\$0;
#X obj 102 131 bng 15 250 50 0 empty empty <--web-site 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 0 457 pdcontrol;
#X msg -1 431 browse https://github.com/jyg/automatonism-reloaded;
#X obj 103 627 spigot 1;
#X obj 733 795 f \$1, f 7;
#X obj 985 763 == \$1;
#X obj 236 352 f \$1;
#X obj 145 589 == \$1;
#X obj 365 379 f \$1;
#X text 663 158 INSTANCE SANS ARGUMENTS : forcer la valeur de \$0 du patch parent;
#X text 346 808 menu interface with all modules;
#X text 949 1252 help popups;
#X obj 21 567 r \$0-open-modules!;
#X obj 89 707 spigot 1;
#X obj 1679 655 savestate;
#X obj 1629 703 list trim;
#X obj 581 198 s \$0-target_patch;
#X obj 77 875 spigot 1;
#X obj 187 258 cnv 5 1 1 empty empty OFF 0 0 0 7 #feffc6 #000000 0;
#X obj 194 699 == 0;
#X obj 194 669 r \$0-disable_escape;
#X obj 116 846 == 0;
#X obj 116 822 r \$0-disable_escape;
#X obj 1786 639 r \$0-disable_escape;
#X obj 1770 724 list prepend disable_escape;
#X obj 1577 743 route disable_escape;
#X obj 1580 850 s \$0-disable_escape-rcv;
#X obj 1770 676 f;
#X obj 1580 795 select 0;
#N canvas 50 60 800 758 \$0-modules 0;
#X obj 196 91 cnv 15 180 15 empty empty MODULATION: 10 8 0 12 #9898dc #fcfcfc 0;
#X obj 196 112 bng 15 250 50 0 \$0-create-basic-lfo! empty <--BASIC-LFO 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 10 41 cnv 15 740 45 empty empty MODULES 350 12 0 14 #90d4b0 #fcfcfc 0;
#X obj 10 91 cnv 15 180 15 empty empty OSCILLATORS: 10 8 0 12 #9898dc #fcfcfc 0;
#X obj 10 10 cnv 15 740 30 empty empty WELCOME-TO-AUTOMATONISM 300 12 0 14 #90d4b0 #fcfcfc 0;
#X obj 10 211 bng 15 250 50 0 \$0-create-2op-fm! empty <--2OPFM 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 382 91 cnv 15 180 15 empty empty SOUND-PROCESSORS: 10 8 0 12 #9898dc #fcfcfc 0;
#X obj 383 130 bng 15 250 50 0 \$0-create-hp-filter! empty <--HP-FILTER 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 383 150 bng 15 250 50 0 \$0-create-bp-filter! empty <--BP-FILTER 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 383 209 bng 15 250 50 0 \$0-create-bob-filter! empty <--BOB-FILTER 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 383 229 bng 15 250 50 0 \$0-create-formant! empty <--FORMANT 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 383 249 bng 15 250 50 0 \$0-create-bitcrush! empty <--BITCRUSH 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 383 268 bng 15 250 50 0 \$0-create-wavefold! empty <--WAVEFOLD 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 383 288 bng 15 250 50 0 \$0-create-phasor! empty <--PHASOR 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 383 308 bng 15 250 50 0 \$0-create-combfilter! empty <--COMBFILTER 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 383 328 bng 15 250 50 0 \$0-create-granular-delay! empty <--GRANULAR-DELAY 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 383 348 bng 15 250 50 0 \$0-create-millerverb! empty <--MILLERVERB 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 383 368 bng 15 250 50 0 \$0-create-stereo-delay! empty <--STEREO-DELAY 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 196 191 bng 15 250 50 0 \$0-create-slope! empty <--SLOPE(function-generator) 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 196 211 bng 15 250 50 0 \$0-create-adsr! empty <--ADSR 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 196 172 bng 15 250 50 0 \$0-create-decay! empty <--DECAY 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 196 231 bng 15 250 50 0 \$0-create-random-gates! empty <--RANDOM-GATES 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 196 251 bng 15 250 50 0 \$0-create-random-voltages! empty <--RANDOM-VOLTAGES 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 196 310 bng 15 250 50 0 \$0-create-vca! empty <--VCA 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 569 579 cnv 15 180 15 empty empty MACRO-STRUCTURAL-TOOLS: 10 8 0 12 #9898dc #fcfcfc 0;
#X obj 568 91 cnv 15 180 15 empty empty UTILITY-LOGIC-CLOCKS: 10 8 0 12 #9898dc #fcfcfc 0;
#X obj 10 536 cnv 15 180 15 empty empty SEQUENCERS: 10 8 0 12 #9898dc #fcfcfc 0;
#X obj 196 271 bng 15 250 50 0 \$0-create-s&h! empty <--S&H(sample&hold) 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 196 330 bng 15 250 50 0 \$0-create-lpg! empty <--LPG(lopass-gate) 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 196 371 bng 15 250 50 0 \$0-create-3way-xfade! empty <--3WAY-XFADE 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 196 391 bng 15 250 50 0 \$0-create-polarizer! empty <--POLARIZER 17 7 0 10 #fcfcfc #000000 #000000;
#X obj 196 410 bng 15 250 50 0 \$0-create-mixer2! empty <--MIXER2(2-channel) 17 7 0 10 #fcfcfc #000000 #000000;