Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/haszari/kytaime

Browser-based MIDI and audio sequencer
https://github.com/haszari/kytaime

Last synced: 15 days ago
JSON representation

Browser-based MIDI and audio sequencer

Awesome Lists containing this project

README

        

# Kytaime Throwdown
Browser-based MIDI and audio jamming sequencer.

![action shot](img/kytaime-throwdown-ui-example.png)

### How does this work?

- _Section_: a chunk of song, e.g. chorus, verse, bridge, intro, ambient build, etc.
- _Part_: an instrument line or voice within a song, e.g. drums, bass, sub, vocal sample, synth, arp, chords, pad.
- _Pattern_: an individual loop for a part, e.g. bassline 1, main melody, alt verse chords, synth stab.

A song is loaded up horizontally in a coloured _deck_ row. Each section is a cell (column) within the row, with the section name in the top left.

Within a section, the part names are listed as columns, with patterns underneath each part.

Only one section within a row can be played at a time. Within a part, only one pattern can be played at a time.

To toggle _trigger_ for a section or pattern, click the name. Playing sections/patterns are bold, triggered sections/patterns are italics. When something is toggled, it will trigger at the next valid point. In json you can configure start/end beats for patterns, so that they can start and at beats other than default zero (beginning/end of the loop).

### Where is the music data?
All pattern data is hard-coded in hjson.

Audio loops are loaded from local iTunes Media library. MIDI / note patterns are hard-coded in hjson song data.

If you want to experiment with this, you'll need to hack the hjson data, set up your own audio loops etc, and edit `index.js` to load your songs into decks at launch.

### Why?
I wanted to experiment with a more fluid style of sequencing. Similar to Ableton Live and other pattern-grid based approaches, but encode more musically-relevant info into the pattern data so it's easy to experiment with different arrangements live.

Goals:

- Make it easy to experiment and jam with loop-based musical material without it sounding stale and repetitive.
- Free the performer from having to toggle patterns at the exact right moment (or always quantised to loop boundaries).
- Allow for more experimentation with synthesis, effects, mix and arrangement live.

### How to build
- install node.js
- clone repository
- `npm install`
- `npm start`
- open http://localhost:3876/