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

1.1.0 • Public • Published

cotone.js

MIDI tick converter library for rhythm action game development.

About

Since timescale of music depends on it's tempo (BPM), music note data are usually managed by MIDI-tick unit instead of real-time in common music editing apps.

This library provides features for converting MIDI-tick <-> real-time, and also utils for drawing notes in rhythm action game app (which has note-speed changing feature by tempo).

Sample app

See following codesandbox project https://codesandbox.io/s/cotone-sample-938j8

Usage

Install

npm install cotone

Basic example

First, let's create an instance of key class, Converter.

import { Converter } from 'cotone'

const converter = new Converter()

Optional
The converting result depends on how you define the tick-unit value for quarter notes (This value is usually called "timebase", "ticks-per-quarter-note", "TPQN", etc.). Default is set to 480, but you can customize it with setTimebase

converter.setTimebase(480)

Then, set the tempo using setTempo.

// BPM: 128
converter.setTempo(128)

Now we're ready for conversion.
Assume we have a note data like below.

const noteTicks = [
  480, 960, 1920,
  // ... and so on
]

If you want real-time scale of these notes to schedule-play sounds, you can do like this.

const sound = new Audio('path/to/mysound.wav')
const noteRealSeconds = noteTicks.map(tick => converter.convertTickToSec(tick))

noteRealSeconds.forEach(noteSec => {
  setTimeout(() => {
    sound.play()
  }, noteSec * 1000)
})

Misc

Traditional browser style
<script src="path/to/cotone.js"></script>
<script type="text/javascript">
  const converter = new cotone.Converter()
  // Same as above...
</script>

Advanced

TODO

Documentation

TODO

Development

Build

You should run npm install once to prepare building condition.

Dev

npm run dev

Production

npm run build

Test

npm run test

Readme

Keywords

Package Sidebar

Install

npm i cotone

Weekly Downloads

1

Version

1.1.0

License

MIT

Unpacked Size

59.5 kB

Total Files

12

Last publish

Collaborators

  • pentamania