Bytebeat

Return To bottom
Rules / Requests / Common thread / Changelog / SthephanShi / kOLbOSa_exe / lhphr / PortablePorcelain / HypernovaHeathen / BaenHoHoHo / SArpnt / hcdphobe / OnixIsThePewterGod / Zackx / rubi / psubscirbe / ChrisRM380 / aturned777 / Kouzerumatsu / MT2023 / Decent-Manager-6169 / Chasyxx / Glebguything / absolute197 / ANoUserXD / MarioFan171 / Unname4798 / Slinx92 / emelchenko / LarkeyFactorial / Syranero / Greaserpirate / aniruF / BrokenCircle / trashimpossible3699 / Thinguy / P051T1V3_3G0 / eSlashMachine / botbeat / PrincessPriscillaPT

CAPTCHA
 Deletion password
  • Supported file types are JPG, PNG, GIF, AVIF, WEBP, WEBM, MP4 and MOV.
  • Limit: 4 files, 30 MB per file (60 MB for Passcode users).
  • Images greater than 250x250 will be thumbnailed.
  • 1502 unique users on the board.

9217
photo_2025-09-18_00-42-48.jpg
(565.32KB, 1014x919)
so i was just interested can i turn midi into a bytecode, and the answer is yes but the final code is too big and idk how to optimize it
const fs = require('fs');
const { Midi } = require('@tonejs/midi');

const midiData = fs.readFileSync('song.mid');
const midi = new Midi(midiData);

const sampleRate = 44100;
let notesByteCode = [];

function midiToFrequency(n) {
    return 440 * Math.pow(2, (n - 69) / 12);
}

function getADSRCode(startT, endT) {
    const attack = 50;  
    const release = 50; 
    return `(t<${startT}+${attack}?((t-${startT})/${attack}):t>${endT}-${release}?(${endT}-t)/${release}:1)`;
}

function getByteCode(note) {
    const startT = Math.round(note.time * sampleRate);
    const endT = Math.round((note.time + note.duration) * sampleRate);
    const freq = midiToFrequency(note.midi);
    const velocity = note.velocity || 1; 

    const adsr = getADSRCode(startT, endT);

    return `(t>=${startT}&&t<${endT}?(${velocity}*${adsr}*Math.sin(2*Math.PI*${freq}*t/${sampleRate})*127 + 128):0)`;
}

midi.tracks.forEach(track => {
    track.notes.forEach(note => {
        notesByteCode.push(getByteCode(note));
    });
});

const result = `Math.max(${notesByteCode.join(',')})`;

fs.writeFileSync('result.txt', result);
im curios if someone can fix it for the result being more compact but it can run mario! Here's the link
[Click][https://dollchan.net/bytebeat/#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]

Delete Post  

Rules / Requests / Common thread / Changelog / SthephanShi / kOLbOSa_exe / lhphr / PortablePorcelain / HypernovaHeathen / BaenHoHoHo / SArpnt / hcdphobe / OnixIsThePewterGod / Zackx / rubi / psubscirbe / ChrisRM380 / aturned777 / Kouzerumatsu / MT2023 / Decent-Manager-6169 / Chasyxx / Glebguything / absolute197 / ANoUserXD / MarioFan171 / Unname4798 / Slinx92 / emelchenko / LarkeyFactorial / Syranero / Greaserpirate / aniruF / BrokenCircle / trashimpossible3699 / Thinguy / P051T1V3_3G0 / eSlashMachine / botbeat / PrincessPriscillaPT
Return To top