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!

lunedì 9 luglio 2012

Usare ASIO4ALL su più programmi contemporaneamente

Non sono un amante delle prese in giro, men che meno di quelle ai danni dei tanti ignari DJs e producer che si trovino ad affrontare il celebre duello PC vs. MAC. Infatti, benché molti prediligano l'utilizzo del secondo per produzioni o serate, ammattiti da pubblicità ingannevoli e dalla voglia di fare i fighi a tutti i costi, ci sono molti artisti che su un PC, ed in particolare con un sistema Windows, non hanno mai trovato problemi a far girare tutto l'armamentario correttamente. Tralascio volontariamente il discorso Linux, non me ne vogliate, solo perché si parlerebbe di ripartire da 0 per cercare di imparare nuovi strumenti sconosciuti, il più delle volte senza guide online.
Quindi, perché un qualsiasi creativo che si trovi alle prime armi con il mondo della musica elettronica non può evitare di spendere quei 1000 Euro in più per l'osannato prodotto Apple e cercare di capire se veramente è il suo campo prima di acquistare quello che gli serve?
Sappiamo che tutti i principali strumenti digitali per DJ che possono essere acquistati o scaricati online funzionano su Windows. Sto parlando di Ableton Live, FL Studio, Cubase, Traktor Pro, Serato, senza contare tutti gli infiniti VST (primi fra tutti z3ta+, Massive, Nexus, V-Station, ecc...). Il grosso problema è che quando quella mattina ti svegli e pensi di diventare un DJ nessuno ti avverte di quanto sia difficile far suonare insieme tutta questa roba. La scheda audio del tuo PC o i driver della scheda audio esterna che dovresti cercare di acquistare (o che ti ha lasciato in eredità lo zio disk-jockey) devono essere a bassa latenza e sfruttano, complessivamente quasi sempre, i driver ASIO. La versione libera e gratuita del protocollo per Windows sono le ASIO4ALL, veramente irrinunciabili a meno che tu non voglia avere una latenza di qualche migliaio di ore.
"Ehi Ruj, ma se sono così fenomenali, qual'è il difetto di questi utilissimi driver universali?" - E fammi spiegare! Il primo software che li utilizza, si impossessa completamente della tua scheda audio e non la fa toccare a nessun altro software. Ammazza che avidità!
"Possibile soluzione?" - Eh si, se ho scritto questo articolo vuol dire che una soluzione ci dev'essere per forza. Vi presento JACK, un ponte audio che vi permettere di fare tutte le connessioni che volete tra input e output dei vostri dispositivi e software senza quasi intaccare minimamente le prestazioni del vostro PC.
Come introduzione mi sono dilungato troppo, passiamo direttamente al vivo della questione: voglio far suonare il mio Traktor, che utilizzo per mixare live i pezzi, e Ableton Live, dove invece preferisco gestire sequenze più articolate, contemporaneamente.
Per prima cosa scarichiamo e installiamo JACK2 (io utilizzo la versione 1.9.8 per 64bit, attualmente l'ultima per il mio sistema).
Ora chiudiamo tutti i programmi che sfruttano la scheda audio e avviamo il programma Jack Control con i privilegi di amministratore se ci si trova su Windows Vista o Windows 7, altrimenti non funzionerà correttamente. Vi consiglio di cambiare le proprietà facendo tasto destro sull'icona in modo da avviare sempre il programma in questa modalità.
Ora che ci troviamo di fronte all'interfaccia di Jack, cliccate su Setup... e potrete accedere alle impostazioni. Premettendo che ogni PC ha il proprio settaggio ideale, l'unica cosa che dobbiamo configurare necessariamente è "jackd -S" nel Server Path e "ASIO::ASIO4ALL v2" in Interface. Probabilmente nel menu a tendina di interface non ci comparirà la scritta delle ASIO4ALL, ma non ci preoccupiamo, inseriamola manualmente scrivendola nel campo.
Inoltre dal menu a discesa Driver, è meglio selezionare il più convenzionale "portaudio".

Facciamo click su OK e quindi su Start per avviare il server audio di JACK. Accendendo qualche cerino dovrebbe partire e, una volta trovata la configurazione ideale e funzionante ti consiglio di cambiare le cose solo se sai veramente quello che stai facendo, altrimenti rischi di mandarlo in pappa e di non riuscire a ritrovare la configurazione funzionante.
Avviamo ora Ableton Live sempre con privilegi di amministratore (ti suggerisco di fare la stessa cosa che ho detto prima a riguardo). Nella scheda Opzioni -> Preferenze -> Audio troviamo il menu del Dispositivo Audio. Impostatelo come "ASIO" e "JackRouter". Una volta completato questo passo Ableton è configurato correttamente per funzionare con JACK. Infatti se clicchiamo sul pulsante Connect di Jack Control, troverete Ableton Live come uno dei dispositivi disponibili per il routing audio, cioè vuol dire che ha ingressi o uscite audio disponibili. Se non è questo il tuo caso, controlla in "Config. Entrante" e "Config. Uscite" se ci sono selezionati dei canali.

E' ora giunto il momento di provare a interfacciare Traktor. Apriamo il nostro bel trattore (non c'è bisogno che mi ripeto che debba essere avviato con i privilegi di amministratore, vero?), clicchiamo sull'icona delle impostazioni con l'ingranaggio stilizzato, andiamo su Audio Setup ed ad Audio Device specifichiamo "JackRouter (ASIO)". Occhio a non sbagliare, NON va messo "Jack audio device (Jack)"!
Se tutto continua a filare liscio anche questa rotta può essere visibile attraverso la finestra delle connessioni di JACK. Non mi sto occupando delle impostazioni della scheda audio all'interno dei programmi ora perché dovrebbe essere cosa nota, altrimenti, prima di riprendere questa guida, sarebbe meglio imparare a capire come impostare ASIO4ALL a prescindere da JACK. Comunque tutto questo è personalizzabile dalle configurazioni di Traktor nei menu Output Routing e Input Routing.
La guida sarebbe finita se non volessi mostrarti anche le meraviglie del routing audio. Invece che suonare i due programmi insieme, voglio fare di meglio! Voglio cercare di registrare l'uscita del master di Traktor in Ableton, in modo da, ad esempio, fare un remastering per mettere il set su Soundcloud, o in macchina a palla per mostrare la mio bravura al primo malcapitato.
Niente di più semplice, l'uscita audio di Traktor (ho settato il master ai primi due canali nel mio menu di Output routing, ma collego anche il cue che sono gli ultimi due, non si sa mai), va collegata direttamente ai canali di ingresso di Ableton e l'uscita di Ableton all'uscita di sistema.
Ecco fatto! Come vedi riesco tranquillamente a registrare la traccia audio selezionando i primi due canali in ingresso in Ableton Live. E godetevi sto screen!
Per qualsiasi problema commentate!