Це тижневий виклик №1. Тема: Аудіообробка
Ваше завдання - написати програму, яка записує аудіофайл на диск (у обраному вами форматі), який містить код Морзе для 2015
, тобто
..--- ----- .---- .....
Ви можете вибирати будь-який тип звуку для сегментів, наприклад, одночастотна синусоїда, акорд, шум, якийсь інструмент (наприклад, використовуючи файли MIDI), якщо вони чутні. Однак існують деякі обмеження щодо термінів:
- Короткі сегменти повинні бути не менше 0,2 секунди.
- Довгі сегменти повинні бути принаймні в 3 рази довші, ніж короткі сегменти.
- Перерви між сегментами в межах цифри повинні бути такої ж довжини, як і короткі сегменти.
- Перерви між цифрами повинні бути однакової довжини, як і довгі відрізки.
- Кожен сегмент і перерва може відхилятися до 10% від середньої довжини цього типу сегмента / перерви.
- Весь аудіофайл може бути не довше 30 секунд.
Перерви не повинні бути повністю безшумними, але сегменти Морзе повинні бути чутно голоснішими, ніж перерви.
Зауважте, що ви потрібно написати аудіофайл. Ви не можете просто відтворювати звук, наприклад, використовуючи системні звукові сигнали. Вам дозволяється використовувати будь-яку бібліотеку для обробки формату файлів та створення аудіо, але ви не повинні використовувати вбудовані функції кодування Морзе.
Це кодовий гольф, тому найкоротша відповідь (у байтах) виграє.
Подумайте про посилання на завантаження отриманого аудіофайлу (на SoundCloud або подібному), щоб люди могли перевірити результат, не запускаючи ваш код. Якщо ви завантажуєте в SoundCloud, переконайтеся, що ввімкніть завантаження на вкладці Дозволи доріжки.
Якщо ваш вихід використовує досить незвичайний формат файлу, додайте трохи інформації про те, як відтворити його та / або перетворити його у більш поширений формат і завантажити його.
Приклад треку
Це приклад, створений вручну, трек, який відповідає специфікації та використовує шум для сегментів Морзе (фоновий шум мікрофона, якщо бути точним). Ось посилання на SoundCloud якщо вбудований програвач не працює для вас.
Деталі баунті
Я присуджую нагороду за найкоротший виступ мовою програмування аудіо , тобто мовою, призначеною для синтезу звуку. Цей список не повний, тому сміливо використовуйте іншу мову програмування аудіо, якщо ви знаєте її. Якщо ви не впевнені, чи якусь мову ви хочете використовувати класифікує як мову програмування аудіо, будь ласка, повідомте мене в коментарях чи в чаті , і ми можемо обговорити це.
Зауважте, що ваше подання все ще має відповідати всім правилам - зокрема, він повинен написати файл, який може бути неможливим для всіх мов програмування аудіо. Наприклад, наскільки я можу сказати, gibber може лише відтворювати звук, а не зберігати його у файл.