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.

Scarica da Bitbucket

Scarica da Github

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

Requisiti:
  • - 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).

Scarica (versione mp3)

Utilizzo: ./output_recorder.sh "Autore - Titolo"
Il risultato sara` un file mp3 chiamato Autore-Titolo.mp3 e taggato con autore="Autore" e titolo="Titolo".

Scarica (versione wav)

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).

Scarica

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.