Matt Barber wrote: >> Of course, the 8-channel environment is useful for its ambisonic and other >> spatialization potential, and one solution that works well (for certain >> musical situations) is to spatialize monophonic soundfiles in real time. >> This is a great solution for reducing performance demand on the hard drive, >> but quickly becomes expensive in CPU cycles... > > Right. You can split the difference, though, if you're using > ambisonics, provided you're using B-format (wxyz). You can do all > your ambisonic encoding and room simulation ahead of time, and then do > the decoding in Pd. This way you'd only be reading four channels at a > time, and the conversion from B-format to 8-channels is a fairly > inexpensive set of multiplies and adds (a little more expensive if > it's a "cube" rather than an "octagon" array, I think, since you could > discard the "Z" harmonic with the octagon; in Pd a cube decode could > be on the order of 24 +'s and as few as 4 *'s, most of the adds taking > place in connections as the vectors are automatically added) -- you > could easily make an abstraction to just put on the end right before > you send it to [dac~], since b-format streams should mix linearly. > I'm sure there are externals which could do this more efficiently than > an abstraction (loathe as I am to use externals when there's an easy > abstraction solution). In this setup, normalization becomes a little > harder, though. > > It would also be useful if you later wanted to do some simple > ambisonic "panning" of the solo marimba throughout the array - you'd > have half the architecture you'd need for it, and B-format encoding of > two or three streams is not gonna break the bank (unless you were > doing some kind of full-on room simulation on top of it). > > The point is moot if you're using 2nd-order ambisonics, though, or if > you've already spent a lot of time mixing and normalizing.
Great points all around. Of course I spent a great deal of time considering a range of similar approaches before I began work on the project. The commission dictated a high-resolution, 8-channel cube array, and the decision to avoid B-format came down to the fact that I wasn't happy with reverberation quality produced by the available csound ambisonic and spatialization algorithms. I knew I was giving up a certain amount of flexibility by directly rendering the files (using csound and a custom java-based preprocessor), but it seems I didn't quite anticipate the heavy demand the files would put on the playback system. G _______________________________________________ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list