back to list

Soundfont Players

🔗idealordid <jeff@...>

10/10/2004 10:50:49 AM

I've found some great piano soundfonts, thanks to you guys, but I'm
having real problems, because of my use of pedalling, in getting any
pitch-bend microtonal system to work. InTun just can't handle it, and
after examining the MIDI output, its easy to see I need more than 16
channels to handle microtuning such a heavily pedalled work. (I piped
the MIDI output from MidiOX to Cakewalk to see the output).

What are my options? I started looking at Csound, but the SoundFont
support seems a bit flaky and I can't find any examples. Should I try
and make a 19ET SoundFont? I've got Vienna somewhere...

TIA!

jeff harrington
http://jeffharrington.org - new music
http://netnewmusic.net - new music portal
http://beepsnort.org - new music blog
http://webjay.org/by/idealord/mikrotonal-experimentaltuningmusic -
microtonal webjay playlist

🔗Robert Walker <robertwalker@...>

10/10/2004 8:07:30 PM

Hi Jeff,

You can run out of channels even with a single instrument,
but it is quite rare in scales that are octave repeating.
Normally will happen only in things such as big block cluster
type chords. Even big 12 note clusters won't do it.

You would need to sustain a chord
with more than 15 distinct 19-et scale degrees in it.
Notes the same pitch but in distinct octaves will have
the same pitch bend, so can be played in the same channels.

The way I do it in FTS, then notes get played on the same
channel as earlier played notes if they require the same
pitch bend. Then if a new pitch bend is ever needed
then the channel with the oldest applied pitch bend
gets all its notes switched off - or the channel
with the longest ago switched off or switched on
note.

If it happens with nots that use 15 or less
scale degrees then it is certainly technically
possible, and it just depends on the particular
implementation of the channel remapping.

For instance very early versions of FTS (1.082 or earlier)
used a less efficient algorithm and had more switched
off notes in this situation.

If one does have huge block chords sustained
and it happens, then the solution if restricted
to the channel pitch bends method is to
split your recording into e.g. notes
above and below middle C, realise each
part separately, and then combine them
to make the mp3. I haven't needed to do that
in my own pieces which are usually small
chamber music type things with few notes, and
the fractal tunes are also generally not
very demanding on the numbers of channels,but I know
that many FTS users work in that way.

You also need to work that way if using the
pitch bends technique e.g. to work up
an orchestral mp3 with the instruments
all at different pan positions and with
a lot of polyphony in each instrument
with each one playing several pitch bends
at once.

BTW do you know the Giga piano patch?

http://www.tascamgiga.com/sounds/gpiano.html

It only needs the lite version of Giga to be played
- and you sometimes get that version
bundled with a soundcard.

Robert

🔗Jonathan M. Szanto <JSZANTO@...>

10/10/2004 8:23:58 PM

Jeff,

{you wrote...}
>What are my options?

I'm don't make my stuff the way you do, using midi pitch bend to create non-12 tuning, and I say that only to point out that I haven't tried the following to make pieces in that vein. But I can speak very highly of rgc:audio and the owner/developer, Rene. I have used his z3ta+ synth for over a year, it is amazing and fully tuneable, and he has a great track record of customer service and support most of it on the rgc forum at kvr-vst.com.

All of that is a long preamble to his soundfont player: sfz. It is available in two versions: a *freeware* version and a paid version, sfz+. Very much worth you checking out to see if it would do what you need; I believe sfz+ has a demo version, and sfz (as I said) is completely free.

http://www.rgcaudio.com/sfz+.htm
http://www.rgcaudio.com/sfz.htm

HTH,
Jon

🔗Robert Walker <robertwalker@...>

10/11/2004 5:24:48 AM

Hi Jeff,

Just thought of a better way to explain about the midi pitch bends:

You can think of each midi pitch bend as an accidental relative to twelve equal, naturally. So with fifteen simultaneous pitch bends
(assuming you want your midi clips to be GM compatible, 16 if they don't need to be) then you have fifteen distinct accidentals -
including natural as an accidental.

Any music for a single instrument that can be notated in 12-et using no more than 15 accidentals never needs to run out of channels
to play the notes. So for example 24-et only needs two accidentals, so can always be played on two channels. A just intonation
diatonic scale needs 7 channels. 180-et needs 15 channels so you never run out of pitch bends in that et if played on a single
instrument.

If it needs more than 15 accidentals, you can still play it in ordinary midi + pitch bends so long as you use no more than 15
accidentals simultaneously in any given chord.

This also gives a fairly easy way of composing directly in midi in many tunings. You just need to assign a different pitch bend to
each midi channel corresponding to the accidentals you need for your piece. Then play your notes on the appropriate channel, e.g.
all the Cs on channel 1, C#s on channel 2, Dbs on channel 3 and so on, and then overlay all those different parts to make your
score, so you can even put them all onto a single staff too.

In 19-et you just need to leave out four notes in your piece, and you can play it this way and you don't need to use any channel
remapping software. If you change key, you need to set up a new set of pitch bends at that point for the extra notes you need.

This will only fail if you need block chords using more than 15 simultaneous 19-et note names, which is a rare thing to want to do
even with sustain.

Actually even in orchestral music, if the midi clip is intended to be played on a synth or sound card that permits several
instruments to share the same channel, then you can do a complete orchestral piece in any of these tunings and never run out of
pitch bends - unless you start doing things like panning instruments to different pan positions as well. That's not in the Midi
standard, but it is consistent with it, and is the way modern GM sound cards and GM soft synths work certainly. The way that works
is that you send an appropriate patch just before the note to be played so Flute patch, note on 60 in channel 1, Oboe patch, note on
60 in channel 1, plays middle C on an oboe and flute simultaneously in channel 1,

Robert

🔗idealordid <jeff@...>

10/11/2004 7:54:08 AM

Wow... thanks for an excellent explanation. Why am I hearing all this
bending then? Is it a result of some weirdness in my MIDI file? I'm
using InTun's own 19ET scale. The help notes to InTun mentioned the
pedal. Having a sustain pedal down - while the algorithm perhaps
doesn't remember the channel for C#- or whatever... and then
re-sending the pitch bend on the next C#- on a different channel might
be the effect I'm hearing. The sustain pedal is down for 2 measures
at a time in this piece...

Thanks again for your explanation.

jeff

--- In MakeMicroMusic@yahoogroups.com, "Robert Walker"
<robertwalker@n...> wrote:
> Hi Jeff,
>
> Just thought of a better way to explain about the midi pitch bends:
>
> You can think of each midi pitch bend as an accidental relative to
twelve equal, naturally. So with fifteen simultaneous pitch bends
> (assuming you want your midi clips to be GM compatible, 16 if they
don't need to be) then you have fifteen distinct accidentals -
> including natural as an accidental.
>
> Any music for a single instrument that can be notated in 12-et using
no more than 15 accidentals never needs to run out of channels
> to play the notes. So for example 24-et only needs two accidentals,
so can always be played on two channels. A just intonation
> diatonic scale needs 7 channels. 180-et needs 15 channels so you
never run out of pitch bends in that et if played on a single
> instrument.
>
> If it needs more than 15 accidentals, you can still play it in
ordinary midi + pitch bends so long as you use no more than 15
> accidentals simultaneously in any given chord.
>
> This also gives a fairly easy way of composing directly in midi in
many tunings. You just need to assign a different pitch bend to
> each midi channel corresponding to the accidentals you need for your
piece. Then play your notes on the appropriate channel, e.g.
> all the Cs on channel 1, C#s on channel 2, Dbs on channel 3 and so
on, and then overlay all those different parts to make your
> score, so you can even put them all onto a single staff too.
>
> In 19-et you just need to leave out four notes in your piece, and
you can play it this way and you don't need to use any channel
> remapping software. If you change key, you need to set up a new set
of pitch bends at that point for the extra notes you need.
>
> This will only fail if you need block chords using more than 15
simultaneous 19-et note names, which is a rare thing to want to do
> even with sustain.
>
> Actually even in orchestral music, if the midi clip is intended to
be played on a synth or sound card that permits several
> instruments to share the same channel, then you can do a complete
orchestral piece in any of these tunings and never run out of
> pitch bends - unless you start doing things like panning instruments
to different pan positions as well. That's not in the Midi
> standard, but it is consistent with it, and is the way modern GM
sound cards and GM soft synths work certainly. The way that works
> is that you send an appropriate patch just before the note to be
played so Flute patch, note on 60 in channel 1, Oboe patch, note on
> 60 in channel 1, plays middle C on an oboe and flute simultaneously
in channel 1,
>
> Robert

🔗Daniel Wolf <djwolf1@...>

10/11/2004 8:34:52 AM

Jeff:

I've had few if any latency problems with InTun, but then I largely avoid the pedal as I like my music on the dry side.

Can you check to see the maximum number of notes that might fall under one of your pedalings? You may well have to edit that by hand.

Could you describe the rest of your setup in a bit more detail -- what synthesizer or soundcard are you using? are you using a loopback program, if so which one? how fast is your cpu? each of these could affect your playback adversely.

Daniel Wolf

idealordid wrote:

>
> Wow... thanks for an excellent explanation. Why am I hearing all this
> bending then? Is it a result of some weirdness in my MIDI file? I'm
> using InTun's own 19ET scale. The help notes to InTun mentioned the
> pedal. Having a sustain pedal down - while the algorithm perhaps
> doesn't remember the channel for C#- or whatever... and then
> re-sending the pitch bend on the next C#- on a different channel might
> be the effect I'm hearing. The sustain pedal is down for 2 measures
> at a time in this piece...
>
> Thanks again for your explanation. >
> jeff
>

🔗Graham Breed <graham@...>

10/11/2004 8:40:49 AM

idealordid wrote:
> > Wow... thanks for an excellent explanation. Why am I hearing all this
> bending then? Is it a result of some weirdness in my MIDI file? I'm
> using InTun's own 19ET scale. The help notes to InTun mentioned the
> pedal. Having a sustain pedal down - while the algorithm perhaps
> doesn't remember the channel for C#- or whatever... and then
> re-sending the pitch bend on the next C#- on a different channel might
> be the effect I'm hearing. The sustain pedal is down for 2 measures
> at a time in this piece...

Oh yes, sustain. That can cause trouble. The reason is that notes are still sounding even if the MIDI note-offs have been sent. The retuning software probably thinks the notes are silent, and so reallocates the channel. It needn't be another C#. Whatever note is given that channel, the new pitch bend will affect any already sounding notes.

Would it be possible to alter the MIDI file so that the keys are held down for as long as you expect them to sound? It's an ugly hack, but the only way I can think of to get this to work, short of modifying the channel assignment algorithm. Well, another thing would be to make all notes equally short when sustaining, but that's probably uglier. Or if the player supports multiple devices, and you can split the piece into multiple parts to escape the 16 channel limit.

Your best bet is always full keyboard tuning tables. Timidity works with them and sound fonts.

If all else fails, you can put alternate notes in different MIDI files and mix together the results.

Graham

🔗idealordid <jeff@...>

10/11/2004 8:53:48 AM

Thanks for the explanation, Graham and for your contributions to the
microtonal softwarebase. I was experimenting with MidiConv quite a
bit yesterday too... ;)

I spent a few hours yesterday getting Csound to play a soundfont with
microtonal pitches. It looks pretty good, but I have to write a MIDI
file parser that will spoof the pedalling, as you suggested before.
Timidity looks like an excellent replacement for that headache!

I'll give that a shot...

Thanks again,

jeff

--- In MakeMicroMusic@yahoogroups.com, Graham Breed <graham@m...> wrote:
> idealordid wrote:
> >
> > Wow... thanks for an excellent explanation. Why am I hearing all this
> > bending then? Is it a result of some weirdness in my MIDI file? I'm
> > using InTun's own 19ET scale. The help notes to InTun mentioned the
> > pedal. Having a sustain pedal down - while the algorithm perhaps
> > doesn't remember the channel for C#- or whatever... and then
> > re-sending the pitch bend on the next C#- on a different channel might
> > be the effect I'm hearing. The sustain pedal is down for 2 measures
> > at a time in this piece...
>
> Oh yes, sustain. That can cause trouble. The reason is that notes are
> still sounding even if the MIDI note-offs have been sent. The retuning
> software probably thinks the notes are silent, and so reallocates the
> channel. It needn't be another C#. Whatever note is given that
> channel, the new pitch bend will affect any already sounding notes.
>
> Would it be possible to alter the MIDI file so that the keys are held
> down for as long as you expect them to sound? It's an ugly hack, but
> the only way I can think of to get this to work, short of modifying the
> channel assignment algorithm. Well, another thing would be to make all
> notes equally short when sustaining, but that's probably uglier. Or if
> the player supports multiple devices, and you can split the piece into
> multiple parts to escape the 16 channel limit.
>
> Your best bet is always full keyboard tuning tables. Timidity works
> with them and sound fonts.
>
> If all else fails, you can put alternate notes in different MIDI files
> and mix together the results.
>
>
> Graham

🔗Rick McGowan <rick@...>

10/11/2004 11:01:11 AM

Jon wrote,

> All of that is a long preamble to his soundfont player: sfz. It is
> available in two versions: a *freeware* version and a paid version, sfz+.
> Very much worth you checking out to see if it would do what you need; I
> believe sfz+ has a demo version, and sfz (as I said) is completely free.

I downloaded sfz recently to check it out, and it's really nice... Does
either sfz or sfz+ support .scl or.tun files?? It seems that it doesn't.

Rick

🔗Jonathan M. Szanto <JSZANTO@...>

10/11/2004 11:08:04 AM

Rick,

{you wrote...}
>I downloaded sfz recently to check it out, and it's really nice... Does >either sfz or sfz+ support .scl or.tun files?? It seems that it doesn't.

Sadly, at this point, they don't. Rene is very active on his forum, and I believe I and one other person talked to him about it. Maybe another voice or two might help, but I can certainly see how implementing tunings in a 'sampler' might be more difficult than in a straightforward synthesis app. Nonetheless, while the z3ta+ synth only supports .scl files, it is very well implemented, and there have been some recent patch banks that show just how very deep and expressive this synth is!

Cheers,
Jon

🔗Gene Ward Smith <gwsmith@...>

10/11/2004 1:37:21 PM

--- In MakeMicroMusic@yahoogroups.com, "Jonathan M. Szanto"
<JSZANTO@A...> wrote:

I have used his z3ta+ synth for
> over a year, it is amazing and fully tuneable, and he has a great track
> record of customer service and support most of it on the rgc forum at
> kvr-vst.com.

Can you tell us why and how you use it? Where, for instance, do the
sound samples come from? How hard is it to deal with sfz format?

🔗Jonathan M. Szanto <JSZANTO@...>

10/11/2004 1:55:05 PM

Gene,

{you wrote...}
> I have used his z3ta+ synth for
> > over a year, it is amazing and fully tuneable, and he has a great track
> > record of customer service and support most of it on the rgc forum at
> > kvr-vst.com.
>
>Can you tell us why and how you use it? Where, for instance, do the sound >samples come from? How hard is it to deal with sfz format?

I need to start by pointing out a confusion that has already arisen: there are two apps in discussion here:

sfz+ (and the less robust, but free, sfz): a soundfont/wave player
z3ta+ : a waveform-based synthesis engine instrument

I *don't* use the former (currently), but find it a very good soundfont frontend for playing. I *do* use the latter all the time - it is one of my two favorite and near constant working tools, the other being VirSyn Tera. I HIGHLY suggest anyone who is used to using soundfont players to try the free, or try the demo of the more robust sfz, and see for themselves. Gene, I say the following in the most benign possible way: I use these instruments for 'live' composing/playing, meaning that I play them from a keyboard. Many of the attributes I like that shake out from that come from whatever expressivity I can get through playing; I am certain that if one simply wants soundfonts for rendering, it is less an issue. However, if one uses a common DAW to create their music (like Cubase, Sonar, Logic, etc.) these are great, as you load them up and record your part, and then use them as a playback instrument.

For the sfz instrument, I really would take a look at both the info/documentation available at the rgc:audio site, as well as the kvr forum - there have been extensive threads on the sfz file format (a bulked up description for soundfont layout) and other performance issues.

I play a lot with the z3ta+ because:

1. it will work with any .scl file I load in, also allowing me to have multiple instances of the instrument with differing tunings (if I wish)

2. it is flexible, extremely deep in both concept and execution, and there are a lot of people using it and coming up with new patches all the time. About 6 months after I got it someone came out with 2 new banks of 128 patches, and they were so good it almost seemed like a new instrument; this is just to show how much there is to explore on it.

The z3 (to be short) also is one of the first instruments I know of to include the Hermode tuning system, which can be turned on at will. *I* haven't used it yet, but it is there (again, all of this can be tested *fully* in the demo, the only limitation being that the sound drops out every so often. It is hardly even cripple-ware!). It utilizes either direct synthesis or a selection of waveforms to generate the sound, and there is now facility for user waveforms, something I haven't toyed with.

z3 matches up well with my tastes and interests - very deep evolving pads, great low-end sounds, good variety that is easy to tweak or come up from scratch, and a lot of modulation (huge, in fact) to affect the sound more if you wish. If one wants to dedicate effects to the instrument instead of later in the mix, the effects section is well appointed. And the icing on the cake is that the gui is one of the best ever, using only two screens and quite accessible, not to mention that all the controls have midi learning capability (meaning that I can assign the soft sliders and pots on my controller to any of them).

Tera is... just very different, and a great counterpart. More on that wonderful instrument some other time...

HTH,
Jon

🔗Robert Walker <robertwalker@...>

10/11/2004 5:23:36 PM

Hi Jeff and Graham,

> Oh yes, sustain. That can cause trouble. The reason is that notes are
> still sounding even if the MIDI note-offs have been sent. The retuning
> software probably thinks the notes are silent, and so reallocates the
> channel. It needn't be another C#. Whatever note is given that
> channel, the new pitch bend will affect any already sounding notes.

Yes that will be it. Yes - FTS treats a sustained note as still sounding
until the sustain pedal is released for its channel remapping algorithm.

Robert

🔗Carl Lumma <ekin@...>

10/11/2004 7:24:09 PM

>Hi Jeff and Graham,
>
>> Oh yes, sustain. That can cause trouble. The reason is that notes are
>> still sounding even if the MIDI note-offs have been sent. The retuning
>> software probably thinks the notes are silent, and so reallocates the
>> channel. It needn't be another C#. Whatever note is given that
>> channel, the new pitch bend will affect any already sounding notes.
>
>Yes that will be it. Yes - FTS treats a sustained note as still sounding
>until the sustain pedal is released for its channel remapping algorithm.

Hmm, this is funny, I thought sustain sustain worked by blocking
note-offs...

-C.

🔗Robert Walker <robertwalker@...>

10/12/2004 4:25:59 AM

HI Carl,

> Hmm, this is funny, I thought sustain sustain worked by blocking
> note-offs...

Yes probably does when they reach the sound card or synth.
However the channel remapping software is in between
the player and the sound card. So it receives the note
offs and the sustain, just as you play them. So when
you release a key on the piano, even with sustain on,
then a note off gets sent via midi, but gets ignored
by the sound card because of the sustain which also gets
sent.

I suppose it could have all been done at the keyboard so that
a keyboard would do the blocking of the note offs. But
anyway this si the way it is done in midi. When you press
a sustain pedal, that adds an extra Sustain midi event
to the midi stream. Nothing else changes, so all the
note offs get sent on as normal.

So the retuning software will receive the note offs in the
same way whether they are sustained or not. When
doing the channel remapping, it needs to ignore any note
offs received while sustain is down, leave those notes
as still marked as in play. More than that though
- it also needs to keep a record of them all for future
reference.

When it receives the sustain release event then it
has to go through its record of all those note offs that
it received during sustain and mark them as no longer
in play, so that their channels are
now available for pitch bending.

Robert

🔗Carl Lumma <ekin@...>

10/12/2004 9:06:52 AM

Thanks for the explanation, Robert!

-C.

>> Hmm, this is funny, I thought sustain sustain worked by blocking
>> note-offs...
>
>Yes probably does when they reach the sound card or synth.
>However the channel remapping software is in between
>the player and the sound card. So it receives the note
>offs and the sustain, just as you play them. So when
>you release a key on the piano, even with sustain on,
>then a note off gets sent via midi, but gets ignored
>by the sound card because of the sustain which also gets
>sent.
>
>I suppose it could have all been done at the keyboard so that
>a keyboard would do the blocking of the note offs. But
>anyway this si the way it is done in midi. When you press
>a sustain pedal, that adds an extra Sustain midi event
>to the midi stream. Nothing else changes, so all the
>note offs get sent on as normal.
>
>So the retuning software will receive the note offs in the
>same way whether they are sustained or not. When
>doing the channel remapping, it needs to ignore any note
>offs received while sustain is down, leave those notes
>as still marked as in play. More than that though
>- it also needs to keep a record of them all for future
>reference.
>
>When it receives the sustain release event then it
>has to go through its record of all those note offs that
>it received during sustain and mark them as no longer
>in play, so that their channels are
>now available for pitch bending.
>
>Robert

🔗Joseph Pehrson <jpehrson@...>

10/16/2004 4:59:12 PM

--- In MakeMicroMusic@yahoogroups.com, "Jonathan M. Szanto"

/makemicromusic/topicId_7737.html#7749

<JSZANTO@A...> wrote:
> Rick,
>
> {you wrote...}
> >I downloaded sfz recently to check it out, and it's really nice...
Does
> >either sfz or sfz+ support .scl or.tun files?? It seems that it
doesn't.
>
> Sadly, at this point, they don't. Rene is very active on his forum,
and I
> believe I and one other person talked to him about it. Maybe
another voice
> or two might help, but I can certainly see how implementing tunings
in a
> 'sampler' might be more difficult than in a straightforward
synthesis app.
> Nonetheless, while the z3ta+ synth only supports .scl files, it is
very
> well implemented, and there have been some recent patch banks that
show
> just how very deep and expressive this synth is!
>
> Cheers,
> Jon

***I'm really "itching" to get going on this... new computer coming
soon... *really* this time! :)

J. Pehrson