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