Archivi tag: registrazione

Cosa viene dopo PodCleaner?

PodCleaner

Quando è nato PodCleaner, il suo scopo principale era quello di diventare uno strumento da inserire nel flusso di lavoro, tra la registrazione e il montaggio di un podcast, o comunque di un intervento audio parlato:

proucer.001

Successivamente, anzi quasi subito, PodCleaner ha introdotto la capacità di sincronizzare in automatico le tracce, dunque alleviando anche una buona parte del lavoro di montaggio:

proucer.002

Il mio obiettivo, con PodCleaner, è stato comunque quello di realizzare un’applicazione, anzi uno strumento, che consentisse di abbassare i tempi, i tempi che seguono la registrazione.

Questo perché solitamente la registrazione di un podcast è la parte più divertente, mentre il montaggio dell’audio quella più noiosa, soprattutto quella a cui i podcast meno “aggraziati”, dedicano meno tempo, con conseguente abbassamento della qualità, qualità percepita dall’ascoltatore.

Editing

Ho sempre pensato che realizzare un podcast ha una componente di editing piuttosto semplice; a meno che non si desideri realizzare delle trasmissioni molto complesse, il montaggio dell’audio di un podcast è cosa relativamente semplice: alcuni tagli, l’inserimento delle musichette (sigla iniziale, finale, alcuni intermezzi) e eventualmente una colonna sonora di sfondo.

In parole povere, secondo me c’è spazio per un’altra applicazione, che possa prendere completamente il controllo della ultima parte del flusso di lavoro, quella di editing:

proucer.003

Sto parlando di un sistema di editing molto veloce, espressamente pensato per trasmissioni “seriali”, in cui la maggior parte degli asset è comune a tutti gli episodi.

Ebbene, questo è il progetto a cui sto lavorando da qualche settimana, e sta procedendo anche molto, molto velocemente.

Ovviamente c’è già un nome, ma non me lo ripeterò perché non sono ancora convinto che sia quello definitivo, però come sapete il titolo è sempre la prima cosa che scelgo in un nuovo progetto…

Editare un podcast di un’ora in 10 minuti

L’applicazione non è ancora pronta, anche se molti degli strati di software sono già stati realizzati, per esempio quello che consente di creare un nuovo podcast, di creare un nuovo episodio e quello di importare gli asset comuni a tutti gli episodi.

Qui potete vedere un esempio molto primordiale della grafica relativa all’importazione di un asset comune:

Schermata 2015-05-22 alle 09.24.10

Il motore di riproduzione dei suoni montati funziona molto, molto bene, così come anche la rappresentazione grafica della testina di riproduzione.

Quello che manca, adesso, è l’interfaccia che consenta di aggiungere e togliere clip al montaggio, di spostarle, e di fare tutto nel miglior modo possibile (dove migliore significa molto, molto velocemente).
Il mio obiettivo è semplice: ridurre i tempi di montaggio di un podcast e, eventualmente, anche automatizzare il caricamento su un sito FTP nonché l’aggiornamento del feed.

Ci sto lavorando, molto velocemente, punto di iniziare a distribuire una versione alpha per i miei tester entro sei-otto settimane al massimo.

La prima versione che darò in pasto ai tester probabilmente non consentirà nemmeno il salvataggio del file, ma voglio che l’interfaccia sia ottimizzata prima di passare alla fase definitiva.

Come sempre, state tonnati

Corso di editing audio (in podcast)

Come forse ben saprete, negli ultimi mesi ho registrato diversi contributi per la mia rubrica Audio Video & Co., per il podcast Apple Horizon, in cui ho parlato di audio, registrazione, applicazione di effetti, mixing ed esportazione.
In molti di voi mi avete chiesto se c’era una sorta di riepilogo di tutto quello di cui ho parlato, e, ovviamente prendendomi il mio mastodontico tempo, ho preparato questa sorta di specchietto:

Prima puntata

Il microfono e l’ambiente di registrazione
Apple Horizon #68
In questa prima puntata parlo dell’ambiente di registrazione, come prepararsi e come impostare il setup, come attutire riverberi.
In più qualche parola su come impostare la voce e quali sono i primi suggerimenti per migliorare “l’attacco”. Parliamo poi della scelta del tipo di microfono, analizzando le diverse opzioni (e i diversi range di costo), e il posizionamento dell’ambiente.
Illustriamo infine il funzionamento del “ragno” (filtro antishock) e del filtro antipop.

Seconda puntata
Il software
Apple Horizon #69
In questa puntata iniziamo a parlare del setup di registrazione sul computer.
Dopo avere visto (ovviamente su un Macintosh) come impostare la registrazione e la sorgente dell’audio, discorreremo un pochettino sul formato di registrazione, frequenza di campionamento e profondità di quantizzazione.
Vengono date anche alcune indicazioni sui software (gratuiti) che si possono usare e le impostazioni di registrazione.
E soprattutto viene spiegato come mai ognuno sente la propria voce registrata come diversa…
Terza puntata

Il montaggio del l’audio
Apple Horizon #70
In questa puntata parliamo dell’editing, Ovverosia del taglia e cuci che si fa sull’audio parlato, vedremo i principali comandi per l’editing dell’audio sia in Audacity che in Garage Band.
Viene anche spiegato il trucco del taglio all’interno delle sillabe.
Ultimo suggerimento: il taglio delle pausa e per mantenere alto il ritmo del parlato.

Quarta puntata
La riduzione del rumore
Apple Horizon #71
in questa puntata vedremo come attenuare il rumore di fondo dovuto alla conversione da analogico e digitale, nonché quello relativo a la stanza in cui si registra.
Prima viene illustrato il funzionamento e come si imposta il noise gate, successivamente, parliamo del denoiser vero e proprio.
Per quanto concerne il noise gateviene spiegato, con anche esempi da ascoltare, il funzionamento del parametrohold e del parametro release, nonché la velocità di attacco con il lookahead.
Per il denoiser vero e proprio, viene spiegato come individuare il room tone.
Vengono spiegati gli algoritmi che sono utilizzati dagli riduttori di rumore e anche quali sono i pericoli di una riduzione troppo intensa quando il rumore non è trascurabile ma è presente anche nelle frequenze del parlato.
Infine parleremo un po’ della trasformazione dei campioni dal dominio del tempo a quello delle frequenze, e come queste trasformazioni possono andare ad intaccare la qualità finale.
Quinta puntata
I filtri: compressione ed equalizzazione
Apple Horizon #72
In questa puntata vedremo come migliorare la qualità, l’intelligibilità, e la ascoltabilità di una voce che parla, ancora una volta con degli esempi pratici che vi fanno sentire l’effetto prima e dopo.
Per il compressore, oltre a spiegare il principio di funzionamento, vedremo come si interviene sull’effetto usando la soglia (threshold) e il rapporto (ratio).
Poi faremo alcune prove con gli esempi, mostrando cosa cambia al suono se si enfatizzano o si abbassano alcune frequenze.
Sesta puntata
Il mixing
Apple Horizon #73

In questa puntata vedremo come mixare insieme più tracce, generalmente una di parlato e una di musica di sottofondo, e come rendere il tutto un insieme armonico, fruibile e perfettamente comprensibile da parte dell’ascoltatore.
Una delle cose assolutamente da non sottovalutare, e la gestione della musica di sottofondo, una di quelle componenti che può rendere il mix assolutamente gradevole oppure, se si sbaglia anche solo di poco, terribilmente inascoltabile…
Verranno date alcune indicazioni su come realizzare musica in loop, come realizzare il ducking, nonché dove trovare (anche a pagamento) musiche e gruppi di musiche già pronti per fare l’intero sound design.
Notare che quando parlo di canale destro e sinistro, per un errore non dipendente dalla mia volontà, la trasmissione, da stereofonica è diventata monofonica, per cui questo particolare effetto non si può percepire.
Settima puntata

Gli algoritmi di compressione audio
Apple Horizon #74
Iniziamo la puntata con una sorta di compendio che racconta la storia della compressione dell’audio, quali sono stati i formati e le idee sfruttate dagli ingegneri per ridurre la dimensione di un file senza andare ad intaccare la qualità percepita.
Perché è necessario comprimere l’audio? Semplicemente perché la banda non è infinita, è storicamente, quando sono stati introdotti i primi formati di compressione, era un bene assolutamente prezioso e non era letteralmente possibile fare passare audio non compresso su una linea di connessione Internet…
Ancora una volta parliamo della trasformazione dal dominio del tempo a quello delle frequenze, parlando della psicoacustica, la branca della scienza che si occupa di studiare come il cervello interpreta le informazioni sonore.
Con un esempio pratico vedremo l’effetto del mascheramento in frequenza, che sta alla base della maggiore efficienza del formato MP3, e il mascheramento temporale, che consente di raddoppiare l’efficacia con il formato AAC.
Vedremo quanto si riesce a comprimere un file sonoro con MP3 e in MP4 (audio) e quali sono i valori di datarate ottimali.

Ottava puntata

Il salvataggio del file e… PodCleaner!
Apple Horizon #75
Vedremo come la compressione del file, che lavora nel dominio delle frequenze, è influenzata anche dagli altri filtri che operano sulle frequenze, come il riduttore del rumore e l’equalizzatore.
Ascolteremo anche degli esempi (non solo di parlato, ma con anche delle musiche) in cui si evidenziano gli effetti della compressione a perdita di qualità e degli artefatti di compressione.
Al termine di questo piccolo e semplice “corso” di registrazione e post produzione audio, mi sono permesso anche di fare un po’ di pubblicità a PodCleaner, che, per certi versi, soprattutto per la parte di filtraggio, può risultare un’ottima soluzione per chiunque voglia effettuare delle buone registrazioni senza lambiccarsi troppo il cervello in parametri e configurazioni.
Di PodCleaner abbiamo parlato più e più volte, e, in caso, vi rimando a tutti gli articoli che ho scritto nel mio blog.

Il nuovo motore di sincronizzazione PodCleaner

Su spinta del grandissimo Mario D’Amore, ho elaborato una nuova versione del motore di sincronizzazione dei file di PodCleaner, che verrà introdotto a brevissimo con la versione 1.2 del programma, aggiornamento ovviamente gratuito.

Questa nuova versione estende le capacità della precedente consentendo di inserire file che sono stati anche “spezzati”.

Quando si registrano dei podcast o delle interviste in remoto, ovverossia ogni partecipante registra la propria traccia (e poi tutte le tracce vengono sincronizzate a posteriori, possibilmente con PodCleaner), può capitare che, per un qualsiasi motivo, un errore di sistema o dell’applicazione, uno dei partecipanti (o più di uno) sia costretto ad interrompere la registrazione e a farla ripartire in seguito.

PodCleaner SyncEngine 2

Fino alla versione precedente di PodCleaner questo era un problema: dato che l’intervallo massimo di inizio di una traccia in relazione ad un’altra era fissato a dieci minuti.

PodCleaner SyncEngine 2

PodCleaner, invece, consente di stabilire un intervallo qualsiasi e anche un offset, cosa particolarmente utile nel caso in cui qualcuno si aggiunga alla registrazione molto dopo l’inizio della trasmissione.

PodCleaner SyncEngine 2

La nuova interfaccia di PodCleaner (che qui mostro in versione assolutamente non definitiva):

PodCleaner 1.2 sync engine setup

Consente, a livello di singola traccia, di impostare sia il range di ricerca, sia l’offset.

Schermata 2015-02-18 alle 09.43.01

Ma PodCleaner 1,2 non si ferma qua: perché consente di impostare una traccia come “figlia” di un’altra traccia, indicando al software che si tratta della continuazione di un segmento precedente.

Schermata 2015-02-18 alle 09.43.35

Range di ricerca

Iniziamo a fare qualche esempio pratico. Supponiamo di registrare un podcast con solo due persone, ognuna delle quali, naturalmente, registra la propria traccia sul proprio computer:

PodCleaner SyncEngine 2

In questi casi spesso e volentieri significa che gli istanti in cui i due file iniziano sono molto vicini nel tempo.

Possiamo dunque andare nel pannello delle impostazioni avanzate del motore di sincronizzazione, e indicare che il range di ricerca è molto ristretto, nell’ordine di uno-due minuti:

Schermata 2015-02-18 alle 09.46.03

Questo, nel caso in cui si cerchi di sincronizzare solo due file, a poca rilevanza: l’algoritmo è molto veloce e impiegherebbe comunque solo una piccola manciata di secondi.

Nel caso in cui, invece, i file in ingresso fossero tanti, quattro o cinque, ridurre il ranch di ricerca riduce di gran lunga il tempo di calcolo!

Podcast in cui un partecipante si unisce dopo

Un altro esempio è quello in cui, invece, un terzo partecipante si unisce alla trasmissione dopo un (bel) po’ che questa è iniziata:

PodCleaner SyncEngine 2

Supponiamo che, dall’inizio della trasmissione, questo terza partecipante si sia unito dopo circa trenta minuti.

In questo caso dobbiamo specificare l’offset ovvero sia la distanza dall’inizio “medio” della registrazione generale.

Il mio consiglio, quando si aggiunge un file con un certo offset, e quello di allargare molto il range di ricerca, portandolo a 5-10
minuti, questo perché molto spesso non si è ben consci, effettivamente, di quanto tempo sia passato.

Schermata 2015-02-18 alle 09.56.30

Traccia interrotte

Nel caso in cui si stia registrando in due, e una delle persone abbia subito un’interruzione, che l’ha costretta a interrompere la registrazione e a farne partire una nuova.

Il primo consiglio che vediamo è quello di nominare i due file in modo simile, aggiungendo un suffisso che identifichi quale è il primo e qual è il secondo:

PodCleaner SyncEngine 2

Successivamente, dopo aver selezionato le tre tracce e averle importate in PodCleaner, nel pannello delle impostazioni avanzate di sincronizzazione, occorre semplicemente indicare che questo secondo segmento è “figlio” del primo:

Schermata 2015-02-18 alle 10.00.33

PodCleaner aggiusterà automaticamente l’offset in modo da considerare questa traccia come “spostata” nel tempo:

PodCleaner SyncEngine 2

Anche in questo caso vi consigliamo di lasciare un range di ricerca relativamente ampio, cinque-dieci minuti, in modo da bilanciare il tempo che intercorre tra la fine della registrazione, è il momento in cui si inizia la nuova traccia.

A che punto siamo

Ovviamente dal punto di vista estetico dobbiamo fare ancora un’po’ di lavoro: il programma adesso funziona, funziona bene, e l’ultima puntata del podcast Geek Cookies ne è una dimostrazione, però dal punto di vista dell’interazione con l’utente, qualcosa di meglio si può fare e si deve fare…

Rimanete sintonizzati per scoprire quando PodCleaner 1.2 verrà rilasciato.

Nel frattempo, però, nella nostra pagina di download, potete comunque provare la versione beta, che (personalmente) ritengo essere pronta e funzionante, a meno, appunto, dell’interfaccia…

PodCleaner: i settaggi del denoiser

Questo non è propriamente un tutorial, ma spiega come si attiva e quali sono le impostazioni del riduttore di rumore:

Altri tutorial:
Usare PodCleaner con un solo file
Sincronizzare più file con PodCleaner
Le impostazioni di sistema

Come si usa PodCleaner? (I parte)

PodCleaner è uno strumento pensato per migliorare la qualità dell’audio, particolarmente orientato a chi fa podcast ed è impossibilitato a farlo in uno studio professionale.

Schermata 2014-10-14 alle 10.46.06Di questo abbiamo già parlato, però oggi voglio, essenzialmente, darvi una piccola infarinatura sull’interfaccia, ben conscio che (molto probabilmente) stili e colori cambieranno, e magari anche alcuni pulsanti.

Lavorare con un solo file
Importazione

Partiamo dall’esempio più semplice: quello di una persona che registra il proprio podcast in completa autonomia, senza ospiti.

La prima cosa che dobbiamo fare è selezionare questo radio button, che, in parole povere, ci dice che vogliamo lavorare con un solo file.

Schermata 2014-10-14 alle 10.46.06 copy

Clicchiamo poi sul riquadro evidenziato:

Schermata 2014-10-14 alle 10.46.06 copy2

Si aprirà una finestra di dialogo che ci chiede quale file vogliamo elaborare.

Schermata 2014-10-14 alle 10.47.20Come potete vedere il nome del file apparirà nel riquadro in questione:

Schermata 2014-10-14 alle 10.46.39 copy
Esportazione

Appena selezionato il file da elaborare, in automatico PodCleaner visualizzerà un nome di file nel riquadro in basso con suffisso _CLN.

Schermata 2014-10-14 alle 10.46.39PodCleaner, di default, salverà il file processato nella stessa cartella del file di origine (con questo suffisso).

Se cicchiamo sul nome del file, comunque, possiamo scegliere dove salvare il file elaborato.

PodCleaner è comunque un programma non distruttivo: non consente di lavorare sul file origine se non in lettura, significa che il file originale non viene mai modificato per la sicurezza dei dati.

Tutti gli altri valori, per adesso, lasciamoli attivati come PodCleaner ce li presenta.

Elaborazione

Clicchiamo su start e iniziamo l’elaborazione.

Schermata 2014-10-14 alle 10.58.45

Una volta terminata l’elaborazione possiamo vedere nella cartella del file originale anche il nuovo file che è quello che è stato ripulito:

Schermata 2014-10-14 alle 11.00.01Qui potete vedere un confronto tra i due file:

Schermata 2014-10-14 alle 11.11.27 Schermata 2014-10-14 alle 11.12.35

Queste sono le operazioni che, senza toccare nessun parametro, si devono effettuare per lavorare con un singolo file: qualcosa di relativamente breve.

Vedremo più avanti come si usano tutte le funzioni di PodCleaner, spiegando anche come intervenire sui parametri.

Concentriamoci per adesso sulle cose più semplici, aggiungeremo la complessità un passo per volta.

Protezione dalla copia

In questi giorni sto diventando veramente avido e sto pensando a come può essere possibile proteggere dalla copia (ma in generale dalla pirateria) l’applicazione che sto sviluppando.

Qualcuno potrebbe dire che, effettivamente, se il prezzo è corretto e le feature sono adeguate, la pirateria può anche essere una sorta di “male necessario”, e ne sono conscio, però, forse proprio perché voglio scalare la montagna, mi sto scervellando su quali possano essere i rimedi in modo che chi utilizza l’applicazione lo faccio solo se ha pagato il giusto.

Giusto che nel mio caso corrisponderà a circa un euro per una versione assolutamente base che funziona con i soli parametri di default e tre o quattro euro per quella completa e che consente anche di sincronizzare i file.

Mi sono dunque posto da due punti di vista: quello dell’utente finale e quello dello sviluppatore, però facendo particolare attenzione soprattutto all’esperienza dell’utilizzatore, perché se questa è funzionale, allora tutto arresto viene in qualche modo “perdonato”.

Esperienza utente

Il framework che ho sviluppato è tale per cui l’utente, la prima volta che apre l’applicazione, si trova di fronte una schermata in cui deve inserire un nome utente e un codice seriale.

Senza titolo 3.001

Il codice seriale, ovviamente, è stato acquistato in qualche modo, più o meno ovviamente, gli è stato recapitato per e-mail.

L’utente a questo punto si registra e per farlo deve necessariamente essere connesso ad Internet (altrimenti questo metodo non funziona).

Senza titolo 3.002

Una volta che il prodotto è stato registrato l’utente può utilizzarlo liberamente.

L’utilizzo però è vincolato necessariamente alla macchina con cui sta effettuando la registrazione, una volta utilizzato il numero seriale non può essere più utilizzato un’altra volta su un’altra macchina.

Senza titolo 3.003

Per poterlo fare l’utente deve andare alla schermata di di attivazione e, sempre essendo connesso a Internet, disattivare la macchina, in modo tale per cui il codice seriale può essere utilizzato a questo punto su uno nuovo computer.

Senza titolo 3.004

Direi che questo è un sistema abbastanza “politically correct”, diciamo che l’utente finale deve essere connesso ad Internet almeno una volta e poi tutto quanto funziona.

Senza titolo 3.005

C’è di peggio, non è vero?

Il punto di vista dello sviluppatore

Dal punto di vista dello sviluppatore le cose sono un pochettino più complesse, ma cercherò di essere abbastanza chiaro ed esaustivo.

Il primo assioma che ci riguarda è dato dal fatto che dobbiamo disporre di un generatore di numeri seriali, e, possibilmente, anche di un controllo di ridondanza tale per cui nessuno si può inventare un numero seriale ma questo debba poter essere verificato.

Senza titolo 3.007

Questa cosa non è necessaria, dato che ci si connette ad Internet per la verifica e l’attivazione, però non guasta e, in caso, vedrò di implementare anche questa funzione.

Una volta che abbiamo una generatore di numeri seriali, possiamo generarne una quantità a piacere, diciamo che dobbiamo avere una sorta di grande serbatoio che ci consente di non andare mai “stretti”, in parole povere la domanda non deve mai nemmeno lontanamente avvicinarsi all’offerta disponibile.

Senza titolo 3.006

Dotati di numeri seriali in quantità, possiamo vendere gli stessi su Internet, ci sono un sacco di moduli di e-commerce pensati apposta per la vendita di codici e non di beni materiali (o di materiale da scaricare): l’applicazione è liberamente scaricabile ma è necessario il codice per attivarla al 100%.

La lista di numeri seriali che abbiamo generato va a finire anche in un grande database che, all’inizio, sarà vuoto e contiene soltanto questi codici.

Quando l’utente cerca di registrarsi, inserisce il codice ha ricevuto per e-mail, a questo punto l’applicazione si connette ad Internet reinterrogato il database dei numeri seriali.

Senza titolo 3.009

Se il numero seriale esiste (e dunque è stato generato correttamente) si va a vedere se è libero nel database.

Senza titolo 3.010

Questo significa che il numero esiste ma non è mai stato utilizzato.

In questo caso la macchina dell’utente invia un identificativo dell’hardware e, una volta per tutte, numero seriale hardware vengono legati nel database on-line.

Senza titolo 3.011

Parallelamente, il locale, viene scritto un file “crittografato” che unisce numero seriale e identificativo dell’hardware, generando una licenza che è, appunto, univoca e con hash, della macchina e del seriale stesso.

Il seriale può anche essere salvato in chiaro da qualche parte, ma non il codice identificativo della macchina, per cui, all’attivazione dell’applicazione, le due stringhe (seriale e identificativo) vengono unite (in qualche modo che non spiegherò, naturalmente) e viene generata la hash.

Senza titolo 3.012

Se la hash risponde a quella salvata allora la macchina è autorizzata e il software può girare liberamente.

Nel (malaugurato) caso che l’utente, in qualche modo, cancellasse il file della licenza, al momento del lancio, avendo salvato il numero seriale, l’applicazione può comunque connettersi a Internet e vedere di autorizzare di nuovo la macchina (in modo anche trasparente all’utente).

Se si cancella, ipotizzandolo sempre per errore, il codice seriale, verrà richiesto all’utente e la procedura di attivazione sarà quella vista nel primo caso.

Mettiamo adesso il caso che un utente desideri lanciare l’applicazione da un’altra macchina, ma utilizzando sempre lo stesso numero seriale.

L’applicazione controllerà su Internet il database, e vedendo che il numero seriale è stato già preso ma con un altro identificativo di macchina, negherà la licenza, chiedendo l’utente, se proprio vuole lanciare l’applicazione su quella macchina, di disinstallarlo dalla macchina precedente.

Senza titolo 3.013

L’utente “maligno”, non può nemmeno copiare il file della licenza dalla prima macchina alla seconda, dato che questo file contiene, con un’ascia, non solo numero seriale ma anche l’identificativo della macchina, motivo per cui la licenza non si può spostare da un hardware all’altro.

Qualcuno adesso potrebbe obiettare che, se l’utente in qualche modo perde il numero seriale, non può nemmeno disinstallare l’applicazione.

Vero, ma qui siamo nel confine dello sticazzi, per cui l’utente deve per forza contattare lo sviluppatore e, in qualche modo, si deve procedere operando a mano.

A questo punto qualcuno potrebbe obiettare che l’anello debole della catena è quello relativo alla crittografia su spazio locale.
Per quanto mi riguarda io opererei con una simpatica MD5, a cui ad ogni stringa aggiungo una chiave identificativa (che rimane ovviamente segreta).

Note

Un sentito ringraziamento a Roberta Molinari che mi ha suggerito un paio di cose su come implementare, dal punto di vista dell’utente, tutto l’insieme.