Skip to content

Instantly share code, notes, and snippets.

@gabochi
Created October 1, 2024 15:03
Show Gist options
  • Save gabochi/88eecbe6e8c8f1a973441028a0a0ce6c to your computer and use it in GitHub Desktop.
Save gabochi/88eecbe6e8c8f1a973441028a0a0ce6c to your computer and use it in GitHub Desktop.

Machetito para arrancar con el bytebeat

tabla rápida

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

tiempo t

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

shifters << >>

<< 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

bitwise AND &, OR |, XOR ^

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.

formas de onda

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

modulaciones, mixing, envolventes

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

secuencias y progresiones

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

otras operaciones +,-,%,sin,tan

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

todo está por hacerse

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment