There is something called MidiTrain that does a really good job of this. I would point you to it with a link, but I cannot find it.NiallM wrote: Next on my list is the 'intelligent' transposer
PM me if you want more details.
There is something called MidiTrain that does a really good job of this. I would point you to it with a link, but I cannot find it.NiallM wrote: Next on my list is the 'intelligent' transposer
Cool! It's one of my little Tracktion annoyances, not being able to split (Rack Filters let me stack synths now, so I'm happy there).NiallM wrote:Consider it added to my todo listThese are great.. but do you know what I wish someone would write? A MIDI filtering plugin that I can set up to filter out a range of notes! Why.. so I can do "splits" in Tracktion! A MIDI filter plugin along with the MIDI transpose would let me spread multiple instruments out across my controller keyboard. That would rock my world!.
-Niall.


I came across this problem in MKey, as users can transpose notes whilst a note is held down. In MKey I solved it by simply setting up a dynamic array that stores currently held notes. By storing both the root note, and the transmitted note, you can easily send correct note offs regardless of how transpose has shifted during the note on duration.NiallM wrote:Just until I figure out a way to stop the hanging notes - maybe send Note Off messages when a parameter is changed?
Code: Select all
THeldNote = record
NoteReceived : byte;
NoteTransmitted : byte;
end;
var HeldNotes : array of THeldNote;
function ProcessNoteOff(Note : byte);
var i : integer;
begin
for i := 0 to high(HeldNotes) do
if HeldNotes[i].ReceivedNote = Note then break;
if i < Length(HeldNotes) then
begin
SendNoteOff(HeldNotes[i].TransmittedNote;
HeldNotes[i] := HeldNotes[High(HeldNotes)];
SetLength(HeldNotes, High(HeldNotes));
end;
end;
The thread safe aspects of it are, because they need to be, but the basic engine is entirely platform agnostic. The only limitation is that it is delphi (pascal) rather than C++, though a port would be pretty trivial. It's just a honking great array and databse engine after all.NiallM wrote:valley : The MIDI library sounds really interesting - does it use Windows-specific code
realised I've replicated some of the features of MWay and MChord with these plugins- I hope I didn't step on your toes...
I made a synthedit plugin that selected note/velocity ranges to be output on each channel. and a companion plugin that moves all midi data from a given channel to channel 1. A little awkward, but very flexible splits. It's available on www.tracktionfaction.comwoolyloach wrote:These are great.. but do you know what I wish someone would write? A MIDI filtering plugin that I can set up to filter out a range of notes! Why.. so I can do "splits" in Tracktion! A MIDI filter plugin along with the MIDI transpose would let me spread multiple instruments out across my controller keyboard. That would rock my world! :D
Thanks for making these. 8)
Submit: News, Plugins, Hosts & Apps | Advertise @ KVR | Developer Account | About KVR / Contact Us | Privacy Statement
© KVR Audio, Inc. 2000-2026