bach-cljs

3.0.0-beta.1 • Public • Published

bach

🎼 Semantic music notation


build npm clojars

Introduction

bach is a semantic music notation designed to be both human and computer friendly.

Although its primary domain is music, bach enables the synchronization of rhythmic timelines with just about anything.

⚠️ The project is still considered experimental should not be used in production.

Documentation

Before diving into the docs, please note that bach is a new data format, so naturally there is limited tooling and integration support for it today.

But whether you're an adventerous musician or a developer exploring bach for their project, we advise that you read our Guide page since it provides the most comphrensive overview of bach available.

Example

The following bach data represents the loopable progression of a rock backing track.

🎹 Try running it in the bach editor!

@meter = 4|4
@tempo = 83

:A = [
  3/8 -> {
    scale('E aeolian')
    chord('Em9')
  }
  5/8 -> chord('C')
  3/8 -> chord('Em9')
  4/8 -> chord('C')
  9/8 -> chord('C/D')
]

:B = [
  3/8 -> chord('B')
  5/8 -> chord('Em9')
  1 -> chord('Em9')
]

:C = [
  3/8 -> chord('B')
  5/8 -> chord('G')
  1 -> chord('G')
]

play! [
  7 of :A
  2 of :B
  3 of [
    :C
    when !{ last? } do { :B }
  ]
  3/8 -> chord('B')
  5/8 -> chord('Em9')
  1 -> chord('B7b13')
]

You can find more examples of bach in the Examples page of the documentation.

License

MIT

/bach-cljs/

    Package Sidebar

    Install

    npm i bach-cljs

    Weekly Downloads

    1

    Version

    3.0.0-beta.1

    License

    MIT

    Unpacked Size

    545 kB

    Total Files

    38

    Last publish

    Collaborators

    • slurm