hi all!
I'm trying to make an ambisonic installation and I can dispose of 8 aktive genelec lodspeakers and an rme multiface card (8 outputs). Since I'm not an expert in the issue, it would be great if someone could answer the questions below or point me to the right direction (there's a lot of stuff about this around, and I'm a little disoriented!).
I'm taking a look at the Cubemixer ( http://iem.at/projekte/acoustic/awt/abcde/project_view), and it seems like everything I need is already implemented there. But from what I've read, it looks like it is implemented for 16 Loudspeakers an an rme 9632. Is it possible to do it only with 8? What would be the ideal position of the speakers then? What configuration changes do I have to do, and which output channel gets assigned o what speaker? What do I have to do to use the hdsp instead of the rme 9632? First of all, it is important for me to know if its possible to reconfigure the cubemixer to do this, and how much work in your opinion would it take. If not, perhaps you know some other way to do ambisonics with the equipment I have.
thanks a lot in advance!
cheers,
rodrigo
hi rodrigo
afaik, the number of speakers for an ambisonic installation doesn't matter, since you first compute an ambisonic sound in the B-Format, which has always 4 channels, iirc. once you have the b-format computed, you can use it for several configurations of loudspeakers, but you'll have to measure the position of each loudspeaker and then compute the signal for each speaker accordingly.
i don't know the cubemixer of iem, but the website (http://iem.at/projekte/acoustic/awt/abcde/project_view) says:
"Dabei wird nach dem ambisonic-Prinzip eine mehrkanalige lautsprecherunabhängige Repräsentation eines periphonen Schallfeldes generiert (Encodierung), und diese anschlieÃend über ein bestimmtes Lautsprechersetting (Hemisphere) wiedergegeben (Decodierung)."
for me it sounds that you can use the cubemixer to compute ambisoncics b-format (encoding). so you could do the decoding afterwards for your special configuration, which has 8 instead of 16 speakers.
have a look also at: http://www.york.ac.uk/inst/mustech/3d_audio/ambis2.htm which tries to explain the math of ambisonics
afaik, the ICST in zurich sometimes gives lessons for an introduction into ambisonics. that might be interesting for you....
roman
Rodrigo rodrigo@anorg.net wrote:
hi all!
I'm trying to make an ambisonic installation and I can dispose of 8 aktive genelec lodspeakers and an rme multiface card (8 outputs). Since I'm not an expert in the issue, it would be great if someone could answer the questions below or point me to the right direction (there's a lot of stuff about this around, and I'm a little disoriented!).
I'm taking a look at the Cubemixer ( http://iem.at/projekte/acoustic/awt/abcde/project_view), and it seems like everything I need is already implemented there. But from what I've read, it looks like it is implemented for 16 Loudspeakers an an rme 9632. Is it possible to do it only with 8? What would be the ideal position of the speakers then? What configuration changes do I have to do, and which output channel gets assigned o what speaker? What do I have to do to use the hdsp instead of the rme 9632? First of all, it is important for me to know if its possible to reconfigure the cubemixer to do this, and how much work in your opinion would it take. If not, perhaps you know some other way to do ambisonics with the equipment I have.
thanks a lot in advance!
cheers,
rodrigo
Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de
Roman Haefeli wrote:
hi rodrigo
afaik, the number of speakers for an ambisonic installation doesn't matter, since you first compute an ambisonic sound in the B-Format, which has always 4 channels, iirc. once you have the b-format computed,
yawn...who still uses the b-format nowadays? b-format is just a very small subset of ambisonics (otoh, when you are stick to 8 channels b-format will be the best you get...)
you can use it for several configurations of loudspeakers, but you'll have to measure the position of each loudspeaker and then compute the signal for each speaker accordingly.
i don't know the cubemixer of iem, but the website (http://iem.at/projekte/acoustic/awt/abcde/project_view) says:
"Dabei wird nach dem ambisonic-Prinzip eine mehrkanalige lautsprecherunabhÀngige ReprÀsentation eines periphonen Schallfeldes generiert (Encodierung), und diese anschlieÃend ÃŒber ein bestimmtes Lautsprechersetting (Hemisphere) wiedergegeben (Decodierung)."
for me it sounds that you can use the cubemixer to compute ambisoncics b-format (encoding). so you could do the decoding afterwards for your special configuration, which has 8 instead of 16 speakers.
yes, that is what ambisonics is all about.
basically you should have a look at the decoder~ on the DSP-side. iirc, somewhere it should read in a matrix (or something similar) of loudspeaker positions: adapt that to your needs.
additionally you will also have to reduce the ambisonics order to 1st order only (which is b-format) since the number of loudspeakers must be
= the number of ambisonic channels which are (n+1)² (with n being the
order)
hopefully i'll have more time to answer your question better next week.
mfg.asd.r IOhannes
hi and thanks for your posts! I made some progress thanks. I took a look at the abcdefg 3D-Mixer from IOhannes (great stuff), which was a little easier for me to understand: http://puredata.info/Members/zmoelnig/abcdefg
and it has a documentation(!): http://iem.at/~zmoelnig/publications/abcde/
I think this is much more fun than computing b-format files, because evrything can be done in realtime. I still have to check out which output channel gets asigned to what speaker. I think this must correspond to the order of the angles.mtx file, where the positions of the speakers are written, but I'm getting some funny sound positions. Most probably some mystake of mine. It was rather easy to set everything up until now. Just a few more questions.
It looks more fancy, but is there some important feature I'm missing?
order only (which is b-format) since the number of loudspeakers must be = the number of ambisonic channels which are (n+1)² (with n being the order)" How do I reduce the ambisonic order in the abcdefg? Is this necesary for the abcdfg? Is it just about reducing the number of output channels from the encoder, in the abcdefg.conf file?
one has to put loudspeakers on the floor. Are the elevation angles for the position of the speakers in the angles.mtx file negative? Like 0 -90?
The hdsp multiface seems to work fine with oss emulation. When I tried alsa, it distorted the sound from an osc~ in a peculiar way.
cheers, rodrigo
Roman Haefeli wrote:
hi rodrigo
afaik, the number of speakers for an ambisonic installation doesn't matter, since you first compute an ambisonic sound in the B-Format, which has always 4 channels, iirc. once you have the b-format computed,
yawn...who still uses the b-format nowadays? b-format is just a very small subset of ambisonics (otoh, when you are stick to 8 channels b-format will be the best you get...)
you can use it for several configurations of loudspeakers, but you'll have to measure the position of each loudspeaker and then compute the signal for each speaker accordingly.
i don't know the cubemixer of iem, but the website (http://iem.at/projekte/acoustic/awt/abcde/project_view) says:
"Dabei wird nach dem ambisonic-Prinzip eine mehrkanalige lautsprecherunabhängige Repräsentation eines periphonen Schallfeldes generiert (Encodierung), und diese anschlieÃend über ein bestimmtes Lautsprechersetting (Hemisphere) wiedergegeben (Decodierung)."
for me it sounds that you can use the cubemixer to compute ambisoncics b-format (encoding). so you could do the decoding afterwards for your special configuration, which has 8 instead of 16 speakers.
yes, that is what ambisonics is all about.
basically you should have a look at the decoder~ on the DSP-side. iirc, somewhere it should read in a matrix (or something similar) of loudspeaker positions: adapt that to your needs.
additionally you will also have to reduce the ambisonics order to 1st order only (which is b-format) since the number of loudspeakers must be
= the number of ambisonic channels which are (n+1)² (with n being the
order)
hopefully i'll have more time to answer your question better next week.
mfg.asd.r IOhannes
hi
rodrigo@anorg.net wrote:
I made some progress thanks. I took a look at the abcdefg 3D-Mixer from IOhannes (great stuff), which was a little easier for me to understand: http://puredata.info/Members/zmoelnig/abcdefg
and it has a documentation(!): http://iem.at/~zmoelnig/publications/abcde/
I think this is much more fun than computing b-format files, because evrything can be done in realtime. I still have to check out which output channel gets asigned to what speaker. I think this must correspond to the order of the angles.mtx file, where the positions of the speakers are written, but I'm getting some funny sound positions. Most probably some mystake of mine. It was rather easy to set everything up until now. Just a few more questions.
- Is the cubemixer better (dispite of the gui) than the abcdefg-3Dmixer?
It looks more fancy, but is there some important feature I'm missing?
well the CUBEmixer is kind of "abcdefg-ng". i wrote abcdefg as my thesis somewhen in 2002. CUBEmixer has been written in 2005 by a team of "senior" (the youngest coming into the 30ies...) programmers.
in abcdefg, a lot of things or done automagically: this in theory should ease the setup of such a system. iirc, it even automtically degrades the order of the ambisonic system if you only have a limited number of speakers (e.g. 8). while the AUTO is cool the MAGIC used to be a pain, since it takes a lot of thought if you want to customize the whole system (patches are autogenerated at runtime; editing these patches is a no-no.) furthermore, abcdefg is not actively maintained any more (i haven't looked into it for years...)
CUBEmixer on the other hand is much more static. but it has a plugin/extension architecture (which of course is badly documented...) which allows you to customize it much more easily. the features of CUBEmixer are based on our experiences with composers who wanted to "just use" our system, but had several ideas of "extras" (like being able to route several channels directly to a speaker,...) it is the software that we are currently using (heavily!): it is work in progress, which means that bugs are fixed all the time. otoh, it is currently really an expert system.
- IOhannes wrote: "you will also have to reduce the ambisonics order to 1st
order only (which is b-format) since the number of loudspeakers must be = the number of ambisonic channels which are (n+1)² (with n being the order)" How do I reduce the ambisonic order in the abcdefg? Is this necesary for the abcdfg? Is it just about reducing the number of output channels from the encoder, in the abcdefg.conf file?
if i only knew ;-( as said above, in theory it should be enough if the angles.mtx just defines 8 speakers - the degredation should be done automatically. if you can set the ambisonic order in the abcdefg.conf file, you should of course do it (i don't have abcdefg installed on my machine, so i cannot check)
- I've read in the documentation, that for sounds to come from the bottom,
one has to put loudspeakers on the floor. Are the elevation angles for the position of the speakers in the angles.mtx file negative? Like 0 -90?
correct (although i wonder how you will put the speaker at this position: most of the time you will not be able to produce sound that will appear to come from below, unless you are able to put the audience at a bridge in the middle of the room)
mfga.sdr. IOhannes
hello again,
I'm trying to set up the CUBEmixer now, but there's a problem with the first-order-ambisonics setting. I cannot set the value to 1 (it seems to be the last argument of the "The_MIXER~" abstraction). There is no abstraction with the name "1_ambi_enc~". Is this a problem? I also cannot find the equivalent to the angles.mtx file. There is a compensation.txt file. This is, I think, the equivalent to the calibrate.mtx file in the abcdefg. I' a right? There is an "sr_list.txt" file, but it is empty.
One more problem. There are a number of errors in the DSP patch:
error: Bad arguments for message 'plugin~' to object 'objectmaker' plugin~ $0 COMPANDER $1 $2 ... couldn't create error: Bad arguments for message 'plugin~' to object 'objectmaker' plugin~ $0 DISTANCE $1 $2 ... couldn't create (a lot more of this kind) (I have plugin~ installed)
number_of_zeros_in_decoder:: 44 error: aconnect: Connection failed (Invalid argument) (10 aconnect errors like this) tried but couldn't sync A/D/A
Aconnect has something to do with alsa right? Alsa is doing funny things with the hdsp (distorted signals). It works with oss, though. Is alsa necessary (I'm using debian sid)?
About the abcdefg: Of course I would like to use the CUBEmixer, but for the tests I'm doing now, I can stick to the abcdefg. I need to find out what channel gets assigned to what speaker. About the automatic patch generation of the abcdefg: I certainly want to edit the patch. Probably I can save the generated patches, kick all the object creators out, and start them without the script, or make my own.
Thanks a lot for your help!
rodrigo
hi
rodrigo@anorg.net wrote:
I made some progress thanks. I took a look at the abcdefg 3D-Mixer from IOhannes (great stuff), which was a little easier for me to understand: http://puredata.info/Members/zmoelnig/abcdefg
and it has a documentation(!): http://iem.at/~zmoelnig/publications/abcde/
I think this is much more fun than computing b-format files, because evrything can be done in realtime. I still have to check out which output channel gets asigned to what speaker. I think this must correspond to the order of the angles.mtx file, where the positions of the speakers are written, but I'm getting some funny sound positions. Most probably some mystake of mine. It was rather easy to set everything up until now. Just a few more questions.
- Is the cubemixer better (dispite of the gui) than the abcdefg-3Dmixer?
It looks more fancy, but is there some important feature I'm missing?
well the CUBEmixer is kind of "abcdefg-ng". i wrote abcdefg as my thesis somewhen in 2002. CUBEmixer has been written in 2005 by a team of "senior" (the youngest coming into the 30ies...) programmers.
ok.
in abcdefg, a lot of things or done automagically: this in theory should ease the setup of such a system. iirc, it even automtically degrades the order of the ambisonic system if you only have a limited number of speakers (e.g. 8). while the AUTO is cool the MAGIC used to be a pain, since it takes a lot of thought if you want to customize the whole system (patches are autogenerated at runtime; editing these patches is a no-no.) furthermore, abcdefg is not actively maintained any more (i haven't looked into it for years...)
CUBEmixer on the other hand is much more static. but it has a plugin/extension architecture (which of course is badly documented...) which allows you to customize it much more easily. the features of CUBEmixer are based on our experiences with composers who wanted to "just use" our system, but had several ideas of "extras" (like being able to route several channels directly to a speaker,...) it is the software that we are currently using (heavily!): it is work in progress, which means that bugs are fixed all the time. otoh, it is currently really an expert system.
- IOhannes wrote: "you will also have to reduce the ambisonics order to
1st order only (which is b-format) since the number of loudspeakers must be = the number of ambisonic channels which are (n+1)² (with n being the order)" How do I reduce the ambisonic order in the abcdefg? Is this necesary for the abcdfg? Is it just about reducing the number of output channels from the encoder, in the abcdefg.conf file?
if i only knew ;-( as said above, in theory it should be enough if the angles.mtx just defines 8 speakers - the degredation should be done automatically. if you can set the ambisonic order in the abcdefg.conf file, you should of course do it (i don't have abcdefg installed on my machine, so i cannot check)
- I've read in the documentation, that for sounds to come from the
bottom, one has to put loudspeakers on the floor. Are the elevation angles for the position of the speakers in the angles.mtx file negative? Like 0 -90?
correct (although i wonder how you will put the speaker at this position: most of the time you will not be able to produce sound that will appear to come from below, unless you are able to put the audience at a bridge in the middle of the room)
mfga.sdr. IOhannes
rodrigo@anorg.net wrote:
hello again,
I'm trying to set up the CUBEmixer now, but there's a problem with the first-order-ambisonics setting. I cannot set the value to 1 (it seems to be the last argument of the "The_MIXER~" abstraction). There is no abstraction with the name "1_ambi_enc~". Is this a problem? I also cannot find the equivalent to the angles.mtx file. There is a compensation.txt file. This is, I think, the equivalent to the calibrate.mtx file in the abcdefg. I' a right?
yes that is correct.
There is an "sr_list.txt" file, but it is empty.
this is a leftover from times where it was unclear how exactly we should do the dynamic bridge between gui and dsp.
One more problem. There are a number of errors in the DSP patch:
error: Bad arguments for message 'plugin~' to object 'objectmaker' plugin~ $0 COMPANDER $1 $2 ... couldn't create error: Bad arguments for message 'plugin~' to object 'objectmaker' plugin~ $0 DISTANCE $1 $2 ... couldn't create (a lot more of this kind) (I have plugin~ installed)
having plugin~ (as in VST) installed is a bad idea; in the CUBEmixer [plugin~] is an abstraction. i think we will have to rename them, in order to avoid this nameclash.
number_of_zeros_in_decoder:: 44 error: aconnect: Connection failed (Invalid argument) (10 aconnect errors like this) tried but couldn't sync A/D/Aleo
Aconnect has something to do with alsa right? Alsa is doing funny things with the hdsp (distorted signals). It works with oss, though. Is alsa necessary (I'm using debian sid)?
aconnect is about alsa-midi sequences support. [aconnect] is used to store and restore the midi-settings. it is not necessary (unless you need it, of course...); it has nothing to do with sound. (as in "~")
alsa-sound is not really necessary for the CUBEmixer either; however you will have to set this in etc/CUBEmixer/ (copy to the template-file to the same-name without the "template"-part and edit to your needs)
About the abcdefg: Of course I would like to use the CUBEmixer, but for the tests I'm doing now, I can stick to the abcdefg. I need to find out what channel gets assigned to what speaker. About the automatic patch generation of the
there is an output module (something like [main_out~]) where the dac~'s live.
abcdefg: I certainly want to edit the patch. Probably I can save the generated patches, kick all the object creators out, and start them without the script, or make my own.
yes of course that is a possibility. (i am always thinking of an application which needs to fullfill the different needs for a lot of people while staying consistant and without having thousands of copies lying around on your harddisk: don't let yourself encumber by my sorrows...:-))
mfg.asdr. IOhannes