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..
    thanks, Alex

    • Jul 06 2011 | 10:52 pm
      On 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.
    • Jul 07 2011 | 12:43 pm
      Great, thanks for that! that seems to do the job very nicely.
    • Jul 07 2011 | 1:15 pm
      sorry - 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.
    • Jul 07 2011 | 1:41 pm
      audiounit~ doesn't come with max, you have to download it. Here's a link to the latest one (i think):
      cool, i'll check out Jacktrip.
    • Jul 07 2011 | 2:18 pm
      Hi Alex,
      if checking out please tell us your experience with Jacktrip compared to the AudioUnits.
    • Jul 07 2011 | 4:21 pm
      yes please report back - there is
      and also soundjack
      and there is also this from Zach Poff
      which 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 info
      and please keep us posted here with any info!
    • Jul 07 2011 | 9:23 pm
      Well 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.
    • Jul 07 2011 | 10:44 pm
      yes - 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 jacktrip
      jacktrip -s -n 2
      this will set up a server channel (stereo).
      then on a node (computer 1) type this
      jacktrip -c -n 2
      this 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- 1
      that -o 1 is very important - as this is the port offset for the next node (4345)
      on the next computer type in
      jacktrip -c here -n2 -o 1
      and so on adding a 1 to every subsequent -o 1 message
      so computer 3 becomes o- 2 computer 4 becomes o- 3
      get me?
      ok so once you have this established you need to set up the routing in jackosx
      on the server you should see that new channels have opened up in jackosx
      by default they are called
      jacktrip jacktrip-01 jacktrip-02 etc
      each 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.....
    • Jul 08 2011 | 9:41 am
      Thanks 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.
    • Jul 08 2011 | 10:48 am
      there 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 time
      Thread 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 0x004eca00 std::map, std::allocator > >::map() + 3583398 6 0x004ecc4c std::map, std::allocator > >::map() + 3583986 7 0x005063a2 std::map, std::allocator > >::map() + 3688264 8 0x001eb7c0 std::map, std::allocator > >::map() + 432998
    • Jul 08 2011 | 11:36 am
      After 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.
    • Jul 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?
    • Jul 08 2011 | 3:41 pm
      Synchronization is easy and perfect in M4L, but only with Live of course. Basically M4L runs like a plugin.
    • Jul 08 2011 | 3:53 pm
      how 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
    • Jul 08 2011 | 9:02 pm
      With 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.
    • Jul 08 2011 | 9:28 pm
      Thanks 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?
    • Jul 08 2011 | 9:33 pm
      i see, and i understand.
      you see i am trying to sync to instances of live over a network. ie in remote locations.
      thanks though
    • Jul 08 2011 | 10:17 pm
      A Dwelling0
      yes - for that purpose then the soundjack program is best
      that should work. but there may be varying latency between the machines.
      let us know how you get on....