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.
It is possible to creat a script to use an QWERTY or AZERTY keyboard as MIDI?
My goal is to use an old keybord as a footswitch.
No, sorry, that’s not possible. Mozaic doesn’t have a way to accept typing keyboard input other than for editing scripts.
There’s an old app called Sidecar that might be able to do what you want though.
Sidecar is made for that use case! Works great with QWERTY.
So I'll be more specific:
I want to reroute CCs 55 and 56 on Chan 9 (which output values 0-15 only), to CC 20 on Chan 1 with an array of assignable values. I can't get my head around naming and referencing variables.
newvariable = [25,25,25,78,82,90,120,124,16,16,22,22,40,50,80,110]
If 0xB9 55, 0-15
SendMIDOCC 0,20, newvariable
I haven't tested this yet because I doubt it works. If I understand correctly, the base value in this variable is 25 as it's the first value. So how does the script / program identify this variable? How can I rename it so it's recognised as a variable?
Anyone willing to help?
Double post deleted
I am unclear about how you want the remapping to work. If you could give a more detailed explanation (step by step) of what you want to happen, it would be helpful--and might possibly make it more obvious to yourself how to code it.
Thanks for the response @espiegel123
Lets say I have Factory on Chan 1, and the mutate knob assigned to receive on CC#22
I want to be able to remap values 0 to 15 transmitted either on CC#55 (Scene Select A) and CC#56 (Scene Select B on the Octatrack) to 16 assignable values between 0-127 on CC#22 (Chan1). I want to be able to use the Mozaic UI to set the 16 values to send on CC#22.
I understand I should use a variable so @OnLoad the 16 preset values for CC#22 are ready for selection with CC#s 55 and 56.
The next aim is to take CC#48 to glide between the two of the sixteen values determined in the script assigned for CC#22 (selected by CC#55 and CC#56).
I hope this is clearer.
Slightly. Let's get clearer still. I might have this wrong -- if so, please update with a correction. The goal here is to get some pseudocode that are precise instructions about what to do. The more precise the instructions, the easier it is to translate it into code. Something like this.
// Receive values whose range is 0-15 on CC#55 or CC#56 from OctaTrack
// Call that value receivedValue
// Remap receivedValue to 1 of 16 preset values (range 0 - 127)
// the lookup table for remapping is newValue = [25,25,25,78,82,90,120,124,16,16,22,22,40,50,80,110]
// send remapped value to Factory
the main thing missing in your code is (in pseudocode)
//to remap from receivedValue to looked up value
valueToSend = newValue[receivedValue]
So, if you receive a controller value of 0, the value to send is newValue (which is 25)
If you receive a value of 15, it sends out newValue which is 110
That's exactly it!
I need to go back to the manual to check this: "valueToSend = newValue[receivedValue]". Is the set of new values detected as variable?
Goal no 2. Retain both of the last activated (or 2 default on load) remapped (NewValues) from CCs#55 and 56. E.g. newValue  = 78, and nwValue = 110 and transition between those two two using CC#48 (transmits values 0-127)
Not sure what you mean. You already set up the newValue array in the code you posted. The code I gave you shows how you use your received value to lookup the value from the newValue array that you created.
I'm probably over analyzing things; your response explains it - I've set up an array, which I guess I was maybe confusing with variable (or is an array a sort of variable?).
In order to make smooth transitions between two selected new values using CC#48 (crossfader), I need the script to retain the last two selected values (and load two default values). This is over my head for now.
I much appreciate your help.
Are there any scripts that’ll convert midi note to CC so you can use on screen or external KB to play AAS Objeq?
You might want to re-read the Mozaic manual's section about arrays and variables. It can be confusing to newbies, but if you read it again, it might make more sense.
Basically, an array is a type of variable (or data structure) that is a list of values. You fetch values out of the list by telling it which value you want. That value is called an index.
If you have an array called myArray, the fifth item is myArray.
Very helpful explanation. Thanks again.
It's very easy to build a script to convert notes to CC values. However, more specifics are needed.
For instance, do you mean playing one CC and sending the value for that cc corresponding to the note played? For example, if you played note 36, the script would send value 36 for CC 20, and if you played note 48, the script would send value 48 for CC 20?
Or, do you mean, if you play note 36 at velocity 100, it would send value 100 for CC 36? And if you play note 48 at velocity 100 it would send value 100 for CC 48?
And are you sure you can play AAS Objeq using CC values?
mfxConvert is a great little app that may work for this without any scripting, depending on the answers to some of the questions above.
Sorry, I’m still a midi noob. About as far as I’ve ventured into midi CC land is in AUM and a few DAWS, modulating synth and effect parameters via midi Auv3’a like Rozetta (LFO, etc) ... I should probably do some more research on the technical bits before I’m able to effectively communicate on this topic. It was just a shot in the dark, in case anyone else had already worked on something like this with Objeq.
AAS Objeq does expose the pitch parameter via CC, so I can use a modulation source like Rosetta LFO to modulate between 0 to 127 via whatever CC# I set it to communicate on, So I imagined It’d be a matter of determining the specific or relative pitch of each of the 128 values to be able to translate/transcribe those values to midi note.
Thanks for the tip, I’ll check out mfxconvert and see if that might do the trick.
Sure thing @Eschatone.
If I owned the app you mention, I’d look into it further. If it does come down to something you can define then a script would probably be pretty easy to write. -cheers.
Hi @echoopera, I did decide to do a trimmed down version of my own for learning purposes, even though @Bryan’s Random! script covers this and much more. It’s basically done, but I want to do some more thorough testing. Should be ready in a day or two.
Is it possible to create a script that converts xml or .txt into MIDI? Someone had a question about how to get the MIDI from an ableton .Als file and it turns out you can easily convert .als into a .txt file.
This is not possible in Mozaic. Mozaic has no file I/o and no text/string functions.
You rock sir. Thanks so much. 👊🏼™️
I’ve uploaded “Au Hasard MIDI Randomizer” to Patchstorage.com: https://patchstorage.com/au-hasard-midi-note-randomizer/. I haven’t had time to test as thoroughly as I’d like, but I’m not sure I’ll have more time for a bit, so ... fingers crossed.
I tried to make Au Hasard (French for Random) behave as much like the Ableton Live plugin as possible, only I did add an option to quantize the notes to scales. Because of this, to avoid confusion, I’ve called the “Scale” function in the Live plugin “Range” in this plugin.
Please let me know if you find anything amiss.
It is not possible in MOZAIC. But you might be interested in this thread:
I provided an iOS only solution with the help of a Python interpreter.
Is there a Note Length script? Note Length to alter the length of incoming MIDI notes. Maybe even apply a random length based on user set parameters. So I could pick two ranges, Let’s say for example 1/8 to 1/2 bar, and it randomly changes each incoming note length to a length the size of or in between my selected lengths.
Is this similar to the probability gate script?
There’s a very good chance that function is out there as part of another script, but there are so many scripts out there I haven’t tried that it’s hard to say.
That would be an easy one to do though. I’m kinda busy the next few days, but might take a stab at it if no one else chimes in about an existing script that has that functionality already by then.
The probability gate script just deals with the probability of letting a note through, not with its length. Could be a good one to build on though.
@wim Thanks. Yea I wasn’t quite sure if something already made could do that or not.... That would be amazing if a new script is made, but no rush at all, when you get a chance.
@wim Thanks for that new AU Hasard script too. I love Mozaic and the more scripts the merrier.
Nice @wim thanks for the script. Just had a go with it this evening and it is feeling pretty good. Will need to stress test it a bit more, but i am liking it. Many thanks again for the script. 👊🏼™️
Here’s a much too long screencast of me using it in AUM: