[PD] Scanned Synthesis in PD using webcams
Frank Barknecht
fbar at footils.org
Wed Jul 18 19:08:13 CEST 2007
Hallo,
enrique franco hat gesagt: // enrique franco wrote:
> Hi Hans,
> >>
> >>
> >> Check out this very nice example from chdh that combines physical
> >> models, Gem graphics, and scanned synthesis. You can find it in the
> >> Help Browser of Pd-extended, Help->Browser->examples->pmpd-
> >> > 50.scann_synth.pd
> >>
> >> .hc
> Could you explain me how does the sound works in the >pmpd->
> 50.scann_synth.pd patch?
Basically you write the positions of the masses into a table, then
play back the table with [tabread4~] or [tabosc~].
The example patch does some more things to avoid clicks when changing
the table and also does a little playing with panning, but basically
it's just that.
Scanned synthesis actually is much easier to do with msd2D. Just
create a string of 32 connected masses inside msd, for example using
these settings made for a [textfile]
reset;
mass 0-m 0 100 -4.000000 0;
mass 0-m 1 100 -3.750000 0;
mass 0-m 1 100 -3.500000 0;
mass 0-m 1 100 -3.250000 0;
mass 0-m 1 100 -3.000000 0;
mass 0-m 1 100 -2.750000 0;
mass 0-m 1 100 -2.500000 0;
mass 0-m 1 100 -2.250000 0;
mass 0-m 1 100 -2.000000 0;
mass 0-m 1 100 -1.750000 0;
mass 0-m 1 100 -1.500000 0;
mass 0-m 1 100 -1.250000 0;
mass 0-m 1 100 -1.000000 0;
mass 0-m 1 100 -0.750000 0;
mass 0-m 1 100 -0.500000 0;
mass 0-m 1 100 -0.250000 0;
mass 0-m 1 100 0.000000 0;
mass 0-m 1 100 0.250000 0;
mass 0-m 1 100 0.500000 0;
mass 0-m 1 100 0.750000 0;
mass 0-m 1 100 1.000000 0;
mass 0-m 1 100 1.250000 0;
mass 0-m 1 100 1.500000 0;
mass 0-m 1 100 1.750000 0;
mass 0-m 1 100 2.000000 0;
mass 0-m 1 100 2.250000 0;
mass 0-m 1 100 2.500000 0;
mass 0-m 1 100 2.750000 0;
mass 0-m 1 100 3.000000 0;
mass 0-m 1 100 3.250000 0;
mass 0-m 1 100 3.500000 0;
mass 0-m 0 100 3.750000 0;
link 0-l 30 31 10 2.5 1 0 1e+10;
link 0-l 29 30 10 2.5 1 0 1e+10;
link 0-l 28 29 10 2.5 1 0 1e+10;
link 0-l 27 28 10 2.5 1 0 1e+10;
link 0-l 26 27 10 2.5 1 0 1e+10;
link 0-l 25 26 10 2.5 1 0 1e+10;
link 0-l 24 25 10 2.5 1 0 1e+10;
link 0-l 23 24 10 2.5 1 0 1e+10;
link 0-l 22 23 10 2.5 1 0 1e+10;
link 0-l 21 22 10 2.5 1 0 1e+10;
link 0-l 20 21 10 2.5 1 0 1e+10;
link 0-l 19 20 10 2.5 1 0 1e+10;
link 0-l 18 19 10 2.5 1 0 1e+10;
link 0-l 17 18 10 2.5 1 0 1e+10;
link 0-l 16 17 10 2.5 1 0 1e+10;
link 0-l 15 16 10 2.5 1 0 1e+10;
link 0-l 14 15 10 2.5 1 0 1e+10;
link 0-l 13 14 10 2.5 1 0 1e+10;
link 0-l 12 13 10 2.5 1 0 1e+10;
link 0-l 11 12 10 2.5 1 0 1e+10;
link 0-l 10 11 10 2.5 1 0 1e+10;
link 0-l 9 10 10 2.5 1 0 1e+10;
link 0-l 8 9 10 2.5 1 0 1e+10;
link 0-l 7 8 10 2.5 1 0 1e+10;
link 0-l 6 7 10 2.5 1 0 1e+10;
link 0-l 5 6 10 2.5 1 0 1e+10;
link 0-l 4 5 10 2.5 1 0 1e+10;
link 0-l 3 4 10 2.5 1 0 1e+10;
link 0-l 2 3 10 2.5 1 0 1e+10;
link 0-l 1 2 10 2.5 1 0 1e+10;
link 0-l 0 1 10 2.5 1 0 1e+10;
Xmin -4;
Xmax 4;
Ymin -2;
Ymax 2;
setL 0-l 0;
This is 32 masses, where first and last mass are fixed.
Then bang msd2D with a [metro 10] and also do a "get massesPos" on each
bang. In the end it should look like this:
[x]
|
[metro 10]
|
[bang, get massesPos(
|
| "pluck"
| [posY 16 1.5(
|/
[msd2D]
|
[route massesPos]
|
[$1 $3(
|
[s MYTABLE]
[table MYTABLE]
[200\
|
[tabosc4~ MYTABLE]
|
[dac~]
Don't forget to send some "posY" or force messages to msd2D to
activate the string.
Ciao
--
Frank Barknecht _ ______footils.org_ __goto10.org__
More information about the Pd-list
mailing list