Giter VIP home page Giter VIP logo

hlorenzi / theorytracker Goto Github PK

View Code? Open in Web Editor NEW
112.0 10.0 18.0 3.23 MB

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

JavaScript 22.01% HTML 0.08% Batchfile 0.04% TypeScript 77.86%
web-app web-application music song music-composition music-theory functional-harmony music-analysis harmony music-notation

theorytracker's Introduction

TheoryTracker

๐ŸŽผ Try it right now on your browser!

Join the Discord server!

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.

theorytracker's People

Contributors

hertzdevil avatar hlorenzi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

theorytracker's Issues

Keycodes map to incorrect keys

The backspace key is supposed to delete notes, but on my machine, it's the 8 key, instead. I think this is because it's interpreting the keycodes that are given in the source code as characters, and not as keycodes.

I'm using Google Chrome on Windows 10. Also tested with Firefox. By the way, Firefox uses the backspace key as a back button, so that could cause issues.

Export to MIDI

This tool is fantastic, but to fit it into my actual workflow, I need to be able to export to MIDI. Any chance of seeing that? It's a feature that would also give you a benefit over Hookpad..

Add a license!

This isn't actually open source until you add a license. I personally favor the GNU AGPLv3+ as the one license that requires that any derivative use of your code continue spreading the freedoms to others (by keeping the same license terms). But there are some arguments for more loose licenses that allow anyone to do anything (including make restricted, non-open derivatives), so MIT is the most popular there.

https://help.github.com/articles/adding-a-license-to-a-repository/

Does not seem to import the chords from a midi File

Hello,
Thanks for your work, its pretty impressive,,,,
I imported several midi file (with the button load..) but it does'nt seem to import the chords, only the notes,
Is there any function to also import the chords ?
Thank you,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.