Audiobus: Your virtual music studio.

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.

Streambyter inspiration thread - Autobass lowest note

edited August 2018 in General App Discussion

Thanks to Nic the creator of streambyter for cooking up this script.

32 represents 50% chance.

IF LOAD
# K0 is user settable constant
# (could set via MIDI msg?)
# probability of note passing
# range 0 to 100 (0-64 in hex)
ASS K0 = 32

END

IF MT == 90
IF M2 > 0
# we have a note on,
# get random number
# between 0 and 100
# and compare to K0
# and block if above
IF R64 > K0
XX = XX +B
END
END
END

Single note input; rotate midi channel

IF LOAD
# L80 - current channel
ASS L80 = 0
END

9X XX 00 = 8X
IF MT == 90
# note on, assign channel
MAT M0 = MT + L80

# remember channel for note
ASS LM1 = L80

# increment/cycle next channel
MAT L80 = L80 + 1
IF L80 > F
ASS L80 = 0
END
END
IF MT == 80
# note off, get note on's channel
MAT M0 = MT + LM1
END

Comments

  • To confirm the above is two separate scripts

  • Two very good and usefull scripts. Thanks a lot. Imagination is limitless ;0)

  • Very useful, would like to see how to control amount via midi :)

  • Good stuff, thanks for sharing. Have to get over to Nic's forum to see other new stuff cooking.

  • More of this please :)

  • What's a good example of an App setup (or "rig" if you'll permit the analogy) that would be good for this StreamByter AU (or MIDIFire) script?

  • I've been wanting a way to do midi delay and variation, so I can creatively use one base sequence to create a bassline, chord, and pad / lead / etc... I've been having decent luck with Rozetta, but I picked this up to see what more I can do. I'll post anything I cobble together that works decent... Fun!!

  • @scottsunn said:
    I've been wanting a way to do midi delay and variation, so I can creatively use one base sequence to create a bassline, chord, and pad / lead / etc... I've been having decent luck with Rozetta, but I picked this up to see what more I can do. I'll post anything I cobble together that works decent... Fun!!

    Good luck - there is a delay in the presets to get you started.

  • @Carnbot said:
    Very useful, would like to see how to control amount via midi :)

    For people who want to control the probably via cc

    http://audeonic.boards.net/thread/519/probability-passing

    👍

  • Rotate midi channel script updated so you can set the channel range. Think repeating note cycling through 5 midi channels.

    http://audeonic.boards.net/thread/521/single-input-rotate-midi-channel

    Epic!

  • @scottsunn said:
    I've been wanting a way to do midi delay and variation, so I can creatively use one base sequence to create a bassline, chord, and pad / lead / etc... I've been having decent luck with Rozetta, but I picked this up to see what more I can do. I'll post anything I cobble together that works decent... Fun!!

    This is simple in StreamByter

    http://audeonic.boards.net/thread/520/simple-delay

    👍

  • @Dchild said:

    @Carnbot said:
    Very useful, would like to see how to control amount via midi :)

    For people who want to control the probably via cc

    http://audeonic.boards.net/thread/519/probability-passing

    👍

    This one is really clever...Nic is the king

  • @cuscolima said:

    @Dchild said:

    @Carnbot said:
    Very useful, would like to see how to control amount via midi :)

    For people who want to control the probably via cc

    http://audeonic.boards.net/thread/519/probability-passing

    👍

    This one is really clever...Nic is the king

    Iron clad truth. On both points.

  • @Dchild said:

    @scottsunn said:
    I've been wanting a way to do midi delay and variation, so I can creatively use one base sequence to create a bassline, chord, and pad / lead / etc... I've been having decent luck with Rozetta, but I picked this up to see what more I can do. I'll post anything I cobble together that works decent... Fun!!

    This is simple in StreamByter

    http://audeonic.boards.net/thread/520/simple-delay

    👍

    Done and done!! Super fun, will post a track when I get one borned.

  • tjatja
    edited August 2018

    As here are reading the knowledgeable people:

    Can StreamByter get the lowest playing note of chords and send it to a different MIDI channel?

    So, providing the notes for a bass App from MIDI.

  • edited August 2018

    @tja said:
    As here are reading the knowledgeable people:

    Can StreamByter get the lowest playing note of chords and send it to a different MIDI channel?

    So, providing the notes for a bass App from MIDI.

    Without breaking a sweat. Ping Nic at Audeonic forums.

  • @tja said:
    As here are reading the knowledgeable people:

    Can StreamByter get the lowest playing note of chords and send it to a different MIDI channel?

    So, providing the notes for a bass App from MIDI.

    I’ve asked the question :)

    http://audeonic.boards.net/thread/523/lowest-chord-different-midi-channel

  • @Dchild said:

    @tja said:
    As here are reading the knowledgeable people:

    Can StreamByter get the lowest playing note of chords and send it to a different MIDI channel?

    So, providing the notes for a bass App from MIDI.

    I’ve asked the question :)

    http://audeonic.boards.net/thread/523/lowest-chord-different-midi-channel

    :) :) :)

  • tjatja
    edited August 2018

    I read the answer.

    For me, it would be sufficient to always just route the lowest current playing note additionally to a second MIDI channel.

    Regardless of chord or not.

    And as soon as a lower notes comes it, switch to that.
    And if a note is finish, switch to the next lowest note.

    cat notes | sort -n | head - 1

    I would try to register in that forum in the evening, to append this.

  • Our mate Nic has done it again.

    This script identifies the lowest note and outputs to a user defined midi channel.

    Thinking this would work great with steppolyarp :smile:

    tja autobass by audeonic

    IF LOAD
    # K0 = bass channel (0-F)
    ASS K0 = 3
    MAT I0 = K0 + 1
    SET LB0 I0 +D

    # L80 currently sounding
    # lowest note
    ASS L80 = 80
    SET LB1 S--

    # L0-7F table of all sounding
    # notes (initialise to 0)
    ASS I0 = 0
    IF I0 < 80 +L
    ASS LI0 = 0
    MAT I0 = I0 + 1
    END
    END

    9X XX 00 = 8X
    IF MT == 90
    # note on, mark as sounding (store velocity)
    ASS LM1 = M2

    IF M1 < L80
    # new low note, turn off current bass first
    IF L80 < 80
    MAT I0 = 80 + K0
    SND I0 L80 00
    END

    # send new note on on bass channel
    MAT I0 = 90 + K0
    SND I0 M1 M2
    
    # save and mark
    ASS L80 = M1
    SET LB1 L80 +N
    

    END
    END

    IF MT == 80
    # note off, mark as silent
    ASS LM1 = 0

    # is this the current bass note?
    IF M1 == L80
    # also turn off bass channel
    MAT I0 = 80 + K0
    SND I0 M1 00
    ASS L80 = 80
    SET LB1 S--

    # see if another higher note is sounding
    MAT I1 = M1 + 1
    IF I1 < 80 +L
      IF LI1 > 0
        # found higher sounding note, turn on
        # new bass note
        MAT I0 = 90 + K0
        SND I0 I1 LI1
    
        # mark new bass note
        ASS L80 = I1
        SET LB1 L80 +N
        ASS I1 = 80 # terminate loop early
      END
      MAT I1 = I1 + 1
    END
    

    END
    END

    The bass channel number is configured at the top of the script (ASS K0 = 3) and is currently set to channel 4. The left block label will show the current bass channel and the right hand label will show the currently sounding bass note.

  • @Dchild I am testing this with MidiFire, many thanks!!!

  • @Dchild @tja Thanks for sharing, this works really well inside ApeMatrix.

  • @Dchild said:
    Our mate Nic has done it again.

    This script identifies the lowest note and outputs to a user defined midi channel.

    Thinking this would work great with steppolyarp :smile:

    tja autobass by audeonic

    IF LOAD
    # K0 = bass channel (0-F)
    ASS K0 = 3
    MAT I0 = K0 + 1
    SET LB0 I0 +D

    # L80 currently sounding
    # lowest note
    ASS L80 = 80
    SET LB1 S--

    # L0-7F table of all sounding
    # notes (initialise to 0)
    ASS I0 = 0
    IF I0 < 80 +L
    ASS LI0 = 0
    MAT I0 = I0 + 1
    END
    END

    9X XX 00 = 8X
    IF MT == 90
    # note on, mark as sounding (store velocity)
    ASS LM1 = M2

    IF M1 < L80
    # new low note, turn off current bass first
    IF L80 < 80
    MAT I0 = 80 + K0
    SND I0 L80 00
    END

    # send new note on on bass channel
    MAT I0 = 90 + K0
    SND I0 M1 M2
    
    # save and mark
    ASS L80 = M1
    SET LB1 L80 +N
    

    END
    END

    IF MT == 80
    # note off, mark as silent
    ASS LM1 = 0

    # is this the current bass note?
    IF M1 == L80
    # also turn off bass channel
    MAT I0 = 80 + K0
    SND I0 M1 00
    ASS L80 = 80
    SET LB1 S--

    # see if another higher note is sounding
    MAT I1 = M1 + 1
    IF I1 < 80 +L
      IF LI1 > 0
        # found higher sounding note, turn on
        # new bass note
        MAT I0 = 90 + K0
        SND I0 I1 LI1
    
        # mark new bass note
        ASS L80 = I1
        SET LB1 L80 +N
        ASS I1 = 80 # terminate loop early
      END
      MAT I1 = I1 + 1
    END
    

    END
    END

    The bass channel number is configured at the top of the script (ASS K0 = 3) and is currently set to channel 4. The left block label will show the current bass channel and the right hand label will show the currently sounding bass note.

    Oh my oh my...this is crazy insane...

    Play some chords...streambyter will route the bass on channel 4 and the full chords on any other synth (on channel 1). If you want to make it more spicey, then route the bass first to SPA (then to Model D for example), route the chords to an arpegiator and another route directly to a synth

    And instead of playing the chords, sequence them on Suggester

    This is the hat-trick

    Crazy

  • @cuscolima said:

    @Dchild said:
    Our mate Nic has done it again.

    This script identifies the lowest note and outputs to a user defined midi channel.

    Thinking this would work great with steppolyarp :smile:

    tja autobass by audeonic

    IF LOAD
    # K0 = bass channel (0-F)
    ASS K0 = 3
    MAT I0 = K0 + 1
    SET LB0 I0 +D

    # L80 currently sounding
    # lowest note
    ASS L80 = 80
    SET LB1 S--

    # L0-7F table of all sounding
    # notes (initialise to 0)
    ASS I0 = 0
    IF I0 < 80 +L
    ASS LI0 = 0
    MAT I0 = I0 + 1
    END
    END

    9X XX 00 = 8X
    IF MT == 90
    # note on, mark as sounding (store velocity)
    ASS LM1 = M2

    IF M1 < L80
    # new low note, turn off current bass first
    IF L80 < 80
    MAT I0 = 80 + K0
    SND I0 L80 00
    END

    # send new note on on bass channel
    MAT I0 = 90 + K0
    SND I0 M1 M2
    
    # save and mark
    ASS L80 = M1
    SET LB1 L80 +N
    

    END
    END

    IF MT == 80
    # note off, mark as silent
    ASS LM1 = 0

    # is this the current bass note?
    IF M1 == L80
    # also turn off bass channel
    MAT I0 = 80 + K0
    SND I0 M1 00
    ASS L80 = 80
    SET LB1 S--

    # see if another higher note is sounding
    MAT I1 = M1 + 1
    IF I1 < 80 +L
      IF LI1 > 0
        # found higher sounding note, turn on
        # new bass note
        MAT I0 = 90 + K0
        SND I0 I1 LI1
    
        # mark new bass note
        ASS L80 = I1
        SET LB1 L80 +N
        ASS I1 = 80 # terminate loop early
      END
      MAT I1 = I1 + 1
    END
    

    END
    END

    The bass channel number is configured at the top of the script (ASS K0 = 3) and is currently set to channel 4. The left block label will show the current bass channel and the right hand label will show the currently sounding bass note.

    Oh my oh my...this is crazy insane...

    Play some chords...streambyter will route the bass on channel 4 and the full chords on any other synth (on channel 1). If you want to make it more spicey, then route the bass first to SPA (then to Model D for example), route the chords to an arpegiator and another route directly to a synth

    And instead of playing the chords, sequence them on Suggester

    This is the hat-trick

    Crazy

    Yep.
    Exactly this was my goal :)

    But there are some problems, possibly - maybe only with ChordFlow...
    Will test around this.

  • @tja said:

    @cuscolima said:

    @Dchild said:
    Our mate Nic has done it again.

    This script identifies the lowest note and outputs to a user defined midi channel.

    Thinking this would work great with steppolyarp :smile:

    tja autobass by audeonic

    IF LOAD
    # K0 = bass channel (0-F)
    ASS K0 = 3
    MAT I0 = K0 + 1
    SET LB0 I0 +D

    # L80 currently sounding
    # lowest note
    ASS L80 = 80
    SET LB1 S--

    # L0-7F table of all sounding
    # notes (initialise to 0)
    ASS I0 = 0
    IF I0 < 80 +L
    ASS LI0 = 0
    MAT I0 = I0 + 1
    END
    END

    9X XX 00 = 8X
    IF MT == 90
    # note on, mark as sounding (store velocity)
    ASS LM1 = M2

    IF M1 < L80
    # new low note, turn off current bass first
    IF L80 < 80
    MAT I0 = 80 + K0
    SND I0 L80 00
    END

    # send new note on on bass channel
    MAT I0 = 90 + K0
    SND I0 M1 M2
    
    # save and mark
    ASS L80 = M1
    SET LB1 L80 +N
    

    END
    END

    IF MT == 80
    # note off, mark as silent
    ASS LM1 = 0

    # is this the current bass note?
    IF M1 == L80
    # also turn off bass channel
    MAT I0 = 80 + K0
    SND I0 M1 00
    ASS L80 = 80
    SET LB1 S--

    # see if another higher note is sounding
    MAT I1 = M1 + 1
    IF I1 < 80 +L
      IF LI1 > 0
        # found higher sounding note, turn on
        # new bass note
        MAT I0 = 90 + K0
        SND I0 I1 LI1
    
        # mark new bass note
        ASS L80 = I1
        SET LB1 L80 +N
        ASS I1 = 80 # terminate loop early
      END
      MAT I1 = I1 + 1
    END
    

    END
    END

    The bass channel number is configured at the top of the script (ASS K0 = 3) and is currently set to channel 4. The left block label will show the current bass channel and the right hand label will show the currently sounding bass note.

    Oh my oh my...this is crazy insane...

    Play some chords...streambyter will route the bass on channel 4 and the full chords on any other synth (on channel 1). If you want to make it more spicey, then route the bass first to SPA (then to Model D for example), route the chords to an arpegiator and another route directly to a synth

    And instead of playing the chords, sequence them on Suggester

    This is the hat-trick

    Crazy

    Yep.
    Exactly this was my goal :)

    But there are some problems, possibly - maybe only with ChordFlow...
    Will test around this.

    Yes, I also have some troubles with ChordFlow or Navichord...but it works very well with Suggester. Maybe this app has a more strict way to manage the note in note out thing. Very promising script. I hope it will be “fine tuned”

  • edited August 2018

    Here is a track where I have used several instances of the probability script and the autobass lowest note script. Hope you enjoy it and thank you streambyter...

  • Very nice!
    I like it

Sign In or Register to comment.