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.

Midi pitch remapper auv3 or mozaic (mathematical not musical scales ie 1-127 remapped to 36-92) ?

Hello!

I am looking for a midi effect or mozaic patch that I can use to re-map the pitch on incoming midi signals- to be clear, I do not mean repitching to make the input fit a musical scale, I mean making it so that the range of 1-127 midi notes gets folded into a section of the note spectrum of the user’s choosing

For example, if I have a very full spectrum melody that ranges from 1-127, but I want that same pattern to be adapted to only take place between 36-92 , I would like a midi plugin that can smush incoming note values into the range set by the user

Are there any plugs or mozaic scripts that do a good job of this?

Comments

  • This Mozaic scripts should work: https://patchstorage.com/channel-splitter/
    The screenshot assumes you are mapping channel 1 - do set the transposition in region (2) to -36. There may be other scripts, also.

  • @Tim6502 said:
    This Mozaic scripts should work: https://patchstorage.com/channel-splitter/
    The screenshot assumes you are mapping channel 1 - do set the transposition in region (2) to -36. There may be other scripts, also.

    Thanks so much for this!

    This is almost perfect but it seems that it sometimes outputs the un-processed notes(midi thru) and then I get strange overlapping notes when I feed it into certain plugins

    Are you aware of anything similar that completely blocks out the original midi and ONLY passes the processed notes with the pitches remapped?

  • _ki_ki
    edited June 2020

    @annahahn I understood your request in the following way:

    • For an input midi note N map it to a new output note in a given range A - B
    • A,B,N are in the range 0-127
    • As formula: Out = A + Round ( (B-A) * N / 127 )

    Since this seems to be a nice and simple to implement script (and the wheather is bad) i just wrote such a script and added the following features:

    • Double input note-on/note-off protection
    • Double output note protection (if a new input note maps to an already active output note)
    • Works even while tuning during midi input since the generated output for each note-on is stored and re-used when its note-off arrives
    • Input range can be specified, notes outside are suppressed
    • Output range can be inverted, ie higher input notes produce lower output notes than lower input notes
    • Optionally applying scale quantization to the output
    • Forward all other midi events
    • Applies to all channels (MPE compatible)
    • UI code to prevent ‚wobbling’ of the NoteName function while tuning the range knobs

    The midi-processing part is already working, i’m still fiddling with the UI to make the experience nicer

    .

    BTW: I really don‘t know what the use-case if of such a script is other than experimental music. Melodies are squished, turned or stretched, input chords are destructed...

    But its fun to implement since i only need to plug together stuff i‘ve already done before

  • edited June 2020

    @annahahn said:

    Thanks so much for this!

    This is almost perfect but it seems that it sometimes outputs the un-processed notes(midi thru) and then I get strange overlapping notes when I feed it into certain plugins

    Ah yes, since notes in the lower / upper region are transposed into the middle region (not squished), you can see duplicate - and thus overlapping / cutoff notes.
    By moving up the channel knobs, you could map the regions to other channels and process them separately.
    This may also be all that the downstream plugins need to deal with the notes individually.

  • _ki_ki
    edited June 2020

    @annahahn I have uploaded the Transform Notes script to patchstorage

    Here the setting for the requested remap from input 1-127 to output 36-92:

    Development time: Approx 5 hours including testing, about half of the time for the UI and debugging. Thanks for the entertaining distraction, i myself probably never will use this script as i‘m not into abstract music

  • great!! I was looking for something similar, I ended transforming notes to velocity and then using velocity curve for stretch/expand... :)

    Now Yours is wonderful!

  • _ki_ki
    edited June 2020

    @Synthi The scaling between output min/max is currently linear, but i could easily apply a ‚gamma‘ factor.

    Aeeeeh - but the UI changes for this feature are larger than expected... I need to rephrase/redesign the knob titles, or change the overall structure... Takes times

  • @_ki said:
    @Synthi The scaling between output min/max is currently linear, but i could easily apply a ‚gamma‘ factor.

    Aeeeeh - but the UI changes for this feature are larger than expected... I need to rephrase/redesign the knob titles, or change the overall structure... Takes times

    That will make it complete!

  • I‘ll continue tomorrow, its already after midnight.

    GUI is re-worked, the parameter is now called ‚Bend‘ with a plus/minus range to tend to higher/lower notes

  • _ki_ki
    edited June 2020

    Updated to v1.1

    • Added LOG knob to toggle logging
    • Added BEND factor for non linear transformations, default is linear.

    From the updated description:

    Bend & Scale Quantize Setup
    * LOG toggles log output, double-Tap to toggle
    * BEND allows to change the mapping curve from linear (OFF) to a curve that
    bends towards lower or higher notes. Double-Tap to reset to OFF
    * QUANT selects the scale the output notes are quantized to
    * ROOT selects the quantization root

    Bending happens around the 'center note' of the input range. For the default range of 0 - 127 the center is 64, which may bend down to 16 (bend 80 L) or up to 111 (bend 80 H).
    Bending works best if the input and output note ranges are limited - its range-center may then bend down to 1/8 or up to 7/8 of its range span depending on the bend factor.

    I first had to implemented a small test script just doing the curve remapping with lots of debug output. I wanted it to behave symetrical and also that the ‚bend number’ somewhat maps to what‘s happening to the values. The final formulas also map to the input-range, while to curve code still depends on range 0..127, which adds several conversions - leaving possibilities to simplify the code.

    Total development time of the ‚Transform Notes’ script is now around 11 hours

  • Thanks a lot for sharing your knowledge and time!!!

  • @_ki said:
    @annahahn I have uploaded the Transform Notes script to patchstorage

    Here the setting for the requested remap from input 1-127 to output 36-92:

    Development time: Approx 5 hours including testing, about half of the time for the UI and debugging. Thanks for the entertaining distraction, i myself probably never will use this script as i‘m not into abstract music

    Thank you so so so much this is awesome🙌🙌🙌🙌🙌🙌🙌🙌🙌🙌🙌🙌

Sign In or Register to comment.