Send audio over wireless network
Jul 06 2011 | 8:12 pm
Anyone having much success with this? I see there are netsend~/receive~ objects although i haven't been able to use them as they're only in PPC format. Does anyone have an intel version?
And has anyone found any other reliable way to stream audio wirelessly from one laptop to another? Would be great to be able to do this but things like 'mxj net.maxhole' aren't capable of it..
- brocJul 06 2011 | 10:52 pmOn Mac computers you can use the built-in AudioUnits AUNetSend and AUNetReceive. In Max they are available as objects [audiounit~ 2 2 AUNetSend] and [audiounit~ 0 2 AUNetReceive]. The setup is simple due to the automatic Bonjour protocol. In my experience it works reliably.
- ADwellingOxJul 07 2011 | 12:43 pmGreat, thanks for that! that seems to do the job very nicely.
- umma08Jul 07 2011 | 1:15 pmsorry - how did you call up audiounits in your max patch - when i try [audiounit~ 2 2 AUNetSend] - get no such object. i am on Mac 10.6.8 and have those audio units....also for network audio - i would recommend Jacktrip - very fast (minimal latency) audio transfer.
- ADwellingOxJul 07 2011 | 1:41 pmaudiounit~ doesn't come with max, you have to download it. Here's a link to the latest one (i think): https://cycling74.com/forums/audiounit-public-beta-4cool, i'll check out Jacktrip.
- brocJul 07 2011 | 2:18 pmHi Alex,if checking out please tell us your experience with Jacktrip compared to the AudioUnits.
- umma08Jul 07 2011 | 4:21 pmyes please report back - there isand also soundjackand there is also this from Zach Poffwhich i have not tested.all worth checking out, and all are university research projects.i have networked with Jacktrip and have been very impressed with the results (once you get past the finicky set up stage).I wil be trying Soundjack in comparison next week at some stage.thanks for the audiounit infoand please keep us posted here with any info!
- ADwellingOxJul 07 2011 | 9:23 pmWell i've had a go at setting up Jacktrip. Definitely a lot more hassle than AUNetSend/Receive! It's working now (i think..) but i'm not sure the best way to set it up to send audio from max on one laptop and receive it on another over a wireless network. Can any of you give an explanation as to how to do that? Would definitely save me some time!Also is it possible with this, or any of the other options, to use multicasting? The AUNetSend audio units are just unicast so you have to set up direct connections. This will probably be a problem for me as i'm hoping to set things up for a group of 6 or more laptops.. multicasting would be very handy/efficient.Thanks.
- umma08Jul 07 2011 | 10:44 pmyes - i can help with this - finally i can be assistance to someone....ok first you have to get Jacktrip installed.You know it works if in terminal when you type jacktrip - the program loads (in terminal)you also have to install jackosx - that is pretty simple - and will allow multi casting....when you have both those done - you have to do this.....open up jackosx and set the paramaters you want (sample rate buffer etc etc) default is good most of the time. if you are really doing 6 computers (you will need some serious upload and download speed) but anyway.set up Jack to have 12 virtual (six stereo) ins and 12 virtual outs.then go to abelton/logic and select jack osx as your audio interface (dont worry here - even though you have selected jackosx you will still hear audio).when you have this done - now you have to set up Jacktrip. so call it up in terminal.ok now its tricky. do you want the audio routed all back to one server?if so you have to set up a client and server for every computer.you will end up having 6 terminals up on the host (server) and one each on the nodes (clients). get me so far?ok so on the server type this into jacktripjacktrip -s -n 2this will set up a server channel (stereo).then on a node (computer 1) type thisjacktrip -c ip.add.re.ss.here -n 2this sets up the client (node) - you should see a connection established message. please note at this stage you will be using one port for this communication. for arguments sake 4344 (i am not sure the default)ok so for every other computer you need to do the following.on the server - IN A NEW TERMINAL PAGE -jacktrip -s -n 2 o- 1that -o 1 is very important - as this is the port offset for the next node (4345)on the next computer type injacktrip -c ip.add.ree.ss here -n2 -o 1and so on adding a 1 to every subsequent -o 1 messageso computer 3 becomes o- 2 computer 4 becomes o- 3get me?ok so once you have this established you need to set up the routing in jackosxon the server you should see that new channels have opened up in jackosxby default they are calledjacktrip jacktrip-01 jacktrip-02 etceach will have two ins and two outs - as we said in the setup -n 2 (2 channels)by default these are connected weird (its a head wreck) but basically click on a connection - where you see red (you have to drop down the arrow) is where the audio is connected to. so configuire as you please.anyhow let me know how you get on, or if you need any more help.....
- brocJul 08 2011 | 9:41 amThanks umma08 for the explanations.What happens if the computers are shut down and restarted? Can the setup be saved and automatically restored?In principle, multicasting is possible also with AUNetSend/Receive. For this you would use multiple instances of AUNetSend on the main computer. The receivers can then connect to the different instances with just two mouse clicks.
- umma08Jul 08 2011 | 10:48 amthere is a program called jmess that stores the settings - i have not really tried it, as i am only using a three computer setup.do you know anything about the hostcontrol~ and hostsync~ objects? i am having a nightmare with crashes with info sent over udp.here is the crash thread - seems pretty much the same all the timeThread 11 Crashed: 0 com.cycling74.MSPReWireDevice 0x1d823e71 rewiredevice_copyevents(_mceventbuf const*, ReWire::ReWireDriveAudioOutputParams*, long, ReWire::ReWireDriveAudioInputParams const*) + 177 1 com.cycling74.MSPReWireDevice 0x1d824947 RWDEFDriveAudio + 473 2 ...opellerheads.rewire.library 0x1dbe1d0a 0x1dbe0000 + 7434 3 ...opellerheads.rewire.library 0x1dbe6a89 RWPUnregisterDeviceImp + 1767 4 ...opellerheads.rewire.library 0x1dbe5798 RWM2DriveAudioImp + 64 5 com.ableton.live 0x004eca00 std::map, std::allocator > >::map() + 3583398 6 com.ableton.live 0x004ecc4c std::map, std::allocator > >::map() + 3583986 7 com.ableton.live 0x005063a2 std::map, std::allocator > >::map() + 3688264 8 com.ableton.live 0x001eb7c0 std::map, std::allocator > >::map() + 432998
- brocJul 08 2011 | 11:36 amAfter having experienced several problems with ReWire I've decided to not use it anymore. In general I've found that synchronization of multiple applications is more or less problematic. Fortunately with the power of M4L almost everything can be done in a single application.
- umma08Jul 08 2011 | 2:08 pm- well i have got syncronisation - albeit with drift, but it is doable. i also have remote control of loop markers, tempo, start and stop etc. i just cant seem to be able to build a standalone of the patch now.i tried syncronising at a sample level - but was in crash city. which wasn't great to be honest!also having trouble building a standalone patch....is syncronisation much easier in m4l? and is it sample accurate?
- brocJul 08 2011 | 3:41 pmSynchronization is easy and perfect in M4L, but only with Live of course. Basically M4L runs like a plugin.
- umma08Jul 08 2011 | 3:53 pmhow does it work? i gather its a LIVE update - that allows you to drag a max standalone into LIVE?and is it really 'perfect' i mean mine is pretty close, ie it keeps in time - probably as well as you would like over a network.please explain how it is done with M4L
- brocJul 08 2011 | 9:02 pmWith M4L you can use [plugsync~] to run Max patches perfectly synced to Live.But let's stay on topic of the thread which is audio over network.
- ADwellingOxJul 08 2011 | 9:28 pmThanks for all the info on setting up jacktrip umma08! Is there any way that one person could send out audio on a port and everyone could listen in on that port? Rather than setting up direct connections between each laptop?
- umma08Jul 08 2011 | 9:33 pmi see, and i understand.you see i am trying to sync to instances of live over a network. ie in remote locations.thanks though
- umma08Jul 08 2011 | 10:17 pmA Dwelling0yes - for that purpose then the soundjack program is bestwww.soundjack.euthat should work. but there may be varying latency between the machines.let us know how you get on....