1.4.2
2025-07-10
Small fix: filenames are now remembered across sessions when saving/opening files
1.3.17
2024-07-29
Bug fixes
1.3.16
2024-02-05
- Fixed a bug where using host count-in sometimes caused the first beat to be skipped
- Minor update to text view behavior
1.3.14
2022-07-05
Fixed an editor issue with very long scripts in iOS15
1.3.12
2021-09-17
Minor internal fix
1.3.9
2020-12-26
- Improved compatibility with Drambo as an AUv3 host (mapping AU Parameters, etc.)
- Support for global cross-host AU Preset sharing (iOS13+)
1.3.8
2020-10-09
- Improved timing stability for outgoing MIDI events
- Better memory efficiency
1.3.7
2020-06-25
This version should play nice when Ableton Link is enabled in the AU host and Linked IAA apps are running in the background.
1.3.6
2020-06-10
- Improved behavior when changing transport controls while the host is not running
- Increased accuracy of the system timer functions
- Added state saving to Probability Gate preset as an example
- Minor internal optimizations
1.3.5
2020-01-28
Minor improvements.
1.3.4
2020-01-11
More refinements for Sysex handling
1.3.3
2020-01-06
Fixed an issue with sending/receiving multiple simultaneous Sysex messages sharing the same timestamp.
1.3.2
2019-11-16
Various minor fixes and improvements to keep your Mozaic experience tip-top.
1.3.1
2019-11-11
- Protection against "infinite loops" in your scripts
- Improved performance
1.3
2019-10-26
New features in version 1.3:
- Use "ColorPad" to change the tint of a trigger pad
- "SystemTime" function returns current system timestamp in milliseconds
- Maximum number of cells in arrays increased to 1024
- Maximum number variables bumped to 256
- Ability to trigger pads using AU Parameters
- Internal enhancements
1.2
2019-09-01
Mozaic now has Sysex support (with built-in checksum calculation).
4 new commands have been introduced to make Sysex handling easy:
- SendSysex
- SendSysexThru
- SysexSize
- OnSysex event
Check the updated Programming Manual on ruismaker.com for examples.
Added "Arpticles" preset: a hybrid between an arpeggiator and a particle generator.
Other changes and improvements:
- Preset ordering is now case-insensitive
- Pads can now have multi-line labels
- Fixed a bug with InScale
- Fixed a bug that sometimes changed the order simultaneous outgoing MIDI events
- Support for bitwise operators: & (and), | (or), ^ (xor)
- Fixed a bug in handling of long-code lines
- Performance enhancements
- Added some more specific error messages
- Fixed a bug with logging wrong event names in some error messages
- Releasing the Shift-key now also generates events when the finger is outside the button area
1.1
2019-07-03
What's new in version 1.1:
- Huge reduction in memory footprint when using large scripts: we're now talking kilobytes, instead of dozens of megabytes!
- Fontsize preferences are now persistent
- You can now refresh the presets window after importing presets in the standalone app
- Many internal fixes and optimisations
1.0.9
2019-06-26
Fixed an issue where occasionally a script-upload action would fail or the script window would show a blank screen.
1.0.8
2019-06-24
Fixes an error in the new Lazy Code Loading functionality.
1.0.7
2019-06-23
Another Mozaic update with nice improvements!
- Descriptions are now updated on-screen when you upload your script
- Filenames with extra "." are now handled correctly
- Empty array initialisers are now accepted: a = []
- The project filename is now saved along with the state of the plugin
- Lazy Code Loading: if you never look at code, it won't use any memory
Don't forget to check out PatchStorage.com every now and then for exciting user-created scripts!
1.0.6
2019-06-15
- Support for very long script lines (up to 768 characters per line)
- Much faster virtual machine performance
- Lower memory footprint
- Fixed an occasional issue where high CPU load could randomly occur
1.0.5
2019-06-14
- ResetNoteStates now takes an (optional) initialisation value
- Important bugfixes and internal housekeeping
1.0.3.1
2019-06-09
Thanks for all the helpful feedback and support.
Version 1.0.3 has a whole lot of new features, fixes and improvements including the much-requested Pad Labels!
1. Pad labels
You can now label pads. The obvious function call for this is:
LabelPad padnum, {Label}
2. Handling of AU Parameters
I completely reworked AU parameter handling to be more robust. It should now work as expected in all directions; sending them into the plugin, and getting them out of the plugin, either via the GUI or via scripts.
3. Scripts can now be much longer (up to 2500 lines).
4. Maximum number of user variables raised to 200
5. Improved keyboard support and behavior on iPad
6. Functions for keeping track of Note States
Basically, this offers you a 16-channel x 128-note matrix for storing values to keep track of whatever you're doing with MIDI notes:
SetNoteState channel, note, value
value = GetNoteState channel, note
7. FillArray now accepts an optional index and number of cells to fill:
FillArray variable, value [,numcells]
FillArray a[50], 64, 25 // fill 25 cells with the value 64, starting with a[50]
8. Use note names and scale names in strings
Log {The root note is: }, RootNoteName
Log {The current scale: }, ScaleName
Log {The third scale: }, (ScaleName 2)
LabelKnob 0, {Note: }, (NoteName 3) // Note: D#
LabelKnob 0, {Note: }, (NoteName 40, YES) // Note: E2 --> this shows the octave with the note name
These 'macros' work in all Label and Log functions..
9. OnMetroPulse timing improved when using extreme metronome resolutions (> 250)
10. PresetScale now also works with numerical values:
PresetScale 3
Log ScaleName // MinorMelodic
11. Exit
You can use the Exit command to immediately exit an event handler
12. Array initializer bugs fixed
There were some issues when using mathematical operators in array initializers
13. MASSIVE internal refactoring of GUI and event handling code, resulting in higher performance and less complex code (=fewer bugs and easier maintenance ;-) ).
14. GetXYMorphValue was flipped. Flipped it back.
15. Pitchbend bug fixed
16. OnHostStart/OnHostStop are now fired before all other events
17. Really long labels could sometimes cause a crash - fixed
1.0.2
2019-05-28
What's new in version 1.0.2?
1. User Events
You can now define your own user events for more efficient reuse and separation of code:
@OnLoad
Call @MyFoo
@End
@MyFoo
Log {F00!}
@End
2. Array initialisers and array copying
You can now initialise arrays (and copy them) in a more efficient way:
a = [0,1,2,3,4,5]
a[6] = [6,7,8,9]
CopyArray a, b, 10
CopyArray a, b[10], 25
3. Improved timing of received MIDI events
Due to different (rounding) implementations of various MIDI sources events could be received just before, on, or just after a new beat starts. Not nice if you want to make a MIDI looper or recorder. So this has now been made more robust so that any events coming *on* the beat are actually captured in the correct beat.
4. Changed the keyboard (some iPhone models in some regions didn't get an enter button)
5. Updated the programming manual
6. Standalone sometimes didn't want to start until the AUv3 was loaded. Fixed.
7. Added some more helpful syntax error messages
8. Improved performance of heavy Log window display updates
1.0.1
2019-05-20
Thank you for the enthusiasm and valuable feedback! Together we can make Mozaic even better.
Here are some first improvements:
1. A share button has been added to the plugin UI, to make it easier to quickly share the project you're working on. For example via Airdrop or Email.
2. Some iPhone models showed a keyboard without a comma key. A different iOS keyboard has now been chosen which should give everyone the comma they deserve.
3. Sliders on Layout 3 now respond correctly to scripted value changes
4. "GetXYMorphValue" function has been added, to let you easily 'morph' between 4 values using the XY Pad
5. Some new presets have been added.
6. Programming Manual on Ruismaker.com has been updated to reflect new features.