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.

VisualSwift - Music, Beta Version 0.6

edited January 2021 in General App Discussion

I've been creating a Visual Programming app that works by connecting components in schematics.

My strength in the past has always been in experimenting and quickly implementing many different ideas rather than polishing and focusing on a narrow scope and doing that well. I'm trying to change that ( and that's why I've decided to post this message ).

I've decided to focus on Music and specifically hosting AUv3 plugins. For that purpose I've created a much simpler version of the full VisualSwift which I've called "VisualSwift - Music"

This version focuses mainly on 3 types of components: Instrument, Effect and MIDI Processor. When connected together it should be possible to create music with them as shown in the following screenshot:

Here's a YouTube video showing it in action: https://youtu.be/1_WoUxcSaOY

Would be great to get feedback from this community mainly in relation to bugs/crashes, basic essential features that are missing and maybe for example the time transport controls might not be working as they should. Documentation is missing and a high priority, if someone finds they're stuck not knowing what to do, would be great to know.

Here's the TestFlight link: https://testflight.apple.com/join/9KePAn4p

«1

Comments

  • Hmmmmmm. This looks really interesting. Might have to give it a spin!!!

  • @onerez said:
    Hmmmmmm. This looks really interesting. Might have to give it a spin!!!

    +1

  • could this also be used to container native ios apps? just wondering if an app like vidibox, that has viewport issues, might be displayed showing all ui controls.

  • edited December 2020

    @Jorge

    I’ve connected these modules and I’m not hearing anything:

  • I got sound one time and then I don't know what happened. One instrument crashed but well, that happens. No indication that the clock is running. I used Atom with a short loop but it only played the tone once. Also it felt very cluttered and I think a full page from start would be a better option so you know where you are if that makes sense. It does have potential I think, keep working :D :D

  • edited December 2020

    @Littlewoodg

    Thanks, I didn't realise the Piano was still exposed in this version. Let me explain a little:

    The purple connectors are AVAudioUnit connectors. The ones with a white circle are for audio, the ones with a musical note are for MIDI. The purple components connected with purple links form a graph that should work when you switch your Audio On.
    To feed your Instrument with MIDI notes you need to connect a MIDI Processor to it, you'll see that the output of the MIDI Processor matches the input of your Instrument, they're both purple. The MIDI Processor component allows you to host an AUv3 MIDI Processor plugin like a sequencer, for example "Fuge Machine" or "Atom | Piano Roll"

    The red connectors were not intended to be available in this version yet, they're for internal timestamped MIDI events for creating your own MIDI effects.

    What I'll do next is make the Piano compatible with the purple MIDI and also make available a MIDI input component so you can use an external piano keyboard.

  • @Pxlhg

    Thanks, would help to know which device you're using and also the sequence of actions you took that made it crash. I guess I tend to always do things the same way and have fixed the bugs that are particular to my workflow. If I can replicate your crash would be great.

  • @Jorge said:
    @Pxlhg

    Thanks, would help to know which device you're using and also the sequence of actions you took that made it crash. I guess I tend to always do things the same way and have fixed the bugs that are particular to my workflow. If I can replicate your crash would be great.

    Oh, it was not your app that crashed but a synth, AddStation, which is a pretty heavy one but I had just Audio out, instrument and Atom for midi. I'm on an iPad Air 3 2019 and iOS 14.3 for future communication :)

  • Congrats for this interesting app. I frequently have problems when modifying the connections. For example, I have one instrument connected to one fx. I have a second instrument connected to another fx. When I change this connection to the first fx, it doesn’t work. I close the app and reload it and it works...
    Same problem with the audioOutput. As soon as you change something in the chain, it doesn’t work anymore and you have to reload an audioOutput module

  • @Littlewoodg

    I've fixed the bug you're reported, I'm now uploading a new version 0.6.11 with the fix. You should be notified by TestFlight when it becomes available. The red MIDI connector can now be linked to a purple MIDI connector.

  • @Jorge said:
    @Littlewoodg

    Thanks, I didn't realise the Piano was still exposed in this version. Let me explain a little:

    The purple connectors are AVAudioUnit connectors. The ones with a white circle are for audio, the ones with a musical note are for MIDI. The purple components connected with purple links form a graph that should work when you switch your Audio On.
    To feed your Instrument with MIDI notes you need to connect a MIDI Processor to it, you'll see that the output of the MIDI Processor matches the input of your Instrument, they're both purple. The MIDI Processor component allows you to host an AUv3 MIDI Processor plugin like a sequencer, for example "Fuge Machine" or "Atom | Piano Roll"

    The red connectors were not intended to be available in this version yet, they're for internal timestamped MIDI events for creating your own MIDI effects.

    What I'll do next is make the Piano compatible with the purple MIDI and also make available a MIDI input component so you can use an external piano keyboard.

    Cool, thanks this makes sense now.
    Very cool platform

  • edited December 2020

    @cuscolima

    I'm trying to make the disconnecting and connecting as user friendly as possible which means there's quite a lot that goes on behind the scenes. For example when you connect a second audio output to and audio input, it has to transparently insert a mixer in the graph, this should obviously work well from a user point of view but it has potential for bugs. If I can replicate the problem it should be 80% of the way towards fixing it. ( from your description I think I'll be able to replicate it )

    One way around any connecting/disconnecting problem is to switch audio off and back on. ( I guess this is repeating what you already said )

    Also, when you open a schematic that has AudioOut switched on, it should start working straight away. I think there are still some changes you make that don't tag the schematic as having changed and you might lose them if you close quickly after. The background goes slightly red when the file has pending changes. To be sure you don't lose anything you can drag a component slightly before closing. There is autosave every 30 seconds or so, so if you lose some changes it will only be the very last ones.

  • edited December 2020

    @Jorge

    Thanks for bringing your ideas to iOS love it when stuff like this drops out of nowhere ! Looks very interesting will definitely give it a spin. Reminds me of the Retronyms Tabletop app which I liked the concept of but was to unstable and badly supported hopefully this will take off.

  • edited December 2020

    @Jorge

    Sent you some feedback find the app pretty unusable on a iPad Pro 9.7 2016 iOS 14.2. Basically switching in and out of apps changing apps etc is pretty painful with new au not loading and midi AU are not playing spent 20 mins with it and not a sound yet.

    No crashes which is one good thing. I’m never a fan of file saving the Apple way ie the way this app and GarageBand saves projects. I got a feeling you need a modern iPad Pro to run this app smoothly. When you just want to make music this app is not for you would say as it’s very quite labour intensive setting up connections re-sizing modules instruments on a 9.7 size screen but that’s the nature of this style of module connecting app.

  • edited December 2020

    @Jumpercollins

    Thanks for your feedback, I guess there are 3 main parts I'd like to comment on:

    1) Running on older devices

    I'm running VisualSwift on a 12.9" 2018 iPad Pro which I think is the first of the very powerful iPads.
    I also have an older 1st Gen 12.9" iPad Pro.

    On the 2018 iPad Pro everything is so smooth that I get a bit lazy optimizing. At some point in the past I've optimized VisualSwift to run well on the older iPad but it's been a while, I need to do that again. There are some optimizations that I remember switching off as they weren't needed on the faster iPad like having the schematic grid updating as you drag a component. I'll revisit this.

    2) File saving the Apple way

    File saving the Apple way is something I really like and see as a big advantage as you can organize your files with the Files app similar to how it is done on a MacOS, I'd say better. I don't know if you've noticed but your VisualSwift files are listed in the Files App with a thumbnail showing the visual schematic inside it making it very easy to differentiate.

    Also I've been developing the iPadOS version of VisualSwift in parallel with the MacOS version, the file format is exactly the same between the two so you can easily share/airdrop your schematics from one to the other

    3) The nature of this style of module connecting app

    I feel that you haven't yet experienced the advantages of Visual Programming, I hope you'll eventually change your mind. Because schematics are both modular and hierarchical you can easily split your complexity in custom modules, you can share them or store for later use. Some of the features that I want to make available slowly in a controlled fashion allow you to create custom front panels for your custom modules. The whole point isn't to compete with existing music making apps but to bring the Visual Programming aspect into music making.

    I just remembered one 4th thing to have in mind. When you're hosting plugins some of the performance issues can be related with the plugins themselves so it would be interesting to know how they behave in other hosts compared with VisualSwift. Also please note that in the example screenshot I've posted above you have 4 front panels running at the same time, that could be the source of the performance issues you have. There are ways around it like putting your components inside a Module component or I can create a feature that allows you to switch off/on the front panel. Did you try maximising one of the components by tapping the top left corner of the component?

  • @Littlewoodg

    Version 0.6.11 should now be available in your TestFlight app. Connecting the red MIDI connector to the AVAudioUnit purple one should now work.

  • @Jorge said:
    @Littlewoodg

    Version 0.6.11 should now be available in your TestFlight app. Connecting the red MIDI connector to the AVAudioUnit purple one should now work.

    Cool

  • Would be great have it available for us iOS13 users!!!

  • edited December 2020

    Yes, this looks very interesting but I’m not likely to update to 14 until I hear better stories about its compatibility and au issues.

  • I really appreciate all the bug reports I got through TestFlight, many with screenshots.

    Someone reported that Velocity Keyboard wasn't working inside VisualSwift. The latest version 0.6.12 fixes that and many other bugs. Should now be available in TestFlight.

    Here's a very short YouTube video showing Velocity Keyboard in action inside VisualSwif:

  • @Synthi said:
    Would be great have it available for us iOS13 users!!!

    Unfortunately making VisualSwift compatible with iOS 13 would be a big coding task as it uses a lot of SwiftUI 2.0 which is only supported with iOS 14.0 or higher. I hope iOS 14 will become reliable for audio very soon.

  • @cuscolima

    In the latest version 0.6.12 I've changed the way the Audio graph gets updated when you connect or disconnect a link. I hope it will fix the issues you had.

  • I really love this idea and i can’t wait to try it out! I’ll probably join the testflight tomorrow and I’ll help report back with any issues I run into.

    Modular working environments are so cool and I love the idea of seeing everything on the same page, especially with Auv3s.

    @Jorge I’m curious as to what the difference is between VisualSwift and VisualSwift-Music, other than that VisualSwift-Music is more focused on Auv3. Like what does VisualSwift do that VisualSwift-Music cant do?

  • @itsaghost said:
    I really love this idea and i can’t wait to try it out! I’ll probably join the testflight tomorrow and I’ll help report back with any issues I run into.

    Modular working environments are so cool and I love the idea of seeing everything on the same page, especially with Auv3s.

    @Jorge I’m curious as to what the difference is between VisualSwift and VisualSwift-Music, other than that VisualSwift-Music is more focused on Auv3. Like what does VisualSwift do that VisualSwift-Music cant do?

    The full VisualSwift has many hundreds of components in different areas, for example you can create a custom module with custom audio and UI as shown at: https://visualswift.com/forum/viewtopic.php?f=2&t=52

    The following video shows an example of connecting the audio stream to a SpriteKit component that draws it with left channel on the horizontal axis and the right channel on the vertical axis: https://youtu.be/O4Tx3ktM4JA

    It is also possible to generate Xcode projects that you can build, basically instead or writing code you define your project using Visual Programming as you can see at: https://visualswift.com/forum/viewtopic.php?f=2&t=48

    You can manipulate your low level MIDI events using javascript: https://visualswift.com/forum/viewtopic.php?f=2&t=58

    You can control Hue Lights, you can create a Server and send custom data to it, for example you could create a custom panel running on an iPad with knobs, sliders and buttons that would send values to another VisualSwift schematic running on an iPad or Laptop and control parameters of a custom synthesiser.

    You can scrape web pages which I have used as part of an eBay business.

    etc...

    The main challenge is to release all those components in a controlled and stable way with documentation so I've decided for now to focus on the 3 components for hosting AUv3 MIDI Processors, Instruments and Effects.

    Having all the components exposed is very scary for most users, I might provide a switch in the settings to expose them all if there is enough interest although by default they'll remain hidden.

  • @Jorge getting instant crashing when I add the Visual Swift audio out module and turn it on with the last 2 beta builds. On iPad OS 14.2 iPad Pro 9.7 (2016). So currently unusable for audio out.

  • @Jumpercollins said:
    @Jorge getting instant crashing when I add the Visual Swift audio out module and turn it on with the last 2 beta builds. On iPad OS 14.2 iPad Pro 9.7 (2016). So currently unusable for audio out.

    Great thanks, I'll try to replicate and fix shortly.

  • edited January 2021

    This was working fine but as one is exploring and not really know what's what I clicked that hollow square you sometimes get (see image) which opens a black field on the right that can't be closed. I can't anyway. So, I restarted the project and all items but Agonizer refused to reload. And a 'Audio Out' item I don't want to keep refuses to be deleted/closed.

  • edited January 2021

    @Pxlhg

    Thanks, that's very useful. I expect the issue is because you have two AudioOut components in the same schematic. At the moment only one is supported, I'd expect unpredictable behaviour with two. I'll change it to prevent the user from creating a second AudioOut. Eventually it will support having more than one AudioOut by connecting them all to an internal mixer.

    The top right corner of a component is for drag-duplicating it. Makes sense that you thought it would be a "close" action. If I replace it with an [X] for closing I'll need to figure out where to put the duplicate, maybe the bottom left corner.

    For deleting a component select it first and you should see a control panel around it with an (X) on the bottom right for deleting it.

    The unclosable right hand menu was left from the full VisualSwift, thanks for spotting it, I'll hide it. In the full VisualSwift it is used to show how the front panel of a custom synth looks on several devices.

    Please keep sending the bug reports, they really help.

  • @Jorge said:

    Please keep sending the bug reports, they really help.

    Do you want bugs reports here or from testflight?

Sign In or Register to comment.