Crie um script para gerar o Deep Note

11

A nota profunda do THX é um dos sons mais reconhecíveis na tecnologia de produção de áudio / vídeo. Segundo seu criador, foram necessárias cerca de 20.000 linhas de código C para gerar o resultado final. Nós podemos fazer melhor do que isso.

Sua tarefa é escrever um script em qualquer idioma que gere um som (para um arquivo ou diretamente para o hardware) que se ajuste à descrição da marca registrada do som THX, conforme fornecido pelo escritório de Patentes e Marcas Registradas dos EUA :

O tema do logotipo THX consiste em 30 vozes em sete compassos, começando em um intervalo estreito, de 200 a 400 Hz, e desviando lentamente para tons pré-selecionados, abrangendo três oitavas. As 30 vozes começam em tons entre 200 Hz e 400 Hz e chegam a tons pré-selecionados, abrangendo três oitavas no quarto compasso. O tom mais alto é levemente desafinado, enquanto há o dobro do número de vozes dos dois tons mais baixos.

Observe que os "arremessos pré-selecionados" devem ser aproximadamente os mesmos que os arremessos na nota profunda THX real, que estão na tecla E plana.

O código mais curto para fazê-lo em qualquer idioma vence.

Joe Z.
fonte
Por favor, evite Import[youtube]respostas
Dr. belisarius
"Gerar" um som geralmente impediria a importação de um som pré-gerado de outro lugar.
Joe Z.
3
As especificações estão muito soltas. Acredito que poderia escrever um programa que possua 30 formas de onda (qualquer) que iniciem em 250 Hz, toque isso por um segundo, divida em três grupos, 250, 500 e 1000 Hz (três oitavas), toque isso por um segundo e termine com o ajuste do grupo de 1000 Hz. Especificar que deveria ser "reconhecível" tornaria a objetividade do vencedor um problema. Eu acho que isso funcionaria melhor como um concurso de popularidade.
Shiona
Estou pensando também agora, o que significa que vou postar uma segunda versão deste problema, que é um concurso de popularidade. (A especificação solta deve resultar em algumas soluções curtas interessantes, pelo menos.) #
318 Joe Z.
2
Já existe uma solução de 140 caracteres .
MSalters

Respostas:

2

C, 323 bytes

#include<math.h>
#define A y=-2*y*y*y+3*y*y
main(i,j,o,e){e=44100;write(1,"RIFF´9WAVEfmt      D¬  ±    data9",44);float r[30],x,y,k,v;for(i=0;i++<30;r[i]=.5-(9*i%7)/7.);for(i=0;i++<9*e;){x=2.*M_PI*i/(0.+e),k=y=1-i/(8.*e),v=0,A,A,A,y=y>1?1:y;for(j=0;j++<30;o=j%6,v+=(7-o)*.1*sin(x*(20<<o)*(1+y*r[j])));write(1,&v,4);}}

(entre outros, caracteres NUL não puderam ser colados na caixa de texto; você pode visualizar ou baixar o arquivo original aqui )

Uso:

gcc deep-note.c -o deep-note
./deep-note > deep-note.wav

Clique aqui para ouvir uma prévia do som gerado!

Mathieu Rodic
fonte
boa tentativa, mas ele acaba soando muito simplificada do original
QWR
2
Eu faço mesmo; o original usa 30 osciladores controlados pelas 20000 linhas de código da pergunta referida na pergunta. Este código-fonte minimalista contém menos de 400 bytes ... O que você oferece?
Mathieu Rodic
1
Parece que o Deep Note passou por uma codificação MP3 de 200 bps amostrada a 1 kHz.
Joe Z.
Ainda assim, +1 por tentar responder a esta pergunta.
Joe Z.