[LAU] Toggle Jack Transport CLI

hollundertee at gmx.net hollundertee at gmx.net
Mon Dec 19 11:10:03 UTC 2016


On Mon, 19 Dec 2016 10:52:57 +0000
holger at dehnhardt.org wrote:

> 19. Dezember 2016 11:35 Uhr, hollundertee at gmx.net schrieb:
> > On Wed, 16 Nov 2016 07:04:04 +0000
> > holger at dehnhardt.org wrote:
> >   
> >> Hi lista :)
> >> 
> >> Using an i3 (https://i3wm.org/docs/userguide.html#exec)
> >> shortcut, I can control my jack transport from everywhere, even
> >> when no jack application has focus :
> >> 
> >> bindsym $mod+p exec echo play | jack_transport
> >> bindsym $mod+Shift+p exec echo stop | jack_transport
> >> 
> >> Thanks to FalkTX for the pipe trick BTW, I saw that on
> >> linuxmusicians ; This is very cool if you have some sort of
> >> wireless keyboard, but as you can see it's two different
> >> keystrokes, how do I make it so toggles play/pause? Alternatively,
> >> how do I know when jack transport is rolling, so I can hack my way
> >> into making my own toggle script? I did my homework and read the
> >> inline --help of all the available jack commands on my machine :
> >> With this patch, jack_transport should be able to toggle. I will
> >> suggest it to the jack-develop list but would be happy if some
> >> else can test it. Holger
> >> 
> >> -----------------
> >> 
> >> diff --git a/example-clients/transport.c
> >> b/example-clients/transport.c index c543b41..0b1130f 100644
> >> --- a/example-clients/transport.c
> >> +++ b/example-clients/transport.c
> >> @@ -211,6 +211,29 @@ static void com_timeout(char *arg)
> >> jack_set_sync_timeout(client, (jack_time_t) (timeout*1000000));
> >> }
> >> +/* Set sync timeout in seconds. */
> >> +static void com_toggle(char *arg)
> >> +{
> >> + jack_position_t current;
> >> + jack_transport_state_t transport_state;
> >> +
> >> + transport_state = jack_transport_query (client, ¤t);
> >> +
> >> + switch (transport_state) {
> >> + case JackTransportStopped:
> >> + com_play( arg );
> >> + break;
> >> + case JackTransportRolling:
> >> + com_stop( arg );
> >> + break;
> >> + case JackTransportStarting:
> >> + printf ("state: Starting - no transport toggling");
> >> + break;
> >> + default:
> >> + printf ("state: Unknown - no transport toggling");
> >> + }
> >> +}
> >> +
> >> /* Command parsing based on GNU readline info examples. */
> >> @@ -238,6 +261,7 @@ command_t commands[] = {
> >> {"stop", com_stop, "Stop transport"},
> >> {"tempo", com_tempo, "Set beat tempo "},
> >> {"timeout", com_timeout, "Set sync timeout in "},
> >> + {"toggle", com_toggle, "Toggle transport rolling"},
> >> {"?", com_help, "Synonym for `help'" },
> >> {(char *)NULL, (cmd_function_t *)NULL, (char *)NULL }
> >> };  
> > 
> > Thanks guys,
> > 
> > I was just browsing the list for nice Linux Audio music when I found
> > this thread, which is just what I needed as well :)
> > In my case the purpose is for screencasts.
> > I plan to record the screen using SimpleScreenRecorder and audio
> > through jack into Ardour or somesuch. The problem I had was that if
> > I start SSR and Ardour separately I need to manually align A/V
> > later. It is simpler if A/V starts at the same time.
> > 
> > I was thinking of starting jack transport through qjackctl or
> > somesuch, using the CLI did not occur to me.
> > 
> > SSR lacks jack transport control, but I think assigning the same
> > hotkey to SSR and jack transport should work just fine. I guess I
> > still need to take the alsa/jacks latency into account, but at
> > least that should be small and constant.
> > 
> > Does anyone have a better idea?
> > 
> > @Holger: Thanks, but patching a jack example client requires
> > maintenance since this change would be lost with each new jack
> > package coming through the repo.
> > 
> > Regards,
> > Philipp
> > 
> > _______________________________________________
> > Linux-audio-user mailing list
> > Linux-audio-user at lists.linuxaudio.org
> > http://lists.linuxaudio.org/listinfo/linux-audio-user  
> 
> I know, I know...
> that's why I wanted to send it to the Jack list to get it applied...
> I still did not do it sorry. Will try to send it this evening...
> 
> Holger
> _______________________________________________
> Linux-audio-user mailing list
> Linux-audio-user at lists.linuxaudio.org
> http://lists.linuxaudio.org/listinfo/linux-audio-user

Hey,

no need to say sorry. Thanks for writing the patch.
If it gets applied it will make such scripts simpler in the future.

Regards,
Philipp


More information about the Linux-audio-user mailing list