-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add MIDI Tuning Standard (MTS) support #282
Comments
Looks interesting, I need to learn this deeper. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Timidity already supports MTS, but I was really hoping it could be added to SCC (edmidi), opnmidi, and adlmidi. Technically for my purposes I only need real-time single note change (bank/no bank). See https://sourceforge.net/p/timidity/git/ci/master/tree/doc/C/README.mts and https://sourceforge.net/p/timidity/git/ci/master/tree/timidity/playmidi.c#l8138 for their implementation, along with the tuning table here: https://sourceforge.net/p/timidity/git/ci/master/tree/timidity/tables.c#l58.
This allows for fine-grain control of individual note frequencies, and then channel-level effects take precedence after. This is extremely useful for microtonal midi files.
As an extreme case, attached is a midi file where "it selects bank 0, prog 0 (piano) to channel 0 and then proceeds to play a number of chords with four notes in each of them. Each chord is played via the MIDI notes 124, 125, 126 and 127. And before each chord is played, there is a SysEx message that uses MTS to assign new frequencies (in the lower, audible range) to those four MIDI note values via tuning bank 0, tuning prog 0 (from now on abbreviated as tuning 0/0)." (from FluidSynth/fluidsynth#102 (comment))
mts.zip
The text was updated successfully, but these errors were encountered: