Hi PD,
I am getting crackles when driving the frequency of an osc~ with an accelerometer signal (in fact I'm driving 3 x 2 = 6 oscillators with Wiimotes as wireless 2 triaxial accelerometers) , which one can hear in the following mp4 movie (at the end when I am waving the sensors faster):
http://www.webel.com.au/project/drancing/wii/movie/iSight.320x240/Drancing_P...
The Pure Data patch for one channel can be seen here:
http://www.webel.com.au/project/drancing/puredata/VFO.pd.png
And the whole system's patches can be seen here:
http://www.webel.com.au/project/drancing/puredata/index.jsp?page=DranceWareP...
Each conditioned accelerometer channel can drive a Variable Frequency Oscillator (VFO) (osc~) with the option of locking onto discrete MIDI note frequencies, as well as a frequency scaling, a frequency offset, and an output gain.
I have tried inserting a sig~ before the osc~, it made no audible difference.
I have tried including a line and line~ to smooth the signal before varying the frequency, it made no audible difference.
I now have a limiter~ in COMPRESS mode at the output, did not help (it certainly helped with many other things, just not with my VFO problem).
The amplitude definitely remains constant during this.
When I open up the osc~ examples and pump the frequency very quickly with just a mouse over the feeding number as simulated driver I don't get any problems at all.
Note however that I am driving 6 oscillators (and a lot more stuff) when running my full system, however I'm not topping out my CPU, so I don't think that's the problem either.
Am bamboozled, since I don't recall having this trouble using the same naive strategy with an equivalent JSyn audio synthesis system.
Very glad for any suggestions and help,
Darren
The combination of problems and tests does seem strange.
In a case like this a good debug approach may be to log everything from the controller to a file and look through it for strange jumps.
A [lop~ 10] following the [sig~] might help smooth the data better than a [line~]
On Thu, 24 Jul 2008 00:17:32 +1000 Darren Kelly darren@webel.com.au wrote:
Hi PD,
I am getting crackles when driving the frequency of an osc~ with an accelerometer signal (in fact I'm driving 3 x 2 = 6 oscillators with Wiimotes as wireless 2 triaxial accelerometers) , which one can hear in the following mp4 movie (at the end when I am waving the sensors faster):
http://www.webel.com.au/project/drancing/wii/movie/iSight.320x240/Drancing_P...
The Pure Data patch for one channel can be seen here:
http://www.webel.com.au/project/drancing/puredata/VFO.pd.png
And the whole system's patches can be seen here:
http://www.webel.com.au/project/drancing/puredata/index.jsp?page=DranceWareP...
Each conditioned accelerometer channel can drive a Variable Frequency Oscillator (VFO) (osc~) with the option of locking onto discrete MIDI note frequencies, as well as a frequency scaling, a frequency offset, and an output gain.
I have tried inserting a sig~ before the osc~, it made no audible difference.
I have tried including a line and line~ to smooth the signal before varying the frequency, it made no audible difference.
I now have a limiter~ in COMPRESS mode at the output, did not help (it certainly helped with many other things, just not with my VFO problem).
The amplitude definitely remains constant during this.
When I open up the osc~ examples and pump the frequency very quickly with just a mouse over the feeding number as simulated driver I don't get any problems at all.
Note however that I am driving 6 oscillators (and a lot more stuff) when running my full system, however I'm not topping out my CPU, so I don't think that's the problem either.
Am bamboozled, since I don't recall having this trouble using the same naive strategy with an equivalent JSyn audio synthesis system.
Very glad for any suggestions and help,
Darren
-- Darren Kelly, BSc, PhD phone: +61 (2) 9386 0090 post: PO Box 1816, Bondi Junction, NSW 1355, Australia http://www.webel.com.au
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
if you attach a [dac~] directly to the osc~ object, do you still get crackles?
if not, then i guess your problem might lie further down the line.
looking at your PAN module, the panning amount is sent as a float into [*~ ] objects without [line~] smoothing. that would be the likeliest culprit i reckon.
by the way, is it even possible to get clicks when rapidly changing osc~ speeds? i didn't think it was, and i have never experienced that.
On Thu, 24 Jul 2008 13:22:47 +0900 "hard off" hard.off@gmail.com wrote:
by the way, is it even possible to get clicks when rapidly changing osc~ speeds? i didn't think it was, and i have never experienced that.
Think of the modulating signal as a triangle wave altering the frequency of [osc~]. As the change becomes fast and large, when the slope is big, then it's become FM giving us a bunch of sidebands. If a large change happens briefly a spike of new harmonics will be heard as a click.
What might be in Darrens data stream?
100, 101.2, 99.98, 101.7, 102.21, 0, 102.96, 103.2
A spurious zero like that would cause a problem.
So, it's a good idea to look at the data closely to see what's going on.
Andy Farnell wrote:
On Thu, 24 Jul 2008 13:22:47 +0900 "hard off" hard.off@gmail.com wrote:
by the way, is it even possible to get clicks when rapidly changing osc~ speeds? i didn't think it was, and i have never experienced that.
Think of the modulating signal as a triangle wave altering the frequency of [osc~]. As the change becomes fast and large, when the slope is big, then it's become FM giving us a bunch of sidebands. If a large change happens briefly a spike of new harmonics will be heard as a click.
What might be in Darrens data stream?
100, 101.2, 99.98, 101.7, 102.21, 0, 102.96, 103.2
A spurious zero like that would cause a problem.
So, it's a good idea to look at the data closely to see what's going on.
I think it should be fairly easy to sort out sensor data of the stream that are most likely erroneous (like big jumps). isn't there already an object like [trust] or [believe]? marius.
a jump down to 0 wouldn't cause any problems though, the oscillator's waveform would just flatline for a moment. and in the tests i just did, only very significant jumps, like from 100hz to 20000hz caused major clickiness.
i think it is pretty safe to say that the speed of the oscillator isn't what is is causing these clicks.
Hallo, hard off hat gesagt: // hard off wrote:
i think it is pretty safe to say that the speed of the oscillator isn't what is is causing these clicks.
Jumps (discontinuities) in a signal are the most nasty cause for clicks, while corners are generally harmless, if they aren't too sharp. Changing the frequency of an oscillator never generates a jump, so it's pretty safe.
Frank Barknecht _ ______footils.org__
Frank Barknecht wrote:
Hallo, hard off hat gesagt: // hard off wrote:
i think it is pretty safe to say that the speed of the oscillator isn't what is is causing these clicks.
Jumps (discontinuities) in a signal are the most nasty cause for clicks, while corners are generally harmless, if they aren't too sharp. Changing the frequency of an oscillator never generates a jump, so it's pretty safe.
but, if you start to control the *volume* directly from a sensor you can get into trouble if your signal drops to 0 for some milliseconds. also, if your volume becomes very high, you can get distortion and crackles. if you do phase modulation you can also get crackles, if you have high jumps in your control signal. I think it is good practice to use line~ for such things. marius.
Thanks Marius,
Volume/amplitude in the case at hand is set globally and fixed across all 6 [osc~], so not a suspect. Am stripping back my system to remove all GUI and all downstream processing to isolate the cause
BTW I also have a 3D amplitude modulation mode, and I do use line smoothing with effect there.
You've also preempted some future questions about phase modulation,
Darren
marius schebella wrote:
Frank Barknecht wrote:
Hallo, hard off hat gesagt: // hard off wrote:
i think it is pretty safe to say that the speed of the oscillator isn't what is is causing these clicks.
Jumps (discontinuities) in a signal are the most nasty cause for clicks, while corners are generally harmless, if they aren't too sharp. Changing the frequency of an oscillator never generates a jump, so it's pretty safe.
but, if you start to control the *volume* directly from a sensor you can get into trouble if your signal drops to 0 for some milliseconds. also, if your volume becomes very high, you can get distortion and crackles. if you do phase modulation you can also get crackles, if you have high jumps in your control signal. I think it is good practice to use line~ for such things. marius.
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list