denemo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Denemo-devel] switching Midi/Audio out


From: Nils
Subject: Re: [Denemo-devel] switching Midi/Audio out
Date: Fri, 6 Nov 2009 18:03:38 +0100

On Fri, 6 Nov 2009 09:52:40 -0600
Jeremiah Benham <address@hidden> wrote:

> When switching from fluidsynth to jack. fluidsynth will need to
> be stopped. Then if fluidsynth was not already using the jack driver
> jack would need to be started. Should denemo start the jack server?

I think Denemo should not start it nor give the option to start it.
A JACK session with no config options usually runs not or like crap.

If Denemo offers to start JACK without the possibility of customizing Jack's 
preferences it will look like its Denemo's fault if it does not work, which is 
very likely.
Its better to rely on external software like QJackctl or whatever people like.

What Denemo should do is detect JACK at startup and switch to JACK-mode if 
possible. A JACK server is nothing you start by accident so if its running we 
can assume that the user wants JACK. But it should be possible to switch to 
fluidsynth (with jack as audio driver) any time without loosing your jack-midi 
connections.


Of course you all know that I don't think portaudio is necesarry anymore so of 
course I have to say:
If Jack is not running Denemo should go straight into fluidsynth-mode which 
auto-detecs which audio-driver is there. 

If fluid is not there, there is still portaudio (or Denemo could say "no 
audio-output possible - but notation and lilypond is, have fun" :) )

Three more thoughts.

1.
Can the compile process be automated? configure looks which packages (jack, 
fluidsynth, portaudio) are there and gives a quick summarize-table at the end 
which featueres your Denemo will have if you start "make" now.

2.
Ardour has some kind of "start" window which is there before it starts. There 
you can select previous sessions/files, select templates and start JACK with 
settings you can choose. We could design a similar thing.

3.
I think there is a "file" driver in fluidsynth which renders the output to a 
wave file and even works if the computer has no sound interface at all. This 
could be a nice additional feature. "Render from measure x to y". 




> Should it start the jack server if the jack on startup is set in
> preferences? ....Or should there be a pop up dialog telling the user
> that "jack needs to be started in order for jack output to work. Would
> you like me to start it for you. If you choose no then you will need
> to start it yourself and then click on start/restart jack client in
> preferences"   
> 
> I wrote kind of a flow chart to plan out how we are going to deal with
> switching between midi/audio outputs. This is what it looks like:
> 
>      if portaudio->fluidsynth 
>         if fluidsynth driver == jack
>           if jackserver_on_startup
>             startjackserver
>             startfluidsynth
>         else 
>           startfluidsynth
>      if portaudio->jack
>        if jackserver_on_startup
>          startjackserver
>          startdenemojack
>      if jack->portaudio
>         stopdenemojack
>         stopjackserver
>      if jack->fluidsynth 
>         stopdenemojack 
>         if fluidsynth driver != jack
>           stopjack      
>         startfluid
>      if fluidsynth->jack
>         stop fluidsynth
>           if fluidsynth driver == jack
>             startdenemojack? 
>           else
>             if jackserver_on_startup 
>               startjackserver
>               startdenemojack
> 
> This can probably be reduced somehow in code. Fluidsynth will need to
> be stopped in order for portaudio to output sound on many soundcards.
> The same is true with jack. On my laptop I would need to stop jack to
> do fluidsynth unless the jack driver was used in fluidsynth. So maybe
> I should look to see 
>   if (Denemo.prefs.midi_audio_output != variable_going_to_be_assigned){ 
>      exit_routines(varaible_in_preferences);
>      start_up_routines(variable_going_to_be_assigned);
>      Denemo.prefs.midi_audio_output = variable_going_to_be_assigned;
>   }
> 
> Jeremiah
> 
> 
> _______________________________________________
> Denemo-devel mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/denemo-devel
> 


-- 
Nils Gey
http://www.nilsgey.de






reply via email to

[Prev in Thread] Current Thread [Next in Thread]