envelopsound / envelopforlive Goto Github PK
View Code? Open in Web Editor NEWFree, open-source tools for Ambisonic 3D panning within Max for Live 10+
Home Page: http://www.envelop.us/
License: GNU General Public License v2.0
Free, open-source tools for Ambisonic 3D panning within Max for Live 10+
Home Page: http://www.envelop.us/
License: GNU General Public License v2.0
For recording live sets at the midway to AmbiX AIFF.
From @cameronangeli
No specific bugs, but we're having a degradation of signal. It's either a
clocking issue or the encoder can't handle the amount of info we're sending
and translating to our speaker arrangements. I'm leaning towards an encoder
issue, because we're seeing it regardless of whether we are on one or two
machines.
Here's the arrangement we used:
This machine is networked using ethernet on a static IP address
(192.168.50.12 - or .13 or .14 depending on who is performing) to the
encoder machine, which also has a static IP address (192.168.50.20).
All envelop M4L plugins are set to connect to the IP address:
192.168.50.20.
We are using Dante Virtual Sound Card 32x32 48K to send audio from ableton
digitally over ethernet. So the UDP messages, and 16 channels of audio are
sent from the performance machine, to the:
Max 7 is running on this machine, which is running our adapted version of
Envelop. We have changed the IP address for the client and server to be
192.168.50.20. We have created 11 speaker presets - which includes the
Savage arena arrangement.
That arrangement is 16 speakers = 4 JBL powered subs at 0 degrees in the
corners, 4 3-way Mackie stacks at 2 degrees in the corners, 4 JBL eon
515XTs at about 10 degrees in the corners, and 4 JBL eon 515xts that are
mounted at about 50 degrees, rotated 45 degrees from the corners to fill
the gaps and add height.
The Mac Mini is connected to a PreSonus 16ch audio interface. This only has
8 analog outs, so we have expanded using ADAT to a behringer 8+8 unit,
giving us the other 8 outs.
When it's working, the panning sounds amazing. however, at mostly random
times, the sounds will chunk up. It seems like there is channel bleed, and
effects propagating through the glitch. On my laptop, the degradation is
not too terrible, and lasts for a few seconds when it happens, then fixes
itself. But on my buddy's machine, it will progressively get worse to the
point where audio stops. We will restart Max on the encoding machine, and
all is solved. It also appears that the more we throw at the encoder, the
more we notice this random degradation. for example, using the send
effects, which will add audio to 4 channels all at once will instigate the
issue.
the encoder machine is running at about 15-20% DSP. and the laptops ableton
CPU usage never goes above 15%.
We have added a few other things to the Server to help us manage the setup:
We also have two other small scale setups - one in my studio with 8
speakers in a cub arrangement, and one in my buddy's studio with 8
speakers, 4 in the corners and 4 up high rotated 45 degrees. The planning
seems to translate very well between all three setups and the binaural
option.
There are a few tests that we need to run to further identify why we might
be having this issue:
I know this is a lot, and i assume we have taken the envelop software to
places that you did not intend, but i thought you could use the feedback to
help make this next iteration as good as can be.
See if there is a way to add higher-level interpolation or catch this in the device itself to avoid the "swing around the loop" problem when moving from -179 to -180 to 180 to 179.
Some coefficients are wrong, with the denominator outside the square root instead of inside it. Fix that up...
having used version 1, I was under the impression i could put the master project folder anywhere on my hard drive, but i learned that it needed to be placed in "Documents/Max 7/Packages". After re-reading documentation, I saw this is listed in bold. so my bad. but worth noting for anyone that was used to version 1.
in the sample ableton project, the M4L Stereo device was turned "off" which lead me to believe that something wasn't working. turned it on, and was in business. you may want to re-save the project with it on to avoid confusion.
Reported by Jonathan Rowden. Does not seem to repro on Mac.
I am trying to figure out how to have more than 16 physical output with this. From the "custom" decoder side it's fine but i'm wondering how the master bus is handling this. Do I need to modify the master bus as well? Is this limited to 16 output?
Just as info I want to try EnvelopForLive in a 31 channel speaker dôme.
There is a way to make E4L work on Windows:
Follow this JackAudio tutorial for installation but instead of 64-bits, use the 32-bits version: https://www.youtube.com/watch?v=zzd7naKzRgw&index=41&list=WL
Here is some additionnal information for installation: http://www.jackaudio.org/faq/jack_on_windows.html
When setting up the Target of the shortcut (see tutorials), use your external sound card driver.
ex: C:\Program Files (x86)\Jack\jackd.exe" -R -S -d portaudio -d "ASIO::AudioBox ASIO Driver"
After that it is pretty much the same as the Guide
RUN EVERYTHING AS ADMIN!
--
I think i'm not missing anything. There you have it!
I'll be more than happy to answer questions if it is unclear
tested on a Windows 8.1 64-bits machine with a Presonus Audiobox usb sound card
Don't use a 16-channel file with 12 empty channels!
This happened both times I played in the Envelop space recently. When switching between AmbiX and Binaural mode, the Master Bus doesn't seem to automatically route correctly. For example when switching back to Binaural mode with Monitor 1+2 button enabled, the Master Bus UI shows all of the outputs routings set to 1-2, but I don't hear any audio in my headphones. I have to re-select channels 1-2 from the drop-down menu in order to actually hear audio. Zak experienced this too, both times we thought our sessions were hosed before realizing we just had to manually re-route things to 1-2.
Would be a chain device that takes an already-encoded surround signal, for instance output from the B-format sampler, and applies equalization to all the channels.
With short delay times the output signal is super hot. Probably should have an input/output gain control on this one.
Having some issues getting the B-format sampler up and running. I can record B-format .wavs from the E4L Master, but dragging the file from the folder I'm using as a repository isn't working. Any thoughts? Running Windows 10.
Hey
It says som tutorials I need som endocer or something to make it work with files from ambimic recording 4 tracks . Do I neeed to roll back to live 10.0.2 to make it work ?
Do I need some extra plug in or something to start working with 4 track ambi mic output files ?
Thank you
Nikolai
Using the binuaral encoder
there is a glitch when going from front and back towards the centre, the sound jumps from muffled to bright.
Working on the design for the new client/server effect rack system, and realizing that we may want a config file somewhere that defines the server IP address. This is desirable because then you can set the IP address just once and all M4L devices will be set correctly -- and that means that devices can more easily send a "I'm here" message to the server to enable the DSP processing for that effect.
The problem is that if the user doesn't have Max installed, we can't say "place the Envelope config file in your Max search path" -- so I'm considering an option where users would need to create a folder: ~/Documents/EnvelopeLive
and put the config file in there.
I feel like this is probably the simplest solution, @roddylindsay @willits any thoughts on this?
Currently, each M4L device has its own textfield to enter the IP and Port number, but I think this is going to be annoying if you ever need to change the settings for a whole Live session.
Where in the chains do I put Abletons Native Audio fx for them to be rendered into the B-Format file ? Or is it only possible to use E4L fx?
Hello there,
I'm new to using Envelop for Live - I've followed the User and Developer Guide to the letter, but I keep coming up with the same error in the Max Console Window: "bind to port 4444 unsuccessful".
Any idea what might be causing this issue?
My system is: Macbook Pro 2.7GHz i7, OSX 10.10.5, Max 7.3.4, Live 9.7.3
Any help is appreciated!
Many thanks,
Kingsley
B Format Convolution Reverb Crashes Ableton when added as a single instance or more, regardless of whether there is a source panner or other device on the given track. Appeared randomly, no changes other than regular Windows/Java/GPU driver updates. Sometimes, we get a "a serious problem has occurred" message, in which case the project file becomes corrupted and will no longer open after crash.
Hi all! Trying to get set up. I have started Jack, but I am unable to see JackRouter in my input/output config in Max. Any ideas?
For what it's worth, I saw two errors when first trying to open the Max project, then they went away, and when I restarted my computer, I saw them again. I haven't detected a pattern that makes this error show up.
reg_object_new: no mobex for u134005725
reg_object_new: no mobex for u683005726
Hey Guys, thanks for your patience but I'm doing a listening session for 25 people surrounded with 4 speakers and sub. Can I just do a stereo output from my laptop and how should I split between speakers. Could I add a USB sound card for 2 more signals so each speaker has it's own channel? Thanks again.
While other decoders work, the default selected decoder "Binaural" does not produce any sound. Opening in Max reveals the message "newobj: hb1_to_binaural~: No such object" in the Max console.
Hey @ramagottfried ,
Natasha Barrett and I (she says hello!) just spent a while trying to use envelop in the CCRMA listening room (24.4 system), and we may have uncovered issues in the envelop encoder. The listening room has no problem decoding ACN formatted encodings, so we know the channel orderings are fine. But it does not properly decode input from the envelop client.
CCRMA's listening room has its own ambisonic decoders running through OpenMixer, and we are using its ACN decoder. When we pass the inputs to that decoder, they are the untouched 16 channels being piped straight past the envelop decoder (16 ins -> 16 outs, untouched).
We put together some more targeted tests, and here are what the problems seem to be:
The input levels from the encoder to the decoder appear to be inconsistent. Imagine panning a single source sound around the x-y plane, e.g. at points (x, y, z) = (1, 0, 0), (0, 1, 0), (-1, 0, 0), (0, -1, 0). Call the encoded amplitudes of the x and y channels N. Call the level of the encoded w channel W. If you then pan to (0, 0, 1), the encoded level of the z channel should also be N, but is roughly 3N, which is incorrect. It also explains what's going on perceptually: when panning around the x-y plane, it's hard to pinpoint the sound's location, which appears somewhat omnidirectional. but panning in the Z direction is more obvious, presumably because the input level is higher relative to W, so it's more directional.
Also, the z-axis seems to be flipped. If we send x,y,z coordinates (0, 0, 1), we hear it in the floor, and we hear (0, 0, -1) in the ceiling.
In trying to figure out why this could be happening, we realized it's possible that there are some alterations you've done to the encoder for the particular envelop systems, but we don't understand why those alterations wouldn't be happening solely inside the decoder - it would be a portability problem if alterations were in the encoder.
Happy to send more logs or debug this with you online if you like. Let me know!
If two source panners are inside an audio effect rack, when you exit live or open a new project a crash occurs.
Just started trying out Envelop. Here's a couple notes on the documentation:
The Google Doc states that I would need to use a special build of Jack. I thought this might be out of date, so I took one for the team and tried jackOSX Version 0.92_b3 from jackaudio.org. I am currently listening to audio from Live via the Envelop rendering patch in Max, so it seems to be working fine. You may want to update your docs.
It might be worth mentioning that the the Envelop folder needs to live in a special place. The first time I tried opening the Max project (from my ~/Downloads folder), I got a lot of errors. I moved the EnvelopForLive-2.1 folder into the ~/Documents/Max 7/Packages folder, and the project then opened fine.
Finally, here's a little gif that shows how to make connections in mac OS Jack Pilot that might be useful to your first-timers:
when using midi clips to automate the location knobs on the maxforlive plugins, the automation becomes disengaged. this continues happening randomly. I cannot confirm what causes it to disengage (it's not just when it passes the -180 mark, to reset for full circles rotation, seems to be with random parameters, and random times).
would really like to get this solved in the next couple weeks, because we have a few people planning to perform with this at Bman. Thanks!
When running Ableton Live 9.6.1 in 32bit mode M4L device will not open.
Live 9.6.1 64bit works great.
When i load the Delay8 FX M4L device, it appears to work for a short period, but eventually it stops. After a few tests, it appears that the setting the beat_delay knob too high may be triggering an overload of the buffer. setting a lower max might help this. It's also worth noting that not only does the Delay8 not work, but the Verb does not appear to have an effect. If i delete the Delay8, and use the standalone verb, then it works.
I continued testing: I have only one instrument in the whole session, playing on 1/2. the Delay8 placed on Channel 1/2. When i changed the output to 3/4, the effect started working. and same thing for 5/6, 7/8, so on....
The device "E4L Source Panner" has several number boxes with the short name of Spread. I noticed that the scripting name has a unique name, and perhaps that is what was intended.
The problem with this is that when you query for all the names of parameters in a patch ( that is, get name into live.object for each _id), it is the short name that is reported, not the scripting name. So if I'm trying to control the "E4L Source Panner" device from another Max device based on parameter name Spread, I can't actually set the value I want.
I've attached some images that help illustrate this.
Here's the M4L device that gets the parameters for a device.
Live.API_tester.amxd.zip
it may also be worth mentioning that this JACK patch can be saved and then re-loaded as a final step of the loading process each time
Stored project value is getting over-written when the device re-initializes. Christina can reproduce consistently.
Upon first installing and opening the E4L objects, I was unable to get any of the objects in Live to successfully connect to the Envelop server.
Removing previously installed odot objects from the Max folder and making sure only the ones that came packaged with the E4L folder were used successfully fixed the problem.
Hey,
Apologies if the answer to this is fairly obvious, I'm new to Ambisonics and E4L.
When I add any E4L Audio Effects (apart from the Source Panner, Meter and Master Bus) to an audio channel Ableton 10 crashes.
I'm using E4L 10.0.3 and Ableton 10.0.5
Would be great if any can offer any solutions to this.
This looks fantastic. Any plans to support Bitwig Studio as well?
hi there!
thanks for this project! it looks really good.
i'm wondering what needs to be done to make it work with the 64-bit versions of ableton and max on windows...
cheers!
hoa.3d.map~ spreads the source panning towards omni when < radius of 1 for flyby proximity effects.
this could also be achieved in the spherical harmonic domain after encoding which could be more flexible, but it may be worth using the built-in version for simplicity.
this needs to be evaluated for use with real speaker distances and hoa.3d.decode~...
This was from a fresh pull of master today, Nov 15 2017.
Max platform info if needed:
{
"version" : "Version 7.3.4 (de5a74a) (32-bit mac)",
"platform" : "mac",
"arch" : "x86",
"osversion" : "Mac OS X Version 10.11.6 x86_64",
"samplerate" : 44100,
"iovs" : 512,
"sigvs" : 512,
"scheduler_in_audio_interrupt" : "on",
"audio_drivername" : "Core Audio",
"audio_driver_subname" : "",
"license" : "permanent full",
"machine_id" : "31207185f88c821a5df9907007f923ee",
"eventinterval" : 2,
"overdrive" : "on",
"mixerparallel" : "off",
"mixercrossfade" : 0,
"mixerlatency" : 30.0,
"mixerramptime" : 10.0
}
When 3 E4L Meter devices are placed in a row with signal chaining, the 2nd one feeds back into the first one rather than forwarding to the 3rd device.
Possibly to do with naming collision?
I'm going to be re-patching the main DSP server and M4L devices, so really no problem to switch to ICST if we would rather use that?
Bring it up to visual par with the other devices.
I'm seeing an issue with the stereo source device where azimuth, elevation, and distance settings don't persist between saves of a Live session.
Repro steps:
You should see that those settings go back to the defaults.
Hi!
Thanks for a great set of softwares!
I work at two places with different loudspeaker setups, and one system is having a channel ordering based on film industry standards. i.e. L, R, C, LFE, etc..
This makes everything ambisonic a bit tiring, as one need to put some channel ordering and skipping in-between stuff. So as Ableton is so stereo focused I totally understand that you chose to do the output routing in stereo pairs. But it would be very nice if there was a possibility to use mono channels instead, or give an option to the user. It would solve a lot of problems in different setups.
Best regards,
Marcus
Summing the additional orders is resulting in a significantly greater gain than the other decoders. Reduce it to match.
Hi, amazing software, it really makes up for the very limited surround module with live 10. I have a few questions though, I am testing my setup (standard 7.1 array) and have noticed a few things when I do 7.1 decode.
The first question might solve a lot of things. Which output order do you use for 7.1? I have an ITU standard setup (L, R, C, LFE, Ls. Rs, Lms, Lrs). Mostly it seems ok, but I get strange behaviour when I pan the signal to the rear of the array (so Ls and Rs channels with a 7.1 decode). IF this is not the layout is there a way to change the layout to standard ITU - I am running a series of presentations that are using 7.1 and have so far just used the ITU channel order.
Also I saw a post referencing a sharp volume jump in the centre position (#26). I understand the logic behind the discussion. I would like to continue working in a standard 7.1 setup with Live and am wondering if there is a way to clamp the distance or limit it so it does not go to 0. I am not remaking your stuff, just dropping in the master bus and encoders (not that familiar with Max, or Live, but one of my students wanted to use Live in 7.1 and I am trying to support it.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.