Klick i gtklick

De wikijoan
Salta a la navegació Salta a la cerca

gtklick

gtklick - Metronome application

$ sudo apt-get install gtklick 
DESCRIPTION
       gtklick  is a simple metronome with an easy-to-use GTK+ interface, sup‐
       porting the JACK sound server. It features different sounds  to  choose
       from,  arbitrary  meters  and  beat  patterns, a speed trainer, and the
       ability to save and restore profiles.
       gtklick is implemented as a frontend to klick and uses OSC messages  to
       communicate  with the backend. Using klick directly on the command line
       offers additional features like tempo  maps  and  synchronization  with
       JACK transport.

OPTIONS
       -o port
              OSC port to start klick with

       -q port
              OSC port of running klick instance to connect to

       -r port
              OSC port to be used for gtklick

       -h     show help

klick

Allò important és veure que gtklick és el front-end de klick, i que klick té moltes opcions, concretament seguir el transport de JACK

$ klick
klick 0.12.2

Usage:
  klick [options] [bars] [meter] tempo[-tempo2/accel] [pattern]
  klick [options] -f filename
  klick [options] -i
  klick [options] -j

Options:
  -f filename       load tempo map from file
  -j                no tempo map, just follow jack transport
  -n name           set jack client name
  -p port,..        jack port(s) to connect to
  -P                automatically connect to hardware ports
  -o port           OSC port to listen on
  -i                interactive mode
  -W filename       export click track to audio file
  -r samplerate     sample rate of export (default: 48000)
  -s number         use built-in sounds:
                      0: square wave (default)
                      1: sine wave
                      2: noise
                      3: acoustic bell/click
  -S file[,file]    load sounds from file(s)
  -e                no emphasized beats
  -E                emphasized beats only
  -v mult[,mult]    adjust playback volume (default: 1.0)
  -w mult[,mult]    adjust playback pitch (default: 1.0)
  -t                enable jack transport
  -T                become transport master (implies -t)
  -d seconds        delay before starting playback
  -c bars           pre-roll. use -c 0 for 2 beats
  -l label          start playback at the given label
  -x multiplier     multiply tempo by the given factor
  -h                show this help

Tempo Map File Format:
  [label:] bars [meter] tempo [pattern] [volume]
  ...

gtklick funciona correctament amb JACK, però amb klick no aconsegueixo fer sonar res (nota!!!: perquè estic utilitzant l'opció -j. No és que estigui malament, llegir fins al final). Vull utilitzar klick perquè té l'opció -t per tal de què segueixi el transport del JACK (amb gtklick no es pot fer).

Compilo des de les fonts (http://das.nasophon.de/klick/) (però la solució no anava per aquí).. Per instal.lar klick-0.12.2.tar.gz:

$ scons
$ sudo scons install

Efectivament no funciona l'opicó -j que és la que m'interssa (-j no tempo map, just follow jack transport), tal com s'explica a un post de la LAU:

-j                no tempo map, just follow jack transport
-t                enable jack transport
-T                become transport master (implies -t)

ja ho tinc! l'opció -j és per si tinc algun seqüenciador (com ara el Ardour) que sigui el time master. Una possibilitat és que si estic parlant del jPlayfine, que el jPlayfine sigui el time màster. Si utilitzo l'opció -t ningú és el time màster, però funcionen els botons del transport del QJackCtl. Si utilitzo -T el klick és el time màster, i això implica que en el QJackCtl veig com van corrent els compassos.

$ klick -P -s0 -t 2/4 80
$ klick -P -s0 -T 2/4 80 -> amb l'opció T és el transport màster (en el QJackCtl puc veure com corren els compassos)

Exemple pràctic. Vull fer sonar la Cançó de Bressol amb un metrònom. Miro el fitxer canco_bressol.ly i veig que el tempo és de 80 i el ritme 2/4. Arrenco klick amb l'opció -t o -T, i el jack-smf-player sense l'opció -t (per defecte). Tots dos clients seguiran el transport del JACK. Faig les connexions (jack-smf-player al fluidsynth; fluidsynth i klick a system:playback1 i 2)

$ klick -P -s0 -T 2/4 80
$ /usr/local/bin/jack-smf-player -n midnco_bressol.midi

Efectivament, els ticks cauen en el lloc correcte.

Veig que entre el que escolto i el que veig en la barra del transport del QJackCtl hi ha una petita latència... però em sembla que no s'ha de donar importància, deu ser només orientatiu. He reduït la latència de 11 a 5 ms i no hi ha cap canvi, no crec que tingui a veure amb la latència). Una altra prova: obro el Ardour i el klick i faig que ara un o ara l'altra siguin el JACK Master. Hi ha concordància total amb el click propi de l'Ardour i el que em diu la barra de transport del Ardour. Per tant, el que em diu la barra del transport del QJackCtl deu ser orientatiu.

klick amb opció -j (utilitzar-ho a jPlayfine?)

i aleshores, per a què serveix l'opció -j: no tempo map, just follow jack transport. Doncs que si tinc un màster de temps com pot ser el Ardour (o jPlayfine), klick segueix el seu tempo. No cal especificar a klic que vagi a 2/4-80, doncs aquesta informació ja ve del màster de transport. Ho he comprovat amb el Ardour: (ara no cal especificar el tempo)

$ klick -j -P -s0

i això com es lliga amb el jPlayfine. Doncs el jPlayfine pot ser un time màster (i continuen funcionant els botons del transport del QJackCtl). El jPlayfine ha de saber calcular el tempo i el ritme (doncs aquesta informació ve com a event midi en el track 0). De fet, si hi haguessin canvis de tempo dins d'un midi també es podria implementar. El script d'inici del jPlayfine per defecte pot arrencar el klick (si és que existeix, seria una dependència del programa), i l'opció que em diu si vull o no utilitzar el metrònom és senzillament connectar o desconnectar el port del klick al system:playback. Recordem que estem utilitzant metrònoms audio (no generen events midi, sinó formes d'ona).


creat per Joan Quintana Compte, desembre 2011