"IX Magic.dll", "IX Magic.html" and the folder "IX Magic" should be placed in your Buzz Generators folder.
It's a Peer/MIDI event sequencer, whatever that is. It's good, go with it. Feed it notes to make cool stuff happen.
It is a little bit complicated though, so it'd probably be a good idea to read some/all of this manual.
Parameter | Description |
MIDI Input | Enable/disable MIDI input. Note that the MIDI configuration in Buzz must be set up properly for this to work. |
MIDI Channel | Which channel to receive MIDI messages on. Can be configured to listen to a single channel or all of them. |
Velocity Scale | Velocity scaling percentage. Sequences, Steps and Events inherit this value by default. |
Command | See Commands. |
Argument | Argument for command if present. See Commands. |
Parameter | Description |
Note | Note value. See Triggering and Recording. |
Velocity | Velocity value. See Triggering and Recording. |
MIDI Channel | Used in recording to preserve MIDI channel information. See Triggering and Recording. |
Sequence | Force direct triggering of specific Sequence or all Sequences. If the value is zero, all Sequences will be triggered. Values greater than zero specify a Sequence in the Object List, with the Sequence at the top of the list being 01. Direct triggering bypasses the list of trigger notes allowing a Sequence to be triggered without a note or by a note that it would not otherwise respond to. All other parameters work in conjunction with direct triggering. See Triggering. |
Trigger Delay (% of tick) | Delay note by percentage of a tick. Allows notes to happen between ticks. |
Note Cut (% of tick) | Force note-off after percentage of a tick. Allows note duration to be less than one tick. |
These attributes are per-instance configuration options. You can access them via the Options menu of the main dialog. If you want to change the default setting for new instances you can do so by editing "Buzz/Gear/gear.xml".
Attribute | Description | Values | Default |
Default Anti-Flam (ms) | Default Anti-flam time (approx.) for objects which don't specify their own value. See Anti-flam. | 0-65535 | 20 |
Default Anti-flam Mode | Default Anti-flam mode for objects which don't specify their own value. See Anti-flam. | 0=Common, 1=Notes | Notes |
Select new machines for state capture | Automatically select new machines for inclusion in song state capture. See Machine States. | 1=On, 0=Off | Off |
Capture song state on Page change | Whether to capture machine states before changing the active Page. See Machine States. | 1=On, 0=Off | Off |
Restore song state on Page change | Whether to restore captured machine states after changing to a different Page. See Machine States. | 1=On, 0=Off | Off |
Restore song state on load | Whether to restore captured machine states when the song is loaded. See Machine States. | 1=On, 0=Off | Off |
Restore song state on stop | Whether to restore captured machine states when the song is stopped. See Machine States. | 1=On, 0=Off | Off |
CC Prev. Page | Sets the MIDI CC message to use for the Previous Page action. Also available from the MIDI Dialog. | 0-127 | 21 |
CC Next Page | Sets the MIDI CC message to use for the Next Page action. Also available from the MIDI Dialog. | 0-127 | 22 |
CC Set Page | Sets the MIDI CC message to use for the Set Page action. The value of the CC is the number of the Page to activate. Also available from the MIDI Dialog. | 0-127 | 24 |
CC Tap tempo | Sets the MIDI CC message used to tap out the Page tempo. Also available from the MIDI Dialog. | 0-127 | 23 |
CC Reset machine | Sets the MIDI CC message to use for the Reset Machine action. Also available from the MIDI Dialog. | 0-127 | 23 |
Enable Page events | Master switch to enable/disable all Page events. See Page events. | 1=On, 0=Off | On |
Enable Page activation events | Whether activation events will trigger when changing to a new Page. See Page events. | 1=On, 0=Off | On |
Enable Page play events | Whether to activate play events when playback is started. See Page events. | 1=On, 0=Off | On |
Enable Page stop events | Whether to activate stop events when playback is stopped. See Page events. | 1=On, 0=Off | On |
Enable Page seek events | Whether to activate seek events when playback position is changed. See Page events. | 1=On, 0=Off | On |
Enable Page record events | Whether to activate record events when recording is started. See Page events. | 1=On, 0=Off | On |
The following can be entered in the command/argument columns of the pattern editor.
Command | Description |
00 - Set Page | Changes the active Page. Argument is Page number (zero based index). Page activation events will be triggered, as will automatic machine state capture/restore if enabled. Warnings related to machine state capture will be issued unless previously disabled. |
01 - Reset | Resets all Sequences, Steps and Events on the current Page. Any queued Events are cancelled. |
02 - Record Mode | Zero for replace, non-zero for overdub. See Recording |
Command | Action |
Open | Opens the Main dialog. |
Resources | Opens the Resources dialog. |
Machine states | Opens the Machine States dialog. |
MIDI | Opens the MIDI dialog. |
Messages | Opens the Messages dialog. |
Reset | Resets the machine to its initial state. |
Show PAL | Opens BTDSys PAL2 |
By default, double-clicking the machine opens the Main dialog. To access the machine parameters window, hold ALT while double-clicking.
MIDI triggering is fairly simple. When a MIDI note is received, any Sequences set to listen for that note will fire. Events that are activated belong to that note on that channel and will only respond to the corresponding note-off on the same channel.
Pattern triggering is similar but there are some additional things to be aware of. Each track in the pattern editor behaves just like a MIDI channel (internally they are regarded as the same thing), so Events triggered by one track will not be ended by another track (See Recording for the exception to this rule).
Each track maintains a note history, so each Buzz style note-off will end the most recent note on that track. You can explicitly end a given note by placing a zero in the velocity column alongside the desired note. Tracks will also remember the last values used in the note/velocity columns, so a note without a velocity will use the last (non-zero) velocity entered (or 0x7F) and a velocity without a note will use the last note entered.
It is possible to trigger a specific Sequence directly, either with or without a note by using the Sequence column. If the Sequence column contains a valid Sequence index, any note/velocity information will be passed directly to that Sequence and other Sequences will not respond. In this way it is possible to trigger a Sequence using a note which the Sequence would not normally respond to, or even with no note at all.
When recording incoming MIDI into patterns, Magic will try to keep note on/off pairs together on the same track where possible. The track MIDI Channel parameter is used to store the channel of the incoming note for playback, so notes spread across multiple tracks will behave as if they were on the same channel and the Trigger Delay and Note Cut parameters will be used to maintain the timing and length of notes. Magic will try to keep the recorded data as tidy as possible for easier editing.
The record mode can be set via Options->Record Mode in the Main Dialog or by using pattern command 02. There are two recording modes. "Replace", the default mode, will erase existing pattern data, clearing each row before attempting to store incoming notes. "Overdub" will avoid overwriting existing data.
Magic will issue warnings if either there is no track available to record on, or if the pattern tick resolution is too coarse to recreate the note timing.
Thanks to Ed Powley for his PeerLib upon which this machine is based.
If you've got any comments, requests, bug reports, whatever, you can find me lurking in the forum (username 'IX') or you can mail me via deenine[at]hotmail[dot]co[dot]uk (but don't expect a quick reply.)
I'm still not very good at this programming lark, so use this machine at your own risk. If it kills your computer or causes you severe embarrassment, I can't be held responsible.
- IX