scieee AI-readable full text Open interactive document viewer

Bitrhythm - Music IDE to make modern electronic music

Harsha M

Abstract

Bitrhythm is a tiny Javascript IDE that can work with web using webaudio or DAWs using JUCE. Existing DAWs provide seqeuencer UIs and staff notation which are far too complex and piano-centric to help with a broad range of music styles. The sequencer notation used in Bitrhythm is inspired by tracker notation but with added changes like allowing unicode and alternate notation for hexadecimals. A programming langage is also sufficient in-itself as a sequencer notation, while providing other benefits like allowing the musician to develop custom notation and workflows. While there is a slight learning curve - things like state, contraints, conditionals, loops and timers can greatly aid in sequencing music. Moreover simple containers like arrays can be used to model knobs for doing parameter automation in electronic music. While Tone.js is useful for sound design, using JUCE to embed a webview can help in other aspects of music like mastering, sampling, sound design and recording. The approaches taken here are useful to create a new style of music making called Hard Coding, similiar to executable music of the demoscene community, which can make music making open source and github the new soundcloud.

Full text

Bitrhythm Music IDE to make modern electronic music Harsha M ([email protected]) – Independent music developer Introduction Music is sequencing plus sound design. Can a text-driven interface replace and improve over DAW workflows, without sacrificing quality ? If DAW primitives were provided as building material to the musician, how easy is it for musicians to program their own workflow ? Description Bitrhythm is a tiny Javascript IDE that can work with web using webaudio or DAWs using JUCE. Existing DAWs provide seqeuencer UIs and staff notation which are far too complex and pianocentric to help with a broad range of music styles. The sequencer notation used in Bitrhythm is inspired by tracker notation but with added changes like allowing unicode and alternate notation for hexadecimals. A programming langage is also sufficient in-itself as a sequencer notation, while providing other benefits like allowing the musician to develop custom notation and workflows. While there is a slight learning curve - things like state, contraints, conditionals, loops and timers can greatly aid in sequencing music. Moreover simple containers like arrays can be used to model knobs for doing parameter automation in electronic music. While Tone.js is useful for sound design, using JUCE to embed a webview can help in other aspects of music like mastering, sampling, sound design and recording. The approaches taken here are useful to create a new style of music making called Hard Coding, similiar to executable music of the demoscene community, which can make music making open source and github the new soundcloud. Acknowledgments My work would not have been possible without experiments like Endless Acid Banger by Vitling and libraries like Tone.js and JUCE which provide extensive documentation. I am also grateful for trackers like Renoise, OpenMPT and free DAWs like Reaper which I use daily for my work and inspiration. 1 Biographies Harsha M Harsha M is an independent software developer specialising in tools for poets, writers, designers, musicians, video editors, animators and data/vfx pipeline engineers. He did his masters from BITS Pilani - Rajasthan, India and has extensive experience in architecting web apps and creative apps for startups and corporates alike. His work in programming and music has been presented at conferences like Clojure Conj 2014, ADC 2021. He has 5 self-published albums so far, has done 3 music videos and is currently working on an animation series. Licensed under a Creative Commons Attribution 4.0 International License (CC BY 4.0). Attribution: owner/author(s). Web Audio Conference WAC-2025, November 19–21, 2025, Paris, France. © 2025 Copyright held by the owner/author(s). 2 About me Web dev + Musician Early adopter - Fabric, React ... Apps for Artists Music: Electribe, Renoise, Reaper, Guitar + Looper Genres: Techno, Lo-Fi / Trip Hop, Post Punk Bitrhythm Tabs Humming Tracker Pure Data Live Coding Samplers History 2016 ~ first scripts 2020 ~ first prototype 2021 ~ ADC, ICLC Tonejs, WAM2 and Sonic Pi - Improve! 2024 ~ JUCE 2025 ~ JUCE + Duktape, Notebook Demo Splines and Curves k1 = spline(xs, ys) *(250,2) / \ / \ / \ *(800,1.25) *(0,1) *(500,1)/ \ \ / \ \ / *(1000,0.75) \ / *(750,0.25) Articulation Per note articulation is better on instruments Carnatic is long notes, slow tempo + rapid articulation (frequency, volume) Carnatic Monophonic Counter point as signal follower Call and reponse as delayed counterpoint Bonus Alerts Keyboard Triggers Music Coding Genres 1. Interactive // Touch Designer 2. Adaptive // Games 3. Physical 4. Neural 5. Network 6. Creative // Demoscene 7. Algorithmic 8. Live 9. Machine // Robot 10. Hard Hard Coding Music is sequencing + sound design Most sequencing is just data Trackers Tabs ControlNets DIY or DIA ? Advantages of Web 1. URLs 2. Easy to prototype 3. JS + Web Audio > Sheet music 4. Hyperlink Art 5. Literate Programming is HyperText. Art is a good usecase ? 6. Music as an executation and versionable notebook See: Javascript Systems Music JUCE 1. Save plugin state 2. UI->Render / Resize 3. Audio + Midi Callback Need 1. UI component library 2. Better timer 3. WebKit give C++ api to pull web audio output 4. Encrypted Code 5. Tone js but with WAM support Credits 1. Endless acid banger 2. Scribbler 3. Tone js