I'm working on a project (windows, c++) where I am processing MIDI events. Now I am looking for a way to increase the audio quality.
Is there a library that accepts MIDI information as input and that uses, for example, soundfonts as output?
If not, which libaries could I use to develop something like this myself?
Better audio quality for MIDI events?
Between MIDI events and "audio quality", there is a synthesizer; the usual approach is sending MIDI events from your application to an external synthesizer through the system's MIDI drivers, usually a loopback one (e.g. Maple, freeware) piping MIDI data to another program.
Simple synth choices for this approach include Synthfont, which works with soundfonts, Timidity++, which works with GUS patches, and Hermann Seib's SAVIHost running your choice of VST plugins.
There are also the built-in MIDI synthesizer in Windows, which tends to suck, and drivers for actual MIDI peripherals, which users tend to not have.
If you want a built-in synthesizer instead, maybe you can embed FluidSynth (SoundFont-based) or make your application a VST host to use arbitrary ready-made plugins.
Simple synth choices for this approach include Synthfont, which works with soundfonts, Timidity++, which works with GUS patches, and Hermann Seib's SAVIHost running your choice of VST plugins.
There are also the built-in MIDI synthesizer in Windows, which tends to suck, and drivers for actual MIDI peripherals, which users tend to not have.
If you want a built-in synthesizer instead, maybe you can embed FluidSynth (SoundFont-based) or make your application a VST host to use arbitrary ready-made plugins.
After looking for synthfont and timidity++ I'm not sure how I could use them for my project.
For synthfont there is no source code available.
Regarding timidity++: there list of features that includes "reading midi files". But I retrieve the MIDI information from a different source. Assuming it is possible to just send this information to some kind of "timidity system" this is what I want to do in pseudo code:
Timidity tim;
int channel = 1; int note = 60; int velocity = 100;
tim.sendNoteOn(channel, note, velocity);
Sleep(2000);
tim.sendNoteOff(channel, note, velocity);
For synthfont there is no source code available.
Regarding timidity++: there list of features that includes "reading midi files". But I retrieve the MIDI information from a different source. Assuming it is possible to just send this information to some kind of "timidity system" this is what I want to do in pseudo code:
Timidity tim;
int channel = 1; int note = 60; int velocity = 100;
tim.sendNoteOn(channel, note, velocity);
Sleep(2000);
tim.sendNoteOff(channel, note, velocity);
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement