zong-3000
TypeScript icon, indicating that this package has built-in type declarations

0.3.0 • Public • Published

ZONG 3000 – 8bit music for the cyber future

Examples

See https://pmk1c.gitlab.io/zong-3000/ for examples.

Installation

npm install zong-3000

Usage

Create a song by importing the Song class and connecting it to an AudioNode.

import { Song } from 'zong-3000';

const AudioContext = window.AudioContext || window.webkitAudioContext;
const context = new AudioContext();
const song = Song.new({
  // tempo of the song
  tempo: 140,

  // resolution of the drum pattern, and the smallest note value you can have in your tracks
  resolution: 1 / 8,

  // 'straight' or 'swing'
  timing: 'straight',

  // melodies played simulatnously
  tracks: [
    // notes with key and value
    // 'r': rest
    // 's': sharp
    [['c', 3], 1 / 4],
    [['cs', 3], 1 / 4],
    [['d', 3], 1 / 4],
    [['ds', 3], 1 / 4],
    [['e', 3], 1 / 4],
    [['f', 3], 1 / 4],
    [['fs', 3], 1 / 4],
    [['g', 3], 1 / 4],
    [['gs', 3], 1 / 4],
    [['a', 3], 1 / 4],
    [['as', 3], 1 / 4],
    [['b', 3], 1 / 4],
  ],

  // drum pattern
  // 's' = snare
  // 'h' = hi-hat
  // 0 = rest
  drums: ['s', 0, 'h', 0, 'h', 0, 'h', 0],
}, context);

// connect song
song.connect(context.destination);

// play song
song.play();

// pause song
song.pause();

// stop song
song.stop();

// change tempo (while playing)
song.tempo = 120;

// change timing (while playing)
song.timing = 'swing';

Contribution

Feel free to create an issue or merge request. I'd like to see some more examples, so if you have a song you want to show the world, just submit a merge request and add the tag examples.

Readme

Keywords

Package Sidebar

Install

npm i zong-3000

Weekly Downloads

1

Version

0.3.0

License

MIT

Unpacked Size

135 kB

Total Files

27

Last publish

Collaborators

  • pmk1c