[HN Gopher] Coltrane: A music theory library with a command-line... ___________________________________________________________________ Coltrane: A music theory library with a command-line interface Author : robenkleene Score : 241 points Date : 2023-03-10 11:02 UTC (1 days ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | tmountain wrote: | As a journeyman jazz guitarist and music theory enthusiast, I | can't wait to check this out! | [deleted] | [deleted] | gusmd wrote: | This is awesome! I've been using https://jguitar.com/ for quite | some time, specially the scales portion of it. I'll give this a | try! | kettunen wrote: | This is very cool! Sometime ago I ended up starting a similar | project in Common Lisp, but then life happened and it has stayed | as WIP for quite a while already... Maybe now I don't need stress | about finishing it since this seems quite handy! | flipcoder wrote: | My text-based music sequencer supports some music theory concepts | and also has a shell: | | https://github.com/flipcoder/textbeat | huimang wrote: | I must be the only one here who downloaded it to try it out, | because none of the commands work. See issue#56, I just get | "abnormal end". It also hasn't been updated since 2021. | | 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. | | The other functions would be very useful to have, if it worked. | Maybe one day I'll write a similar CLI tool. | marai2 wrote: | Does anyone have recommendations for music theory from complete | basics? Like I don't even know what a pitch is, what a tone is? | | Any recommendations would be much appreciated - books, videos, | tutorials? | eigenvalue wrote: | Check out Gracie Terzian on YouTube if you're a total beginner | and getting overwhelmed by other music theory sources. Her | speciality is really breaking things down and simplifying as | much as possible. | ck45 wrote: | https://www.youtube.com/@GracieTerzian is a really good | teacher. | petercooper wrote: | Yes, Rick Beato. He covers all sorts of stuff to different | extents. Like music theory in ten minutes: | https://www.youtube.com/watch?v=mWpXy57-mvc .. but he has | hundreds of videos on keys, modes, analyzing popular music, the | works. | | If you really know _nothing_ you might enjoy this attempt at | explaining harmony at five different levels from a child to | Herbie Hancock: https://www.youtube.com/watch?v=eRkgK4jfi6M | lst68 wrote: | Rick Beato also has a book and interactive courses that are | on sale at the moment: https://rickbeato.com/ (I have bought | the bundle, but I haven't had time to check it out yet.) | | An other useful channel I can recommend is | https://www.youtube.com/@DavidBennettPiano | gramie wrote: | Don't feel rushed, Rick's content is _always_ on sale. I | don 't have first-hand knowledge, but have read some | criticisms that the "Beato Book" is not always coherent or | well organized. That said, I believe he has recently made | substantial revisions, and added a lot of on-line content. | | Probably not the worst way to spend ~$100! | ofalkaed wrote: | A teacher is by far the best way to go, failing that The | Complete Musician is the best book/source I have seen for self | study. The problem with self study is that the basics of | harmony/triads seems very simple and people plow through it and | think they understand than get completely stuck. Everything is | built on harmony and if you do not understand it you will not | progress. If you go with self study remember that if you are | stuck it means you did not understand what came before, go back | and figure out what you missed, which is where a teacher is | very handy since they will have a much better idea about what | you missed than you do. | Mizza wrote: | Looks awesome, love the tab view. | | If there other hackers who make music here, I wrote this: | | https://github.com/Miserlou/chords2midi | | for writing chord progressions on the command line. I use it for | building progressions which I drag into my DAW. It has voice | leading, which required me translating an algorithm from 18th | century German musical textbook into Python. I don't speak German | and there were no unit tests in the 1700s so I'm only fairly | certain that it works properly. | | I will make a plugin version once ableton supports CLAP. | ck45 wrote: | This looks really awesome! Do you know | https://www.mellowood.ca/mma/ and if yes, do you mind doing a | short feature comparison? | | Edit: I just checked if it's worth submitting, but it has | already been submitted: | https://news.ycombinator.com/item?id=30903980 | Mizza wrote: | Wow, never seen that before. This seems more like a whole | plaintext musical language, like mma is to midi what markdown | is to HTML. Mine is just a way for somebody in a hurry to get | the MIDI chords they want without putting all of the notes in | manually. | scns wrote: | Awesome! Please do a Show HN when the plugin is done. | originalcopying wrote: | I'm on a (possibly multi-)lifetime quest to understand this | better. | | all of what this music library does comes out of the concept of | the music keyboard, which is (in my head) the same as the 12-note | _" meta"_-scale which is a system that enables 12 different | version of 7 note scales. | | in this view, a scale does not begin in any specific note; this | perspective of "scale" goes beyond the typical music theory view. | understanding 'scales' like this implies that the major and minor | 'scales' are the same 'scale'. I should choose another vocabulary | term for this quasi-scale idea (semiscale?) | rdlw wrote: | If you are talking about a set of seven notes, that is not a | scale. C and Am have the same notes, but a different tonic, but | they are different scales, so a scale is defined by the notes | it contains and the mapping of scale degrees to those notes. | | What you are describing, seven notes that do not 'start' | anywhere, is the set of all scales that are enharmonic with a | given scale, meaning they have all the same notes. These scales | are said to be relative to each other: Am is the relative minor | of C. | | I think what you're trying to get at is that when you don't | consider any note to be the tonic, and play freely in a set of | seven notes, you can play more expressively. If you change the | tonic without changing the notes in the scale, you are now | playing in a different mode. | | For example, if you started in C, playing the notes CDEFGAB, | you are playing in C Ionian (much more frequently just called C | Major). If you change the tonic to A, the scale is now ABCDEFG, | or A Aeonian (much more frequently just called A minor). Now if | you change the tonic to D, the scale is DEFGABC, or D Dorian. | originalcopying wrote: | yea, but for some reason I don't think I could explain very | well (which is a problem), I am trying to _somehow_ consider | all those 7 notes (and their 7 modes) as the same 'scale'. | As I said, I need to find another term to refer to this way | to consider the intervalic structure as if it were one thing. | | Essentially I'm trying to grab a 'scale' and combine it with | all it's conjugate words (or circular shifts) [1,2] and I | don't know what to call this thing but I'm interested in it. | | Why? because of how I choose to understand the origin of the | 7 note major scale: | | you take any note (the base tone) and multiply the frequency | by 3. this creates a fifth (plus one octave). I'll keep in | mind that 'the octave' is defined by multiplying the | frequency by 2. | | then, fit the fifth (base tone * 3) into only one octave | (3/2). And repeat 'recursively'. | | This is the famous circle of fifths, but we all knew that. | Finally, after twelve repetitions we're back on the same | note, but an octave above. (but why? why stop at twelve? I'm | still working through this answer, but it has something to do | with convergence maybe? or just the fact that after 12 notes | we have now landed within two notes which we 'found' | already???) | | With this in mind, we have two different ways to sort all | notes. Sequentially within a single octave, like on the piano | or a guitar. Or in the way which we generated them out | repeating 3/2. | | If we only did 7 notes (instead of 12) we would get these two | ways to sort: | | ABCDEFG;ABCDEFG; ABC...there are 8 octaves in a piano | | CGDAEB... F# C# .... C | | I just cannot yet get over the fact that this is not a | conjugate (not a circular shift) but a full on permutation, a | shuffling of the notes. | | By this point, it should be apparent that the labels we use | for the notes are but a minor detail. I'm trying to abstract | all this away from the ultimately arbitrary names of the | notes. | | ...I can keep going. this is just part of the setup. | | when this starts to get interesting is when I go on to | consider the rhythmic aspect of music using similar symbolic | tools; but in a subtly different way. As I said upthread, | I've been thinking about this stuff for a while now, and it | adds up. | | All this because I still do not understand (to my own | satisfaction) what's going on with the 12 note system, up to | which extent and how does it do? what I (almost but not | quite) understand to happen with 7 notes and | major/minor/other modes scales. | | [1] https://en.wikipedia.org/wiki/Free_monoid#Conjugate_words | | [2] https://en.wikipedia.org/wiki/Circular_shift | tremon wrote: | Note that different modes of the same scale are only | enharmonic in the standard piano tuning (equal | temperament). Under different tunings [1], the exact | frequencies of the notes in e.g. the A minor scale and the | C major scale do not necessarily match up. These different | tunings are the reason why certain keys are ascribed a | certain character (e.g. the E scale was considered morose | whereas the same scale in A was considered uplifting). | | Then there's the octatonic scale, the double harmonic scale | and quarter-tone intervals present in e.g. arabic music | [2], or even more exotic scales [3]. So whatever "deeper | logic" you're after, there will always be scales that do | not match your preferred system. Be careful you're not | straying into numerology, trying to find a deeper "truth" | beyond what sounds agreeable to the ears of the listeners. | | [1] https://en.wikipedia.org/wiki/Musical_tuning#Systems_fo | r_the... | | [2] https://en.wikipedia.org/wiki/Quarter_tone_scale | | [3] https://en.wikipedia.org/wiki/17_equal_temperament | AndrewPGameDev wrote: | >Why? because of how I choose to understand the origin of | the 7 note major scale: you take any note (the base tone) | and multiply the frequency by 3. this creates a fifth (plus | one octave). I'll keep in mind that 'the octave' is defined | by multiplying the frequency by 2. then, fit the fifth | (base tone * 3) into only one octave (3/2). And repeat | 'recursively'. | | This is called 3-limit tuning: | https://en.xen.wiki/w/3-limit . 5-limit tuning is what | standard western music uses: https://en.xen.wiki/w/5-limit | (to include thirds as well as fifths) After reducing the | ratios to fit in an octave, you get exactly 8 notes (7 if | you subtract the octave itself). Note how | https://oeis.org/A054540 shows that 7 notes are a good | approximation of the ratios, but so are 12 (which shows why | creating a 12-note system was an advantageous move, over 11 | or 13). Technically in 12-EDO a fifth is not exactly | generated by the ratio 1.5, it's slightly flat at | 1.498307... but we choose the note closest to 1.5. | | > This is the famous circle of fifths, but we all knew | that. Finally, after twelve repetitions we're back on the | same note, but an octave above. (but why? why stop at | twelve? I'm still working through this answer, but it has | something to do with convergence maybe? or just the fact | that after 12 notes we have now landed within two notes | which we 'found' already???) | | Suppose we already chose a 12-note equal-tempered system. | The closest note to the perfect fifth of a fundamental | frequency `f` will be `f * 12th-root(2)^7`, (7 notes out | just happens to be close to multiplying by 3/2). The next | fifth after that would be `f * 12th-root(2)^7 * 12th- | root(2)^7 = f * 12th-root(2)^14`. Going out by a fifth 12 | times gets you `f * 12th-root(2)^84 = f * 12th-root(2)^(7 | _12)`. But we know that `12th-root(2) ^ 12 = 2`, simply | from the definition of 12th root. Multiplication is | commutative, so we can group the roots-of-twelve by groups | of 12 instead of groups of 7, and we get `f_ 2^7`. Taking | that modulo 2, we just get f, i.e. the same (enharmonically | equivalent) note. | | Now suppose we didn't make that choice, instead we chose a | 31-note system (I'm a big fan of 31-EDO). In that case, we | have the same construction. The fifth in 31-EDO happens to | be an interval of 18 notes, and similarly we jump around | the scale, but this time an interval of one note is `31st- | root(2)`, so we have to do 31 fifths to get back to the | same note. | | This actually tells us something interesting - if we want | to form a circle (made out of intervals, that end up | hitting the original enharmonically-equivalent-note) to hit | all of the notes in our scale the notes we hit must be a | permutation of the original scale. It's a little beyond my | math to tell you how this works, I think Fermat's little | theorem and modular arithmetic has something to do with how | it works. Something about how 7 and 12 (or 18 and 31) are | relatively prime compared to each other, and it forms a | group which generates a permutation. | bonzini wrote: | One small correction: changing just the mode (i.e. keeping | the same notes while changing the tonic) is usually called a | modal interchange. | | Modulation typically changes the notes, which is achieved by | changing either the tonic or the mode or both. For example C | major to D major is a modulation, but C Ionian (major) to D | Dorian is usually called a modal interchange. | | Also, to be honest, the last paragraph is very simplistic and | makes me wonder if the whole comment didn't come out of | ChatGPT. | rdlw wrote: | Wow, ok. I think I'll take that as a compliment, at least | my input looks good at surface level! :) | | I'm not super knowledgeable about modal jazz but when I | think 'mode', I think 'modal jazz', so I thought that would | be good to throw in there as an example of music you can | listen to if you want to hear these concepts in action | rather than just reading about them. | | Thanks for the correction, that's my bad. | | edit: I removed the last paragraph, "This process is called | modulation, and it is the defining feature of modal jazz.", | since your correction explains it better than I could | bonzini wrote: | What fooled me was going from an entirely correct | paragraph to one that... had words that were consistent | with the topic but a lot of inaccuracies. I think we can | treat it as a reverse Turing test. :) I knew I was | probably wrong but it seemed like an interesting | observation. | | Modes other than major or minor are very common in modern | non-jazz music. A lot of minor songs are actually Dorian | (not all! a couple examples are Boulevard of Broken | Dreams or Wicked Game) or in the case of metal Phrygian. | A lot of major pop songs are Mixolydian (all those that | sound like Hey Jude, for example Sweet Child O'Mine). | | Also Lydian is quite common in soundtracks because it has | a very "suspended" feeling (due to the lack of a dominant | seventh chord that can resolve to the tonic), for example | Yoda's theme and the Back to the Future theme are both | Lydian. In the case of Yoda it then goes to major (I | don't remember if it's a mode change or a modulation), | while BTTF remains Lydian. | | David Bennett has videos on YouTube with many examples of | songs for each mode. | cka wrote: | In your third paragraph, I think you're talking about modes: | https://en.m.wikipedia.org/wiki/Mode_(music) | lioeters wrote: | > the major and minor 'scales' are the same 'scale' | | Indeed, they are two modes of the same pattern. If you look at | that pattern in a circle, sometimes called a "necklace", the | major and minor scales are rotations of each other. | | For this way of looking at music, I recommend the book A | Geometry of Music by Dmitri Tymoczko, who teaches composition | and theory at Princeton. | | > A Geometry of Music provides an accessible introduction to a | new, geometrical approach to music theory. The book shows how | to construct simple diagrams representing voice-leading | relationships among familiar chords and scales. This gives | readers the tools to translate between the musical and visual | realms, revealing surprising structure in otherwise hard-to- | understand pieces. | | https://dmitri.mycpanel.princeton.edu/geometry-of-music.html | | --- | | As an intellectual companion, there's a book called The | Geometry of Musical Rhythm. | | https://en.wikipedia.org/wiki/The_Geometry_of_Musical_Rhythm | | It's written by Godfried Toussaint, a computer scientist who | discovered "Euclidean rhythms", a large set of rhythm patterns | generated by a simple algorithm, many of which are common in | world music traditions. | | > In 2004 he discovered that the Euclidean algorithm for | computing the greatest common divisor of two numbers implicitly | generates almost all the most important traditional rhythms of | the world. | | The Euclidean algorithm generates traditional musical rhythm - | http://cgm.cs.mcgill.ca/~godfried/publications/banff.pdf (PDF) | thanatropism wrote: | I don't understand what this has to do with "music theory", but | the comment section seems to find it useful. Qapla'! | soperj wrote: | I love this, I just wish I could change the tuning of the guitar, | since I mostly play not in standard tuning. | madwebness wrote: | This shouldn't be free, I'd pay $500 for such a thing. UPDATE: | Why? Because it's got all the features without the abuse of the | various websites and apps spread out and containing just some of | those features. Let alone captchas and Cloudflare and ads. | oh_sigh wrote: | You could always donate $500 to him. And if he won't take it, | you could pay a freelancer $500 and task them with tackling | some of the open issues that are present in the tracker. | latexr wrote: | > And if he won't take it, you could pay a freelancer $500 | and task them with tackling some of the open issues that are | present in the tracker. | | Might be relevant: | https://github.com/pedrozath/coltrane/issues/57 | madwebness wrote: | I don't particularly believe in donations, but I think | there's a better way. I will certainly be reaching out to the | author. | LegitShady wrote: | what would you use it for? | feanaro wrote: | Experimentation and visualization when practicing an | instrument, composing, improvising. | gpvos wrote: | But still, what is the problem with it being free? | college_physics wrote: | Its a very cool project but as I have seen some other cool | efforts as well, I feel that the domain of "open source computer- | assisted music theory tools" is quite fragmented and people must | reinvent wheels. | | I wonder if we could imagine some sort of community project that | abstracts certain music related objects (scales, chords) and | representations and allows e.g. CLI or web-based rendering using | possibly different stacks, interfacing with musicxml, lilypond | etc. | | Something like the "Grammar of Graphics" but for Music Theory | chaosprint wrote: | how about https://glicol.org | college_physics wrote: | thanks for the pointer, though from a quickscan this is not | really a music theory tool but more like supercollider in | rust? | FigurativeVoid wrote: | I have been looking for something like this for a while! Super | cool. And in ruby. The language of my heart. | tincholio wrote: | Repeating a recent comment on another music-related link. I've | recently come across the Humdrum [0] toolkit, which does a bunch | of related stuff, in very interesting ways. Coltrane looks | awesome! I'll have to delve into this :D | | [0] https://www.humdrum.org/ | ofalkaed wrote: | I don't think I could call this theory but it is useful. | [deleted] | jameshart wrote: | It is a tool for doing music theory things. | | If someone showed you a slide rule and said it was for | 'engineering' would you say 'well it doesn't really do | engineering'? | ofalkaed wrote: | It is a chord and scale library and does not show how those | things relate or present them in a way conducive towards | study of that. If you know how the information this app | provides is related then you probably do not need the app for | theory. Theory is not memorization of chords, scales and | progressions; theory shows you how to construct those things | so you do not need to memorize everything. | | A slide rule would be more analogous to a musical instrument. | If you want an analogy between this app and engineering in | the slide rule days, it would be closer to a pocket sized | reference book of log tables and formulas. | xhevahir wrote: | So you're saying this thing doesn't _teach_ theory. Fine. | But I don 't think it claims to do so. | ofalkaed wrote: | I did not say that at all. This programs relation to | theory is about the same as the relation between numbers | and calc, while numbers are very important to calc you | are not learning or using calc by using numbers, there is | a hell of a lot more to it. | seanyeh wrote: | I sort of see where you are coming from, but "music | theory" is the standard accepted term for this general | field of study, which includes the fundamentals (notes | and chords and more). source: used to teach music theory | at the university level | ksherlock wrote: | I know jazz guitarists have double jointed, mangled hands but | most of those generated guitar chords fingerings are, well, let's | just say not traditional. ___________________________________________________________________ (page generated 2023-03-11 23:00 UTC)