Hola! Hace poco (o quizá mucho) escribí la Marcha Imperial de Star Wars en C Sharp y ahora le tocó el turno a BASH! uno de los intérpretes de comandos para GNU/Linux más conocidos
In English…
Hello! Download here: Imperial March GNU/Linux Bash Beep
Para conocer un poco el funcionamiento de Beep en BASH recomiendo leer este pequeño post: Beep Bash.
La partitura (un arreglo simple) para piano y el script: Imperial March Bash Beep
Ésta melodía se agrupa en varias frases las cuales constan de “beeps” y son llamadas en orden según la composición de la melodía, aquí solo una de las frases:
function frase000
{
for ((i=0;i<3;i+=1)); do
pitido ${SOL[3]} $NEGRA;
done;
pitido ${RES[3]} $CORCHEAP;
pitido ${LAS[3]} $FUSA;
pitido ${SOL[3]} $NEGRA;
miSiSol;
}
La función anterior reproduce un bucle con la nota SOL de la 3ra octava +1 (los arrays comienzan de 0), por lo cual estaría tocando SOL SOL SOL y cada sol con la duración de una NEGRA, luego de ello llamamos a la funcion miSiSOl, el cual reproduce dichas notas
, como verán el código es entendible, la función “pitido” recibe 2 parámetros, la frecuencia y la duración de la nota, en realidad dicha funcion hace llamado a beep, el pequeño programa que se encarga de producir beeps;
Luego de todo ello he implementado la función trémolo, el cual hace un trémolo intercambiando octavas dependiendo a un lapso de tiempo, la función recibe 3 parámetros y el código es el siguiente:
function tremolo
{
let F1=$1;
let F2=$2;
let DUR=$3
let FU=50;
let FD=25;
while [ $FU -le $DUR ];
do
pitido $F1 $FD;
pitido $F2 $FD;
let FU=$FU+50;
done;
}
Recibimos el primer parametro y lo guardamos como F1 de la misma manera con F2 y DUR (usamos let para evaluar (operar aritmeticamente) las entradas), iniciamos un bucle, mientras FU sea menor que DUR (duración del trémolo) entonces ejecutará 2 pitidos el primero con la primera frecuencia y el segundo con la segunda frecuencia, cada pitido con 25 milésimas de segundo de duración, luego cambiamos el valor de FU y le añadimos su mismo valor incrementado en 50 (la duracion de ambos pitidos).
Descarga y ejecuta el Script
Sin más que escribir les presento: Imperial March Bash Beep Para ejecutarlo necesitamos darle permisos de ejecución y luego escribimos en la carpeta donde guardamos el script ./nombreArchivo.sh o sh nombreArchivo.sh, el script les solicitará un tempo (notas “negras” por minuto [bpm]), recomiendo colocar un tempo entre 100 y 140.
Es IMPORTANTE tener instalado el comando BEEP, si usas un sistema basado en debian basta con escribir “apt-get install beep” en la linea de comandos
¿Algo más? SI! Pronto (cuando disponga de tiempo) escribiré esta misma melodía en userRPL para las calculadoras HP50G



Hola, muy buena la música, lo probé con un tempo de 100 y se me puso la piel de gallina al escucharla. Felicitaciones por el laburo
¡¡Interesante articulo!!
Pues yo poseo una coleccion de codigos fuentes de programas musicales en Clipper, C, C++, Basic y Pascal, aqui un ejemplo:
Tengo pensado grabarlos en video y ponerlos en mi canal de Youtube.
Saludos.
Los enlaces están caídos
Hola felipe! los enlaces nuevamente están online …
Ahora están caidos…
Pronto estarán online estuve moviendo cosas en el servidor y por eso todavia no hay acceso a esa data, salu2