What is bitrhythm about ?

Currently this is how you can use code with music,

  1. VST plugins

  2. DAW scripting

  3. Embedded code to interact with electronics

  4. ML approaches

  5. Live coding

  6. Use some weird algorithms / number sequences / hardcoded chords / random numbers

  7. Web Audio / Audio Programming languages

Bitrhythm offers 4-7. In Bitrhythm you get a coding playground to explore and learn webaudio and webgl apis for the purposes of

  1. live visual programming

  2. live audio programming

  3. music sequencing

  4. interactive music

  5. audio visualisation

  6. music learning

Apart from the core html apis, you can also use the following libraries

  1. Tuna

  2. Timbral

  3. Tone.js

  4. Underscore / Rambda

  5. cellx

  6. Magenta.js (Machine Learning)

  7. Three.js / P5.js / D3 / Paper.js

  8. Winamp Visualisations (butterchurn)

<script src="//cdnjs.cloudflare.com/ajax/libs/ramda/0.25.0/ramda.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/tensorflow/1.2.8/tf.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@magenta/music@^1.0.0/es6/core.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@magenta/music@^1.0.0/es6/music_vae.js"></script>

<script sec="https://mohayonao.github.io/timbre.js/timbre.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tunajs/1.0.1/tuna-min.js" type="text/javascript"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.7.77/Tone.js" integrity="sha512-gwSDP1iEKl4KG0wi3N89RAJU91s78jb/TGC6lsbF5IyR2c19Rn7Jl1icK4K4kUiJNwQUEPI7o98T+GJVWNuvIQ==" crossorigin="anonymous"></script>
<script src="/teoria-master/teoria.js"></script>

<script src="https://cdn.jsdelivr.net/npm/p5@1.3.1/lib/p5.js"></script>
<script src="https://cdn.jsdelivr.net/npm/d3@5.7.0/dist/d3.min.js"></script>
<script src="https://threejs.org/build/three.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.12.11/paper-full.min.js"></script>

<script src="https://cdn.jsdelivr.net/npm/butterchurn@2.6.7/lib/butterchurn.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/butterchurn-presets@2.4.7/lib/butterchurnPresets.min.js"></script>

<script src="https://cdn.jsdelivr.net/npm/webmidi@2.0.0"></script>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script src="/nexus-js/dist/NexusUI.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/cellx/1.10.19/cellx.umd.min.js" integrity="sha512-ojEcAP3e6N+n5MDKPW6CexXzuLDahDPkNZmzyRV4t2zqh9nwljJNuV8JGa+xjpnAaGB/FhsAU7P6IHEP0dtJQA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

About Author

I make web apps apps for a living. I started messing with algorithmic composition using pure data around 2011. Although nothing much came out of it musically, it transformed the way I view programming. The unix pipes concept is identical to the data flow model in pure data; albeit with more connections.

For my music I moved onto Electribe, Renoise, Reaper and live looping with my guitar. I started exploring sonic pi in 2019 but TBH none of the live coding tools were doing what I wanted - basically tweaking /knob-twisting in techno so I started my work on this project. This library in sonic pi comes close to what I am trying todo with this project. In bitrhythm time is divided into ticks like renoise tracker.

After my initial work on the project in 2019, the project got sidetracked. After seeing endless acid banger I had an epiphany to work on this project again. I was able to compose an endless and interactive dubtechno demo track. In March 2021, I also picked up on literate programming so this document will have both code and documentation intertwined.

The documentation for the literate programming project - wheel is available here.

Support this project

My goal is to make bitrhythm easy for both professionals and music learners. Support my work to get regular updates. Supporters will also get free accounts when I add pro features! Also get notified on latest developments and tutorials in the web audio world.

Support Bitrhythm

You can find me on theaudioprogrammer and algorave discord as @xyzzy.

Future Features

  • Saving Songs

  • More Synths with Presets

  • Visualisation Presets

  • Autocomplete Rhythms and Chords

  • Automation Recording

  • Version Control

  • Record

  • Midi Support

  • More tutorials and examples on Web APIs

  • Synthesizer

  • Collaboration

  • Adding DJ Transition / Hints support