this post was submitted on 14 Dec 2024
27 points (100.0% liked)
Rust
6130 readers
62 users here now
Welcome to the Rust community! This is a place to discuss about the Rust programming language.
Wormhole
Credits
- The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I care about MIDIs! I'll check this out asap.
Pretty cool, I'm interested to see how far you can take it!
If you can match BASSMIDI in terms of features then you got yourself a serious synth on hands. (If you can match Sound Canvas or Yamaha MU synths, even better!)
Just keep in mind that most (and by that I mean like 99%) of soundfonts aren't exactly made to proper specifications. A lot of them miss certain parameters (such as filter cutoff frequency, LFO frequencies, etc) and even misuse them (reverb and chorus pre-set on layers being cranked up).
The only soundfonts I recommend you develop this with (as your target) are the ones made by E-MU themselves. CT4MGM.SF2 especially. They basically cloned the Roland SC-55 as closely as they could on their sound chips at the time and most sounds match the behaviors correctly.
Hey cool, thanks for the recommendation, I added CT4MGM and a couple other fonts to my collection. I have already found fonts that do deranged stuff, like defining offsets outside the buffer they're supposed to be in.
Right now I'm not creating the sounds myself, but rather using a library for the purpose. I'm intending to replace it with my own implementation (or a suitable alternative, if one exists) later, if I just have the time. The biggest remaining blocker for release is doing exactly that for the midi sequencer, because the current one doesn't let me do seeking.
I have other related projects planned as well, like a soundfont compiler that builds a font from "source code" that consists of loose samples and text files that define the instruments. I promised myself to not start anything until this one is out, though.