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 StoreAudiobus is the app that makes the rest of your setup better.
Mozaic: Variable already "assigned" when script loaded but unassigned when code "uploaded"
Not sure if this is intentional, but for me it's a bug:
When I load a script for the first time, a test variable is reported as already assigned.
When I go to the code section and click on "Upload", the variable is unassigned.
I would expect the variable in both cases not to be assigned.
I tried both with the stand alone version of Mozaic, and with the AUv3. Both show this behaviour.
The test script is rather simple:
@OnLoad
if Unassigned variable
log {not assigned}
variable = 1
else
log {assigned}
log variable
endif
@End
Comments
It displays unassigned when I upload it.
What are the exact steps from first uploading the patch until it displays assigned?
With “load” I mean the load button that loads the patch as opposed to “upload” from the code section. This is what I observe:
That is by design I believe. As soon as that script loads when uploaded, the variable is assigned a value. When you save the script, its variables get saved. So when you Load, you are loading a script that was saved after the variable was assigned.
(deleted due to posting before the coffee kicked in)
+1. This is discussed on page 12 of the manual, in the section on "Advanced shizzle: variables, initialization and state-saving"
Ah! Getting it now. I read that page but somehow forgot the “very first time”. So my wrong assumption was that the actual preset/script only contains code, but no data.
There are probably very few of us who haven't been caught out occasionally by forgetting that at one point or another. I really hate it when I accidentally forget and upload a script to patch storage after having tweaked knobs and things in order to create a screenshot. 😂
It's a good feature though.
It is a good feature. And thanks for the compassion But I just found another thing that added to my confusion - and causes trouble in my current Mozaic project: Because of the lack of multi dimensional arrays I often use the NoteState functions as a replacement. Sadly values stored as NoteState will not be saved with the script file but with the NoteStates you always start with a clean slate.
One would probably argue that these are functions and not arrays. However, one could also argue that these functions access arrays (that should be saved....).
Because of the lack of multi dimensional arrays
The best workaround for multi-dimensional is to create a series of arrays that can get/set column values by using the same index value.
You still have the burden of using each array element in the code but it helps visualize a matrix or table of values.
I like to create tables of midi input:
Type
Note
Velocity
TimeOffset
CC
Value
Each inserted or recalled using the same index.
You can make a midi recorder using this idea.
You can replay batches of 255 notes using the TimeOffset as a delay value.
Are you sure about that? I don't think I've seen that behavior.
[edit] nvm. I see what you mean.
I can see the logic of it, since you wouldn't think a session would ever be loaded with actual Notes in anything other than an OFF state. But I can also see why you'd expect it to behave like a regular variable.
I generally use other ways around the variable length limitations, but they do kind of clutter up code.