Discussion:
Scanned Synthesis in SC?
John Colgrove
2012-10-03 13:02:18 UTC
Permalink
Is SC ever going to implement Scanned Synthesis? This is something I would
really love to see as I do plan on working with it in the future. Normally I
might be able to implement it myself but I'm not experienced enough to do
that yet.



--
View this message in context: http://new-supercollider-mailing-lists-forums-use-these.2681727.n2.nabble.com/Scanned-Synthesis-in-SC-tp7585748.html
Sent from the SuperCollider Users New (Use this!!!!) mailing list archive at Nabble.com.

_______________________________________________
sc-users mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-users/
search: http://www.listarc.bham.ac.uk/lists/sc-users/search/
Florian Grond
2012-10-03 13:05:30 UTC
Permalink
There was a thread about scanned synthesis in the past, but I don't know
if anyone has implemented it yet
Post by John Colgrove
Is SC ever going to implement Scanned Synthesis? This is something I would
really love to see as I do plan on working with it in the future. Normally I
might be able to implement it myself but I'm not experienced enough to do
that yet.
--
View this message in context: http://new-supercollider-mailing-lists-forums-use-these.2681727.n2.nabble.com/Scanned-Synthesis-in-SC-tp7585748.html
Sent from the SuperCollider Users New (Use this!!!!) mailing list archive at Nabble.com.
_______________________________________________
sc-users mailing list
info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-users/
search: http://www.listarc.bham.ac.uk/lists/sc-users/search/
--
--8<-------8<-------- hier abtrennen -----8<--------8<----

F l o r i a n G R O N D
PhD Student at Ambient Intelligence Group,
CITEC Bielefeld University, Germany
Universitaetsstrasse 21 - 23 33615 Bielefeld
Tel.: 0049 521 106 12163
http://cit-ec.org

-->8------->8-------- hier abtrennen ------->8------>8----

_______________________________________________
sc-users mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-users/
search: http://www.listarc.bham.ac.uk/lists/sc-users/search/
Click Nilson
2012-10-03 14:21:41 UTC
Permalink
Luc Doebereiner applied scanned synthesis to GENDYN. Might be of interest:
http://www.doebereiner.org/software.html

PhinGen: a Physically Informed Stochastic Synthesis Generator, In Proceedings of the International Computer Music Conference 2011 (ICMC 2011), University of Huddersfield, 2011

Also PMSC has some related examples:
http://swiki.hfbk-hamburg.de:8888/MusicTechnology/802
There was a thread about scanned synthesis in the past, but I don't know if anyone has implemented it yet
Post by John Colgrove
Is SC ever going to implement Scanned Synthesis? This is something I would
really love to see as I do plan on working with it in the future. Normally I
might be able to implement it myself but I'm not experienced enough to do
that yet.
_______________________________________________
sc-users mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-users/
search: http://www.listarc.bham.ac.uk/lists/sc-users/search/
Bjorn Westergard
2012-10-03 19:14:41 UTC
Permalink
http://doc.sccode.org/Classes/Spring.html

In short: chain a bunch of these together, optionally tying the end the
beginning with a LocalIn feedback loop. Use SelectX to "scan" them.
Post by Click Nilson
http://www.doebereiner.org/software.html
PhinGen: a Physically Informed Stochastic Synthesis Generator, In
Proceedings of the International Computer Music Conference 2011 (ICMC
2011), University of Huddersfield, 2011
http://swiki.hfbk-hamburg.de:8888/MusicTechnology/802
Post by Florian Grond
There was a thread about scanned synthesis in the past, but I don't know
if anyone has implemented it yet
Post by Florian Grond
Post by John Colgrove
Is SC ever going to implement Scanned Synthesis? This is something I
would
Post by Florian Grond
Post by John Colgrove
really love to see as I do plan on working with it in the future.
Normally I
Post by Florian Grond
Post by John Colgrove
might be able to implement it myself but I'm not experienced enough to
do
Post by Florian Grond
Post by John Colgrove
that yet.
_______________________________________________
sc-users mailing list
http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-users/
search: http://www.listarc.bham.ac.uk/lists/sc-users/search/
Monsieur
2012-10-05 15:43:44 UTC
Permalink
Hi,

I don't really understand nor tested scanned synthesis, but i wrote this
based on your description. Is it correct ?


(
SynthDef(\scansynth1, { arg out=0, amp=0.1, gate=1, pan=0, freq=200;
var in, ou;
var spring = [10,7.2,7,15,0.5,0.5,8];
var damp = [0.8,0.7,0.1,0.2,0.1,0.2,0.9];
var springs;
var sel;
in = LocalIn.ar(1) * 0.95 + Trig.ar(gate, 0.01);
ou = in;
springs = spring.collect { arg spr, i;
ou = Spring.ar(ou, spr, damp[i]);
};
LocalOut.ar(ou);
sel = SinOsc.ar(freq).range(0, spring.size-1);
ou = SelectX.ar(sel, springs);
ou = ou * EnvGen.ar(\adsr.kr
(Env.adsr(0.1,0.1,0.8,0.1)),gate,doneAction:2);
ou = Pan2.ar(ou, pan, amp);
Out.ar(out, ou);
}).add;
)

(
Pdef(\plop, Pbind(
\instrument, \scansynth1,
\degree, Pseq([0,2,4],inf),
\dur, 1,
\amp, 0.1
)).play;
)
Post by Bjorn Westergard
http://doc.sccode.org/Classes/Spring.html
In short: chain a bunch of these together, optionally tying the end the
beginning with a LocalIn feedback loop. Use SelectX to "scan" them.
Bjorn Westergard
2012-10-05 19:25:31 UTC
Permalink
Monsier: Yup, that's exactly the right approach.

I had a bunch of code implementing this sitting around a few months ago,
not sure what happened to it.

Getting the damping/spring factors right is essential. As is adding some
heavy "damping" (I like to use a Low Pass filter) on the feedback loop.

Here is a quick modification incorporating most of what I learned playing
around on my own. Scanned wave can be very expressive, with lots of musical
variation falling out of the basic setup naturally.

http://sccode.org/1-4Rm
Post by Monsieur
Hi,
I don't really understand nor tested scanned synthesis, but i wrote this
based on your description. Is it correct ?
(
SynthDef(\scansynth1, { arg out=0, amp=0.1, gate=1, pan=0, freq=200;
var in, ou;
var spring = [10,7.2,7,15,0.5,0.5,8];
var damp = [0.8,0.7,0.1,0.2,0.1,0.2,0.9];
var springs;
var sel;
in = LocalIn.ar(1) * 0.95 + Trig.ar(gate, 0.01);
ou = in;
springs = spring.collect { arg spr, i;
ou = Spring.ar(ou, spr, damp[i]);
};
LocalOut.ar(ou);
sel = SinOsc.ar(freq).range(0, spring.size-1);
ou = SelectX.ar(sel, springs);
ou = ou * EnvGen.ar(\adsr.kr
(Env.adsr(0.1,0.1,0.8,0.1)),gate,doneAction:2);
ou = Pan2.ar(ou, pan, amp);
Out.ar(out, ou);
}).add;
)
(
Pdef(\plop, Pbind(
\instrument, \scansynth1,
\degree, Pseq([0,2,4],inf),
\dur, 1,
\amp, 0.1
)).play;
)
Post by Bjorn Westergard
http://doc.sccode.org/Classes/Spring.html
In short: chain a bunch of these together, optionally tying the end the
beginning with a LocalIn feedback loop. Use SelectX to "scan" them.
Monsieur
2012-10-06 13:37:18 UTC
Permalink
Thanks to your code, i understand now how to make cool sound with this
technique (mine was not very convincing :p)

Unfortunately, I can't run this code smoothly (lot of jack xruns), do you
think i should buy a faster computer or is this code particularly
CPU-expensive ?

Hopefully, setting the spring array to size 10, i can run it. I noticed
that i can set the spring value to anything, the only changing parameter is
the ratio between spring and damp. Do you know why ?
Post by Bjorn Westergard
Monsier: Yup, that's exactly the right approach.
I had a bunch of code implementing this sitting around a few months ago,
not sure what happened to it.
Getting the damping/spring factors right is essential. As is adding some
heavy "damping" (I like to use a Low Pass filter) on the feedback loop.
Here is a quick modification incorporating most of what I learned playing
around on my own. Scanned wave can be very expressive, with lots of musical
variation falling out of the basic setup naturally.
http://sccode.org/1-4Rm
Click Nilson
2012-10-06 13:45:59 UTC
Permalink
Great patch, Bjorn!

I think it could be in the examples for 3.6; might be worth packaging up a few community favourites from sccode and including them with the final release?

My humble response:

(
{
var in, ou, springs, sel;
var freq=MouseX.kr(1,1000,'exponential');
var numsprings= 60;
var spring = {rrand(0.1,0.8)}!numsprings;
var damp = MouseY.kr(0.01,0.5,'exponential');
in = LPF.ar(LocalIn.ar(1), 1) * 0.95 + (LPF.ar(Trig.ar(Impulse.ar(8), 0.01),100) * WhiteNoise.ar.range(0.98,1));
ou = in;

springs = spring.collect { arg spr, i; ou = Spring.ar(ou, spr, damp); };
LocalOut.ar(ou);

sel = SinOsc.ar(freq+(in*100)).range(0, spring.size-1);
ou = SelectX.ar(sel, springs);

Pan2.ar(ou);
}.play;
)
Thanks to your code, i understand now how to make cool sound with this technique (mine was not very convincing :p)
Unfortunately, I can't run this code smoothly (lot of jack xruns), do you think i should buy a faster computer or is this code particularly CPU-expensive ?
Hopefully, setting the spring array to size 10, i can run it. I noticed that i can set the spring value to anything, the only changing parameter is the ratio between spring and damp. Do you know why ?
Monsier: Yup, that's exactly the right approach.
I had a bunch of code implementing this sitting around a few months ago, not sure what happened to it.
Getting the damping/spring factors right is essential. As is adding some heavy "damping" (I like to use a Low Pass filter) on the feedback loop.
Here is a quick modification incorporating most of what I learned playing around on my own. Scanned wave can be very expressive, with lots of musical variation falling out of the basic setup naturally.
http://sccode.org/1-4Rm
Continue reading on narkive:
Loading...