[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Denemo-devel] switching Midi/Audio out
From: |
Richard Shann |
Subject: |
Re: [Denemo-devel] switching Midi/Audio out |
Date: |
Fri, 06 Nov 2009 21:29:38 +0000 |
On Fri, 2009-11-06 at 18:03 +0100, Nils wrote:
> 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.
FWIW what Nils says here sounds right to me.
Richard
>
> 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
> >
>
>