jpcima / smf-dsp

Advanced MIDI file player
Boost Software License 1.0
47 stars 5 forks source link

Synth plugin support #2

Closed jpcima closed 4 years ago

jpcima commented 5 years ago

Provide synthesizers as plugin directly into the program.

Synthesizer list

jpcima commented 5 years ago

Implemented, and note for building in README. Synth plugins appear in F2 menu.

Synth configuration is found in ~/.config/FMidiPlay and initialized when program runs. It's to define soundfonts, banks, and other things. location is due to change when software is named (suggestion accepted).

cc @farvardin, about feature discussed in IRC talk

jpcima commented 5 years ago

Added SCC by Mitsutaka Okazaki (YM2212/YM2149/YM2413) as synth plugin @Wohlstand you may be interested to use this

Wohlstand commented 5 years ago

Against SCC, I have the draft for libEDMIDI that I plan to equip it with C-API/ABI and embed into SDL Mixer X and allow easier use of it include RT-API and using of my sequencer which supports loops and non-standard formats. So, SCC is a good thing! :fox_face: :+1:

jpcima commented 5 years ago

Yeah I remember about libEDMIDI work; right now you can have working music preview. I sent a PR for fixes at kode54's bitbucket, which includes some correction about panning. Also I should adapt for pure RT-processing, because it has some obstacles about that. In the personal branch, I added "all notes off" and "reset all controllers". I think it also needs the GM reset.

Next thing I'm tempted to look into adding MT-32 emulation, which works on original system ROMs, and in Wildmidi's xmi2mid is the MT->GM conversion process.

jpcima commented 5 years ago

Added the MT32. There is a GM 0-127 mapping. It's bizarre that some patches sometimes are silent, and it's not an issue of polyphony.

jpcima commented 5 years ago

MT32 support is now dual emulated device. Device 1 plays 8 melodic channels + percussion. Device 2 has the 7 others. Part assignment is made by sysex messages.