Skip to content

devinacker/decomposer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is the beginning of what will be Decomposer, my tracker-style MIDI sequencer. It is designed to drive a single MIDI output device (and possibly VSTi and other synth plugin standards eventually).

Currently this mostly consists of my own MIDI input/output/streaming interface, which exposes MIDI input and output devices as QObjects and provides a system for buffering timestamped MIDI events for the actual sequencer (and will eventually be extended to allow writing to a standard MIDI file). Currently only a Windows implementation exists, but I plan to implement it for ALSA and CoreMIDI eventually. Look in the src/devices subdirectory if you want to see how this works.

On the GUI side, existing elements are the devices page (which lets you select an input and output device and logs most incoming MIDI traffic) and the instruments page, for editing up to 64 MIDI "instruments". An instrument in this context refers to a channel/bank/program combo, plus several relevant parameters like transpose/pitch-bend range RPNs, as well as (soon) macros.

Macros (not yet implemented) are a set of MIDI CC, NRPN, and parameterized SysEx messages that the user can configure for each instrument, set an initial value for, and then change within the actual sequence in the same manner as traditional tracker effect commands. Device macros will probably be implemented as well for setting global effect parameters, etc.

The sequencer will be started next, and will have individual pattern orders for each track (think FamiTracker, GoatTracker, etc.)

This is a Qt 5 and C++11 project. As usual, it's released under the MIT license, but aside from the MIDI interface there's nothing here worth borrowing or stealing yet.

About

Work-in-progress MIDI tracker/sequencer

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published