⌈⌋ branch:  Bitrhythm

Artifact Content

Artifact db1d022637a4d410e4de8a47bc56a49d0563d739adac84f4920cb6d64a15dfa4:

  • File source/tweaking.md — part of check-in [a03a381331] at 2021-11-16 10:11:35 on branch trunk — Cleanup of Docs (user: dev size: 3537)

Core Features

Sequencer Notation

Bitrhythm only supports rhythmic notations and is geared towards electronic music. My current goal is to produce an IDM track, a DNB track and a Chiptune with complex rhythmic patterns. As for Techno the current setup seems alright but more support for DJ style transitions are needed.

You can treat a musical scale as no different than a drumset. The pentatanic scale approximately maps to a drumset and you can use techniques from melodic drumming with multiple samples. This is typically how drummers approach guitars.

Tweaking and Transitions

These are key to making electronic music. Tweaking is also called Automation and knob-twisting by hardware users.

Modern music has evolved to be standalone but it retains elements of theatrical story telling. You can divide a song into verses and sections. In the documentation, we will use the terms from plays - scenes. Within each musical scene you typically have,

  • Background: You use layers of rhythm and groove to set the mood.
  • Foreground: Lead (Soliloquy), Counterpoint(Character Conflict), Call Response(Dialogues), Motif, Ornaments (Exposition)

In screenplays you also have a setup / payoff dynamic.

Setup - Obstacles - Challenges - Forces - Context

In Electronic Music the foreground is mainly developed via Tweaking. Tweaking effectively functions for the purposes of Exposition and Conflict. Chorus, Fade, Drop are used for transitions typically in electronic music. To compare the foreground in others,

Classical Music: Counterpoint and Harmony
Rock: Call Response

To make a complete song in bitrhythm use bars to trigger multiple transitions.

Essentially a DJ is like a conductor. Loops are like individual instrumentalists.

  1. Cueing -> Mute / Solo
  2. Dynamics -> Volume
  3. Ornamentation -> Cutoff
  4. Tempo, Beat Counting -> Beat Matching

Is Bitrhythm Maths heavy ?

You will need some basic maths operations to understand and use bitrhythm effectively. These operations are about working with lists of numbers and lists of strings.

Some common operations on lists include

  • Rotate
  • Invert
  • Slicing
  • Choose
  • Reverse
  • Shuffle
  • Filter
  • Map

Other math operations are useful for working with envelope ranges,

  • Clamp
  • Ramp
  • Waves

Programming is not that difficult. Programming is about organising reactions to events. A typical event comes from

  1. The timer
  2. User interface elements like sliders and dials
  3. Data change

A typical reaction to an event (often called a handler) either changes data or displays data. A data change triggers more events. Other programming concepts needed for birthythm

As Tone.js provides the bulk of sound generation in Bitrhythm you should make youself comfortable with its APIs.

You will also need to understand

  • Conditions
  • Loops
  • Functions
  • Javascript Math.random
  • Modulo Arithmetic
  • SetInterval Timers

What comes next - This is the pertinent question when composing music. If you are feeling adventurous you can try to use,

  1. Mathematical patterns like fibonacci series, geometric series, pi, fractals ...
  2. Neo-Riemannian_theory, Combinatory theory
  3. Sacred Geometry
  4. Circle of fifths, chord progressions
  5. Set transformations like inversion on Scales
  6. Licks from books
  7. Randomness, I Ching, Playing Cards