CL-MeltySynth and midi123 Roadmap
This is an evolving document where short and long term goals for the library and example programs get stored. Things will be added and removed as time goes on.
CL-MeltySynth Goals
Near term goals for CL-MeltySynth (in approximate order of priority):
- Better handling of sample rate conversions in the oscillators. I think (I am definitely not a DSP expert) that oscillators with data at a higher sampling rate than the output rate should be decimated (i.e. pre-filter then downsample), not interpolated.
- Optional (opt-in) dynamic range compression on the final output. Something configurable, that will keep extra loud songs from clipping when coming out of the 64-bit engine.
- Some more Lisp-y interfaces for the API
Long term goals for CL-MeltySynth (in no particular order):
- Add ability to load only the samples that are used into RAM, not the entire SoundFont sample data block.
- Configuration "knobs" for the chorus effect.
- More reverb types
- Multiple chorus types
- Support for the "variation" MIDI control (#94). There seems to be no set standard for what this effect actually is. On some synths, it's ignored. On others, it's a phaser. On yet others, it's a delay.
- More configurable patch remapping.
- Portamento (Roland GS has a few controllers for this)
Example Programs
Other Example Programs
- Basic WAV renderer example program
CL-PulseAudio exampleMaybe not, I think other libraries would be better. SDL2 at least.- SoundFont info dumper (dumps verbose info on the SoundFont and its patches)