Coltrane
node-music-theory
Coltrane | node-music-theory | |
---|---|---|
11 | 1 | |
2,298 | 12 | |
- | - | |
3.8 | 10.0 | |
about 1 year ago | about 6 years ago | |
Ruby | Max | |
MIT License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Coltrane
- Command line guitar theory project I started as a means to use Python to learn music theory
- When Vim users do music... *sigh*
-
Ask HN: What open source AI projects do you wish existed?
https://github.com/pedrozath/coltrane Has gotten me thinking about AI for teaching music theory, but I really don't think it is there yet, music theory is far to fuzzy for AI right now. I do think there are niches where it could be quite great, it could absolutely do well in teaching much of counterpoint and classical forms, perhaps even the basics of harmony but it is hard to disentangle harmony from the fuzzy areas and I could see AI doing more damage than good there.
-
Coltrane: A music theory library with a command-line interface
> because none of the commands work
The Readme had some outdated information. Explained better on the issue https://github.com/pedrozath/coltrane/issues/56
> The chords for guitar also are weird. It doesn't seem to be using traditional shapes, but is looking for available notes within a fret range. Which leads to difficult, basically unusable fingerings.
That's a design choice on this library. I tried to rely the least as possible on lookup tables, dictionaries, etc, leaving things to be discovered algorithmically instead. It is a difficult challenge, but for example if someone decides to use an entirely different tuning, the software will provide. The software might also find chords that you have never thought about. What has to be improved here is the sorting mechanism for guitar chords.
> The other functions would be very useful to have, if it worked
Just try running `coltrane` and test it interactively.
-
Open source reverse guitar chord/key/scale finder?
There's this https://github.com/pedrozath/coltrane
-
Has anybody here done programming for music-related projects?
Coltrane music theory library on the command line
node-music-theory
-
Coltrane: A music theory library with a command-line interface
> abstracts certain music related objects (scales, chords)
I've been thinking about that again recently & attempting to resist both creating such an abstraction and re-inventing the wheel. :)
The first format that came to mind for its cross-language potential was essentially "Music Theory expressed in JSON format".
Yesterday I did another search for what current options there might be and after a very circuitous path ended up on an old version of the Tonal Javascript library I've already been using. :D
Specifically:
* https://github.com/Cycling74/node-music-theory/blob/518babe7...
* https://github.com/Cycling74/node-music-theory/blob/518babe7...
But the next abstraction level of associated "operations" (as documented by e.g. https://github.com/Cycling74/node-music-theory/blob/518babe7...) are still expressed in Javascript.
My impression is that there are a few tensions that complicate the creation of a "universal" cross-language/tool solution:
* Static vs dynamic storage/representation. e.g. Do you statically store the set of notes in a scale or store the intervals & the operation(s) needed to generate the result dynamically? e.g. https://github.com/Cycling74/node-music-theory/blob/518babe7...
* Reuse vs reinvention (time taken): When starting out it seems the amount of Music Theory most people want to use & have encoded is quite small. So initially the time required to "re-invent the wheel" is quite small vs time required to find & use a common shared abstraction.
* Reuse vs reinvention (knowledge gained): I know, for me, part of the motivation related to re-inventing the wheel is I also want to learn aspects Music Theory so I can understand/apply the knowledge in potentially non-programmatic contexts also.
I do think there is value in having the knowledge encoded in some manner so it's at least available for re-use for those who want it.
What are some alternatives?
Sonic Pi - Code. Music. Live.
chords2midi - Create MIDI files from numerical chord progressions!
Black candy - A self hosted music streaming server
tonal - A functional music theory library for Javascript
WahWah - Ruby gem for reading audio metadata
textbeat - ð¹ plaintext music sequencer and midi shell, with vim playback and the powers of music theory ð¥
Lol DBA - lol_dba is a small package of rake tasks that scan your application models and displays a list of columns that probably should be indexed. Also, it can generate .sql migration scripts.
glicol - Graph-oriented live coding language and music/audio DSP library written in Rust
premailer-rails - CSS styled emails without the hassle.
trane - An automated practice system for learning complex skills
chordino