Jan 27, 2012 at 10:35 PM

Post questions here

Apr 22, 2012 at 7:20 AM

It is a fantastic Project. But it sounds better when Using Windows Media Player to play a midi  .

Would you please tell me what  the reason is ? The wav files of the GM ? What is the way to improve the performance?

Sorry for my poor English.

Apr 24, 2012 at 7:12 PM

You are most likely referring to my sfz implementation, which is incomplete. It is actually a rip from the windows gm files so your are right in that they should sound similar, but they don't. My synth is very simplistic and doesn't really do everything that say the windows synth does. However I am always trying to add these things, but I do want to keep it so that it will still work fast enough to be able to play realtime audio.


In fact this particular problem is exactly what I'm working on now: (sound quality)

I'm currently thinking perhaps interpolation during playback is necessary...

Also remember not all midi events are supported either so some things like vibrato and tremolo will not be heard

May 1, 2012 at 4:42 PM

Oh, thanks a lot. I think I  undersand it.

I think This will be a hard work to make it sounds quality. Thanks for your hard work, I have gotten some idea on midi synth. 

May 2, 2012 at 4:54 PM

There is another  fantastic project named Timidity, But that project is written in C++.

May 3, 2012 at 7:40 PM

I actually have Timidity on my PC. (I like to listen to midis with it)

I am currently using the fluid synth source right now as a guide.

Im not too concerned with sf2 as much as I am with learning how the synthesis works. After I learn this implementing any format should be relatively easy.

My current project is vastly different than the last upload. (I have better wave and midi support, filters, interpolation, envelopes, and more)

I do plan to update soon though after I finish my semester. (Ill make a version 2.0b or something)

Jul 31, 2012 at 10:36 AM

I have a different question:

How does one change the playback speed?
I would like to make it variable in my "barrel organ" implementation...

I am of course not talking about pitch, but the speed in which all the notes are played. I thought that the force of midi was that one could change the playback speed without changing the pitch like it would happen with a piece of music in a sound file...

Sep 28, 2012 at 10:29 PM
Edited Sep 28, 2012 at 10:34 PM

Good question, and sorry for the delayed response.

As it is currently there is no way to change playback speed without affecting pitch. What your looking for I believe is called time-stretching and involves much more math than simply increasing or decreasing the sampling rate.

In fact "the force of the midi", which I'll assume you mean velocity, can and probably should control the playback speed of the voice, but the GM spec does not require it. A popular choice for lots of synths is to simply have velocity control the initial volume of a voice which is what I ended up doing.

For newer versions of the project though I will definitely look into this as this is a useful feature.