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.

Any apps that can read Ableton .als files?

124

Comments

  • @MrBlaschke said:
    @_ki
    I do not own Gadget - could you provide a Gadget gzip file to me so i can test?

    Check to see if KORG Gadget LE would work for you. Free with 3 gadget slots.

  • Awesome! Need to save to get this app. I’m dry now after black friday got two apps from tonebooster.

  • I wonder if the same thing can be done for .band file.

  • edited December 2019

    deleted

  • edited December 2019

    @rs2000 said:

    @gonekrazy3000 said:

    @_ki said:
    Since Pythonista supports the share extension, one could extend the script so that „Convert ALS to MIDI“ is available directly in the share menu in the Files app :) One then should write the midi output file to the same path.

    Someone please do this D:

    I've just done that.
    Including the capability of reading the exported zip archive directly.

    The workflow looks like this (simple example):





    Ok..so how do I get this without the ‘nerdy’ script stuff.. can y’all just make an app that I can buy.. video.. thanks.. looks cool..

    Would be cool if Groovebox just had ‘export to midi’ and was an Auv3 app..

    Edit.. And Import midi..

  • @Samflash3 said:
    I wonder if the same thing can be done for .band file.

    +1
    Was thinking this too, could be interesting.

  • @audiblevideo said:

    @MrBlaschke said:
    @_ki
    I do not own Gadget - could you provide a Gadget gzip file to me so i can test?

    Check to see if KORG Gadget LE would work for you. Free with 3 gadget slots.

    LE can't export, neither MIDI nor Ableton projects.
    Would have been an even better free composer's tool otherwise ;)

  • edited December 2019

    @_ki @rs2000
    Just a little Gadget (teaser) :smile:

    Coming later today:

    Sadly Korg doesn‘t clean up their stuff - or maybe it is the internal Gadget structure but there are no names included and i can‘t do much about the empty lanes at the bottom without blowing stuff up with no real productive need. So you might have to live with empty lanes popping up when converting Gadget ALS files.
    I think there is worse problems out there :wink:

    Just to make it clear: There is no data stripped - these are just empty contents.
    Maybe it clears if i am lusting to watch into the CC values later. Maybe :smile:

  • I added a table with ALS export information to the wiki page (couldn‘t add Groovebox info as i don‘t have that app). Patterning 1 exported just the kick‘s midi data in my first test. Patterning 2, BeatHawk and BlocksWave exported sample trigger points and the sample files in a subfolder - but all of them as .zip so everything is easily accessible.

    Gadget and BeatHawk already offers midi export for their tracks, so this script doesn‘t add a new feature. But for Patterning 1+2 it could be interesting to convert the sample triggers for the one-shots to fixed notes to get something like a midi export. If i find the time, i will setup some simple demo projects and post their als for you or others to investigate and develop it further.

    The scripts current main benefit is ‚midi export fro Groovebox‘ which is already working nicely.

  • @_ki
    Thanks for the WIKI stuff! Appreciated.
    Gadget files (those gzipped fake ALS files) are supported in the actual (yet non public) version. So you could tick that box as well. I look into CC later, if i find a free time slot.

  • _ki_ki
    edited December 2019

    I investigated a bit more into the various ALS i now have exported - as it seems Patterning 1+2, BeatHawk and ElasticDrums only export the clips and no sample triggers timings (as all of them happen at time=0, not what i had hoped for :/ )

    I think i need to import the files to Ableton Live Lite on my desktop computer to see what really gets imported and how to find this information in the ALS xml data

  • edited December 2019

    @_ki
    I may need your help again, regarding GADGET CC data.
    Could you send me an exported file (like the other) with a simple track which has again MODWHEEL data and some changes on CC-7 (Volume), please? Nothing more, nothing less. It just need to be 1 or two simple notes on 1 track - no big composition needed.

    I have problems identifying the target CC for the data that is included. I might have a solution if the CC-7 data is packed inside Envelope ID 16206 in the resulting ALS file structure. That would help, otherwise i have no clue yet on what CC to put the delivered automation data. There seems to be an internal mapping table inside Ableton that i do not have :neutral:

  • You peeps have been busy...awesome stuff :)

  • edited December 2019

    Sad news :neutral:
    The implemented MIDI utilities in Pythonista do not implement to write Pitch information.
    The documentation of the library includes it but it seems it is not the latest version that got implemented into Pythonista.

    Although i have the data i am not able to write them to the file... Wish me better luck with other CC implementations.

  • edited December 2019

    @_ki
    Other than Pitch, which i described above - it is simply not supported in the MIDI library, i am pretty sure that CC‘s are coming over quite good.

    I only need a way to make surety get the correct EnvelopTables for the correct CCs - i am quite sure there is a mapping table somewhere inside Ableton. If i could get a second file from Gadget i could verify those numbers.

  • _ki_ki
    edited December 2019

    I‘ll try to generate that some simple Gadget ALS files as requested - and i try using different gadgets with identical midi CC/modwheel/volume automation too verify that the IDs don‘t differ from gadget to gadget.

    .

    Regarding PitchBend - i looked up the Pythonista documentation and it seems to use midiutil v.1.3 or v1.1.1 (last version with python2.6 support) that didn’t yet offer the addPitchWheelEvent.

    The v1.2.1 has about 1840 code lines on github, i downloaded that version into a new midiutil_v1_2_1.py file and changed the import statement in your script to use this new file. For debug purpose, i added a dummy PitchWheel event whenever a note was converted - and voila the script worked, including the pitchbend :)

    i don't know if one can ask this 'detour' from the script users, but actually it was just a download of another script from another url to get the pitchbend running .
    If one really takes this approach, i suggest to link to the github page with the MidiFile.py and instruct the user to press the RAW button and then use copy-all to copy the text from there into a new midiutil_v1_2_1.py. That should be enough to not violate the author‘s rights. (BTW: The name needs to differ from midiutil.py for import reasons)

  • @_ki said:
    I‘ll try to generate that some simple Gadget ALS files as requested - and i try using different gadgets with identical midi CC/modwheel/volume automation too verify that the IDs don‘t differ from gadget to gadget.

    Thanks for that in advance

    @_ki said:
    Regarding PitchBend - i looked up the Pythonista documentation and it seems to use midiutil v.1.3 or v1.1.1 (last version with python2.6 support) that didn’t yet offer the addPitchWheelEvent.

    The v1.2.1 has about 1840 code lines on github, i downloaded that version into a new midiutil_v1_2_1.py file and changed the import statement in your script to use this new file. For debug purpose, i added a dummy PitchWheel event whenever a note was converted - and voila the script worked, including the pitchbend :)

    Yup - that was what i tested also, but...

    @_ki said:
    i don't know if one can ask this 'detour' from the script users, but actually it was just a download of another script from another url to get the pitchbend running .

    This is the „but...“ part. I also don’t know if people can and/or will do.

  • edited December 2019

    Well.... mind the gap :smile:

    I went „all-in“ and decided to do it right if we do it at all - so everyone who wants to use the script from now on needs to update to the latest MIDIUtil from inside Pythonista. I think we will manage an easy to follow instructional text. It is really only a matter from placing a new file on to a pre-defined position.

    As a result we will get the Pitch-Data from the exported Ableton packages - like shown here:

  • @MrBlaschke said:
    Well.... mind the gap :smile:

    I went „all-in“ and decided to do it right if we do it at all - so everyone who wants to use the script from now on needs to update to the latest MIDIUtil from inside Pythonista. I think we will manage an easy to follow instructional text. It is really only a matter from placing a new file on to a pre-defined position.

    As a result we will get the Pitch-Data from the exported Ableton packages - like shown here:

    Nice work dude ! I need to get this setup so I can start using Groovebox again :)

  • edited December 2019

    Ok, here you go, all

    I made a quick video:

    Thanks for the help to the following nerds
    @_ki @rs2000 @White @SpookyZoo and the ones i forgot.
    I hope you pull some use out of it

    Here is the actual script:

    • Gadget Support
    • CC Values support
    • ZIP support
    • blah, blah, blah

    Remember:
    You NEED to update the MIDIUtil Library for it to work!

    Go to this website on GitHUB: https://github.com/MarkCWirt/MIDIUtil/blob/develop/src/midiutil/MidiFile.py
    Click the "RAW" button on the top, right side of the sourcecode you see
    Copy everything that is displayed on the following page where the sourcecode is displayed to your clipboard
    Inside Pythonista go to this folder: "Python Modules/site-packages-3"
    Create a new script with the "+" button at the bottom left
    Name the new, empty script "midiutil_v1_2_1.py"
    Paste your clipboard inside here

    Done!

    Then create a file for this script and name it whatever you want.
    Ready to go.

    REMOVED CODE - NEW VERSION ON NEXT PAGE

  • I just places the module file besides your python script, but putting it into the correct location seems a better idea even though its a bit more complicated to describe :)

    At first i just pressed the + button and then could only navigate to „Examples“ , „site-packages-2“ or „site-packages-„ without Modules path in front . For a test, i placed a new dummy.py inside site-packages-3. After doing so, i located the ‚Modules‘ button in the lower part of the left Pythonista pane and when navigating into site-packages-3, my file dummy file was inside. So using + and then just ‚site-packages-3‘ is the same.

  • _ki_ki
    edited December 2019

    Just updated the scripts wiki page with the new code and new instructions.

    .

    BTW: Using google, i found a nice work-around for the "IOS 13 Safari is missing 'Select All' on web-pages" problem:

    • Open the Shortcuts app and create a new shortcut
    • As action type 'javascript' into the search box and select 'Run Javascript on Webpage'
    • Delete the supplied sample code and replace it with
    document.body.contenEditable = "true";
    completion(true);
    
    • Press the 'three dots icon' besides 'New Shortcut'

      • In the details dialog box name it 'Add Select All'
      • Untick 'show in widget'
      • Tick 'show in share sheet'
      • Choose the newly shown 'Share Sheets Type' sub dialog

        • Remove all selections (top right button)
        • and just select Safari Webpages available if you scroll down a bit.
        • Close that sub-dialog by choosing the 'Details' button in the top-left
      • Close the details dialog using the top-right button

    • Choose the top-right button to finalize the shortcut.

    Now on a web-page where you don't get the select-all option, just press the share-button and select 'Add Select-All' and voila, a tap now places a cursor and you get the select all/copy option B)

    .

    @MrBlaschke Just watched the video - nerdy, funny and informative :) now added to the wiki page

  • @MrBlaschke said:

    Ok, here you go, all

    I made a quick video:

    👍

  • Random question - Can Pythonista run Spleeter?
    https://github.com/deezer/spleeter

    I haven't got the app yet but I am curious.

  • @_ki
    Thanks for the WIKI stuff, again :smile: !!

  • _ki_ki
    edited December 2019

    @Samflash3 said:
    Random question - Can Pythonista run Spleeter?
    https://github.com/deezer/spleeter
    I haven't got the app yet but I am curious.

    Looking at the requirement.txt for spleeter its clear that you can’t port that. At first, it needs Python >3.7 (Pythonista offers 3.5) and then the next big hurdle is the usage of tesorflow, which probably needs stuff precompiled by nvidia. And lastly the ffmeg-python lib requires c compilation during install which is not supported with Pythonista.

    Netherless, thanks for the idea - would have so cool to have state-of-the-art neural-network supported sound source separation on IOS :)

  • @_ki you can do it 👏🏻 yes, sir 👏🏻 go go go 😇 👏🏻

  • It looks like this only works for single section exports.

    Multiple sections get notes combined.

  • A bit more specific?

  • @MrBlaschke said:
    A bit more specific?

    So if I had 2 different sections (made up of 8 modules) each, let’s say those in first section all had 2 bars, and all those in the 2nd section were 1 bar.

    When exported, the midi file would have the note data of sections 1&2 combined in the first bar, and the 2nd bar would be just Section 1.

    Meaning the 1 bar data of section 2 is combined into the first bar of section 1.

Sign In or Register to comment.