mercoledì 12 giugno 2013

JACK su Ableton a 64bit

Con l'introduzione delle nuove versioni a 64 bit di Ableton Live 9.0.x, ci sono problemi di compatibilità con il software JACK, un'utility che porta gradevoli vantaggi ai dj che lavorano su Windows, come ad esempio suonare sfruttando le ASIO4ALL su più programmi contemporaneamente. Anche se è stata implementata la versione a 64 bit anche di questo software, attualmente (versione Mixed 64/32 bit JACK 1.9.9) non è disponibile di default. Infatti entrando nel menu Preferenze -> Audio di Ableton possiamo notare anche dalla figura sotto, che scegliendo ASIO, non riusciamo a selezionare JackRouter.
Lo stesso accade per molti altri programmi che prevedono l'utilizzo del plugin a 64 bit di JackRouter, ma per attivarlo non è molto complicato.
Apriamo la console con privilegi di amministratore, cioè clicchiamo su Start e digitiamo nella casella Cerca programmi e file "cmd.exe" (senza le virgolette), quindi facciamo tasto destro sull'icona della console che ci appare e clicchiamo su "Esegui come amministratore".
Digitiamo
regsvr32 /u "C:\Program Files (x86)\Jack\32bits\JackRouter.dll"
e subito dopo il messaggio di successo:
regsvr32 "C:\Program Files (x86)\Jack\64bits\JackRouter.dll"
regsvr32 è un'utility eseguibile dalla riga di comando per registrare e de-registrare una libreria dll nel registro di sistema di Windows.
Stai attento però a non sbagliare a digitare il percorso di installazione di Jack o modificare la mia riga nel caso si sia scelta una cartella di installazione differente da quella di default!
Chiudendo la console dei comandi e aprendo Ableton 9 a 64 bit, solo adesso sarà disponibile JackRouter nel menu a tendina dei dispositivi audio.
Non male!
Ricordati che per disinstallare JACK bisogna prima de-registrare JackRouter con
regsvr32 /u "C:\Program Files (x86)\Jack\64bits\JackRouter.dll"
Per qualsiasi insulto, chiarimento o complimento, scrivi un commento!

mercoledì 5 giugno 2013

Personalizzare il numero di canali in JackRouter

Tempo fa scrissi una piccola guida che utilizzava JACK Audio per sfruttare driver ASIO a bassa latenza su più programmi (compatibili) contemporaneamente. Vorrei ora chiarire i concetti principali di funzionamento del programma per chi volesse scendere a più basso livello.
JACK  fornisce un protocollo Open Source di interfaccia ai canali e a bassa latenza. Ciò vuol dire che, a differenza di Steinberg che con le sue ASIO ha cercato di imporre le proprie regole sin da principio, JACK dà la possibilità a qualunque azienda abbia pazienza, di interfacciarsi ai canali audio con il proprio software senza dover spendere tempo e denaro in brevetti e porcherie.
Ecco perché, facendo riferimento alla guida precedente, Traktor ha integrato un "Jack Audio Device (Jack)" tra le sue periferiche audio, che permette l'interfaccia diretta con il suddetto software. Sarebbe stupendo utilizzare proprio questo sistema, non fosse che l'impegno che ci hanno messo quelli di Native Instruments per curare questa funzionalità sia nullo [SFOGO]in confronto all'inutile algoritmo di beat-matching che propugnano ai cosiddetti dj facendo credere che "il lavoro del diggei è semplice come premere 2 bottoni su un piccì".[/SFOGO]
Un bug ogni secondo ti costringono a tornare ai driver ASIO4ALL e a rinunciare ai sogni di gloria, per non parlare poi di quasi tutte le altre applicazioni commerciali, che JACK non se lo cag*no proprio.
Per risolvere la questione è sempre Maometto che si avvicina alla montagna, e gli sviluppatori hanno fornito il proprio software di un tool, chiamato JackRouter. Questo consiste in una periferica virtuale che prende in input un segnale audio codificato secondo le specifiche del protocollo ASIO, e butta in Jack il segnale secondo le specifiche "libere". In questo modo, con un danno collaterale accettabile sulla latenza, il segnale può essere gestito come ci pare e piace. Il seguente grafico forse chiarifica la situazione:
Arrivati a questo punto si capisce che per scegliere, ad esempio, il numero di uscite disponibili per il software audio che stiamo utilizzando non bisogna agire su Jack, ma sugli ingressi di JackRouter.
Nel mio caso ho bisogno di 8 canali stereo di uscita da Traktor (ok sono un po' troppi, ma meglio esagerare no?) e utilizzo l'ultima versione disponibile, ovvero la Mixed 64/32 bit JACK 1.9.9. Avviamo JACK e
impostando la periferica audio come JackRouter (ASIO) e andando su Output Routing per gestire i canali di uscita del software la situazione sarà sgradevole perché avremo a disposizione solo 4 canali mono.
Chiudiamo Traktor, apriamo Blocco Note con i privilegi di amministratore e, entrando nella cartella C:\Program Files (x86)\Jack\32bits modifichiamo il file JackRouter.ini. Se i canali disponibili sono 4 e noi ne vogliamo molti altri da gestire, andiamo alla riga output=4 sotto la label [IO] e inseriamo output=16. Facciamo lo stesso per il file contenuto in C:\Program Files (x86)\Jack\64bits nel caso in cui abbiamo attivato il servizio a 64bit.
Lo stesso discorso può essere fatto per i dispositivi di input andando, appunto, a modificare la linea input secondo le proprie necessità.
Riaprendo Traktor e andando nello stesso menu di prima, la situazione è veramente cambiata!
Possiamo dire di aver ottenuto esattamente quello che volevamo. Come al solito ti invito a commentare, criticare e a chiedere qualsiasi cosa non sia stata chiara. Un ringraziamento particolare a Mario di carlo per i quesiti proposti!