Questa è la sfida settimanale n. 1. Tema: elaborazione audio
Il tuo compito è quello di scrivere un programma, che scrive un file audio su disco (in un formato a tua scelta), che contiene il codice Morse per 2015
, ad es.
..--- ----- .---- .....
Sei libero di scegliere qualsiasi tipo di suono per i segmenti, come un'onda sinusoidale a singola frequenza, un accordo, rumore, alcuni strumenti (ad es. Usando file MIDI), purché sia udibile. Tuttavia, ci sono alcuni vincoli sui tempi:
- I segmenti corti devono avere una lunghezza di almeno 0,2 secondi.
- I segmenti lunghi devono essere almeno 3 volte più lunghi dei segmenti corti.
- Le interruzioni tra i segmenti all'interno di una cifra dovrebbero avere la stessa lunghezza dei segmenti corti.
- Le interruzioni tra le cifre devono avere la stessa lunghezza dei segmenti lunghi.
- Ogni segmento e interruzione possono discostarsi fino al 10% dalla lunghezza media di quel tipo di segmento / interruzione.
- L'intero file audio non può superare i 30 secondi.
Le pause non devono essere completamente silenziose, ma i segmenti Morse dovrebbero essere udibilmente più rumorosi delle pause.
Si noti che è necessario scrivere un file audio. Non è possibile riprodurre l'audio, ad esempio utilizzando i segnali acustici di sistema. Puoi utilizzare qualsiasi tipo di libreria per gestire il formato del file e la generazione dell'audio, ma non devi utilizzare le funzionalità integrate per la codifica Morse.
Questo è il golf del codice, quindi vince la risposta più breve (in byte).
Prendi in considerazione il collegamento a un caricamento del file audio risultante (su SoundCloud o simile), in modo che le persone possano controllare il risultato senza dover eseguire il codice. Se carichi su SoundCloud, assicurati di abilitare i download nella scheda Autorizzazioni della traccia.
Se l'output utilizza un formato di file piuttosto insolito, aggiungere alcune informazioni su come riprodurlo e / o convertirlo in un formato più comune e caricarlo.
Traccia di esempio
Questa è una traccia di esempio generata manualmente che è conforme alle specifiche e utilizza il rumore per i segmenti Morse (rumore di fondo del microfono, per essere precisi). Ecco un link a SoundCloud se il lettore incorporato non funziona per te.
Dettagli sulla taglia
Assegnerò la generosità alla più breve presentazione in un linguaggio di programmazione audio , ovvero un linguaggio progettato per sintetizzare il suono. L'elenco non è completo, quindi sentiti libero di usare un altro linguaggio di programmazione audio, se ne conosci uno. Se non sei sicuro che una lingua che desideri utilizzare sia classificata come linguaggio di programmazione audio, faccelo sapere nei commenti o in chat e possiamo discuterne.
Tieni presente che il tuo invio deve ancora rispettare tutte le regole, in particolare deve scrivere un file, che potrebbe non essere possibile in tutti i linguaggi di programmazione audio. Ad esempio, per quanto ne so, Gibber può solo riprodurre il suono e non salvarlo in un file.