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.

Simple midi AU3 code example

Hi All,

I’m new to coding on Mac’s, and am keen to develop some AU3 midi tools I’ve got in mind. I don’t need any real-time DSP or similar, just the ability to output a predefined stream of midi notes - for reference, Suggester in song mode would be a good example; the chord selection is entered by the user and can’t be changed while the host is playing.

I’m using Swift (and Swift UI, which I really don’t like I have to say) and I’ve been unable to find even the simplest example. If anyone could point me in the right direction - and suggestions on what to build a decent UI with - I’d be really grateful.

Thanks in advance,

Jes

Comments

  • I don't know of any simple cutdown example MIDI AUv3 projects. Geert Bevin has MIDI Tape Recorder available on GitHub

    https://github.com/gbevin/MIDITapeRecorder

    It's a complete functional AUv3 MIDI processor that shows everything you would need to do. The UI is in Objective-C, but that part is the easiest to convert to Swift if you want to.

    I wouldn't recommend SwiftUI. I think UIKit is a better fit for the architecture of an AUv3. Once you get into the AU itself, you are going to have to do the central part of the code in C or C++. Even if you aren't worried about the realtime aspects, the code is called in the audio thread so it must be safe in that thread. At this point, Swift can't be guaranteed to be safe. I have a little demo up on GitHub that shows how you might do a pure Swift AU and also discusses why you shouldn't, https://github.com/NeonSilicon/Demo_Volume_AUv3

  • Wasn’t sunvox just made open source, or free code? Not sure if it has any features that might help. I saw it in a thread in this forum.

  • wimwim
    edited May 2022

    @Poppadocrock said:
    Wasn’t sunvox just made open source, or free code? Not sure if it has any features that might help. I saw it in a thread in this forum.

    Not exactly. A library with the main part of the Sunvox engine, without the graphical user interface was released. One can include the library and make calls to it from their own code. That's not the same thing as being open source. It wouldn't be of any help for someone developing an AU, but, would be of help if you wanted to call the functions that are provided in that library.


    Overview

    SunVox is a powerful modular synthesizer and pattern-based sequencer (tracker).
    SunVox Library is the main part of the SunVox engine without a graphical interface.

    Using this library, you can do the following:

    • load and play several SunVox/XM/MOD music files simultaneously;
    • play interactive/generative/microtonal music;
    • play synths, apply effects;
    • load samples (WAV,AIFF,XI), synths and effects created by other users;
    • change any project parameters (synth controllers, pattern notes, etc.).

    You can freely use it in your own products (even commercial ones). But don't forget to read the license file :)

    https://warmplace.ru/soft/sunvox/sunvox_lib.php

  • @SadOldGoth Apple's official CoreAudio/CoreMIDI documentation is notoriously lacking. You can check out the official FilterDemo code example. Even though it's an audio plugin, much of it applies to MIDI as well in terms of code structure.

    @brambos' article AUv3 MIDI Plugins for iOS Developers explains the steps necessary to create a MIDI AUv3 plugin. Gene de Lisa's tutorial series go into a bit more detail.

    In terms of code examples, I've found Cem Olcay's example code to be a good starting point for a MIDI sequencer. Keep in mind though that it hasn't been updated in a while and it doesn't timestamp MIDI events, which you should if you want jitter-free MIDI timing. Please refer to Jonathan Liljedahl's article about iOS MIDI timestamps. You can also check out AudioKit's MIDI Sequencer code.

    Hope this helps!

  • Hi All,

    Thanks for the responses - Covid has now departed my system, I can start to take a look x

  • edited May 2022

    @cp3 said:
    @SadOldGoth Apple's official CoreAudio/CoreMIDI documentation is notoriously lacking. You can check out the official FilterDemo code example. Even though it's an audio plugin, much of it applies to MIDI as well in terms of code structure.

    @brambos' article AUv3 MIDI Plugins for iOS Developers explains the steps necessary to create a MIDI AUv3 plugin. Gene de Lisa's tutorial series go into a bit more detail.

    Thanks for the reference.
    Most of my blog posts are due to Apple's docs being insufficient. I try to spare other developers from sweating blood in the trenches trying to figure this stuff out. Also, my posts reference a complete working GitHub project. (Well, working when I posted it).

    ps I'm looking for a new Turdpress template jawn because the one I wrote doesn't work anymore and I hate doing php. If you have a recommendation for a new one, let me know.

  • @wim said:

    @Poppadocrock said:
    Wasn’t sunvox just made open source, or free code? Not sure if it has any features that might help. I saw it in a thread in this forum.

    Not exactly. A library with the main part of the Sunvox engine, without the graphical user interface was released. One can include the library and make calls to it from their own code. That's not the same thing as being open source. It wouldn't be of any help for someone developing an AU, but, would be of help if you wanted to call the functions that are provided in that library.


    Overview

    SunVox is a powerful modular synthesizer and pattern-based sequencer (tracker).
    SunVox Library is the main part of the SunVox engine without a graphical interface.

    Using this library, you can do the following:

    • load and play several SunVox/XM/MOD music files simultaneously;
    • play interactive/generative/microtonal music;
    • play synths, apply effects;
    • load samples (WAV,AIFF,XI), synths and effects created by other users;
    • change any project parameters (synth controllers, pattern notes, etc.).

    You can freely use it in your own products (even commercial ones). But don't forget to read the license file :)

    https://warmplace.ru/soft/sunvox/sunvox_lib.php

    Thanks for the clarification, I wasn’t exactly sure what was available, I just remembered reading about it not long ago. Cheers.

Sign In or Register to comment.