L'objet [poly~ ] permet d'ouvrir un patch et de le "multiplier" (en gérer plusieurs instances) un grand nombre de fois, ça permet de faire des synthés polyphoniques très facilement (sans devoir copier-coller et relier les générateurs pour chaque voix).
Il faut faire le patch que l'on veut "multiplier" dans un fichier séparé et remplacer les habituels inlet/outlet par les objets in et out.
Ensuite on le charge dans un objet poly~ : [poly~ monpatch x] avec x le nombre maximal de voix que l'on veut.
On peut ensuite envoyer un message à une seul voix en envoyant un message [target x] à poly.
En changeant un peu l'ordre dans les sorties de [poly] (objet qui permet de gerer la polyphonie au niveau "midi") on arrive à faire un synthé polyphonique pour pas cher et surtout très facilement modifiable.
Hors ligne
Patches au format txt :
SIMPLE SIN
max v2; #N vpatcher 493 159 777 728; #P window setfont "Sans Serif" 9.; #P window linecount 1; #P newex 96 298 53 9109513 selector~ 2; #N in 2; #P newobj 16 270 23 9109513 in 2; #P newex 111 225 29 9109513 saw~; #P newex 188 207 32 9109513 * 127.; #P user gain~ 97 343 24 100 127 0 1.071519 7.94321 15.; #P newex 53 67 54 9109513 unpack 1 1.; #P newex 53 153 28 9109513 mtof; #N out~ 1; #P newobj 98 501 33 9109513 out~ 1; #N in 1; #P newobj 53 35 23 9109513 in 1; #P newex 53 225 40 9109513 tri~; #P connect 1 0 4 0; #P connect 4 0 3 0; #P connect 3 0 0 0; #P fasten 8 0 9 0 21 294 101 294; #P fasten 6 0 5 0 193 337 102 337; #P connect 9 0 5 0; #P connect 5 0 2 0; #P connect 3 0 7 0; #P connect 0 0 9 1; #P connect 7 0 9 2; #P fasten 4 1 6 0 102 100 193 100; #P pop;
EXAMPLE POLY
max v2; #N vpatcher 168 62 816 764; #P origin 0 21; #P window setfont "Sans Serif" 9.; #P window linecount 1; #P newex 250 174 44 9109513 loadbang; #P message 8 211 34 9109513 open 1; #P number 250 200 35 9 1 2 3 139 0 0 0 221 221 221 222 222 222 0 0 0; #P message 250 230 39 9109513 target 0; #P newex 192 128 89 9109513 makenote 100 1000; #P user kslider 192 41 54 0 36 48 31 12 0 128 128 128 128 128 128 255 255 255 0 0 0 0 0 0; #N vpatcher 15 55 615 455; #N comlet velocity; #P inlet 127 61 15 0; #N comlet pitch; #P inlet 100 62 15 0; #N comlet voice number; #P inlet 69 62 15 0; #P window setfont "Sans Serif" 9.; #P comment 124 215 117 9109513 Le target doit tre ˆ droite; #P outlet 93 240 15 0; #P newex 102 156 31 9109513 / 127.; #P newex 67 189 44 9109513 pack 1 1.; #P newex 102 129 29 9109513 swap; #P newex 60 130 29 9109513 swap; #P message 117 190 44 9109513 target $1; #P connect 7 0 1 0; #P connect 1 0 3 0; #P connect 8 0 1 1; #P connect 3 0 5 0; #P connect 0 0 5 0; #P connect 4 0 3 1; #P connect 7 0 2 0; #P connect 2 0 4 0; #P connect 1 1 0 0; #P connect 9 0 2 1; #P pop; #P newobj 110 219 48 9109513 p swap; #P message 75 145 26 9109513 stop; #P newex 115 173 56 9109513 poly; #P user spectroscope~ 91 339 300 100 20 0 0 0 1 1 0 0 0 0 0 0; #X frgb 224 224 224; #X brgb 255 255 255; #X rgb2 0 0 0; #X rgb3 243 204 204; #X rgb4 255 0 0; #X rgb5 184 184 184; #X rgb6 0 0 0; #X rgb7 0 0 0; #X rgb8 255 255 255; #X rgb9 255 0 0; #X rgb10 255 191 0; #X rgb11 0 191 127; #X rgb12 127 0 127; #X rgb13 0 0 0; #X range 0. 1.2; #X domain 0. 22050.; #X done; #P newex 115 54 40 9109513 notein; #P newex 54 281 90 9109513 poly~ simple_sin 32; #P user gain~ 54 322 24 100 158 0 1.071519 7.94321 10.; #P user ezdac~ 43 470 87 503 0; #P window linecount 2; #P comment 292 231 100 9109513 Un message envoyŽ ˆ toutes les instances; #P comment 290 121 130 9109513 fais des notes d'une seconde , juste pour l'exemple; #P comment 6 180 61 9109513 Ouvre l'instance 1; #P connect 4 0 3 0; #P connect 10 0 5 0; #P fasten 15 0 5 0 13 264 59 264; #P connect 5 0 4 0; #P connect 4 0 3 1; #P connect 5 0 7 0; #P connect 8 0 10 0; #P connect 12 0 8 0; #P fasten 9 0 8 0 80 167 120 167; #P connect 6 0 8 0; #P connect 8 1 10 1; #P connect 14 0 5 1; #P connect 13 0 5 1; #P connect 8 2 10 2; #P connect 12 1 8 1; #P fasten 6 1 8 1 135 144 166 144; #P connect 11 0 12 0; #P connect 16 0 14 0; #P connect 14 0 13 0; #P pop;
Hors ligne
Pages: 1