token | explicación | ejemplos |
---|---|---|
t |
tiempo, frecuencia fundamental | t ,t*2 ,t/2 |
<<,>> |
bitshifters, cambio de octava, figura rítmica, etc | t<<3 ,t>>4 |
&,|,^ |
AND OR y XOR, moldean, modulan, mezclan, son los operadores más característicos | t&150, t|150, t&t*.99, t|t*5.01, t^255, t&t>>4, t|t>>4 |
+,-,% |
después de ciertas modulaciones, estas operaciones generan distorsiones rítmicas | (t&t>>5)-50, (t|t>>5)+50, (t&t>>5)%270, (t|220)%190 |
t
es por tiempo y es la única variable que necesitamos, acelerando o realentizando t
vamos a conseguir ritmos, melodías y progresiones.
t * 5 # multiplicando aceleramos
t / 3 # dividiendo realentizamos
<<
y >>
desplazan n bits a la derecha o la izquierda, la manera más práctica cambiar de octava o subdivisión rítmica.
t << 4 # un tono agudo
t >> 4 # una figura rítmica lenta
Los operadores bitwise comparan lógicamente valores bit por bit y devuelven un resultado, suena difícil pero en realidad sirven para un montón de cosas y son lo más característico del bytebeat.
t & 150 # AND es una especie de techito, distintos valores dan distintas formas
# lo importante es que ninguna sobrepasa al operando más pequeño
t | 150 # OR es lo contrario, una especie de base o piso,
# ningún valor queda debajo del operando más pequeño
t ^ 150 # XOR es más raro, digamos que produce distorsiones en la fase de la onda
t ^ 255 # como en este caso, que invertimos la fase completamente
t & t * .999 # si en lugar de usar un operando fijo usamos otra onda provocamos una modulación
t | t * .999 # en estos casos, modulamos dos frecuencias muy cercanas para producir un efecto de barrido o batimento
t ^ t * .999
t & t*5.01 # pero podemos modular frecuencias distintas y generar algo parecido a una mezcla de las dos
t | t*5.01 # en este caso tenemos una tercera mayor, un poco desafinada para, además, producir otro batimento
t ^ t*5.01
t & t>>4 # algo muy útil es usar estas modulaciones como una especie de envolvente
t | t>>4 # modulando una onda rápida o melódica con una onda lenta o rítmica
Como el procesamiento de audio digital es discreto, podríamos decir que todo es un secuenciador de amplitudes. Por eso, con estos elementos simplemente se trata de controlar los rangos y los tiempos de cada señal.
t>>8 & 150 # tomemos una de las formas que probamos pero realenticemos mucho a t
# si observamos el gráfico vamos a notar todos los pasos de la secuencia
(t>>8 & 150) * t # ahora solamente es cuestión de asignar esos valores a cualquier cosa
# por ejemplo, el pitch de t
t & t>>4 & t>>10 # acá tenemos una progresión clásica por concatenación, muy simple
# el primer & es el ritmo más corto, el segundo es más lento y avanza cada X vueltas del primero
Todas las operaciones aritméticas y trigonométricas pueden utilizarse y hay algunos truquinis para generar efectos interesantes.
t<<((t>>10) %3 ) # con módulo podemos controlar secuencias de n pasos
(t|t>>5) %150 # también romper la onda y generar distorsiones irregulares
(t+t %13 )
(t&t>>4) -50 # sumando o restando al final de una modulación también forzamos la onda y generamos ritmos
(t|t>>4) +50
t*tan(t>>9) # también se pueden usar funciones trigonométricas para secuenciar
sin(t/8)*127+127 # generar ondas menos agresivas o lo que se nos ocurra
Todos estos consejos sirven para acercar el bytebeat a las formas en que tradicionalmente entendemos la composición y el diseño sonoro pero esta locurita tiene sus propia lógica particular y miles de cosas quedan todavía por inventarse o descubrirse.
((t | 110) % 155) # vengo jugando mucho con esta forma, un | y luego un % para generar ritmos irregulares minimalistas
((t | 110) % 155) -30 # se pueden acentuar y complejizar con todo lo que vimos anteriormente