[alsa-devel] Warning Big Yield
I'd really like to know if there's a common way to do syncing applications. What frequencies are required to run a GUI? How does Xorg work and how can I prevent interfering with ALSA output? And what base frequency is recommended to threads?
Warning you may experience big yield.
please take a look at ags_thread_loop() in: http://sourceforge.net/p/ags/code/HEAD/tree/src/ags/thread/ags_thread-posix....
Joël Krähemann wrote:
I'd really like to know if there's a common way to do syncing applications. What frequencies are required to run a GUI?
GUIs should be event based; the term "frequency" is not applicable.
How does Xorg work
It's event based.
how can I prevent interfering with ALSA output?
By doing sound stuff in a separate thread with higher priority.
Warning you may experience big yield.
???
Regards, Clemens
On 15/08/14 01:45, Clemens Ladisch wrote:
Joël Krähemann wrote:
I'd really like to know if there's a common way to do syncing applications. What frequencies are required to run a GUI?
GUIs should be event based; the term "frequency" is not applicable.
How does Xorg work
It's event based.
Yes, event based. For example, when using gtk ... if you want to update your GUI, you probably want to use the gtk timer to regularly update at a rate which suits your visual aesthetic.
You may already know this, but you can trigger a user function at regular intervals : g_timeout_add https://developer.gnome.org/glib/2.37/glib-The-Main-Event-Loop.html
how can I prevent interfering with ALSA output?
By doing sound stuff in a separate thread with higher priority.
You can do something similar to what Jack does to ensure higher priority, check the file libjack/thread.c and look at the way they increment the priority.
You may already know this, however in case not, you can get low millisecond latency without dropping samples when using Linux ... i.e. no interferance. That was last time I checked ... it is possible that this has improved to a lower threshold since then !
Matt
Warning you may experience big yield.
???
Regards, Clemens _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
On Fri, 2014-08-15 at 08:58 +1000, Matt Flax wrote:
On 15/08/14 01:45, Clemens Ladisch wrote:
Joël Krähemann wrote:
I'd really like to know if there's a common way to do syncing applications. What frequencies are required to run a GUI?
GUIs should be event based; the term "frequency" is not applicable.
How does Xorg work
It's event based.
Yes, event based. For example, when using gtk ... if you want to update your GUI, you probably want to use the gtk timer to regularly update at a rate which suits your visual aesthetic.
You may already know this, but you can trigger a user function at regular intervals : g_timeout_add https://developer.gnome.org/glib/2.37/glib-The-Main-Event-Loop.html
how can I prevent interfering with ALSA output?
By doing sound stuff in a separate thread with higher priority.
You can do something similar to what Jack does to ensure higher priority, check the file libjack/thread.c and look at the way they increment the priority.
You may already know this, however in case not, you can get low millisecond latency without dropping samples when using Linux ... i.e. no interferance. That was last time I checked ... it is possible that this has improved to a lower threshold since then !
Matt
Warning you may experience big yield.
???
Regards, Clemens _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
I use 250 iterations of g_main_context_iteration() per second and application uses 1000 iterations per second.
And Herz is definitely a frequency.
regards Joël
Am Freitag, den 15.08.2014, 08:58 +1000 schrieb Matt Flax:
On 15/08/14 01:45, Clemens Ladisch wrote:
Joël Krähemann wrote:
I'd really like to know if there's a common way to do syncing applications. What frequencies are required to run a GUI?
GUIs should be event based; the term "frequency" is not applicable.
How does Xorg work
It's event based.
Yes, event based. For example, when using gtk ... if you want to update your GUI, you probably want to use the gtk timer to regularly update at a rate which suits your visual aesthetic.
You may already know this, but you can trigger a user function at regular intervals : g_timeout_add https://developer.gnome.org/glib/2.37/glib-The-Main-Event-Loop.html
how can I prevent interfering with ALSA output?
By doing sound stuff in a separate thread with higher priority.
You can do something similar to what Jack does to ensure higher priority, check the file libjack/thread.c and look at the way they increment the priority.
You may already know this, however in case not, you can get low millisecond latency without dropping samples when using Linux ... i.e. no interferance. That was last time I checked ... it is possible that this has improved to a lower threshold since then !
Matt
Warning you may experience big yield.
???
Regards, Clemens _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
With big yield I mean you hear a noise assumed you would call pthread_yield to often.
It is strange how can I recognize more than 8 beats per second or even more ...
I have modified my application not to do so, anymore.
participants (3)
-
Clemens Ladisch
-
Joël Krähemann
-
Matt Flax