Re: [kln2-devel] tune + amo
Brought to you by:
wiecko
|
From: Marek W. <Mar...@fu...> - 2004-08-06 22:38:38
|
Hi,
On Thu, 5 Aug 2004, Silhusk wrote:
> ## another midi output
> I wrote another midi output way using fluidsynth
As far as I understand, from user's point of view what fluidsynth does is
exactly what timidity++ does: it takes midi data, reads wave patches from
a soundfont file and sends appropriate patches to an audio device. This
way one can listen to a midi file without using an, usually ugly sounding
(if existing at all), hardware midi sequencer. Right?
On one hand we already have a working timidity interface. But I think we
should support as many sound-making systems as possible, allowing any user
to use kln2 with sound made the way she likes. And as far as I learned
since yesterday, fluidsynth is much simpler to use from programmers point
of view. :)
Oh, and it seems that fluidsynth also support more sound environments
(JACK etc.) than timidity.
So it's really great that you did this. :)
> Note: the SoundFont file is not present in the cvs yet, but I'm trying
> to make a minimalist one, just with piano and guitar.
How big will be the sound font bank? With just two instruments it
shouldn't be a big file, I suppose. If it was too big it would have to be
published as a separate file, together with kln2 package but not as a part
of it. :(
And I would expect, that anyone who uses fluidsynth has already downloaded
a sountfont which she/he likes:
> can be freely downloaded from http://www.geocities...
This is the way it works for timidity - it's user's responsibility to
install both timidity and soundfonts/midi patches.
But yes, if the file is small and "standard" sfonts are somehow irrelevant
[WHY?], it might make sense to include it in the kln2 package itself; for
example, for QT_VERSION > 0x030201 there is applicationDirPath() available
- if the sound font was installed with the package it would be installed
in a standard location, and applicationDirPatch() might be used for
locating the sound font... (see how klearnnotes2.cpp around line 643
searches for helpfiles - not perfect, but you can search a few "natural"
locations).
> let the user choose wich file to use, but this means edit MIDI_setup
> dialog and options' struct. Can I do it?
Sure. :) Extra text box + a file chooser opening button in midi_setup
dialog is OK. It would be nice if it would not only become disabled but
even disappear if other midi sound system is chosen. It may for example
replace "device(port)" selection which would be not used for fluidsynth.
Oh, and it really needs controlling volume.
The kln2 system of saving settings has to be rebuild (for example, because
of settings for new exercises). Please, do not add anything to the
settings saved as a structure loadSetX. If you would like to save location
of user's soundfont do it into a separate file, the way e.g. voice model
filename is stored.
Anyway, this does look great and works fine. :)
Regards,
Marek
PS: An big advantage of fluidsynth over timidity would be if it was used
as a shared library instead of starting a separate process. But this would
probably make our code much more complicated: another test in configure.in
plus lots of #ifdef-s... No, it's probably better leave fluidsynth the way
you coded it.
--
\/ /|\ Marek Wieckowski
##### | | |
= . . = \|/ Institute of Theoretical Physics
U | Warsaw University
/ ~ \___ |
<| | |
> . < | http://www.fuw.edu.pl/~wiecko
<<___>> | http://klearnnotes2.sourceforge.net
|