Ambisonic subsitute for Cosm?
Just wondering if anyone knew a nice simple method for using ambisonic audio in Max 6? I liked the way Cosm worked and I really miss just being able to quickly attach audio to an object in 3D space. Are there some preferred tools out there? I'm working within jit.phys.world if that makes a difference.
Maybe this can help, just found out about it: http://spatium.ruipenha.pt/ (CDM article: http://createdigitalmusic.com/2012/10/sound-in-space-visually-spatium-are-free-open-source-spatialization-tools/#more-26212 )
I'm not sure if the ICST externals still work in Max 6... never tried it. Their site has the Max 5 version:
http://www.icst.net/research/downloads/ambisonics-externals-for-maxmsp/
Give it a try (if you haven't already...)
Just using these ambisonics externals with Max 6.0.7 since some time for a project, no problems at all so far!
btw. if anybody knows of any problems regarding ambisonics and max 6, i would really appreciate it a lot!!
Great, thanks the replies. I'd come across the ambisonics externals but wasn't sure if they were still working properly in 6. Will try these out. If anyone has any examples they'd be willing to share, I'll take 'em. ;)
I'd love to share but what i'm working on is not my property :(
but it's quite straight forward i'm sure you'll understand it fast!
Cheers!
That's cool, no worries. I'm just being lazy I guess. ;)
Maybe you could take a look at our new Ambisonic library :
- https://cycling74.com/tools/hoalibrary/
- http://www.mshparisnord.fr/hoalibrary/en/
Its fully compatible with Max5 & Max6, and let you use high order ambisonics.
Cheers.
Great thanks! I'll check this out!
Late to this party, and while its probably well worth checking the ambisonic systems suggested above, it does appear that (most of) COSM (including cosm.ambi.encode) works in Max6. If you have Max 5 with COSM installed, the cosm max5 externals and cosm.mxo (in max startup) need to be in the max6 path to run in Max 6.
I'm having an issue with ambipanning~ and Max 6.1.5 32-bit wherein when I load the patcher, output 2 is completely saturated. Disabling and enabling (by modifying the name of) the object after opening the patch restores correct operation.
The only apparent difference between the object on load and after reloading the object is that the db_unit attribute is set to 0.0 initially *and cannot be modified*, whereas after reload it is set to -1.5.
Here's my code – I'm curious if anybody can reproduce this:
I've been playing with Eliott Paris' HoaLibrary linked above for the past couple of hours and, aside from frequent crashes while loading help patches, it blows the ICST ambisonics externals out of the water.
I'm hoping the crashing has to do with the Max 6.1.5 release. Nevertheless, it seems stable with a simple test patch.
I can't figure out how to change the listener location in any of the ambisonic libraries. Cosm did make this so easy. Anyone shed any light on how I can do this with hoa or other spatialization tools?
+1
when i recently had timepressure while working on an oculusvideo, i used the hoa library and did it opposite way:
i recalculated the positions of moving objects while taking the orientation / position of the oculus always as origin (not changing listener location, but recalculating object positions based on changed listener location). Therefore i made use of a gen-patcher that i found somewhere on the forums:
it worked somehow, but for sure improvement can be done...
@Christopher and @Tobias : i tried to do this in a Max project, SoundStroll ; it uses the same gen-patcher as Tobias :). I got all the sound sources positions in Jitter, and they are recalculated with the moving position of the listener. https://cycling74.com/tools/soundstroll/
(this project is a bit difficult to use still, but i will be thankful for any tester...)
I found the original thread with the gen patcher : it's from PedroSantos https://cycling74.com/forums/help-with-jit-gl-multiple-and-camera-positionrotation/.
Yes, that's the approach I developed when I needed to do it: calculate the relative positions of objects based on the camera/ears position. In my case, the objects positions were already stored in a matrix, hence the jit.gen code.
Here's the original thread:
https://cycling74.com/forums/help-with-jit-gl-multiple-and-camera-positionrotation/
But I agree with you guys that such a feature would be certainly welcome in ICST or Hoa Libraries.