IX Magic 1.16d - October 30th, 2023
Posted: Mon Jan 07, 2019 10:35 pm
Rejoice, gasp in amazement, have a stiff drink and smoke a big fat one because, after far longer than I care to think about, I have actually decided that this machine can be released into the wild. I can't quite believe it. I think I might pass out.
"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!
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)
"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!
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)