Dies ist die wöchentliche Herausforderung Nr. 1. Thema: Audioverarbeitung
Ihre Aufgabe ist es, ein Programm zu schreiben, das eine Audiodatei auf eine Disc schreibt (in einem Format Ihrer Wahl), die den Morse-Code für enthält 2015
, d. H
..--- ----- .---- .....
Sie können eine beliebige Art von Klang für die Segmente auswählen, z. B. eine Sinuswelle mit einer Frequenz, einen Akkord, Rauschen oder ein Instrument (z. B. mithilfe von MIDI-Dateien), sofern dies hörbar ist. Es gibt jedoch einige Einschränkungen für das Timing:
- Kurze Segmente müssen mindestens 0,2 Sekunden lang sein.
- Lange Segmente müssen mindestens dreimal so lang sein wie kurze Segmente.
- Unterbrechungen zwischen Segmenten innerhalb einer Ziffer sollten genauso lang sein wie kurze Segmente.
- Pausen zwischen den Ziffern sollten genauso lang sein wie lange Segmente.
- Jedes Segment und jeder Bruch kann bis zu 10% von der durchschnittlichen Länge dieses Segments / Bruches abweichen.
- Die gesamte Audiodatei darf nicht länger als 30 Sekunden sein.
Die Pausen müssen nicht ganz leise sein, aber die Morse-Segmente sollten hörbar lauter sein als die Pausen.
Beachten Sie, dass Sie haben eine Audiodatei zu schreiben. Sie können den Ton nicht einfach abspielen, z. B. mit Systemtönen. Sie können jede Art von Bibliothek verwenden, um das Dateiformat und die Audiogenerierung zu verwalten. Sie dürfen jedoch keine integrierten Funktionen für die Morsekodierung verwenden.
Dies ist Codegolf, daher gewinnt die kürzeste Antwort (in Bytes).
Überlegen Sie sich, ob Sie einen Link zu einem Upload der resultierenden Audiodatei (in SoundCloud oder ähnlichem) erstellen möchten, damit die Benutzer das Ergebnis überprüfen können, ohne Ihren Code ausführen zu müssen. Wenn Sie auf SoundCloud hochladen, müssen Sie das Herunterladen auf der Registerkarte "Berechtigungen" des Tracks aktivieren.
Wenn Ihre Ausgabe ein eher ungewöhnliches Dateiformat verwendet, fügen Sie einige Informationen zum Wiedergeben und / oder Konvertieren in ein gängigeres Format hinzu und laden Sie es hoch.
Beispielstrecke
Dies ist eine manuell erzeugte Beispielspur, die der Spezifikation entspricht und für die Morse-Segmente Rauschen verwendet (genauer gesagt Mikrofon-Hintergrundrauschen). Hier ist ein Link zu SoundCloud, falls der eingebettete Player für Sie nicht funktioniert.
Kopfgeld-Details
Ich werde die Prämie für die kürzeste Einsendung in einer Audio-Programmiersprache vergeben , dh einer Sprache, die zur Synthese von Ton entwickelt wurde. Diese Liste ist nicht vollständig. Sie können daher auch eine andere Audio-Programmiersprache verwenden, sofern Sie eine kennen. Wenn Sie nicht sicher sind, ob eine Sprache, die Sie verwenden möchten, als Audio-Programmiersprache klassifiziert ist, lassen Sie es mich bitte in den Kommentaren oder im Chat wissen , und wir können darüber diskutieren.
Beachten Sie, dass Ihre Einreichung immer noch allen Regeln entsprechen muss - insbesondere muss sie eine Datei schreiben, die möglicherweise nicht in allen Audio-Programmiersprachen möglich ist. Zum Beispiel kann gibber , soweit ich das beurteilen kann, den Sound nur abspielen und nicht in einer Datei speichern.