Re: [LAD] [ANN] guitarix-0.04.4-1 release

From: James Warden <warjamy@email-addr-hidden>
Date: Fri May 22 2009 - 19:07:38 EEST

Hermann,

I added a Latency menu to guitarix. You can now change the jack server latency on the fly from guitarix (a la ardour). See patches below:

--------- PATCH Start guitarix.cpp -----------
Index: guitarix.cpp
===================================================================
--- guitarix.cpp (revision 125)
+++ guitarix.cpp (working copy)
@@ -9,7 +9,7 @@
 
 
 // global static fields
-GtkWidget* fWindow, *menul, *menus, *pb, *midibox, *fbutton, *label1, *menuh;
+GtkWidget* fWindow, *menul, *menus, *menulat, *pb, *midibox, *fbutton, *label1, *menuh;
 GdkPixbuf* ib, *ibm, *ibr;
 GtkStatusIcon* status_icon;
 GtkWidget* livewa;
@@ -203,6 +203,32 @@
 bool GTKUI::fInitialized = false;
 list<UI*> UI::fGuiList;
 
+//----menu function latency
+void set_jack_buffer_size(GtkCheckMenuItem *menuitem, gpointer arg)
+{
+ // let's avoid triggering the jack server on "inactive"
+ if (gtk_check_menu_item_get_active(menuitem) == false)
+ return;
+
+ // are we a proper jack client ?
+ if (!client) {
+ cerr << "<*** guitarix.cpp: set_jack_buffer_size()"
+ << " we are not a jack client, server may be down ***>"
+ << endl;
+ return;
+ }
+
+
+ // if the buffer size is the same, no need to trigger it
+ jack_nframes_t buf_size = (jack_nframes_t)GPOINTER_TO_INT(arg);
+
+ if (buf_size == jack_get_buffer_size(client))
+ return;
+
+ // let's resize the buffer
+ jack_set_buffer_size(client, buf_size);
+}
+
 //----menu funktion play stop
 void play_function (GtkCheckMenuItem *menuitem, gpointer checkplay)
 {
---------- PATCH END guitarix.cpp --------------

---------- PATCH START GTKUI.cpp ---------------
Index: GTKUI.cpp
===================================================================
--- GTKUI.cpp (revision 125)
+++ GTKUI.cpp (working copy)
@@ -897,6 +897,7 @@
     GtkWidget *menuHelp;
     GtkWidget *menuLoad;
     GtkWidget *menuSave;
+ GtkWidget *menuLatency;
     GtkWidget *menubar;
     GtkWidget *menu;
     GtkWidget *menu1;
@@ -948,6 +949,40 @@
     gtk_widget_show (menuitem);
     /*---------------- End Engine menu declarations ----------------*/
 
+ /*---------------- Create Latency menu items --------------------*/
+ /*-- Create Latency submenu under Engine submenu --*/
+ menuLatency = gtk_menu_item_new_with_label ("Latency");
+ gtk_menu_bar_append (GTK_MENU_BAR(menubar), menuLatency);
+ menulat = gtk_menu_new();
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuLatency), menulat);
+
+ /*-- Create menu item under Latency submenu --*/
+ gchar buf_size[8];
+ const int min_pow = 5; // 2**5 = 32
+ const int max_pow = 13; // 2**13 = 8192
+ group = NULL;
+
+ for (int i = min_pow; i <= max_pow; i++) {
+ int jack_buffer_size = (int)pow(2.,i);
+ (void)snprintf(buf_size, 5, "%d", jack_buffer_size);
+ menuitem = gtk_radio_menu_item_new_with_label (group, buf_size);
+ group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menuitem));
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menuitem), FALSE);
+
+ g_signal_connect (GTK_OBJECT (menuitem), "activate",
+ GTK_SIGNAL_FUNC (set_jack_buffer_size),
+ GINT_TO_POINTER(jack_buffer_size));
+
+ // display actual buffer size as default
+ if (client)
+ if (jack_buffer_size == (int)jack_get_buffer_size(client))
+ gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menuitem), TRUE);
+
+ gtk_menu_append(GTK_MENU(menulat), menuitem);
+ gtk_widget_show (menuitem);
+ }
+ /*---------------- End Latency menu declarations ----------------*/
+
     /*---------------- Create Settings menu items --------------------*/
     menuEdit = gtk_menu_item_new_with_label ("Presets");
     gtk_menu_bar_append (GTK_MENU_BAR(menubar), menuEdit);
@@ -1074,6 +1109,7 @@
     gtk_widget_show(handlebox); // remove handelbox here
     gtk_widget_show(menuitem);
     gtk_widget_show(menuFile);
+ gtk_widget_show(menuLatency);
     gtk_widget_show(menuEdit);
     gtk_widget_show(menuLoad);
     gtk_widget_show(menuSave);
------------ PATCH END GTKUI.cpp

Feel free to add this functionality or not.

Cheers!
J.

--- On Thu, 5/21/09, hermann meyer <brummer-@web.de> wrote:

> From: hermann meyer <brummer-@web.de>
> Subject: [LAD] [ANN] guitarix-0.04.4-1 release
> To: linux-audio-dev@email-addr-hidden
> Date: Thursday, May 21, 2009, 8:56 AM
> guitarix is a simple Linux Rock
> Guitar amplifier for jack(Jack Audio Connektion Kit)
> with one input and two outputs. Designed to get nice
> thrash/metal/rock/blues
> guitar sounds. . . .
>
>
> Some new effect's in the amp section with new controllers,
> overworked tuner, overworked midi output
> (still it is experimental but can be usefull for rhythm
> blues or jazz or. . . fun)
>
> Many thanks to Orcan Ogetbil (Fedora) for give the right
> hint to impruve the tuner,
> and the patch's to create a proper Makefile and more,
> thanks Orcan.
>
> have fun
> ________________________________________________________________________
>
> guitarix based on Gtk, a great part is also realesed as
> ladspa plugin.
> guitarix is licensed under GPL
>
> Projektpage with screenshots:
>         http://guitarix.sourceforge.net/
>
> download:
>         http://sourceforge.net/projects/guitarix/
>
>
> For capture guitarix make use of jack_capture ver >=
> 0.9.30 from Kjetil
> S. Matheussen. If you dont have it installed, look here:
>
>         http://old.notam02.no/arkiv/src/?M=D
>
> For extra Impulse Response guitarix make use of jconv from
> Fons Adriaensen. If
> you dont have it installed, look here:
>
>         http://www.kokkinizita.net/linuxaudio/index.html
>
> I use faust to build the prototype and will say thanks to
>                
>         : Julius Smith
>         http://ccrma.stanford.edu/realsimple/faust/
>                
>         : Albert Graef
>         http://www.musikwissenschaft.uni-mainz.de/~ag/ag.html
>                
>         : Yann Orlary
>         http://faust.grame.fr/
>
>
> regards    hermann
>
> _______________________________________________
> Linux-audio-dev mailing list
> Linux-audio-dev@email-addr-hidden
> http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
>

      
_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@email-addr-hidden
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
Received on Fri May 22 20:15:02 2009

This archive was generated by hypermail 2.1.8 : Fri May 22 2009 - 20:15:02 EEST