Note: this topic was originally in the Chuck programming language forum but I moved it here.

Ambiophonic stereo is a significantly better form of stereo than conventional placement of 60 degree speakers. There is already much literature about ambiophonic sound, see http://www.ambiophonics.org/ for starters. I have participated in many experiments with Robin Miller and I love the sound. You get a very much wider stereo field and no hole in the middle feeling.

Robin has developed a pretty simple algorithm for the ambiophonic phase cancelation encoding. Attached here is a diagram. It seems that ChucK would be a natural environment for developing a ambiophonic encoder. I would love to do it by I'm unable to work on this until the Fall. Would anyone care to take a shot a coding up a Chuck encoder?

It would be great if the left and right attenuate and delay values could be ganged and controlled by a MIDI controller.

UPDATE (April 7, 2008): With apologies, I have updated the diagram of the RACE Ambiophonics encoder. The previous version was incorrect. This one has been tested and works very well. The specs of the filter are bandpass 500 Hz to 5000 Hz. 12 dB/8va works well, but other values of selectivity can be used as convenient. The delay is best between 60 and 80 microseconds. Experiment has shown that 68 µsec is perhaps ideal.

howard, am i missing something here? wouldn't this be cake to do with the g2?

The G2 can do this to some degree, and I have done a patch that works like Jan's but a little differently, but one has to have a G2. We need a good simple solution that runs without dedicated hardware. I thought ChucK would be ideal._________________--Howard
my music and other stuff

Hmmmm, that's micro second, right? a milionth of a second? The patch itself would be trivial but I'm not at all sure about micro second delays since the feedback loop itself would mean one sample of delay already which is already roughly 23 micro seconds at cd quality. I looks like the interpolating delays that can take fractional lengths like DelayA and DelayL should be capable of this sort of thing but the manual warns about "high-frequency signal attenuation to varying degrees depending on the fractional delay setting." which might affect stereo perception and which I bet will have a pritty large effect on moving sound sources.

It would also need a fairly elaborate controll structure to generate parameters and moving soundsources would demand interpolation of controller-data.

Isn't there a Csound opcode that's specialised for this?_________________Kassen

With the G2, on can generate a 48 KHz clock and that has a period of about 21 usec which gives 60, 80, and 90 usec delays which it useful. Experience is that 70 to 80 is the best value - depends a bit on your head dimensions and on the speaker setup.

I'm fairly certain it has specialised tools for this. Perhaps the main advantage of those would be that they take straightforward parameters with regard to the direction of the sound.

Quote:

With the G2, on can generate a 48 KHz clock and that has a period of about 21 usec which gives 60, 80, and 90 usec delays which it useful. Experience is that 70 to 80 is the best value - depends a bit on your head dimensions and on the speaker setup.

Yeah, those are within that range but HEAVILY quantised which translates directly to quantisiation of the directions a sound can come from.

Quote:

Kassen, can't you run ChucK at 96 KHz?

Yes, no problem. When rendering off line I think ChucK can actually run at arbitrary bitrates though obviously playback of such files would be impossible on most DAC's and going into the MHz range would result in very large files as well as lots of render-time but I do think it's possible. I'd have to try how well those interpolationg fractional delays hold up on this sort of aplication. Maybe they would be fine at 96KHz. Another question would be how to generate the controler data, is there literature on this?

I for one am not going to be able to dive deeply into this in the next month because my curent project is already complicated enough and has a deadline.

It might be nice to port/borow the Csound upcode for this. That one could be a very nice match for some of the accoustical models that ChucK borows from the STK._________________Kassen

The Chameleon is quite suitable for this kind of thing, but as mosc points out, not everybody has a G2, and much less a Chameleon. However, if there's demand amongst electro-music.com's 2 (?) other Chameleon owners for a Chamy version I'd be happy to write one. Hmmm, perhaps I will even without the demand, just to hear what it's like...

...could synthedit possibly do this? i just downloaded the trial, and it will take a value of .000006 (is that right?), but i don't know if it actually will delay that ammount, or some minimum (the doc says between 0 and 10 sec). it would be nice to have a vst plugin to do this...but my recolection is that there is some minimum delay time (i think i determined this through experementation more than a year ago).

The Chameleon is quite suitable for this kind of thing, but as mosc points out, not everybody has a G2, and much less a Chameleon. However, if there's demand amongst electro-music.com's 2 (?) other Chameleon owners for a Chamy version I'd be happy to write one. Hmmm, perhaps I will even without the demand, just to hear what it's like...

DJ
--

THX! I reckoned this was a reasonably small task for a master of the Chameleon!_________________A Charity Pantomime in aid of Paranoid Schizophrenics descended into chaos yesterday when someone shouted, "He's behind you!"

...could synthedit possibly do this? i just downloaded the trial, and it will take a value of .000006 (is that right?), but i don't know if it actually will delay that ammount, or some minimum (the doc says between 0 and 10 sec). it would be nice to have a vst plugin to do this...but my recolection is that there is some minimum delay time (i think i determined this through experementation more than a year ago).

deknow

That's a good question, min delay time-- when I saw this I thought it would be easily done in synthedit as well: what OS(s) does it need to run on?

0.00006 would be 60 usec._________________Utenzil
http://utenzil.comLast edited by utenzil on Wed Jan 24, 2007 8:53 am; edited 1 time in total

...synthedit only runs on windows (i believe). the interface is very similar to the g2 editor, but the "contraption" can be saved as a vst plugin (but i think the vst only runs on windows as well).

deknow

Synthedit is definitely windows only. It would be very easy to establish the signal path and modules indicated above in Synthedit, the question would be the ability to do the usec delay._________________Utenzil
http://utenzil.com

Ok, Did a quick test and it looks like DelayL in ChucK can be set to .0001ms. When asked it then reports it's length is "0.004800 :(dur)" which is exactly right (it runs at 48KHz on Linux by default).

So; yes, ChucK should be able to do this, I'm not sure wether it'll do it very *well* and I'm also not sure where I'll get those durations or amplification amounts from but it should at least work on a theoretical level. I'd also imagine that any system in the sub-MHz samplerate range will have artifacts with this sort of delay length.

That would make it cross-platform but probably less convenient then a VST for most people.[/u]_________________Kassen

The man that hath no music in himself, nor is not mov'd with concord of sweet sounds, is fit for treasons, stratagems and spoils; the motions of his spirit are dull as night and his affections dark as Erebus: Let no such man be trusted. - W. Shakespeare

Ok, Did a quick test and it looks like DelayL in ChucK can be set to .0001ms. When asked it then reports it's length is "0.004800 :(dur)" which is exactly right (it runs at 48KHz on Linux by default).

So; yes, ChucK should be able to do this, I'm not sure wether it'll do it very *well* and I'm also not sure where I'll get those durations or amplification amounts from but it should at least work on a theoretical level. I'd also imagine that any system in the sub-MHz samplerate range will have artifacts with this sort of delay length.

That would make it cross-platform but probably less convenient then a VST for most people.[/u]

Asked around on the KVR forum-- EVM provides a sample delay module for synthedit.

The man that hath no music in himself, nor is not mov'd with concord of sweet sounds, is fit for treasons, stratagems and spoils; the motions of his spirit are dull as night and his affections dark as Erebus: Let no such man be trusted. - W. Shakespeare

I put together a synthedit VST and ran across something that makes sense. I did not try the EVM sample based delay, btw, but first used the delay2 module, which accepts a .00006 value.

Within the VST, data is passed between modules as blocks of samples. If you try to introduce a feedback loop (which this schematic does, out of the delays and back to the mixer) you generate an error. You can avoid this error by inserting a 'feedback delay' in the offending feedback path. However, because the blocks are in sizes of 100 samples, inserting this will not permit a delay value of less than 100 samples: I ended up with a kind of tinny sounding flanger as a result.

I'm using a slightly outdated version of synthedit, maybe this behavior has been modified since.

I *did* realize a VST that kludges the signal path: it adds some brightness to the mix by mixing the split, partly inverted, ever so slightly delayed signal with the original signal. When used on the master (stereo) track, the end result is a crisper mix that loses a bit of bass. You can recover the bass by adding a post low end boost, and this technique also seems
to 'de-muddify' the bass as well.

Well the headphones were so that you could say something into the mic and hear the enhanced version much better. For actual use you would hook the inputs up to a stereo source and let it run out the speakers (=> dac;). I just set it up on the mic input for testing._________________"Let's make noise for peace." - Kijjaz

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot vote in polls in this forumYou cannot attach files in this forumYou can download files in this forum

Please support our site. If you click through and buy from our affiliate partners, we earn a small commission.