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 |