back to list

SF2

🔗genewardsmith <genewardsmith@...>

1/22/2002 8:49:12 PM

--- In MakeMicroMusic@y..., "jacky_ligon" <jacky_ligon@y...> wrote:

> I just recently tried out sound fonts for the first time when I
> bought a new software sampler. There are many good free SF2s out
> there on the internet. Found some really good sounding guitars and a
> couple of banjos too.

There are, and I'd like to be able to make better use of them. Midisyn uses them, but many soundfonts it seems unable to deal with. Timidity is supposed to work with them also, but I can't get it to fly. A recommendation for midi rendering software which is more able to handle sf2 files would be welcome.

🔗graham@...

1/23/2002 8:01:00 AM

In-Reply-To: <OF99092BF8.B66E7175-ONC1256B4A.004E915B@...>
Manuel wrote:

> Same for me. I don't know if there's still much development of Timidity.
> But I had a nice idea: it's open source, which means that someone who's
> able in C (not me) can pick it up and add support for the MIDI Tuning
> Standard to it. Then we'll have a MIDI player with accurate tuning
> whichfor we don't need to use pitch bend messages anymore.

<http://www.goice.co.jp/member/mo/timidity/>

Oh, and it has SoundFont support code as well (as do the AWE series Linux
drivers, I'd forgotten about them).

The tuning table is in a file called freq.c. So one easy but crude way to
retune it would be to alter that array to default to another scale. That
would mean you'd have to recompile the application for each new tuning.

Adding proper tuning hooks would mean dynamically altering the array.
Shouldn't be too difficult, actually, if anybody has the time to look at
this. It's not declared static or const or anything. All you'd have to
do is something like

#include "tables.h"

int i;

for (i=0; i<128; i++) {
freq_table[i] = whatever;
}

The units seem to be integers representing frequency. Precision around
middle C will be about 1200*log2(130813/130812) = 13 millicents.

There's also some stuff in freq.c for Fourier transforms that assumes
equal temperament. You could change it the same way if it's important.
Everything there's floating point in terms of octaves.

I found this in m2m.c

"""
* TODO LIST (likely to be done eventually)
* 1) correctly implement fine tuning tweaks via extra pitch bends
"""

There are also Open Source sequencers and score readers around for eager
programmers with a lot of time on their hands.

Graham