From 7c56622ace1da1d3fe73c10049d6642631a60e80 Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Tue, 24 Aug 2004 02:44:38 +0000 Subject: "" svn path=/trunk/; revision=1973 --- externals/grill/vst/pd/help-vst~.pd | 232 ++++++++++++++++++------------------ externals/grill/vst/src/main.cpp | 25 +++- 2 files changed, 141 insertions(+), 116 deletions(-) (limited to 'externals/grill/vst') diff --git a/externals/grill/vst/pd/help-vst~.pd b/externals/grill/vst/pd/help-vst~.pd index f27c9e54..f546d7a8 100644 --- a/externals/grill/vst/pd/help-vst~.pd +++ b/externals/grill/vst/pd/help-vst~.pd @@ -1,19 +1,16 @@ -#N canvas 180 14 842 665 12; +#N canvas 130 41 801 527 12; #X obj 26 190 dac~; #X obj 26 94 noise~; -#X obj 473 178 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 8 -225271 --1 -1 0 1; -#X msg 470 195 param 2 \$1; #X obj 140 192 print A; -#X obj 27 451 tgl 15 0 empty empty empty 0 -6 0 8 -225271 -1 -1 0 1 -; -#X msg 26 473 vis \$1; -#X obj 27 367 tgl 15 0 empty empty empty 0 -6 0 8 -225271 -1 -1 0 1 +#X obj 230 433 tgl 15 0 empty empty empty 0 -6 0 8 -225271 -1 -1 0 +1; +#X msg 229 455 vis \$1; +#X obj 25 430 tgl 15 0 empty empty empty 0 -6 0 8 -225271 -1 -1 0 1 ; -#X msg 26 389 edit \$1; -#X msg 94 389 getedit; -#X msg 89 473 getvis; -#N canvas 367 122 550 426 info 0; +#X msg 24 452 edit \$1; +#X msg 92 452 getedit; +#X msg 292 455 getvis; +#N canvas 367 122 558 434 info 0; #X msg 94 130 getversion; #X msg 94 75 getname; #X msg 95 153 getvendor; @@ -53,30 +50,21 @@ #X connect 19 0 7 0; #X connect 21 0 7 0; #X connect 23 0 7 0; -#X restore 26 616 pd info; +#X restore 445 110 pd info; #X obj 96 96 r \$0-vst; -#X obj 25 416 s \$0-vst; -#X obj 25 499 s \$0-vst; -#X text 52 366 display edit window; -#X text 50 449 make edit window (in)visible; -#X obj 432 360 s \$0-vst; -#X obj 409 617 s \$0-vst; -#X msg 532 478 getprogram; -#X msg 433 96 getparams; -#X text 511 96 get number of parameters; -#X text 504 406 get number of programs; -#X msg 409 409 getprograms; -#X msg 572 196 getparam 2; +#X obj 23 479 s \$0-vst; +#X obj 228 481 s \$0-vst; +#X text 50 429 display edit window; +#X text 253 431 make edit window (in)visible; #X msg 105 295 getplug; #X obj 26 323 s \$0-vst; #X text 65 249 set/get plugin; -#X text 92 616 further information; +#X text 511 110 further information; #X obj 23 15 cnv 15 750 58 empty empty vst~ 10 32 0 24 -260818 -1 0 ; -#X text 134 53 http://www.parasitaere-kapazitaeten.net; #X text 137 173 attribute outlet; #X text 103 137 inlets outlets [plugname]; -#N canvas 367 122 465 214 win 0; +#N canvas 367 122 477 226 win 0; #X obj 34 160 s \$0-vst; #X msg 26 109 getx; #X text 155 110 get window coordinates; @@ -95,18 +83,13 @@ #X connect 5 0 0 0; #X connect 6 0 7 0; #X connect 7 0 0 0; -#X restore 26 542 pd win; -#X text 92 542 manipulating the edit window; -#X msg 470 242 param gain 0; -#X text 542 144 get parameter name; -#X text 484 312 get value in textual representation; -#X text 495 217 set/get parameter (0-based); -#X text 463 497 set/get program (0-based); +#X restore 446 244 pd win; +#X text 512 244 manipulating the edit window; #X msg 28 296 plug \$1; #X obj 27 240 bng 25 250 50 0 empty empty empty 0 -6 0 8 -225271 -1 -1; #X obj 27 271 openpanel; -#N canvas 461 281 490 335 midi 0; +#N canvas 461 281 498 343 midi 0; #X obj 20 279 s \$0-vst; #X msg 238 147 ctlchg 3 123; #X text 116 28 note on; @@ -118,18 +101,18 @@ #X msg 197 30 noteoff 10; #X text 315 282 after touch; #X obj 238 213 nbx 5 14 -1e+037 1e+037 0 0 empty empty empty 0 -6 0 -10 -262144 -1 -1 0 256; +10 -225271 -1 -1 0 256; #X obj 238 264 nbx 5 14 -1e+037 1e+037 0 0 empty empty empty 0 -6 0 -10 -262144 -1 -1 0 256; +10 -225271 -1 -1 0 256; #X msg 237 233 pbend \$1; #X msg 236 283 atouch \$1; #X obj 35 71 nbx 5 14 -1e+037 1e+037 0 0 empty empty empty 0 -6 0 10 --262144 -1 -1 0 256; +-225271 -1 -1 0 256; #X msg 20 29 note 10 100; #X msg 36 94 note \$1 100; #X msg 193 94 noteoff \$1; #X obj 194 72 nbx 5 14 -1e+037 1e+037 0 0 empty empty empty 0 -6 0 -10 -262144 -1 -1 0 256; +10 -225271 -1 -1 0 256; #X connect 1 0 0 0; #X connect 7 0 0 0; #X connect 8 0 0 0; @@ -142,89 +125,112 @@ #X connect 16 0 0 0; #X connect 17 0 0 0; #X connect 18 0 17 0; -#X restore 25 581 pd midi; -#X text 93 582 midi messages for vst synths; -#X msg 409 434 getprogcats; -#X text 504 431 get number of program categories; +#X restore 445 208 pd midi; #X text 134 33 based on the work of Jarno Seppanen and Mark Williamson ; #X text 133 14 VST plugins for PD \, (C)2003-04 Thomas Grill; #X obj 26 140 vst~ 1 2 @pnames 100; -#X obj 741 569 loadbang; -#X msg 741 596 \; pd dsp 1; -#X obj 228 339 tgl 15 0 empty empty empty 0 -6 0 8 -225271 -1 -1 0 +#X obj 666 433 loadbang; +#X msg 666 460 \; pd dsp 1; +#X obj 230 324 tgl 15 0 empty empty empty 0 -6 0 8 -225271 -1 -1 0 1; -#X obj 226 388 s \$0-vst; -#X msg 227 361 bypass \$1; -#X msg 309 361 getbypass; -#X text 253 338 bypass plugin; -#X obj 228 245 tgl 15 0 empty empty empty 0 -6 0 8 -225271 -1 -1 0 +#X obj 228 373 s \$0-vst; +#X msg 229 346 bypass \$1; +#X msg 311 346 getbypass; +#X text 255 323 bypass plugin; +#X obj 231 240 tgl 15 0 empty empty empty 0 -6 0 8 -225271 -1 -1 0 1; -#X obj 226 294 s \$0-vst; -#X text 253 244 mute output; -#X msg 227 267 mute \$1; -#X msg 309 267 getmute; -#X msg 429 478 program \$1; -#X obj 430 462 nbx 5 14 0 10000 0 0 empty empty empty 0 -6 0 10 -225271 +#X obj 229 289 s \$0-vst; +#X text 256 239 mute output; +#X msg 230 262 mute \$1; +#X msg 312 262 getmute; +#N canvas 200 110 473 372 parameters 0; +#X obj 84 118 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 8 -225271 +-1 -1 0 1; +#X msg 81 135 param 2 \$1; +#X obj 40 324 s \$0-vst; +#X msg 44 36 getparams; +#X text 122 36 get number of parameters; +#X msg 183 136 getparam 2; +#X msg 84 192 param gain 0; +#X text 153 84 get parameter name; +#X text 97 267 get value in textual representation; +#X text 106 157 set/get parameter (0-based); +#X msg 84 245 getptext \$1; +#X obj 84 228 nbx 5 14 0 10000 0 0 empty empty empty 0 -6 0 10 -225271 -1 -1 0 256; -#X msg 471 290 getptext \$1; -#X obj 471 273 nbx 5 14 0 10000 0 0 empty empty empty 0 -6 0 10 -225271 +#X obj 61 68 nbx 5 14 0 10000 0 0 empty empty empty 0 -6 0 10 -225271 -1 -1 0 256; -#X obj 450 128 nbx 5 14 0 10000 0 0 empty empty empty 0 -6 0 10 -225271 +#X msg 61 86 getpname \$1; +#X msg 189 245 getptext gain; +#X msg 191 192 getparam gain; +#X text 93 283 (may be ambigous!); +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 3 0 2 0; +#X connect 5 0 2 0; +#X connect 6 0 2 0; +#X connect 10 0 2 0; +#X connect 11 0 10 0; +#X connect 12 0 13 0; +#X connect 13 0 2 0; +#X connect 14 0 2 0; +#X connect 15 0 2 0; +#X restore 444 143 pd parameters; +#N canvas 0 0 458 308 programs 0; +#X obj 39 245 s \$0-vst; +#X msg 162 106 getprogram; +#X text 134 34 get number of programs; +#X msg 39 37 getprograms; +#X text 93 125 set/get program (0-based); +#X msg 39 62 getprogcats; +#X text 134 59 get number of program categories; +#X msg 59 106 program \$1; +#X obj 60 90 nbx 5 14 0 10000 0 0 empty empty empty 0 -6 0 10 -225271 -1 -1 0 256; -#X msg 450 146 getpname \$1; -#X msg 576 290 getptext gain; -#X msg 580 242 getparam gain; -#X obj 434 516 nbx 5 14 0 10000 0 0 empty empty empty 0 -6 0 10 -225271 +#X obj 64 144 nbx 5 14 0 10000 0 0 empty empty empty 0 -6 0 10 -225271 -1 -1 0 256; -#X msg 432 533 getprogname \$1; -#X text 552 530 get program name; -#X obj 433 567 nbx 5 14 0 10000 0 0 empty empty empty 0 -6 0 10 -225271 +#X msg 62 161 getprogname \$1; +#X text 182 158 get program name; +#X obj 63 195 nbx 5 14 0 10000 0 0 empty empty empty 0 -6 0 10 -225271 -1 -1 0 256; -#X text 569 582 get program name; -#X msg 431 584 getprogname 2 \$1; -#X text 571 596 (with category); -#X text 480 328 (may be ambigous!); -#X text 568 544 (no category); -#X connect 1 0 49 0; -#X connect 2 0 3 0; -#X connect 3 0 17 0; +#X text 199 210 get program name; +#X msg 61 212 getprogname 2 \$1; +#X text 201 224 (with category); +#X text 198 172 (no category); +#X connect 1 0 0 0; +#X connect 3 0 0 0; +#X connect 5 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 7 0; +#X connect 9 0 10 0; +#X connect 10 0 0 0; +#X connect 12 0 14 0; +#X connect 14 0 0 0; +#X restore 445 175 pd programs; +#X text 561 144 VST parameters; +#X text 562 175 VST programs; +#X text 134 53 http://grrrr.org; +#X text 513 209 midi messages for VST synths; +#X connect 1 0 30 0; +#X connect 3 0 4 0; +#X connect 4 0 12 0; #X connect 5 0 6 0; -#X connect 6 0 14 0; -#X connect 7 0 8 0; -#X connect 8 0 13 0; -#X connect 9 0 13 0; -#X connect 10 0 14 0; -#X connect 12 0 49 0; -#X connect 19 0 18 0; -#X connect 20 0 17 0; -#X connect 23 0 18 0; -#X connect 24 0 17 0; +#X connect 6 0 11 0; +#X connect 7 0 11 0; +#X connect 8 0 12 0; +#X connect 10 0 30 0; +#X connect 15 0 16 0; +#X connect 24 0 16 0; #X connect 25 0 26 0; -#X connect 35 0 17 0; -#X connect 40 0 26 0; -#X connect 41 0 42 0; -#X connect 42 0 40 0; -#X connect 45 0 18 0; -#X connect 49 0 0 0; -#X connect 49 1 0 1; -#X connect 49 2 4 0; -#X connect 50 0 51 0; -#X connect 52 0 54 0; -#X connect 54 0 53 0; -#X connect 55 0 53 0; -#X connect 57 0 60 0; -#X connect 60 0 58 0; -#X connect 61 0 58 0; -#X connect 62 0 18 0; -#X connect 63 0 62 0; -#X connect 64 0 17 0; -#X connect 65 0 64 0; -#X connect 66 0 67 0; -#X connect 67 0 17 0; -#X connect 68 0 17 0; -#X connect 69 0 17 0; -#X connect 70 0 71 0; -#X connect 71 0 18 0; -#X connect 73 0 75 0; -#X connect 75 0 18 0; +#X connect 26 0 24 0; +#X connect 30 0 0 0; +#X connect 30 1 0 1; +#X connect 30 2 2 0; +#X connect 31 0 32 0; +#X connect 33 0 35 0; +#X connect 35 0 34 0; +#X connect 36 0 34 0; +#X connect 38 0 41 0; +#X connect 41 0 39 0; +#X connect 42 0 39 0; diff --git a/externals/grill/vst/src/main.cpp b/externals/grill/vst/src/main.cpp index 13205a4d..00804e53 100644 --- a/externals/grill/vst/src/main.cpp +++ b/externals/grill/vst/src/main.cpp @@ -19,7 +19,7 @@ WARRANTIES, see the file, "license.txt," in this distribution. #include -#define VST_VERSION "0.1.0pre13" +#define VST_VERSION "0.1.0pre14" class vst: @@ -473,8 +473,27 @@ V vst::m_signal(I n,R *const *insigs,R *const *outsigs) int i,mx = CntInSig(); if(mx > CntOutSig()) mx = CntOutSig(); - for(i = 0; i < mx; ++i) - CopySamples(outsigs[i],insigs[i],n); + if(mx == 1) { + CopySamples(outsigs[0],insigs[0],n); + i = 1; + } + else if(mx == 2) { + R *o1 = outsigs[0],*o2 = outsigs[1]; + const R *i1 = insigs[0],*i2 = insigs[1]; + for(int s = 0; s < n; ++s) { + const R f = *(i1++); + *(o2++) = *(i2++); + *(o1++) = f; + } + i = 2; + } + else + for(i = 0; i < mx; ++i) { + // must copy via temporary buffer as ordering of output signals can collide with input signals + CopySamples(tmpin[i],insigs[i],n); + CopySamples(outsigs[i],tmpin[i],n); + } + for(; i < CntOutSig(); ++i) ZeroSamples(outsigs[i],n); } -- cgit v1.2.1