Klick i gtklick
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