Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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/
- Host: GitHub
- URL: https://github.com/hlorenzi/theorytracker
- Owner: hlorenzi
- Created: 2015-12-03T10:21:00.000Z (about 9 years ago)
- Default Branch: main
- Last Pushed: 2024-09-08T20:34:10.000Z (3 months ago)
- Last Synced: 2024-12-07T20:41:46.973Z (14 days ago)
- Topics: 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
- Language: TypeScript
- Homepage:
- Size: 3.44 MB
- Stars: 117
- Watchers: 10
- Forks: 18
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
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/pXeDXGDThis 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`.