Vai al contenuto
SIMONE PIZZI
Progetti ↗
Runtime Live Machine Pro

Anche la plancia è libera: Live Machine Pro diventa open source

A giugno avevo promesso che l’avreste saputo. Non l’avete saputo: l’ho messo in vendita in silenzio, e adesso lo regalo. Live Machine Pro è software libero.

Data
Lettura
14 minuti
Sezioni
14
Copertina: Anche la plancia è libera: Live Machine Pro diventa open source

Il 2 giugno ho chiuso l’articolo su Runtime Live Machine Pro con una promessa: «Quando sarà pronto, lo saprete». Non l’avete saputo. A luglio l’ho messo in vendita senza scrivere una riga per annunciarlo, l’ho lasciato lì due mesi a 9,99 euro, e la prima notizia che vi do su quel programma è che non è più in vendita.

Dal 13 settembre Runtime Live Machine Pro è software libero, rilasciato sotto licenza MIT. Il codice sta su github.com/Pitz72/RRLMP, gli installer si scaricano dalla pagina delle release, la pagina dove si comprava restituisce un errore 404 e non tornerà. Chi lo vuole se lo prende, lo apre, lo modifica, lo ridistribuisce. Non deve chiedere niente a me, e soprattutto non deve pagarmi niente.

Il terzo in un mese

Non è un colpo di testa. Il 13 agosto avevo aperto Runtime TelegramBot Titan Edition, il 18 FeedDownloader Pro. Aprire un programma non è caricare il codice su GitHub e scrivere open source nella descrizione: la procedura è lunga, e ormai è la stessa. L’ho ricopiata dal piano che avevo scritto per quei due e l’ho eseguita una fase per sessione, senza saltarne nemmeno una.

Cambia una cosa sola, ed è quella che conta: gli altri due erano programmi finiti che avevano smesso di avere un motivo commerciale. Questo è quello a cui tengo di più. È il software su cui lavoro da più tempo di tutti, il primo commit porta la data del 4 gennaio 2026, e a differenza degli altri lo uso io, di notte, mentre trasmetto.

Quante copie ne ho vendute

Zero.

Le uniche persone al mondo che hanno Live Machine Pro installato ce l’hanno perché gliel’ho dato io. Ad agosto avevo scritto la stessa identica frase per Titan e l’avevo presa con ironia. Stavolta mi è bruciata un po’ di più, perché qui dentro c’è otto mesi di lavoro e perché il prezzo era già ridicolo: meno di dieci euro per un banco di regia completo.

Solo che dare la colpa al marketing sarebbe comodo. La ragione vera è più asciutta, e con il vendere non c’entra.

Un programma che ti tiene in piedi la diretta non lo compri a scatola chiusa. Lo provi. E per provarlo devi già averlo.

Perché proprio questo, e perché adesso

Su Titan e su FeedDownloader l’argomento era semplice: non vendono, tanto vale regalarli. Qui c’è di più, e me ne sono accorto mentre scrivevo il piano.

Un bug in un downloader di podcast ti fa perdere un file. Un bug in un programma di regia ti fa perdere la trasmissione, davanti a tutti, nell’unico momento che non si ripete. L’avevo scritto a giugno per spiegare perché non lo rilasciavo. Rileggendolo a settembre, dice anche un’altra cosa: se pretendo che qualcuno affidi a questo programma la sua serata, quel qualcuno ha il diritto di guardarci dentro. Di vedere com’è fatto il motore audio, cosa succede quando premi Escape, dove finiscono i suoi file. Il codice chiuso, su uno strumento del genere, è una richiesta di fiducia a cui non corrisponde niente.

E poi c’è la persona per cui l’ho scritto, quella di cui parlavo a giugno: una stanza, un microfono, nessuno di là dal vetro. Quella persona di solito trasmette per passione, spesso ci rimette dei soldi, e il software di regia professionale costa quanto il suo impianto. Mettere un cartellino del prezzo davanti a lei era il modo più efficace di non farglielo usare mai.

Cosa cambia se ce l’hai già installato

Niente, ed è voluto. La versione 1.15.33 porta con sé il cambio di indirizzo: la installi e il programma sa già dove cercare i prossimi aggiornamenti.

Il meccanismo l’ho costruito con una certa cura, perché è il punto in cui queste operazioni si rompono. Fino a ieri gli aggiornamenti arrivavano da un repository separato, e le installazioni esistenti continuano a guardare lì: se avessi spostato tutto e basta, quelle copie sarebbero rimaste ferme per sempre senza dire una parola. Così la stessa identica versione l’ho pubblicata in due posti, con gli stessi file e le stesse impronte digitali, verificate una per una. Il vecchio indirizzo consegna l’ultimo aggiornamento della sua vita, e quell’aggiornamento sposta il programma sul nuovo. Il traghetto resta in servizio un mese, poi lo smonto.

Le altre due cose che si vedono:

  • macOS non ha più un installer. Il pacchetto che pubblicavo non era firmato, quindi al primo avvio spaventava l’utente e non si aggiornava da solo: era un mezzo servizio. Adesso chi ha un Mac compila dal sorgente, e c’è un paragrafo del manuale che spiega come, comando per comando. Windows e Linux restano con i loro pacchetti.
  • Nel pannello Info è comparsa una sezione nuova, «Il progetto»: la licenza, il mio nome, i pulsanti per il codice sorgente e i contatti, e l’elenco completo dei modelli di intelligenza artificiale con cui questo programma è stato scritto: otto, due Gemini e sei Claude. Sta scritto lì dentro, oltre che nel leggimi e nei manuali, perché gran parte di quel codice l’hanno prodotto loro ed è giusto che si sappia. Le decisioni, dalla prima all’ultima, sono mie.

Poi c’è un dettaglio che non vedrà mai nessuno, e su cui ho riso da solo. In fondo ai manuali, in colophon, c’era scritto «Tutti i diritti riservati» e «Nessuna parte può essere riprodotta senza il previo consenso». Su un programma che stavo per regalare. Ricompilati tutti e due, quarantanove pagine in italiano e quarantotto in inglese, con la licenza giusta.

La storia resta tutta

Prima di rendere pubblico un repository bisogna sapere cosa contiene, e non per sentito dire. Ho estratto dalla storia del progetto tutti i file mai esistiti in qualunque versione: duemilacinquecentotrentotto, di cui duemilatrecentoquarantadue leggibili come testo, quasi cinquanta megabyte, e li ho scansionati per intero. Non a campione. Zero chiavi, zero token, zero password, un solo autore, nessun file con un nome sospetto mai apparso neanche per un commit.

Con Titan, ad agosto, avevo riscritto la storia con le forbici per togliere mezzo giga di PDF pesanti. Qui ho scelto il contrario: i file grossi escono dall’albero di oggi, ma i duecentosettantotto commit restano come sono stati fatti, dal 4 gennaio in poi, con tutti i ripensamenti dentro. Se uno vuole capire come è cresciuto questo programma, deve poter leggere anche le settimane in cui andavo nella direzione sbagliata.

Intanto, tre mesi che non vi ho raccontato

A giugno il programma era alla 1.3.16. Oggi è alla 1.15.33. In mezzo c’è un’estate intera, e visto che adesso è tutto pubblico tanto vale dirla per intero.

La plancia ha preso una colonna, e un pad

Le colonne erano cinque, adesso sono sei: gli asset dello show, i jingle, i promo, le canzoni dell’episodio, le voci e il pre-show. Jingle e promo erano nello stesso posto e non hanno lo stesso mestiere, così li ho separati. Sopra tutto quanto è comparso un pad di effetti cinque per cinque, che suona sovrapposto a qualsiasi cosa stia andando in onda, con dieci suoni di pubblico dominio già dentro al primo avvio.

Nel frattempo il banco si è riempito di roba che a giugno non c’era: l’omologazione del volume secondo lo standard di trasmissione, un compressore di insieme sul master, l’annulla e ripeti sulla scaletta, la forma d’onda finalmente fedele al brano invece di quella cosa gonfia che disegnava prima, il misuratore di livello rifatto in decibel veri. E una vista Automix che riconosce il tempo dei brani e li attacca a battuta, validata su musica vera e non su toni di prova.

Il giro lungo del controllo remoto

Volevo poter lanciare le clip da un tablet appoggiato al banco. È cominciata come una pagina web sulla rete di casa, poi mi sono impantanato nei certificati, poi ho tolto i certificati, poi ho scritto un’applicazione Android vera con tanto di compilazione automatica, poi ho aggiunto la scoperta automatica del computer sulla rete, e a quel punto mi sono fermato e ho scritto nel diario di progetto tre parole: stavamo complicando tutto.

Ho cancellato l’applicazione Android, la scoperta automatica e tutto il resto. Oggi apri il browser del tablet, inserisci un codice a quattro cifre e comandi la regia. Funziona, sta in cento righe, e nessuno deve installare niente.

Il microfono che ho dovuto nascondere

Questa mi resta sullo stomaco. A giugno vi ho raccontato lo Smart Mic come la funzione più importante del programma: il microfono che abbassa la musica da solo quando parli. Il 2 luglio ho passato una giornata a provarlo sul mixer, un Rødecaster, e ho scoperto una cosa che avrei dovuto verificare mesi prima. L’ingresso USB di quegli apparecchi non porta al computer la voce: porta l’intero programma, musica compresa. Il rilevatore sentiva la base e si attivava da solo, all’infinito.

Ho cercato una via d’uscita dentro il browser su cui il programma è costruito e non ce n’era nessuna pulita, nemmeno una. Allora ho fatto la cosa che mi costava di più: ho nascosto dall’interfaccia la funzione che vi avevo appena raccontato come la ragione per cui il programma esiste.

È tornata il 28 luglio. Perché rileggendo l’indagine mi sono accorto che riguardava i mixer, e il caso per cui la funzione era nata non era mai stato in discussione: il microfono USB attaccato direttamente al computer, che porta solo la voce e su cui il rilevamento è pulito. Che poi è la postazione di chi trasmette da casa senza banco, cioè la persona per cui ho scritto tutto quanto. Il limite adesso è scritto in cima alla scheda del microfono, dentro l’applicazione, dove lo legge chi sta per accendere la funzione. Non più in un commento nel codice, dove lo leggevo solo io.

Il 28 luglio ho riletto tutto

Stessa giornata, seconda metà. Ho preso il programma alla versione 1.15.15 e l’ho riletto riga per riga: il motore audio (milleseicentocinquantuno righe), il processo principale (milletrecentosette), il server del controllo remoto, l’editor della forma d’onda, le scorciatoie da tastiera. Poi ho messo in fila quello che avevo trovato.

Ogni difetto l’ho pesato con una domanda sola: quanto costa se succede in diretta. Con quel metro la lista si riordina da sé, e i mostri vengono a galla.

Sono usciti ventidue difetti: nessuno catastrofico, quattro gravi, otto medi, dieci lievi. Li ho chiusi tutti nella stessa giornata, uno per versione, dalla 1.15.16 alla 1.15.29, ognuno con il suo changelog e il suo commit isolabile, così se domani salta fuori una regressione so esattamente dove guardare. I test automatici sono passati da centosettantadue a duecentoventiquattro.

Tre meritano di essere raccontati, perché spiegano meglio di qualsiasi discorso cosa vuol dire mettere in sicurezza uno strumento da diretta.

Il brano che risaliva. Una canzone negli ultimi due secondi sta sfumando. Tu lanci un jingle, o una voce, o fermi un altro clip. Il programma ricalcola il mix, vede quella canzone a volume basso, decide che è un errore e me la riporta a volume pieno in mezzo secondo. Per poi tagliarla di netto quando il file finisce. La protezione contro questa cosa nel codice c’era, ma stava su una strada sola, e la dissolvenza naturale di fine brano passava dall’altra. Lanciare un jingle mentre la musica sfuma non è un caso di laboratorio: è il gesto più normale che esista in una regia.

L’esportazione che cancellava roba non sua. «Esporta progetto con audio» crea una cartella accanto al progetto e ci copia dentro tutte le clip, poi ripulisce quello che non serve più. Comportamento sensato, finché quella cartella l’ha creata il programma. Se invece salvavi il progetto in una cartella dove una cartella audio c’era già, con dentro roba tua, al primo export spariva tutta. Senza conferma e senza cestino. Adesso il programma lascia un marcatore nella cartella che crea, e se il marcatore non c’è non tocca niente.

I file sul disco di rete. Le clip prese da un NAS o da una cartella condivisa sembravano sane, avevano la loro durata, il loro titolo, la loro forma d’onda. Premevi e non partivano. Silenzio.

Adesso parla due lingue soltanto

Italiano e inglese. Nient’altro, e da adesso in poi sarà così: interfaccia, guida rapida, manuale, note di rilascio e perfino la pagina del controllo remoto. A luglio ne avevo fatte otto, quattrocentosessantuno frasi per lingua, con manuali e copertine localizzate. Alla 1.15.32 le altre sei le ho tolte. Avevo già preso la stessa decisione su Titan e vale identica qui: tradurre in una lingua che non parli significa non poter correggere un refuso, non poter rispondere a una segnalazione, non sapere se una frase suona ridicola. Chi aveva il programma in russo o in portoghese, al primo aggiornamento, riparte in inglese.

Quello che non è finito

Adesso che il repository è pubblico, la lista delle cose che non vanno è pubblica anche lei. Sta scritta nella roadmap, accanto al codice, in chiaro.

Il limitatore del master va misurato. Oggi è tarato su valori plausibili, ma su StreamFlow, che è l’altro programma di casa e usa lo stesso motore, la stessa configurazione è stata misurata davvero e il tetto non reggeva: sopra una certa spinta il segnale usciva comunque oltre soglia. Plausibile non basta su un limitatore.

Al microfono manca ancora parecchio: l’interruttore per armarlo senza che abbassi la musica, il compressore sulla voce, l’equalizzatore, la riduzione del rumore di fondo. Quel filone, tra l’altro, è nato da una cosa vera: una speaker con il microfono USB e senza mixer, il cui sottofondo in onda ondeggiava da solo. La colpa stava nell’altro programma e lì l’ho corretta, ma la domanda che ha lasciato aperta riguarda questo.

Poi ci sono nove verifiche che nessun test automatico può fare al posto mio, e che aspettano una serata vera: staccare una chiavetta durante una registrazione lunga, aprire un brano da una cartella condivisa, aggiornare il programma con un progetto non salvato aperto. E due librerie vecchie che vanno sostituite con calma, in una sessione tutta loro, perché toccarle di fretta è il modo migliore per rompere qualcosa che funziona.

Dove si prende

Dalla pagina delle release: un installer per Windows, un AppImage e un pacchetto Debian per Linux. Non sono firmati con un certificato commerciale, quindi Windows mostra l’avviso di SmartScreen al primo avvio: è normale e sta scritto anche nel manuale. Il manuale, in italiano e in inglese, si apre da dentro il programma oppure si scarica dal repository.

Il programma funziona in locale e non ha telemetria, non ha account, non manda niente a nessuno. Si collega a GitHub per controllare gli aggiornamenti e, se lo accendi tu, apre una porta sulla tua rete di casa per il controllo remoto. Basta.

Le segnalazioni si aprono su GitHub, le proposte di modifica pure, e le leggo. Se il programma vi è utile e volete darmi una mano, la pagina dei contatti spiega come; per una donazione diretta c’è PayPal. È facoltativo e lo resterà: gratuito vuol dire gratuito.

Una cosa in meno davanti al microfono

A giugno avevo scritto che il traguardo di uno strumento come questo è sparire, e lasciare in primo piano solo la voce di chi sta parlando. Ci sto ancora lavorando, e ci lavorerò per un pezzo.

Intanto una cosa visibile l’ho tolta di mezzo, ed era l’unica che stava fra il programma e la persona sola davanti al microfono. Non era un bug. Era il prezzo.

Runtime Live Machine Pro è un progetto di Runtime Radio, rilasciato sotto licenza MIT.

Ogni tanto scrivo una lettera

Nessuna cadenza fissa, nessun riassunto automatico: parte solo quando ho qualcosa da raccontare. In fondo a ognuna c'è il link per uscire.

↑ Su

Cerca nel sito

Condividi

L'indirizzo di questa pagina:

Scrivi a Simone

Segnalazioni, correzioni, o solo per dire che una cosa non funziona: quest'ultima è la più utile di tutte.