bb waveforms

This commit is contained in:
Jade (Rose) Rowland 2025-05-28 16:36:53 +02:00
parent faa60be211
commit 1e3f546918
2 changed files with 64 additions and 9 deletions

View file

@ -147,8 +147,24 @@ export function registerSynthSounds() {
registerSound(
'bytebeat',
(begin, value, onended) => {
const defaultBeats = ['(t%255 >= t/255%255)*255', '(t*(t*8%60 <= 300)|(-t)*(t*4%512 < 256))+t/400', 't'];
const { n } = value;
const defaultBeats = [
'(t%255 >= t/255%255)*255',
'(t*(t*8%60 <= 300)|(-t)*(t*4%512 < 256))+t/400',
't',
't*(t >> 10^t)',
't&128',
't&t>>8',
'((t%255+t%128+t%64+t%32+t%16+t%127.8+t%64.8+t%32.8+t%16.8)/3)',
'((t%64+t%63.8+t%64.15+t%64.35+t%63.5)/1.25)',
'(t&(t>>7)-t)',
'(sin(t*PI/128)*127+127)',
'((t^t/2+t+64*(sin((t*PI/64)+(t*PI/32768))+64))%128*2)',
'((t^t/2+t+64*(cos >> 0))%127.85*2)',
'((t^t/2+t+64)%128*2)',
'(((t * .25)^(t * .25)/100+(t * .25))%128)*2',
'((t^t/2+t+64)%7 * 24)',
];
const { n = 0 } = value;
const { byteBeatExpression = defaultBeats[n % defaultBeats.length] } = value;
const ac = getAudioContext();