Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/hlorenzi/theorytracker

🎼 HTML5/WebAudio multi-track songwriting app with chord analysis support! -- https://hlorenzi.github.io/theorytracker/
https://github.com/hlorenzi/theorytracker

file-system-access file-system-access-api functional-harmony harmony html5 html5-application music music-analysis music-composition music-notation music-theory music-theory-apps sf2 song soundfont tracker web-app web-application webapp webaudio

Last synced: 6 days ago
JSON representation

🎼 HTML5/WebAudio multi-track songwriting app with chord analysis support! -- https://hlorenzi.github.io/theorytracker/

Awesome Lists containing this project

README

        

# TheoryTracker

[🎼 Try it right now on your browser!](https://hlorenzi.github.io/theorytracker/)

[![Join the Discord server!][badge-discord-img]][badge-discord-url]

[badge-discord-img]: https://img.shields.io/discord/394999035540275222?label=Join%20the%20Discord%20server!&logo=discord
[badge-discord-url]: https://discord.com/invite/pXeDXGD

This is a multi-track piano-roll-style song editor app with an emphasis on music theory,
where notes and chords are color-coded according to the key, and some editing tools
work diatonically.

The app can currently import `.mid` and its own `.ttproj` project files,
which are in plain JSON format.
It can currently export `.ttproj` files and render `.wav` files.

Several soundfonts are readily available from an online repository.

## How to use

### General usage:

* Use the middle or right mouse buttons to pan.
* Hold A to draw elements with the mouse.
* Right-click on an element to change its properties.
* Do a long right-click for a context menu with more commands.
* Double-click on a note block to edit its notes.
* Click on "Project Root" on the breadcrumb bar to exit note editing mode.

* Press Space to toggle playback starting from the cursor.
* Press Esc to rewind.
* Use Backspace to delete incrementally.
* Use Ctrl + Z to undo, and Ctrl + Y
or Ctrl + Shift + Z to redo.

* Also use 1234567
to create notes and chords.

### When elements are selected:

* Use to move.
* Combine with Ctrl for faster movement.
* Use to change the pitch of notes, and the root of chords.
* Combine with Ctrl to change pitch by octaves.
* Combine with Shift to change pitch chromatically.
* Also use ,. to change pitch chromatically.
* Use Shift + to stretch.
* Hold Alt then drag with the mouse to duplicate.

* Press Enter to unselect all.
* Press Delete to delete.

* Use Ctrl + X, C, or V for the usual
cut/copy/paste commands.

## Building from source

Install npm dependencies with `npm install`, then perform a build
with `npm run build`. You can also run `npm run watch` to work locally.

Then, run `npm start` or any other simple HTTP web server from
the repository folder, and navigate to `http://127.0.0.1`.