Audiobus: Use your music apps together.

What is Audiobus?Audiobus is an award-winning music app for iPhone and iPad which lets you use your other music apps together. Chain effects on your favourite synth, run the output of apps or Audio Units into an app like GarageBand or Loopy, or select a different audio interface output for each app. Route MIDI between apps — drive a synth from a MIDI sequencer, or add an arpeggiator to your MIDI keyboard — or sync with your external MIDI gear. And control your entire setup from a MIDI controller.

Download on the App Store

Audiobus is the app that makes the rest of your setup better.

Open beta - Wireless Audio AUv3

Hey, folks -- we've got a new app that's in open beta. If you want to give it a spin, we'd appreciate the feedback.

The app itself is just a carrier for two AUv3 plug-ins. The plugs allow streaming audio over WiFi from one iOS device to another. Insert the "transmit" AUv3 into an effects slot of your favorite host app, and the "receive" AUv3 into a generator/instrument slot on your favorite host on another device.

Toggle on data transmission on the first device -- the plug-in will show the IP address. Then, enter that IP address in the receiver, tap connect, and audio should be flowing.

A couple of things to watch for. First -- both devices need to have the same sample rate; if it sounds choppy and warbling, chances are the audio is at different rates on the devices. You can only send one stream of audio for right now -- so don't try inserting a dozen different transmitters, and having them all going. Both devices need to be on the same local network.

There's a buffering control on the receiver -- set it to a low value if you've got a fast WiFi router, good signal, and not a lot of wireless traffic and interference. If your environment is a little more challenging -- bump up the buffering value. If you've got a slow router, or a lot of wireless noise, the audio might not be smooth enough for it to be useful. That's one of the things I'm hoping to get feedback on -- how well does it work for where you are, and the devices you've got?

https://testflight.apple.com/join/zHC6006R

«134567

Comments

  • Awesome thanks for sharing the beta. Excited to try later. Cheers @SecretBaseDesign

  • wimwim
    edited December 2021

    Cool. Gonna try it out. SonoBus does something similar but I've never been a fan of it. I would prefer this if it's simpler and has less latency.

    I wonder if it would work over Ethernet. I assume it would, but don't have two ethernet adapters to try it out. If it does, I might grab another one as that would be much preferable to wifi to me.

  • edited December 2021

    Cool concept! Vst would be awesome.

  • @SecretBaseDesign said:
    Hey, folks -- we've got a new app that's in open beta. If you want to give it a spin, we'd appreciate the feedback.

    The app itself is just a carrier for two AUv3 plug-ins. The plugs allow streaming audio over WiFi from one iOS device to another. Insert the "transmit" AUv3 into an effects slot of your favorite host app, and the "receive" AUv3 into a generator/instrument slot on your favorite host on another device.

    Toggle on data transmission on the first device -- the plug-in will show the IP address. Then, enter that IP address in the receiver, tap connect, and audio should be flowing.

    A couple of things to watch for. First -- both devices need to have the same sample rate; if it sounds choppy and warbling, chances are the audio is at different rates on the devices. You can only send one stream of audio for right now -- so don't try inserting a dozen different transmitters, and having them all going. Both devices need to be on the same local network.

    There's a buffering control on the receiver -- set it to a low value if you've got a fast WiFi router, good signal, and not a lot of wireless traffic and interference. If your environment is a little more challenging -- bump up the buffering value. If you've got a slow router, or a lot of wireless noise, the audio might not be smooth enough for it to be useful. That's one of the things I'm hoping to get feedback on -- how well does it work for where you are, and the devices you've got?

    https://testflight.apple.com/join/zHC6006R

    Would you happen to know if it will work in self-send/loopback mode (ip address 127.0.01) which would enable one to send from one app to another if the apps support AUv3 without supporting IAA?

  • @Wim -- it should work fine with a hardwired ethernet connection; under the hood, it's all network sockets.

    @Espiegel123 - yes, you can send and receive on the same device.

  • hey @SecretBaseDesign - how would you prefer feedback? Here? Through TestFlight? By email?

  • edited December 2021

    @SecretBaseDesign said:

    @Espiegel123 - yes, you can send and receive on the same device.

    Well snap Homie! one more nail in the IAA coffin then…

  • Interested to hear what the latency is like on this, if someone cares to report back 🥸

  • @wim said:
    hey @SecretBaseDesign - how would you prefer feedback? Here? Through TestFlight? By email?

    Email is probably the most reliable, but I'll be watching the forum here, and a bunch of other spots too.

  • wimwim
    edited December 2021

    OK, I'll do email after this, but since I know you're here now ...

    I haven't been able to establish a connection between transmit and receive. Transmit provides an IP address, but although I have the IP address correct on the receive app, pressing Connect just results in "Failed". If there's a way to provide an error description of some sort, or if there's a log file for the app, I can dig into it.

    I'm pretty good with networking protocols and wifi configuration, so I can probably make any adjustments needed on my home network.

    [edit] oh wait, I have this stupid new router from my internet provider that doesn't give me any configuration options. :s
    I probably have a router I can try though if I can have some clues about what protocols might be getting blocked or anything.

    I thought this might be caused by the iOS "Private Address" setting, but I disabled that on both devices.

  • @wim said:
    OK, I'll do email after this, but since I know you're here now ...

    I haven't been able to establish a connection between transmit and receive. Transmit provides an IP address, but although I have the IP address correct on the receive app, pressing Connect just results in "Failed". If there's a way to provide an error description of some sort, or if there's a log file for the app, I can dig into it.

    I'm pretty good with networking protocols and wifi configuration, so I can probably make any adjustments needed on my home network.

    [edit] oh wait, I have this stupid new router from my internet provider that doesn't give me any configuration options. :s
    I probably have a router I can try though if I can have some clues about what protocols might be getting blocked or anything.

    I thought this might be caused by the iOS "Private Address" setting, but I disabled that on both devices.

    The transmitter opens up a TCP socket on port 8675. If there's some firewalling going on, that may be what's causing trouble. You can point a web browser to IP-address:8675, and if you're getting through, the transmitter will respond with a web page.

    The way things work -- the receiver makes a network request to the transmitter, and if it gets connected, they negotiate and then the audio starts flowing across the socket connection. There's a little bit of smarts on the receiver to try to buffer things just enough that we can survive network packet drops, while not having too much in the buffer causing large amounts of latency.

  • I don't recall the app ever popping up a request to access devices over the network. I'm pretty sure that permission has to be granted on each device.

    I can get to the web page from my Mac but not from the iOS devices. That might provide a clue.

  • oops. nvm. the AUv3 had crashed. I can get to that page from iOS. I think it crashes the transmit plugin though.

  • @wim said:
    I don't recall the app ever popping up a request to access devices over the network. I'm pretty sure that permission has to be granted on each device.

    I can get to the web page from my Mac but not from the iOS devices. That might provide a clue.

    What iOS version and device are you running? There are a bunch of different virtual Internet interfaces, and I may be displaying the wrong one on your device. This was something that I "fixed" in the past couple of days with my devices -- but the "fix" may not be universal.

  • wimwim
    edited December 2021

    iPad Air 2 iOS 14.8
    iPhone 7s iOS 15.1

    Same issue whichever one is the transmitter or receiver.

  • edited December 2021

    Hmmm, no luck here with NS2 to BM3.

    I also get 'Failed'

    PS. How do I go to IP-address:8675 in a browser?

  • @AudioGus said:
    Hmmm, no luck here with NS2 to BM3.

    I also get 'Failed'

    PS. How do I go to IP-address:8675 in a browser?

    just type that in where you normally type in web site addresses. Substitute the IP address shown in the transmit plugin for the "IP-address" part.

  • edited December 2021

    @wim said:

    @AudioGus said:
    Hmmm, no luck here with NS2 to BM3.

    I also get 'Failed'

    PS. How do I go to IP-address:8675 in a browser?

    just type that in where you normally type in web site addresses. Substitute the IP address shown in the transmit plugin for the "IP-address" part.

    Aahhh gotcha… will try that….

    Edit: was thinking copy to clipboard could be handy, but blah blah bLah

  • Between devices? Might be difficult.

  • If you've got transmit started, you can open Safari on the same device, and use "127.0.0.1:8675" -- and you should get back a web page from the transmitter. I'll add some debug information into the next build, and that may help diagnose what's going on.

    For using the plugs to stream between apps on the same device -- the "127.0.0.1" should always work.

    It's looking like I'm showing the "wrong" IP address for some devices/iOS versions, which may be causing the trouble.

  • @wim said:
    Between devices? Might be difficult.

    No i meant on the same device

  • @SecretBaseDesign said:
    If you've got transmit started, you can open Safari on the same device, and use "127.0.0.1:8675" -- and you should get back a web page from the transmitter. I'll add some debug information into the next build, and that may help diagnose what's going on.

    For using the plugs to stream between apps on the same device -- the "127.0.0.1" should always work.

    It's looking like I'm showing the "wrong" IP address for some devices/iOS versions, which may be causing the trouble.

    127.0.0.1 just hangs on ‘Connecting…’ for me.

  • It works for me from my IPad pro 2017 to my Iphone 13… but not the other direction. Very low delay so far. Interested to push this forward

  • wimwim
    edited December 2021

    @SecretBaseDesign said:
    For using the plugs to stream between apps on the same device -- the "127.0.0.1" should always work.

    Nope, sorry. But at least it takes longer to fail. ;)

    Are you sure that Network permissions don't need to be granted? I've never seen apps that can connect to other devices over the network not needing that granted through a popup since a few iOS versions ago.

    It's looking like I'm showing the "wrong" IP address for some devices/iOS versions, which may be causing the trouble.

    I only see one IPv4 address for each of my devices on my router, and that always shows what the app is displaying.

  • @SecretBaseDesign so I could Wi-Fi my GarageBand synths into Cubasis 3 now???
    I’m asking because I’m a poor reader of details.😕

  • wimwim
    edited December 2021

    @cuscolima said:
    It works for me from my IPad pro 2017 to my Iphone 13… but not the other direction. Very low delay so far. Interested to push this forward

    That would make sense if Local Network permission is the problem. That requirement was introduced in iOS 14.
    https://lostmoa.com/blog/GettingReadyForNewiOS14LocalNetworkPrivacyRestrictions/

  • If this can be used as a simple local version of SonoBus with low latency then I would be very interested. Being able to load one or more instances of this into multiple hosts and have them automatically reconnect with each other after loading their state would be so useful.

  • Apple will swipe this idea and put in the next update ...LOL!

  • edited December 2021

    @wim -- thanks much. I've added the permission in, but I'm not getting a pop-up. I'm wondering if this is only checked when using the higher level API (URLSession, and whatnot). My code is based on dinosaur-era sockets, and might not be triggering the security checks. I'll mess around with this, and see if I can get the pop-up to happen.

    Much of the code here has been kicking around for a while -- a few years ago, I had "Apollo Sound Injector" that did WiFi streaming, but it was kind of clunky, and with IAA, more trouble than it was worth. With AUv3, things are a lot cleaner and easier to use, so I'm trying to resurrect things. The streaming is also advertised with Bonjour -- the advertisements for this get out onto the WiFi, but they're getting blocked from coming in to the receiver.

    Anyway, excellent beta testing so far! Lots of stuff breaking in the real world that work fine for me! I'll push out an update tomorrow, and will have some debug information displayed in the web browser interface. Here's what my iPad thinks the network interfaces are:

    Interface lo0 is to the network IP 127.0.0.1.
    Interface en2 is to the network IP 169.254.227.235.
    Interface en0 is to the network IP 10.0.0.15.
    Interface utun8 is to the network IP 10.5.0.2.

    I'm displaying "en0" in the user interface, as that's what I think should be the primary access -- but maybe that's not right, and depending on the device, I need to look for something else....

  • wimwim
    edited December 2021

    @SecretBaseDesign said:
    @wim -- thanks much. I've added the permission in, but I'm not getting a pop-up. I'm wondering if this is only checked when using the higher level API (URLSession, and whatnot). My code is based on dinosaur-era sockets, and might not be triggering the security checks. I'll mess around with this, and see if I can get the pop-up to happen.

    I hope I'm not leading you on a wild goose chase.

    The network permissions popup, I think only comes up on a new install or if you do some specific things to check and bring it up. When the update drops, I'll uninstall and reinstall.

    Apps that request Local Network permissions show up under Settings > Privacy > Local Network. Lots of times in the past where things like Ableton Link were failing it turned out to be this. But maybe not in the case of your older protocols.

    I remember Apollo fondly, though I think I only ever got it working for MIDI. 👍🏼

Sign In or Register to comment.