A proper MML Tracker. Features include:
- Create and manage projects
- Restore project from last application state if program was terminated without saving (Start button is pushed)
- Pattern editor for organizing song parts
- Channel muting/isolation
- Instrument selection
- FX Editors for adjusting Volume,Pan,Detune,Gate, and Modulation
- ADSR Envelope for adjusting instrument amplitude
- Playback MML in realtime
- Export MML files
- And more to come!
As this is the V 1.00 release, it is functionally complete, but I do plan on updating to add additional tools, such as copying and pasting notes, and importing external MML data. Feedback is welcome, and if you find bugs or errors, please leave a comment detailing the issue. Happy composing!
EDIT: V 1.03 Update
- Fixed sort function for high note positions that set the signed bit, which compared negative and cause high values to get sorted below smaller ones. Results in starting note requiring lots of leading rests during playback or export. Old songs should be fine, it was just a playback issue.
- Full optimization pass on rendering process to make this usable on the original 3DS
- Better instructions for most modes
- Fixed bug when creating notes outside measure, when the length is shorter than the standard grid size
- Notes, during edit mode, now sound in accordance with the FX before them. For instance, if a note is selected, and the previous note had a pan effect, that note will playback in the editor with the pan effect.
- Fixed various visual bugs relating to optimizations
EDIT: V 1.02 Update
- Some cosmetic fixes to interface
- Fixed pattern bug: subscript error when not all pattern numbers are used
- Fixed note hopping near end of measures: increased the maximum note position by 16 times.
- Time signature limited to practical values, in conjunction with expanded measure amount (from 8 -> 20 measures)
- Added Custom 1 instrument, so default can be used as an instrument
- Added loop point in song, now you can specify where the song repeats to once it's reached the end. In the pattern editor the 'X' button will set the active pattern to be the loop point.
- Pattern playback timer is now much more accurate, fixed a precision rounding error.
- Pattern playback in song mode now plays from the pattern currently being edited, and will loop back to that pattern at the end unless a loop point has been set after it.
- Bug fixed in MML generation relating to notes outside pattern measure range.
- General maintenance and cleanup
EDIT: V 1.01 Update
Optimizations - removed excessive draw operations. Hopefully this results in better usability for original 3DS users.
Fixed sprite bug in ASDR and FX modes.
Added 'hidden' instruments - 144-151
Fixed timer during playback, so it is tied to MAINCNT
General instructions for each application mode are listed on the top screen for reference. Most inputs have a secondary behavior when the L or R shoulder buttons are held.
- Touch anywhere in the note editor window to create or select notes
- Touch the colored pills on the left side of the screen to select a channel to author notes in. Holding L/R will open the instrument selection mode for that channel.
- Touch the 'M' symbol on the left side of the screen to mute that channel. Holding L/R will mute all other channels.
- A (+L/R) - Select next (previous) note
- B (+L/R) - Convert note to triplet (Portamento: slide pitch)
- X (+L/R) - Play current pattern (song)
- Y (+L/R) - Delete note (channel, must hold L/R for at least half a second)
- Dpad U (+L/R) - Move note up a semitone (octave)
- Dpad D (+L/R) - Move note down a semitone (octave)
- Dpad L (+L/R) - Move note backwards (shorten note)
- Dpad R (+L/R) - Move note forward (lengthen note)
- Stick U (+L/R) - Scroll editor view up (2x speed)
- Stick D (+L/R) - Scroll editor view down (2x speed)
- Stick L (+L/R) - Scroll editor view back (2x speed)
- Stick R (+L/R) - Scroll editor view forward (2x speed)