Audacity è un software di editing audio gratuito e open source, disponibile per Windows, macOS e Linux. Estremamente popolare e apprezzato, con Audacity gli utenti possono registrare, modificare e mixare tracce audio in diversi formati, tra cui WAV e MP3.
Il software offre una vasta gamma di funzionalità: c’è la possibilità di tagliare, copiare e incollare parti di tracce audio, applicare effetti speciali come riverbero e distorsione, regolare il volume e la tonalità del suono. Sebbene nel 2021 abbia dovuto incassare non poche critiche legate all’aggiunta di una funziona di telemetria, Audacity resta un’alternativa molto “gettonata” ai costosi software di editing audio professionali.
Wavacity porta Audacity sul Web: cos’è e come funziona
Uno sviluppatore indipendente ha svoto un lavoro eccellente portando Audacity sul Web. Nel repository GitHub di Wavacity c’è tutto il necessario per compilare l’applicazione e ospitarla in proprio.
Provate però a puntare il software che usate per navigare sul Web verso la home page di Wavacity: dopo alcuni secondi di caricamento, vi troverete dinanzi alla classica interfaccia di Audacity, con la differenza che l’editor audio funziona interamente da browser senza installare nulla sul sistema locale.
Per impostazione predefinita, Wavacity carica un file audio di esempio ma facendo clic sul menu File, Apri è possibile caricare qualunque file sonoro, compresi gli elementi salvati in formato MP3.
Wavacity è un’applicazione WebAssembly che carica un file .wasm
da poco più di 5 MB e un file .data
da circa 2,5 MB: usando una normale pagina HTML come “contenitore” e lo standard aperto WebAssembly, Audacity può vivere come un’applicazione indipendente caricata nella sua totalità nell’ambito del browser preferito.
D’altra parte WebAssembly mette in evidenza come praticamente tutte le applicazioni desktop possano diventare “eseguibili portabili” in formato binario, utilizzabili senza limitazioni sulle varie piattaforme. E ciò indipendentemente dal sistema operativo in uso e della configurazione hardware, a partire da un’ampia molteplicità di linguaggi di programmazione.
L’ideatore di Wavacity parla della sua impresa dal punto di vista tecnico
L’autore di Wavacity racconta che la sfida più impegnativa è consistita nella realizzazione di un porting WebAssemly di wxWidgets, toolkit grafico multipiattaforma e open source utilizzato per lo sviluppo di applicazioni con interfaccia grafica in C++. wxWidgets fornisce un’API comune per la creazione di applicazioni su diverse piattaforme, ma utilizza l’interfaccia utente grafica (GUI) nativa di ogni piattaforma, in modo che il programma assuma l’aspetto nativo della piattaforma. wxWidgets è utilizzato da molti sviluppatori di software per creare applicazioni desktop multipiattaforma, come editor di testo, applicazioni di grafica e giochi.
Lo sviluppatore aveva già sviluppato un port di wxWidgets in WebAssembly per Transitions DJ. Ha quindi deciso di cimentarsi nell’impresa di trasformare in WebAssembly un’altra applicazione complessa a sua volta basata su wxWidgets: ecco quindi che la scelta è ricaduta proprio su Audacity.
Durante lo sviluppo è stato necessario scrivere una nuova API host PortAudio al fine della riproduzione e della registrazione dei contenuti audio tramite browser Web. PortAudio è una libreria open source scritta in C per la gestione dell’input e dell’output audio in tempo reale su diverse piattaforme.
Il lavoro svolto con Wavacity dimostra ancora una volta che dovremmo smettere di chiamare il browser Web così perché di fatto non è più solo un programma per navigare tra le pagine HTML pubblicate online.