Jack TRAUMA
Jack TRAUMA è un semplice programma scritto da me e Andrea Lusuardi per inviare N canali audio JACK over IP tramite UDPLite.
Jack TRAUMA è orientato a minimizzare la latenza e il consumo di risorse, per questo non effettua operazioni di buffering e mantiene in sincrono il processo server che invia l'audio e quello client che lo riceve.
Jack TRAUMA è finora stato testato con successo fino a 64 canali con JACK impostato a 128 frames/period.
Esempio di utilizzo:
Per inviare, ad es., 16 canali dall'host 192.168.0.1 all'host 192.168.0.2 occorre:
- - lanciare JACK su entrambe le macchine, con la stessa impostazione di frames/period. NOTA: jack_trauma tenterà di lanciare il server JACK secondo la configurazione in ~/.jackdrc se necessario.
- - lanciare ./jack_trauma -s -c 16 -a 192.168.0.2 sulla macchina che invia
- - lanciare ./jack_trauma -c 16 sulla macchina che riceve
- - libjack2.0
Utilizzo: ./jack_trauma [OPTIONS]
Opzioni:
- -s: run in send mode (will run in receive mode otherwise)
- -c [channels]: number of audio channels
- -a [address]: destination address for audio channels
- -p [port]: UDPLite port in use
- -h: display help message
output_recorder.sh
Un semplice script per registrare qualunque cosa stiate riproducendo sul computer (l'equivalente di un "tasto REC" dei vecchi registratori a cassette). Funziona per sistemi su cui e` in uso Pulseaudio (provato su Debian e Ubuntu).
Utilizzo: ./output_recorder.sh "Autore - Titolo"
Il risultato sara` un file mp3 chiamato Autore-Titolo.mp3 e taggato con autore="Autore" e titolo="Titolo".
Utilizzo: ./output_recorder_wav.sh "Autore - Titolo"
Il risultato sara` un file wav chiamato Autore-Titolo.wav.
Richiede:
- sox (per la versione mp3 deve essere compilato con il supporto per file mp3)
- pulseaudio-tools.
- id3v2
jack_sturdy_client.c
Il client JACK da cui parto per sviluppare programmi audio. E` strutturato "a stadi" successivi, dall'inizializzazione al mainloop, attraverso i quali continua a iterare. Questa struttura gli permette di resistere a crash del server JACK (rilanciandolo automaticamente a sua volta se necessario).
Cosi` com'è puo` essere compilato con:
gcc -o jack_sturdy_client -ljack jack_sturdy_client.c
Ed eseguito con:
./jack_sturdy_client -c NUMERO_CANALI
Il programma farà semplicemente "talk through" (in 1 - out 1, in 2 - out 2 ecc...), ma si può partire da esso per sviluppare un po' quello che volete.