Hi Rishabh,
If you switch between two input signals without some kind of cross-fade (fading one signal out while the other is faded in) you will most likely experience an audible click.
To mix between two groups of 8 inputs you can use 8 polygate~ objects with the arguments of each one set for example as "2 100". The 2 is the number of input channels and the 100 is the cross-fade time in msec. You can adjust the value to a much longer time if you wish. Best leave polygate~ at its default "equal power" setting (see the help file) as this offers a more even loudness (perceived amplitude) during the fade (switch), assuming the 2 inputs are of roughly equal amplitude.
I've attached an example patch - and will paste contents below.
Don't forget you'll need to launch Pd with the command line argument "-channels 16" in order to patch with jack.
Cheers and good luck
iain
#N canvas 332 91 1212 660 10; #X obj 187 -14 adc~ 1 2 3 4 5 6 7 8; #X obj 388 -15 adc~ 9 10 11 12 13 14 15 16; #X obj 257 107 polygate~ 2 100; #X obj 281 133 polygate~ 2 100; #X obj 305 159 polygate~ 2 100; #X obj 332 185 polygate~ 2 100; #X obj 350 217 polygate~ 2 100; #X obj 377 243 polygate~ 2 100; #X obj 401 269 polygate~ 2 100; #X obj 428 295 polygate~ 2 100; #X obj 269 327 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 3800 1; #X obj 199 481 r~ fader1; #X obj 192 129 s~ fader1; #X obj 202 161 s~ fader2; #X obj 224 192 s~ fader3; #X obj 235 216 s~ fader4; #X obj 277 241 s~ fader5; #X obj 297 270 s~ fader6; #X obj 337 297 s~ fader7; #X obj 399 328 s~ fader8; #X msg -121 29 ftime-epower $1; #X msg 56 27 choice $1; #X floatatom -121 5 5 0 0 0 - - -; #X text -167 -15 set cross-fade time (msec); #X text 34 -23 choose location; #N canvas 72 366 600 400 tone2 0; #X obj 235 235 outlet~; #X obj 276 197 *~ 0.2; #X obj 228 157 osc~ 600; #X connect 1 0 0 0; #X connect 2 0 1 0; #X restore 357 -56 pd tone2; #N canvas 1 66 600 400 tone1 0; #X obj 131 240 outlet~; #X obj 124 162 osc~ 500; #X obj 172 202 *~ 0.2; #X connect 1 0 2 0; #X connect 2 0 0 0; #X restore 295 -57 pd tone1; #X msg 37 2 1; #X msg 75 3 2; #X text 207 -36 location 1; #X text 431 -36 location 2; #X obj 547 596 dac~ 1 2; #X obj 255 508 *~; #X obj 269 487 line~; #X msg 269 464 $1 100; #X obj 379 328 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 0 1; #X obj 365 509 *~; #X obj 379 488 line~; #X msg 379 465 $1 100; #X obj 496 330 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 0 1; #X obj 482 511 *~; #X obj 496 490 line~; #X msg 496 467 $1 100; #X obj 606 331 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 0 1; #X obj 592 512 *~; #X obj 606 491 line~; #X msg 606 468 $1 100; #X obj 727 334 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 0 1; #X obj 713 515 *~; #X obj 727 494 line~; #X msg 727 471 $1 100; #X obj 837 335 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 0 1; #X obj 823 516 *~; #X obj 837 495 line~; #X msg 837 472 $1 100; #X obj 954 337 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 0 1; #X obj 940 518 *~; #X obj 954 497 line~; #X msg 954 474 $1 100; #X obj 1064 338 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144 -1 -1 0 1; #X obj 1050 519 *~; #X obj 1064 498 line~; #X msg 1064 475 $1 100; #X obj 310 483 r~ fader2; #X obj 426 484 r~ fader3; #X obj 536 485 r~ fader4; #X obj 657 488 r~ fader5; #X obj 767 489 r~ fader6; #X obj 885 491 r~ fader7; #X obj 994 492 r~ fader8; #X text 284 -76 you can use these to test; #X connect 0 0 2 0; #X connect 0 1 3 0; #X connect 0 2 4 0; #X connect 0 3 5 0; #X connect 0 4 6 0; #X connect 0 5 7 0; #X connect 0 6 8 0; #X connect 0 7 9 0; #X connect 1 0 2 1; #X connect 1 1 3 1; #X connect 1 2 4 1; #X connect 1 3 5 1; #X connect 1 4 6 1; #X connect 1 5 7 1; #X connect 1 6 8 1; #X connect 1 7 9 1; #X connect 2 0 12 0; #X connect 3 0 13 0; #X connect 4 0 14 0; #X connect 5 0 15 0; #X connect 6 0 16 0; #X connect 7 0 17 0; #X connect 8 0 18 0; #X connect 9 0 19 0; #X connect 10 0 34 0; #X connect 11 0 32 0; #X connect 20 0 2 0; #X connect 20 0 3 0; #X connect 20 0 4 0; #X connect 20 0 5 0; #X connect 20 0 6 0; #X connect 20 0 7 0; #X connect 20 0 8 0; #X connect 20 0 9 0; #X connect 21 0 2 0; #X connect 21 0 3 0; #X connect 21 0 4 0; #X connect 21 0 5 0; #X connect 21 0 6 0; #X connect 21 0 7 0; #X connect 21 0 8 0; #X connect 21 0 9 0; #X connect 22 0 20 0; #X connect 27 0 21 0; #X connect 28 0 21 0; #X connect 32 0 31 0; #X connect 32 0 31 1; #X connect 33 0 32 1; #X connect 34 0 33 0; #X connect 35 0 38 0; #X connect 36 0 31 0; #X connect 36 0 31 1; #X connect 37 0 36 1; #X connect 38 0 37 0; #X connect 39 0 42 0; #X connect 40 0 31 0; #X connect 40 0 31 1; #X connect 41 0 40 1; #X connect 42 0 41 0; #X connect 43 0 46 0; #X connect 44 0 31 0; #X connect 44 0 31 1; #X connect 45 0 44 1; #X connect 46 0 45 0; #X connect 47 0 50 0; #X connect 48 0 31 0; #X connect 48 0 31 1; #X connect 49 0 48 1; #X connect 50 0 49 0; #X connect 51 0 54 0; #X connect 52 0 31 0; #X connect 52 0 31 1; #X connect 53 0 52 1; #X connect 54 0 53 0; #X connect 55 0 58 0; #X connect 56 0 31 0; #X connect 56 0 31 1; #X connect 57 0 56 1; #X connect 58 0 57 0; #X connect 59 0 62 0; #X connect 60 0 31 0; #X connect 60 0 31 1; #X connect 61 0 60 1; #X connect 62 0 61 0; #X connect 63 0 36 0; #X connect 64 0 40 0; #X connect 65 0 44 0; #X connect 66 0 48 0; #X connect 67 0 52 0; #X connect 68 0 56 0; #X connect 69 0 60 0;
On Sat, 2012-04-07 at 16:43 -0400, Rishabh Natarajan wrote:
Hi Iain,
I just read a little while back that you can indeed use multiple adcs~ in one patch, but no where is it explained for my particular case. I don't want multiple adcs~ to route some channels here and some other channels some where else. I need to be able to switch between 2 interfaces within the same patch, so that I can use the same set of sliders to mix sound, separately, either coming in from the internet via Jacktrip or locally via my local interface.
What I would then do is, the output of the adc~ receiving audio channels from Jacktrip over the internet will be routed to the dac~ to the local sound, while the adc~ receiving audio channels from my local setup, should be routed to some dac~ that will send the audio over Jacktrip to the remote location.
I'm not quite sure what you mean by crossfade. I just want to switch the sliders in my patch to either control sound coming via jacktrip or to control sound coming via my local interface, i.e. sound coming in from the internet or sound coming in from local musicians.It has nothing to do with timing between signals, just a switch between the incoming sets of audio. The idea is to use the same set of 8 sliders to manage 8 channels either coming in from Jacktrip or coming in from the local interface. I think the term 'fader' is misleading; when I say fader I mean the sliders that one finds on a mixer. I hope that makes my problem a little more clear :)
Regards, Rishabh
On Sat, Apr 7, 2012 at 4:24 PM, Iain Mott mott@reverberant.com wrote: Hi
In answer to question 1, and if I'm understanding correctly, yes you can have more than one adc~ in the patch or specify the input channels in a particular adc~. eg an object with "adc~ 1 2 3 4 5 6 7" will receive 7 input channels numbered 1-7. These can receive their signals via jack routing. In regard to switching between inputs, you might consider polygate~ from motex in pd-extended. This allows you to cross-fade between up to 10 inputs. You can set a cross-fade time in milliseconds and choose between linear or equal-power fading. If you need to switch between more than 10 inputs, just use more polygate~ objects - and you'll need two at least anyway for a stereo mix. cheers, Iain On Sat, 2012-04-07 at 13:57 -0400, Rishabh Natarajan wrote: > Hi, > > > I'm trying to build a virtual mixer in pd for telematic music. > Telematic music is a genre of music where the musicians collaborate > live but are situated in different locations (cities), over the > internet. > > > My mixer should be able to take in remote channels coming in through > Jack and route to the local sound system and also, through some > interface be able to take in local inputs and send out via Jack to the > remote system. > > > The questions I have are: > 1. can I have 2 adc~ objects in one patch? So that I can switch the > same set of faders to control either signals going to and coming from > Jack or going to and coming from my local interface? if so, how do I > achieve this? > 2. If I need to be able to route sound over the internet via Jack and > to and from my local system via an interface, how do I make pd use > both Jack and the local interface (for example the coremidi on a mac) > at the same time? This sort of ties in with the first question. > > > My time to do all of this is really short and I am very new to pd. Any > help with this would really, really be appreciated! > > > Thanks, > Rishabh > _______________________________________________ > Pd-list@iem.at mailing list > UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list