"What is it?!" I hear you cry. Good question! I think it's a peer/MIDI event sequencer. I do know it's going to melt tinga's mind.
I've included the traditional crappy demo song in the package but that only scratches the surface. I'd need to make a dozen to fully demonstrate it.
There are rough edges and kinks to iron out of course but it seems pretty stable (cue avalanche of crash reports). I REALLY recommend you read some, if not all of the manual. No, really, I mean it and not just because it took me months to get it together. Just read the damn thing. Seriously.
If you make any music with it then please let me know. After all that effort coding the thing, I'd like to know that it's actually being used.
Enjoy!
2024.10.13 IX Magic 1.19 at buzz.robotplanet.dk
+ Fixed Sequence not firing after pasting a Step into an empty Sequence.
+ Fixed naming of duplicate resources.
+ Improved naming of new resources.
+ "Reset on stop" is now a Page setting with a checkbox in the main dialog.
+ Removed machine attribute "Reset on stop".
+ "Page load events" are now "Page activation events"
+ Added Page events for transport actions. Trigger Sequences when playback starts/stops etc.
+ Added new Event type, Transport Event, used to trigger Buzz Play/Seek/Stop/Record.
+ Added song position markers for use with Transport Events.
+ Dialog improvements.
+ Machine version 1.19
+ File version 17
2024.06.10 IX Magic 1.18 at buzz.robotplanet.dk
+ Fixed crash when parsing peer pingpong value without target machine.
+ Added Event trigger mode to specify latch/accumulator behaviour.
+ Peer parameter assignments are now remapped if possible when changing target machine.
+ Object list now indicates current Step in Sequence.
+ Added latch modes to note-off default menus.
+ Removed various attributes for global options. These values are now stored in the settings file.
+ Removed option to disable keyboard input filtering.
+ Labelling tweaks
+ Machine v1.18, File v16
2024.06.10 IX Magic 1.17b at buzz.robotplanet.dk
+ Fixed accumulator + latch bugs
+ Fixed invalid velocity blocking latch off.
+ Message dialog fixes and tweaks
+ Improved queue behaviour when an Event is blocked by accumulator/probability.
2024.05.26 IX Magic 1.17a at buzz.robotplanet.dk
+ Fixed latch behaviour for Events triggered via a Trigger Sequence Event
+ Fixed Magic not loading in ReBuzz
+ Fixed broken links in Page docs.
2024.05.20 IX Magic 1.17 at buzz.robotplanet.dk
+ Peer/MIDI values now allow comma separated value lists, with forward/backward/ping-pong/random option.
+ Added new Event off modes Latch and Latch Relative.
+ Added next/prev Page buttons.
+ Implemented reordering of Pages via move up/down.
+ Added Page tempo setting.
+ Tap tempo via dialog, midi note or CC.
+ Resources are now saved to a separate user settings file which overrides the defaults.
+ Fixed potential crash when using P to restore a value if there's nothing to restore.
+ Updated UI framework. Should (?) work better with display scaling.
+ Treeview now auto-scrolls during mouse drag operations
+ Pasting now preserves object order.
+ Minor dialog fixes and improvements.
2023.10.30 IX Magic 1.16d at buzz.robotplanet.dk
+ Fixed bug when changing Event accumulator offset
+ Fixed peer value edit not allowing entry of decimal point for percentage values
+ Added MIDI CC to set active Page
+ Improved behaviour when removing only Page
+ Suppressed various alerts (less important stuff is logged without launching a messagebox)
+ When deleting a peer target machine, alert message no longer interupts audio
2022.03.07 IX Magic 1.16c x86, IX Magic 1.16c x64
+ Fixed potential crash caused by Reset events
2022.02.06 IX Magic 1.16b x86, IX Magic 1.16b x64
+ Fixed source event dropdown in Step dialog not updating properly if a single Step was selected.
+ Fixed Peer Event values discarding octave numbers (broken by 1.16a).
2022.01.26 IX Magic 1.16a x86,
IX Magic 1.16a x64
+ Fixed x64 memory corruption issues.
+ Fixed saving song data when an instance of Magic has been deleted.
+ Fixed handling of sharps and flats in Peer Event values.
+ Fixed broken note-offs in Peer Event values.
+ Improved behaviour when Event accumulator text is changed during playback (try to avoid resetting counters where possible.)
+ Machine version 1.16a, file version 14
2021.05.04 IX Magic 1.16 x86, IX Magic 1.16 x86
+ Improved value parser - better input validation, bad values highlighted in red.
+ Allow complex values for delay times (see documentation)
+ Improved/extended peer/MIDI value syntax
+- new ping-pong/wrap modes
+- additional range specifiers for velocity/random modes
+- new %% value specifier
+ Assorted minor bugfixes that I can't quite remember
+ Machine version 1.16, file version 14
2021.01.21 IX Magic 1.15d x86, IX Magic 1.15d x64
+ Fixed crash when creating machine and not loading from file
+ Minor dialog fixes
+ Machine version 1.15d, file version 12
2021.01.16 IX Magic 1.15c x86, IX Magic 1.15c x64
+ Fixed crash when multiple instances attempt to retrieve list of active machines.
+ Improved peer thread safety
+ Machine version 1.15c, file version 12
2021.01.10 IX Magic 1.15b x86, IX Magic 1.15b x64
+ Fixed dialog refresh blocking audio
+ Machine version 1.15b, file version 12
2021.01.04 IX Magic 1.15a x86, IX Magic 1.15a x64
+ Fixed 'o' in chord name being seen as note-off
+ Fixed octave number display for note values in Peer value fields
+ Machine version 1.15a, file version 12
2021.01.02 IX Magic 1.15 x86, IX Magic 1.15 x64
+ Added Test/Reset/Enable controls for Page load events.
+ Fixed note-cut for Page load events.
+ Allow fractional values for Page load event delay/cut.
+ Improved status bar text for Sequences and Steps.
+ Display Event accumulator state in control label.
+ Event accumulator threshold is now included in calculation when Event is used as source for Step repeats.
+ Added random seed options to various context menus.
+ Added 'true random' mode for all randomisable things.
+ Various bugfixes
+ Updated documentation.
+ Added a Page load event to the demo bmx (randomises the BPM

+ Machine version 1.15, file version 12
2020.07.31 IX Magic 1.14 x86, IX Magic 1.14 x64
+ Added x64 version
+ Prevent (hopefully) possible multithreading file corruption
+ Added new note-cut modes for Peer/MIDI Note Events (see documentation)
+ Added version info to Help menu
+ Updated docs
+ Machine version 1.14, file version 11
2020.05.31 IX Magic 1.12e x86
+ Fixed broken Event force note-off modes
2020.05.17 IX Magic 1.12d - x86
+ Dialog resizing improvements
2020.05.02 IX Magic 1.12c - x86
+ MIDI and Machine States dialogs are now resizable
2020.04.18 - IX Magic 1.12b - x86
+ Fixed more keyboard bugs.
2020.04.16 - IX Magic 1.12a - x86
+ Fixed broken keyboard filtering. Really need to scrap all that code.

2020.04.12 - IX Magic 1.12 -x86
+ Fixed incorrect handling of multiple Sequences triggered by the same note (hopefully doesn't break anything)
+ Using apostrophe on its own in a value field is now recognised as shorthand for 'Pass (was before but resulted in an empty field)
+ Note mode token is no longer restricted to note parameters. For non-note params the triggering note value is mapped to a percentage of the target param range.
+ Note mode token can now be used in MIDI values (but not for notes yet

+ When using note mode with 'Pass, you can now specify a range of notes eg. 'Pass(C3-B7). Notes outside the range will be ignored. Notes within the range will map to the target param range.
+ Fixed a few crashes which I can't understand why they haven't been an issue before.

+ Updated documentation to (hopefully) describe this stuff accurately.
+ Machine version 1.12, file version 11
2020.04.05 - IX Magic 1.11c - x86
+ Main dialog is now resizable (sucks a bit but works)
2020.03.23 - IX Magic 1.11b - x86
+ Fixed stupid Event load bug introduced in 1.11a (IX is an idiot

2020.03.22 - IX Magic 1.11a - x86
+ Event reset now does soft clear of work queue (fix for tinga's Page load loop bug)
+ Resource dialog is now resizable (workaround for broken dpi thing)
+ Machine version 1.11a (still file version 11)
2020.01.23 - IX Magic 1.11 - x86
+ Fixed note off being triggered by full velocity when using velocity to control note params.
+ Corrected documentation of chord definition in Note Sequence Reference
+ Fixed value range parsing broken by 1.10 (see http://forums.jeskola.net/viewtopic.php ... 221#p14221)
+ Machine version 1.11 (still file version 11)
2020.01.13 - IX Magic 1.10f - x86
+ Fixed crash when clearing current Page.
+ Fixed crash when double-clicking empty space in controller maps list.
+ Implemented support for mousewheel and arrow keys in text fields.
2020.01.08 - IX Magic 1.10e - x86
+ Fixed crash due to potential incorrect initialisation after load.
2020.01.04 - IX Magic 1.10d - x86
+ Fixed control Events not loading base Event properties from template.
2019.12.28 - IX Magic 1.10c - x86
+ Fixed Enable Sequence Event forgetting the enable mode setting
+ Better naming of pasted/duplicated objects
2019.12.13 - IX Magic 1.10b - x86
+ Fixed Trigger Sequence Events retriggering Sequences on inactive Pages.
2019.12.10 - IX Magic 1.10a - x86
+ Fixed Page loss when loading multiple instances
+ Out of range notes in arpeggios are now replaced with rests.
+ Fixed Page Load events not firing on song load
+ Fixed Trigger Sequence Events over-advancing target Sequence on triggering
2019.08.08 - IX Magic 1.10- x86
+ Machine version 1.10 (File version 11)
+ Step repeats can now be linked to a child Event
+ Added Step repeat multiplier
+ Added repeat token 'x' for note sequence steps eg. "Cx4" instead of "C,C,C,C"
+ Due to changes in file structure, songs saved with Magic 1.10 won't work with previous versions but there's no need to use previous versions so don't worry about it.
2019.05.26 - ]IX Magic 1.09f- x86
+ Fixed triggering of Sequences on inactive Pages after song load
2019.04.06 - IX Magic 1.09e- x86
+ Fixed crash when loading from Buzz template
+ Fixed crash when copy/pasting Pages
+ Fixed incomplete undo points when pasting various objects
+ Window handling code updates (caused lots of issues but hopefully I got all the bugs!)
2019.02.15 - IX Magic 1.09d- x86
+ Machine version 1.09d (still file version 10, yay!)
+ Moved note-off mode into common Event controls
+ MIDI Ctrl/Note Events and Trigger Sequence Events now allow selection of note-off mode.
+ Added options/attributes for default MIDI/Control Event note-off modes
+ Dialog reshuffle
+ Improved random track behaviour (random tracks are now picked when needed)
+ Added random track in range (eg. R:2-6)
+ Improved random seeds for more randomness
+ Fixed a couple of bugs where a random choice would never hit the top of its range
+ Improved auto-assign of Peer Note Event note/velocity params
+ Fixed Peer Note Event handling of global note parameters (ACloud)
+ Added controls for Peer/MIDI Note Event cut mode
+ Improved/fixed handling of track parameter 'Cut' (no longer ends Events that ignore note-off)
+ Messages dialog now shows 100% fewer developer-ish messages
+ Improved Event dialog refresh on velocity layer changes
+ Updated docs
2019.01.19
+ Machine version 1.09c (file version 10)
+ Fixed silent triggering of Sequences on inactive Pages after load
2019.01.18
+ Machine version 1.09b (file version 10)
+ Fixed status bar over-refresh causing flickering and potential freeze
2019.01.13
+ Machine version 1.09a (file version 10)
+ Fixed Pages > 256 bug
+ Added Page combo vertical scrollbar
2019.01.07
+ v1.09 Initial release (x86 only as yet, I hope it actually works on other peoples computers)