Este é o Desafio Semanal # 1. Tema: Processamento de Áudio
Sua tarefa é escrever um programa que grave um arquivo de áudio em disco (em um formato de sua escolha), que contenha o código Morse para 2015
, ou seja,
..--- ----- .---- .....
Você é livre para escolher qualquer tipo de som para os segmentos, como uma onda senoidal de frequência única, um acorde, ruído, algum instrumento (por exemplo, usando arquivos MIDI), desde que audível. No entanto, existem algumas restrições no tempo:
- Segmentos curtos precisam ter pelo menos 0,2 segundos de duração.
- Os segmentos longos precisam ter pelo menos três vezes o tamanho dos segmentos curtos.
- Quebras entre segmentos dentro de um dígito devem ter o mesmo comprimento que segmentos curtos.
- Quebras entre dígitos devem ter o mesmo comprimento que segmentos longos.
- Cada segmento e intervalo pode se desviar em até 10% do comprimento médio desse tipo de segmento / intervalo.
- O arquivo de áudio inteiro não pode exceder 30 segundos.
Os intervalos não precisam ficar completamente silenciosos, mas os segmentos Morse devem ser audivelmente mais altos que os intervalos.
Observe que você precisa escrever um arquivo de áudio. Você não pode apenas tocar o som, por exemplo, usando bipes do sistema. Você tem permissão para usar qualquer tipo de biblioteca para lidar com o formato de arquivo e a geração de áudio, mas não deve usar recursos internos para a codificação Morse.
Isso é código de golfe, então a resposta mais curta (em bytes) vence.
Por favor, considere vincular a um upload do arquivo de áudio resultante (no SoundCloud ou similar), para que as pessoas possam conferir o resultado sem precisar executar seu código. Se você fizer o upload para o SoundCloud, ative os downloads na guia Permissões da faixa.
Se sua saída usar um formato de arquivo bastante incomum, adicione algumas informações sobre como reproduzi-la e / ou convertê-la para um formato mais comum e carregá-la.
Exemplo de faixa
Esta é uma faixa de exemplo gerada manualmente que está em conformidade com as especificações e usa ruído para os segmentos Morse (ruído de fundo do microfone, para ser mais preciso). Aqui está um link para o SoundCloud se o player incorporado não funcionar para você.
Detalhes da recompensa
Atribuirei a recompensa ao envio mais curto em uma linguagem de programação de áudio , ou seja, uma linguagem projetada para sintetizar som. Essa lista não está completa, portanto, fique à vontade para usar outra linguagem de programação de áudio, se você souber uma. Se você não tiver certeza se algum idioma que deseja usar é classificado como idioma de programação de áudio, entre em contato nos comentários ou no bate-papo , e podemos discutir isso.
Observe que seu envio ainda precisa cumprir todas as regras - em particular, ele precisa gravar um arquivo, o que pode não ser possível em todas as linguagens de programação de áudio. Por exemplo, até onde eu sei, o gibber pode apenas tocar o som e não salvá-lo em um arquivo.