EnvelopSound / EnvelopForLive

Free, open-source tools for Ambisonic 3D panning within Max for Live 10+
http://www.envelop.us/
GNU General Public License v2.0
483 stars 60 forks source link

config file system #8

Closed ramagottfried closed 8 years ago

ramagottfried commented 8 years ago

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.

ramagottfried commented 8 years ago

oh! I forgot everything goes through the client anyway, so this is a non-issue! yay

I think we should force all M4L devices to always send to localhost before being forwarded by the client, so I'm going to remove the option to change this in the devices -- but I'll leave the port number as a changeable option since users could potentially be using the same port.

roddylindsay commented 8 years ago

Yeah, this should all go to localhost since the M4L client will be co-located on localhost by definition. Is that what you mean?

On Sun, Aug 28, 2016 at 1:21 PM, rama gottfried notifications@github.com wrote:

Closed #8 https://github.com/EnvelopSound/EnvelopLive/issues/8.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/EnvelopSound/EnvelopLive/issues/8#event-770062612, or mute the thread https://github.com/notifications/unsubscribe-auth/ABNhbqd-nU1rZu39u90NUiz8wSVe9ozkks5qke2zgaJpZM4Ju_Cv .

"Buy the ticket, take the ride."

ramagottfried commented 8 years ago

right, exactly -- I needed to refresh my memory of the setup -- but yeah, I think we should remove the option to change the UDP sendto IP address since it will always go to the M4L client by design.

cameronangeli commented 8 years ago

Hey guys,

Just got back from burning man, where we had the full setup running. I'd love to give you the download of what we pulled off, and the problems we encountered. Overall, people were very intrigued.

Cameron Angeli | c: 310-502-9447 | o: 424-204-4064

On Aug 30, 2016, at 11:58 AM, rama gottfried notifications@github.com wrote:

right, exactly -- I needed to refresh my memory of the setup -- but yeah, I think we should remove the option to change the UDP sendto IP address since it will always go to the M4L client by design.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

cameronangeli commented 8 years ago

And one note to consider, if you want to have performers who don't have max 7 installed on their machines, you'll want to have the client and server on another encoding machine. This means that the max4live plugins would have to have the IP address for the encoding machine - not local host.

Cameron Angeli | c: 310-502-9447 | o: 424-204-4064

On Aug 30, 2016, at 11:58 AM, rama gottfried notifications@github.com wrote:

right, exactly -- I needed to refresh my memory of the setup -- but yeah, I think we should remove the option to change the UDP sendto IP address since it will always go to the M4L client by design.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

roddylindsay commented 8 years ago

For non-developers, the plan is to build a standalone application so folks who don't have max can still run the software. I can't envision a scenario where you would want to have the client interface on a separate machine, but maybe I'm wrong?

I would love to hear how it went...would you mind filing any specific bugs / issues here and Rama and I will take a look?

On Saturday, September 10, 2016, cameronangeli notifications@github.com wrote:

And one note to consider, if you want to have performers who don't have max 7 installed on their machines, you'll want to have the client and server on another encoding machine. This means that the max4live plugins would have to have the IP address for the encoding machine - not local host.

Cameron Angeli | c: 310-502-9447 | o: 424-204-4064

On Aug 30, 2016, at 11:58 AM, rama gottfried <notifications@github.com javascript:_e(%7B%7D,'cvml','notifications@github.com');> wrote:

right, exactly -- I needed to refresh my memory of the setup -- but yeah, I think we should remove the option to change the UDP sendto IP address since it will always go to the M4L client by design.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/EnvelopSound/EnvelopLive/issues/8#issuecomment-246121450, or mute the thread https://github.com/notifications/unsubscribe-auth/ABNhbseoblAaA9rE7uy3zdx8QucuSoFgks5qotw-gaJpZM4Ju_Cv .

"Buy the ticket, take the ride."

cameronangeli commented 8 years ago

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:

1) Performance Machine (Macbook Pro) running Ableton Live 9 64 bit: We are using all 16 envelop audio sources: 1-4 = 2 stereo pairs that are used as the core, 4 corner virtual anchors placed at 0 elevation in the corners. Drums and bass piped to these anchors so you hear them from all ground level speakers; 5-8 = 2 stereo pairs that are used for send effects piped into static anchors placed in the roof in a square - Reaktor effects like a 4 ch rotate delay, or 8 ch random delay tap, or front to back reverb; 9-14 = 3 stereo pairs for individual stereo sounds that can be panned; 15 & 16 = mono sounds that can be panned.

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:

2) Encoding Machine (mac mini 2016 8GB Ram). We are also running Dante Virtual Sound Card, and Dante Controller on this machine. The channels from the performance machine are mapped to the input channels of the encoding machine. In order for the signal to work properly, we also had to initially use Dante Via to identify audio sources at Dante capable.

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: 1) we added a master volume and meter that allows us to control the volume of all 16 tracks before they enter the encoder. 2) We added sub groups to control the volume of each of our speaker types (like a fader for the subs, fader for the 3-ways, fader for the low eons, and fader for the roof eons) 3) in order to deal with the speaker placement distance discrepancy, we added individual delays to each speaker. We never used this because it sounded fine, but technically, we should have delayed the eons on the room, since they were closer to the DJ than the corner speakers. 4) we disabled the built in reverb because it uses up a bunch of the DSP, and really doesn't add too much to the experience. We prefer to have the effects routed as we did with Reaktor.

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: 1) we need to do a full analog routing (no dante). based on the gear I have, I could test up to 16 channels out of ableton, to an 8 channel speaker arrangement in my studio. to try the 16 channel setup would require me to find a big enough space. 2) i'd like to get an external clock to sync everything to.

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.

On Sat, Sep 10, 2016 at 10:11 AM, Roddy Lindsay notifications@github.com wrote:

For non-developers, the plan is to build a standalone application so folks who don't have max can still run the software. I can't envision a scenario where you would want to have the client interface on a separate machine, but maybe I'm wrong?

I would love to hear how it went...would you mind filing any specific bugs / issues here and Rama and I will take a look?

On Saturday, September 10, 2016, cameronangeli notifications@github.com wrote:

And one note to consider, if you want to have performers who don't have max 7 installed on their machines, you'll want to have the client and server on another encoding machine. This means that the max4live plugins would have to have the IP address for the encoding machine - not local host.

Cameron Angeli | c: 310-502-9447 | o: 424-204-4064

On Aug 30, 2016, at 11:58 AM, rama gottfried <notifications@github.com javascript:_e(%7B%7D,'cvml','notifications@github.com');> wrote:

right, exactly -- I needed to refresh my memory of the setup -- but yeah, I think we should remove the option to change the UDP sendto IP address since it will always go to the M4L client by design.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/EnvelopSound/EnvelopLive/issues/8#issuecomment- 246121450, or mute the thread https://github.com/notifications/unsubscribe-auth/ ABNhbseoblAaA9rE7uy3zdx8QucuSoFgks5qotw-gaJpZM4Ju_Cv .

"Buy the ticket, take the ride."

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/EnvelopSound/EnvelopLive/issues/8#issuecomment-246123402, or mute the thread https://github.com/notifications/unsubscribe-auth/AP9b-wSi9ug1kcgi6wDeRL0NskME_pDTks5qouS3gaJpZM4Ju_Cv .

Cameron Angeli "A Professional" cameronangeli@gmail.com 310.502.9447

cameronangeli.com musicsavages.com soundcloud.com/cameronangeli facebook.com/cameronangeli youtube.com/cameronangeli http://youtube.com/cameronangeli

roddylindsay commented 8 years ago

@cameronangeli : opened https://github.com/EnvelopSound/EnvelopLive/issues/11 to track this