Re: [linux-audio-dev] Lock-free gtk/jack interaction

From: Olivier Guilyardi <ml@email-addr-hidden>
Date: Mon Mar 14 2005 - 18:34:34 EET

Jens M Andreasen wrote:

> Isn't the GUI already a kind of "shadow data"?
>
> gtk_toggle_button_get_active ()
> --------------------------------
> Returns TRUE if the toggle button is pressed in
> and FALSE if it is raised.
>

Indeed. You exactly got what I mean. It then becomes more a design issue : the
gui, based on gtk, is "shadow-capable" but I'm not using this ability.

Additionally, redesigning things so that the gui properly "shadows" the sequence
would oblige me to heavily optimize things. When adding a single track I
currently destroy the whole workspace and query the sequence to so that the gui
can redraw the whole thing, recreating all widgets.

By redesigning the gui, I would keep many widgets as they are and only create
some new ones, or destroy a few... This is very important, when you have a big
workspace (ie: 1k beats, 16 tracks), because things then get very slow the way I
currently do.

I did think about this, but it required coding a lot of small functions for a
variety specialized routines, and I would also need to change the way files get
loaded (this last point is the main reason why I wanted to put the shadow within
the sequence itself). Anyway, although it requires some work, I think this is
the way to go.

>>Or the gui could get notified by the sequence as Paul explains.

I hesitate here : would a such sequence-to-gui notification design be more
souple/maintainable than a "shadowing" gui, for future, unplaned features ?

I guess the two paradigms could coexist, if I ever need the RT thread to send
signals to the gui...

> I also think you can relax your speed expectations slightly. With jack
> running say 64 samples each time around, it will have done its thing 10
> times before the next monitor refresh.

My jackd manpage states that the default frames/period setting is 1024, which
means that for a frame rate of 44100 Hz, I'm around 44 periods by second, which
is less than a monitor refresh. And what if some user needs to set that up to
4096 frames/period or more ?

--
   og
Received on Mon Mar 14 20:15:09 2005

This archive was generated by hypermail 2.1.8 : Mon Mar 14 2005 - 20:15:09 EET