The most basic aspect of Western music theory overlooked here is the relationship between tonic and dominant. If you know the "home" chord aka "the I" aka "tonic" is C major, the dominant will be G major, aka the V chord. Add just the F major chord, and you'll know 1-4-5 in a "basic" key: C major. 1-4-5 is the simplest chord progression, you can play amazing grace, you are my sunshine, even The Beatles, you'll be rocking with 1-4-5.
Next level, if you add in the minor 6 (a minor) and minor 2 (d minor), you realistically know 95% of the chords you'll ever hear in C major pieces. And on the piano, this is ALL white notes, so even someone with zero musical knowledge can "solo" over your chords by just plunking any white notes while you play these chords (kids LOVE LOVE this btw, highly recommend trying with a kiddo).
I wouldn't consider double-sharps and double-flats "basic" music theory. They really aren't needed for beginners, since they're relegated to keys like C# major where you'll occasionally sharpen a note like E# (aka F) into E## (aka F#). I didn't run into these until around 5 years into my piano training, playing Chopin's F# major nocturne Op 15 No 2, there's a bunch of double sharps in that piece.
In any case, don't worry about double-flats and double-sharps or the precise notes of various modes and scales. Just learn pieces you enjoy, preferably with a mentor or teacher who can suggest improvements based on their trained ear.
I am not really a programmer, but the thing I always wanted wasn't a "how to program guide" but "what is all this syntax" guide.
It is funny, but when you learn a written language, you spend a lot of time learning grammar and punctuation, but when you go to learn programming it all seems conceptual. there are lots of demonstrations of grammar and punctuation, but I rarely see nice, succinct lists of all the syntax you might encounter.
He is pretty good at explaining music theory without boring you to death. He even has a video on 1-4-5
On a song in C major (or A minor), you can play any white key.
Chords are sections based around a note.
The notes played during a chord give mood and color to the chord (harmonies). The main notes of a chord (that will sound the best) are found by taking every two notes (the note+2+2), e.g. for the C chord it’s C, E and G.
Also the sequence of the notes is the melody.
And also simultaneously the ordering of the chord “drive” the song and also the mood. The 1-4-5 the parent is talking about is a very common chord progression (C major, F major, G major). The numbers here are simply the 1-index of the note in the scale used as the base for the chord.
So while you have three dimensions simultaneously which can feel overwhelming the parent was saying that simply following the 1-4-5 progression and playing randomly white keys will sound ok.
Next step try to hit one the main notes of the chord when it is playing (C E or G for the 1 for example).
Having learned music theory on a guitar rather than a piano, I learned this in a different order. C Major wasn't the focus at first. We started with Am Pentatonic and learned the common 1-4-5 progression and how to build chords and progressions out of that. Then added the rest of the notes of the Am scale in before finally going into root notes and relative scales and learning C major.
It's just my conjecture, but i think Am works better on guitars for learning because it's right in the middle of the guitar starting on fret 5 on the 6th string. Makes it easy, like you say, for someone to solo along with a 1-4-5 progression just by running up and down the scale. As long as you hit the right frets, it'll sound decent, you don't have to stretch too far, you get a nice clear view of the scale's 'pattern' on the frets. Plus, it's the relative minor of Cmajor meaning, you can still play along with someone just hammering white keys on a piano.
We also learned using a lot of blues music. There's a lot of easy variations you can do on a guitar in an Am blues key that can teach you all those fundamentals.
Modes were also worked in at the same time. This was probably not the best though, cause i really didn't get them at the time and only fairly recently sat down to study them and actually figure them out.
Any suggestions about theory learning beyond of what you've described?
Something that would help with composition perhaps? Music phrasing? Some book to read?
Also, OP is leaving out lots of ways to modulate these basic chords into more complex ones (adding a seventh step, inversions, power chords, etc.).
Finally, as with a lot of pseudo-Pareto type things, often the few exceptions are what make or break a piece musically.
It's like bringing brownies to a potluck. It won't blow anyone's mind, but everyone will happily eat them.
> The chromatic scale is the easiest scale possible
So far so good-- in both programming and music we're just stepping through the smallest values (half step for music, the integer "1" in programming). So "easy" definitely applies to both domains.
> We can generate a chromatic scale for any given key very easily
For programming, sure-- you just find your offset and go to town.
For music, however, this is a wrong warp. The chromatic scale is a special case of a symmetric scale which cannot be transposed. There's literally only one such scale-- each transposition brings you back to the same exact set of pitch classes.
Figuring out what it means to have a chromatic scale "for a given key" is advanced music theory. In fact, I can only think of a few places where that makes sense:
* studying the complex harmony of late-19th century Romantic music
* studying the choice of accidentals in chromatic passages of Bach, Beethoven, etc. to infer the implied harmony
Those are important things, but they are definitely advanced concepts.
Long story short for programming, the author moves logically from an array to stepping through an array. But in terms of music, they start with the simplest possible scale and then jump to a third year undergrad theory concept.
Interesting... Do you have any links for learning more about this - maybe some analyses?
My take on chromatic scales (in the context of this post) is that the very existence of a(n equally tempered 12 tone) chromatic scale is the axiom the OP is using but not stated - hence a comment further up/down about P5s not necessarily being equivalent to d6 in other tunings.
My take on chromatic scales (outside the context of this post) is that there is only one, like there are only two whole-tone scales, etc, and that it wouldn't necessarily make sense to say "the E chromatic scale" - instead you'd say "playing a chromatic scale over an E major harmony" (for example).
However, if there are cases where it's useful to be more specific I'd be really keen to go deeper.
Ooh, good catch-- I completely left out tuning systems!
But again-- the point of "basic" music theory is to simplify the practice of discussing music. In that context, the fundamental purpose of the chromatic scale is to introduce the complete set of note names, as well as the range of the piano pitches. This gives the student a full set from which to derive all other concepts like scales, keys, triads, and all the other fundaments of the common practice period.
So again, if you start with a chromatic scale and then start talking about the differences in half-step intervals along it-- boom. Huge conceptual warp.
Honestly, I don't know much about the intersection between symmetric scales and alternate tuning systems. Personally, it seems like it would be an incredibly esoteric niche, although I can imagine some funny musical jokes with the idea. :)
I would not agree here. I think you can transpose a chromatic scale, but you end up with the same "set" of pitches. (So you _can_ transpose, but if you only consider the _set of pitches_ you end up with a invariant.
But scales are not just a set of pitches, but also have a root note.
You can establish the key of C and play a chromatic scale from c' up to c'' and there would be the feeling to accept C as the root of the scale.
So the chromatic scale is kind of a _total_ (all 12 pitch names) and _trivial_ example, as you pointed out, very symmetric and usually not so interesting for analysis if you want to detect and describe structure.
In general it depends on the music. If the music is based on diatonics, then a major scale or it's modes will be a fitting primitive for analysis, considering chromatic notes something like side notes.
On the other hand 12-tone music uses a chromatic scale as a basis, negating the structure and hierarchy of diatonic scales.
So I don't see a problem with transposing a chromatic scale, it's useful and necessary for mathematical sound systems (helpful for computation) to define operations, even if there is no direct gain (functionally speaking - identity / mempty etc.) :
1 + 0 = 1
Thanks for bringing up the connection with symmetric scales -- these are really interesting!
(1) Theory of how things sound like: Tones, melodies, scales, chords, based on the frequencies of individual sounds.
(2) How to name things.
(3) How to handle the mess of naming things in Western music theory, where things have 12 different names, depending on which note you choose as the base.
This post seems to focus on 3.
I would be delighted to see a follow up article that explores frequencies and harmonics while sticking with the code demonstrations and incorporating a simple tone generator for the practice side of things
(1) Melody
(2) Harmony
(3) Rhythm
:-)
You are missing the point.
hmmm
Deriving the piano keyboard from biological principles using clustering (Jupyter)
https://fiftysevendegreesofrad.github.io/JupyterNotes/piano....
Wow that's interesting enough to share as a standalone post, so I took the liberty! Thanks for the link!
To get things, people need to hear sounds, not just see note names and pictures.
You can define interval structure as a sequence of large L, small s, and optionally medium M steps.
For example, the Major diatonic scale - a 7 note scale from 12 EDO - in Ls notation is:
LLsLLLs with L: 2 s: 1 (12=2+2+1+2+2+2+1)
A 19 EDO, 7 note scale: LLsLLLs with L: 3 s: 2 (19=3+3+2+3+3+3+2)
And here's a 19 EDO scale with 9 notes (Godzilla-9): LLsLsLsLsLs with L: 3 s: 1 (19=3+3+1+3+1+3+1+3+1)
You can then explore frequency ratios beyond those available in 12 EDO: https://github.com/robmckinnon/pitfalls/blob/main/lib/ratios...And chords based on those ratios: https://github.com/robmckinnon/pitfalls/blob/main/lib/chords...
The above links are Lua code files for a monome norns library for exploring microtonal tuning: https://llllllll.co/t/pitfalls/37795
Plenty of music around that is recorded using actual perfect intervals, so why muddy the waters?
It feels like grumping about some inaccuracies/glossing over in elementary school mathematics because of the existence of imaginary numbers.
I'd say removing the beats from your partials is way more fundamental to both music making and music theory than chromaticism. Chromaticism is the next step, beyond basic music theory.
A fifth might even sound off key if you're very used to equal temperament (it's about 2 cents below an equal temperament). You know it by there being no or less "wobbling" between the tones.
For listening tips, look for vocalist groups where there's "One Voice Per Part" (OVPP). Voces8, Vox Luminis, etc. When there's only one voice, you don't get the inherent wobbling happening when two instruments/voices play in unison.
Not all genres are possible to have just (jazz chord colors would sound rubbish).
A clause that says "assuming twelve-tone equal temperament" would be sufficient here, but you can really go down the rabbit hole if you start digging into scales (see microtonal), and your page is meant to be more basic.
Our harmonies are built on stacked thirds, and the stacked thirds line up perfectly on a staff. Line, line, line; or space, space, space. Three dots stacked neatly on top of each other. Easy peasy. Easy to read all the common intervals at a glance, once you get past an octave it starts getting a bit harder.
If you had chromatic notation, you'd allocate a bunch of extra space and names for things that you spend most of your time not using. An octave would have eleven spaces in the middle, which is practically unreadable.
I think in the long-run chromatic notation is just hostile. Go ahead and use chromatic solfege, that's super useful, but chromatic notation is usually not.
Most often I hear the criticsm from people who are not musicians or do not know how to read music. It's often smart people with an analytical mind, but people who don't have much experience with music. Just speaking from my own experience, it's much harder to read a chord from a piano roll than to read a chord from traditional notation.
Because of that, it took me way too long to figure out that there was any sense in the note names.
A B C D E F G. Seven notes in the scale, seven letters. Seven positions on the staff.
Thats fine as long as you're in C Major. As soon as you depart from C Major it all starts going wonky. Why is C Major baked into the notation as if you'd never want to use anything else?
It's an idea, and possibly somewhat arbitrary, but it's a proposal at least and it will connect to other things well due to uniformity. Then there's my python code which takes a scale.. and writes nonsense with shakespeare verse using words beginning with the letters that spell them. Then words can be used to learn melodies.
But what I was really thinking about more is like depending on the vowel after that letter you will form different chord qualities.. The first most important being the unison, or 'a'.. so to play a major scale with single notes you would say Ba Fa Ja Ka Ma Pa Sa.
But to say the seventh chords that the major scale implies you'd say: BatEk FabEt JabEt KaTEk MatEt PabEt Sabat, which would be a a way of saying: DMa7 Emi7 F♯mi7 GMa7 A7 Bmi7 C♯⌀ - but way less syllables
⌀ is pronounced "half diminished" or "half diminished seventh" which is a mi7(♭5) which would be pronounced "minor seven flat five" for those who don't know.
The insanity of modern music theory is the superimposition of the number 7 (A B C D E F G) onto the number 12 (the number of notes).. everything in the system is skewed by this fundamental wonky shape. But I'll remind everyone that 12/2=6 and 12/3=4 and from these facts more logical systems can be envisioned, as opposed what's 12 notes with 7 names. 12/7=? A number that seems not to have relevance to the comprehension of music patterns.. BESIDE the fact we are forced to think like that with things that conform to 12/7 like sheet music, note names, or piano key locations...
But nature and even a guitar fretboard has less concept of the obsession with the number 7 by design.
I like your shortened chord quality convention, though MaNePu takes a different tack. Instead, it favors what I call "descriptive chord naming". Instead of being prescriptive about the quality, a chord is simply described by appending the notes contained within it. This is great because it also removes ambiguity in the cases where a chord might include certain notes or exclude certain notes implicitly. So Dmaj7 would be PuTaXaNe ("Xa" is pronounced like a "j"/"sh" sound sort of like in Pinyin). It also typically reduces the number of syllables spoken, like your system.
The superimposition of 7 on 12 as you put it, is indeed a problem, but there's also an issue with intervallic favoritism (of half and whole tones). After all, there are 7 note scales with minor third intervals, and so on—imagine a world where one of those scales was the basis for diatonicism. Representing that on a keyboard, and the subsequent accidentals would be a nightmare.
Notation is the big unsolved problem, I think, but I'm aware of some work being done in the area if you're interested. As far as the public facing projects I'm aware of, Dodeka is likely the most promising.
Unfortunately the momentum that Western music notation has, with a few centuries of tradition behind it, means one has to work within that system.
There was an interesting discussion I came across on Stack Exchange while writing the article: https://music.stackexchange.com/questions/67730/why-have-sha...
and my comment here https://news.ycombinator.com/item?id=26861415
How so? If patterns didn't exist, it would just be random choices.
Any non-random music making (and thus theory) requires patterns.
Of course, for every rule there are exceptions, e.g. we have things like (F Bb C) -> (F# B C#)
There have been many attempts at a chromatic music notation, but nothing has caught on so far [1].
Things are a little better with solfege -- there is "chromatic fixed do" solfege, where every note has its own name, rather than only having a name for the "white notes," which leaves you to mentally calculate the sharps and flats.
It's a minority thing--maybe 5-10% in Europe? Even regular fixed "do" is rare in English-speaking countries, so I would assume the chromatic fixed "do" is almost unheard of in the US, Britain, etc.
At any rate, there're are at least seeds of hope for a chromatic fixed-do solfege to catch on more. I use it for my own learning.
While true, I find this interpretation harmful to the understanding of modes. It didn't provide me with any insight and instead it seemed irregular to the other theoretical constructs we have and thus deterred and misled me in the beginning.
To me, it all clicked when I took all the modes, except Lydian, and constructed them by putting down the augmentations to the major scale in a circle-of-fifths sorted way:
Mixolydian: b7, Dorian: b7 b3, Aeolian: b7 b3 b6, ...
You can see that the modes appear walking left on the circle of fifths or walking along fourths (or going "darker", as some prefer to say). Try this out when starting at e.g. C and you see the pattern immediately.
Then take Lydian: #4
That's going right on the circle of fifths or going in fifths going "brighter".
Also, tangential comment: My music and my life has changed profoundly when I found out how to use the Lydian mode. I can't explain it, but it is just exciting.
Now we flatten the C (after all this is the next note in the cycle of fifths) and we have.... B lydian. And the whole thing starts again.
In this way you can understand how all the modes and keys relate. You can do a similar thing with the other 3 similar modes of limited transposition in this order (melodic minor, harmonic minor and harmonic major).
Have fun.
Adam Neely recently did a great analysis of 'Hey Joe' that goes pretty deep into this stuff https://youtu.be/DVvmALPu5TU
I used to be confused on why modes required modifying certain notes from a major scale until I tried deriving them in the way shown in the article.
Of course, once you understand that, the way you go about memorizing and practicing is probably easier the way you described; that is, deriving modes in any given key by modifying notes of the major scale using the circle of fifths.
But why though? If you're improvising on a dominant (e.g. a G7 in the key of C Major) with a G Mixolydian scale, you're actually not playing a Mixolydian sound, but Ionian, since your tonal center is C Ionian. It is true, it is indeed a G Mixolydian scale and it is using the tonal contents of our key C Ionian. But our frame is Ionian, so what is the purpose of adding Mixolydian other than ease of construction of the scale?
my brain kind of cannot accept this fact and I struggle with it
I think that historically, people were already familiar with "standard" notation and terminology before they learned theory, so it wasn't a major hurdle. Not only do theory students (i.e., at the college level) know how to read, but they are also required to learn keyboard. I've heard people say: Don't try to learn theory without a keyboard in front of you.
Music instrumentation and notation are technologies and as such they are replete with historical baggage. I have an unorthodox view, which is that if someone is not already usefully reading standard music notation by adulthood, then they have no reason to learn it. Explanation of theory for non readers would be better served by using an invented notation that sidesteps the historical naming problems.
One such notation is the Nashville number system. It's not nearly universal, but for the purposes of just enjoying a wide swath of popular and folk music, it actually works. It's fun to see how many different songs boil down to a few basic patterns.
A computerized tutorial could show both notations. There is a lot of instructional material for guitar, that shows conventional notation in parallel with a notation based on a diagram of the fingerboard.
Programming would be just as bad if we were stuck with a 400 year old language. Fortunately we develop new languages, but that's because old programs just get thrown away, and it's easy to teach a computer to read a new language. We also teach programmers not only how to read, but how to create better notation themselves.
Of course, there is a right answer, and depending on the language, all of the above can be VERY different things. But they're also similar enough to be completely unintuitive... their distinctions take practice to master.
Likewise, in music there is a right time to call a note a flat, a right time to call it a sharp, and a right time to talk about intervals instead. They can all technically refer to the same thing, yet there is a proper word to be used in any given context.
It's all very confusing, until you start using those terms in their proper contexts on a regular basis. Just like in programming.
Some other examples:
"=" vs. "==" vs. "===" vs. ":" vs. "=>" vs. "~>"
"function_name first_parameter" vs. "function_name(first_parameter)" vs. "hash_name[key]" vs. "object.property_or_method"
"MethodName" vs. "methodName" vs. "method_name"
"function" vs. "method"
...none of these are intuitive. But we use them, we get used to them, and then they seem obvious and we wonder how we could have ever written these things differently.
I think the same goes for musical notations. I struggle with them heavily, but I'm far too casual of a guitar player to take the time and learn the language properly. It's tempting to say the problem is the complicated and confusing language of music, but I know the problem is my own unwillingness to put in the time.
Also, and most importantly, if you're playing an instrument like violin, C# and Db are not actually the same note. Since they happen in different contexts, and have different positions in whatever key they're in, they have different psychological roles and are actually played differently by the player.
If I'm not mistaken, a C# would be played slightly sharper, and a Db slightly flatter to fit the particular key.
R ⟷ 5 (stable)
2 ⟷ 4 (unstable)
3 ⟷ ♭3 (modal)
7 ⟷ ♭6 (leading)
6 ⟷♭7 (hollow)
♭2 ⟷ ♯4 (uncanny)
[1] https://www.youtube.com/watch?v=et3CMn2oCsA
[2] https://www.youtube.com/watch?v=SF8CdxcdJgwCome on, that is not for "historical reasons", that is because those notes are only one semitone apart!
"For historical reasons the notes B/C and E/F are one semitone apart."
The names of the notes and scales are due to historical reasons, but a major third and a fourth is one semitone apart due to math, not history.
Mmmm yes, and that’s also a bit confusing because it dodges around why the scale was and is 7 notes to begin with.
It's common in Bebop to add a passing tone to otherwise heptatonic scales. Consecutive semitones are also a common feature in blues.
> And then - just to keep it confusing - we have to split both of those groups of five semitones, so... we arbitrarily split them as 2-2-1 (i.e. WbWbWW keys). Thus the white/black keyboard pattern, starting at C, of WbWbWWbWbWW. If only someone had explained all this in grade school.
We don't arbitrarily split them! It was very much made on purpose to match the diatonic scales, which are very natural due to being a chain of fifths. E.g. from F ascending 5ths: F-C-G-D-A-E-B-¡F!
It's not arbitrary that we based modern keyboards around heptatonic scales! Then we added some black notes so we can transpose, which is pretty convenient on 12-TET.
I don't know what's with the current flagging/downvoting trends on HN, comments get dead before I can reply.
That said, your view seems rather extreme. What would be the downside of illustrating at least some of the samples with audio clips?
In my opinion (and experience) it is better to do a little work "up front" and "in the back" to convert to the line-of-fifths representation since that is more friendly to formalization. In other words you can take input in traditional musical notation and give output in traditional musical notation, but "in the middle," formalization should be done in the line-of-fifths representation.
Above I have used "formalize" to mean something like "mathematicize" (if that's a word) or "be precise" or "be able to compute" or "be able to express in a programming language (like Python)". For example, I consider the line-of-fifths representation to be a good one in which to formalize music theory because in line-of-fifths representation, transposition can simply be formalized as integer addition, and integer addition needs no further explanation or formalization, i.e. it can be taken as sort of axiomatic.
Here's another way of putting it: if you wanted to be able to add Roman numeral strings, would you write code that directly operated on the Roman numeral strings, or would you first convert to a compute-friendly representation like integers, and then do your adding from there? No doubt there are tradeoffs involved, but I tend to think that it is usually worth it to move to a compute-friendly representation, both with Roman numerals and music notation.
An added benefit of line-of-fifths representation is it provides a good basis to formalize many important historical European tuning systems.
F# is in turn named after C#, as it is the functional equivalent to C# in the framework.
I vaguely understand that complications arise because we want nice harmonics, ie frequencies whose ratio is a "nice" rational number, such as 2/3 or 3/5 or so.
But our chosen notes should be invariant under doubling of frequencies ("shifting by an octave"), because that's basically the same note.
The problem then is that roots of 2 are irrational, that is, one cannot find (p/q)^2 = 2, or (p/q)^n = 2, or even (p/q)^n = 2^m. Therefore, one cannot find a "nice" interval that, applied several times, wraps around to an octave (or multiple octaves).
However, in a neat coincidence, (3/2)^12 = 129.7463378906... which is close to 2^7 = 128. So, based on that ("Pythagorean comma"), something something something, and we end up with 12 half notes that are basically of frequency f_i = f_0 * 2^(i/12), which are all horribly irrational, but apparently sound "nice" enough, largely (because they are close enough to some "nice" fractions), but only if we pick out some specific 7 of them.
And then the question becomes, which 7 of the 12 do we pick, approximately uniformly distributed. (Why not 6? Every second? I don't know.)
And then, you can transpose them somehow (ie multiply frequencies by 2^(j/12) for some j, but then you change the names for some reason, and everything gets complicated and tonic and Mixolidian double-sharp.
Also, instead of frequencies of the form f_i = f_0 * 2^(i/12) (which, clearly, have the advantage that any multiplication by a power of 2^(1/12) is just a shifting of the index i), you could also use non-equal tuning, with the powers of the 12th root of 2 replaced by some "nice" fraction, which means that any shifting then subtly changes the character of everything, I assume.
This is complicated, admittedly, but for me the nomenclature obscures, rather than elucidates, the issue.
ETA: I sympathise with what irrational wrote: "Is this what it is like when I talk to people who don’t know anything about programming about my work? Pure gibberish?"
What question are you trying to answer with what you just wrote?
For example, you may spend a while learning the major scale, and what can be done with it. Then you learn the minor scale, and it seems like a totally separate scale that sounds completely different. And after that you learn that there are five other scales (modes) to learn about! (Dorian, Phrygian, Lydian, Mixolydian, and Lochrian!). It can seem extremely overwhelming until you learn that they're all the same scale with different relative starting positions. Where major is [1,2,3,4,5,6,7], minor is [6,7,1,2,3,4,5], and the other modes are all the other permutations of starting positions.
My other gripe is that learning theory on piano puts a lot of bias on the notes themselves rather than the intervals. For example, the B major scale has 5 sharp notes (black keys) to remember whereas C major scale has none. These are pretty different shapes to remember. Learning these on guitar means taking the same exact shape and shifting it up a fret (so if you know one major scale, you know them all!). Not to say that guitar is the perfect instrument for learning this - folks will often learn scales as close to the 0th fret as possible, causing you to start on different strings and have slightly different patterns.
That being said, I wish there was a purely linear instrument (a piano with the black keys flattened?) for learning theory. The real magic comes from identifying the shapes and patterns, and how they're similar to each other. Like how major and mixolydian are identical except for one note, so it's very easy to modulate between them, or make a listener think they're in one mode when they're in another. Same with minor and phrygian. Being able to drop the baggage of "the second note of the B major scale is C# which is this black key here" and just focus on a floating set of intervals seems like it would make this all easier and less intimidating.
That all said, I still feel reasonably early in my theory journey. So maybe this is just my bias coming from guitar.
https://github.com/overtone/overtone/blob/master/src/overton...
I've tried to grok music theory several times. I've never understood the scale/notes, notations. The 2nd array (with sharps and flats) and couple paragraphs made it "click" instantly. Because it was in a language and presentation I understand.
Scales are not strictly necessary, but are part of an apparatus of making music work in the way that I enjoy it. They are a technology.
You're more than welcome to. If you try to discover what intervals between these random frequencies tend to be pleasing, or displeasing, you'll rediscover some of the intervals and scales covered above
One of the personality tests of an improviser is how you think about the music - do you think vertically (in the chord), horizontally (in the mode), for example.
Using scales gives people a familiar territory in which to compose music and a western audience will already be culturally attuned to those sensibilities.
Edit: I’m on the Sonic Pi core team. I mean that I’m looking to add these features to sonic pi soon
I don’t think this has “execution”/synthesis features, but it could at least provide the basis for this environment.
Haskell School of Music http://www.euterpea.com/haskell-school-of-music/
# Assuming note values are of Jazz style.. i.e, '1', 'b3', '#5', or '♭3' with unicode-sub after
jazzAllFlats = ['1','b2','2','b3','3','4','b5','5','b6','6','b7','7']
sharpStrs = ['#','♯']
flatStrs = ['b','♭']
accidentalStrs = sharpStrs + flatStrs
def stripAccidentals(note:str) -> str:
return ''.join([c for c in note if not c in accidentalStrs])
def jazzToDist(jazz:str) -> int:
dist = 0
degree = int(stripAccidentals(jazz))
while degree > 7:
dist += 12
degree -= 7
dist += jazzAllFlats.index(str(degree))
for c in jazz:
if c in sharpStrs:
dist += 1
elif c in flatStrs:
dist -= 1
#Here you could add support for double sharps and double flats if you want.. although unlikely as font support for these glyphs is horrible overall.
else:
break
return dist
print(jazzToDist('bb3')) # returns 2
print(jazzToDist('1')) # returns 0
print(jazzToDist('♭♭♭♭♭♭44')) # returns 68
print(jazzToDist('2')) # This one is strange as it's the only one where input == output
I started making stuff more like this as it just saves a lot of trouble in the long run. Once you have things made generic like these it's easier to think about going into ways that are not Jazz/Dist (which is semitone distance, or set notation), like Keys for example.. because it turns out the logic for that is really similar to what is in the jazz.The shape of the jazz system is the same shape as a change in the key of C. You would just separate the accidental part of the note's name like I did and look up let's say the index in all keys, giving you distance from C instead of what I showed there which is like distance from what is called 1 in Jazz.
So yes I prefer to make helper functions like this that actually kind of "get it" about what the languages/ways like Jazz or note names are actually saying.. then you can go one to another, or different keys really easily. If interested in more of my "Way Of Change" algorithms I can share.
I think your article is cool and I could comment more.. maybe if you want you could read my repo I could pm it to you. But it's long. In the meantime I have a new website using some of this type of logic. unfortunately js instead of python (where my bigger codebase resides).
Google thinks this site is a security threat and I literally posted it two days ago but it's got all scales/chords etc, and other stuff. Still in prototype phase. https://edrihan.neocities.org/wayofchange%20v14.html
https://lotushelix.bandcamp.com/
Wow, I'm very captivated by it, such high musical weirdness! Excellent stuff.
But every once in a while I'll throw it on and be truly weirded out (in a weird/good[?] way). The album is kinda like getting your brain hit by a truck in space. In the future I would like to make stuff that is slightly less dense. And also more focused.
But ya I recorded, composed, produced, played most of the instruments on that piece and am hypothetically available for musical services. Of course peeps can use the wonders of the www and just get weirded out whenever, wow! For free! I guess that's why people like me get minimum wage jobs in kitchens!
Ya that album will always be a personal memento and all round strange banger. I'm glad you enjoyed it!
Most of the stuff on my youtube honestly borderline sucks. Different phase of idea.. more improv and raw.. but there's like 2 or 3 good ones. Then I quit youtubing like 6 months ago cause I had to go frame houses to pay my rent which put my hand out of commission for a while. If you like Lotus Helix maybe check out a more solo-project one I did last year on the youtube.
It's about where I was born, outside among trees and stuff. I was actually born in the middle of a place called Riverdale.. but not like the tv show but the real one by the river. The tune is called Edrihan - The Riverdalian. https://www.youtube.com/watch?v=E-XZx1DUGhM
You might just realise how this approach goes back into keys.. like Ab, C#, F.. it's almost exactly the same, but you have to account for the accidentals being on the right side of the string as opposed the the left, as it is in Jazz.
And ya! - I actually originally wrote almost exactly what you wrote.. but I kept adding enharmonics of things.. like ['3','##2','b4','bbb5'] # and so on..
So I got to a point where it's like.. yeah this should just understand it. I'll give you another hint for the keys.. Use the scale degree to get your root note name. Get rid of the accidentals (do it after). Once you know that Major in dist == [0,2,4,5,7,9,11] you can use the list that contains all 12 notes in one spelling to find it. That's why I'm getting rid of accidentals. That way if you're looking for C# but you wrote as I did with all flat-spellings, it throws away the "#", finds the 'C', counts from there, and finally adds the sharp back if necessary. Just kinda paying attention to adding a flat to a note with a sharp.. they cancel out etc. Usually that's why it makes sense to keep the degree part separate from the accidentals part in some way. At the end you reconcile a difference between distance and degree-distance. Really easy to do double sharps or flats that way cause you know that all valid note names will work.. don't have to worry about giving it a particular format.
Not only can you use any names notes may have, but you can specify an odd rule.. like for example the difference between looking at the scale in "Western" vs. "Indian". Let's say a scale like Mela Vanaspati/Raga Bhanumati/Zaptian (number 1129 on my site). If it's Zaptian, then let's say we're Western. I'd say it's spelled like the first line following this. If it's a Raga or Mela and we're looking at it that way then even in Jazz we can correctly see it how it's originally stated as the second spelling.
1 b2 2 4 5 6 b7
1 b2 bb3 4 5 6 b7
For me in this case the Indian numbers make sense as you are just counting up integers.. albeit with the "ugly" double flat. And yes it's ugly unless you were using a system that doesn't express it as uglily. Here I'm just comparing the first three notes in a few ways. Let's say for a bb3 a system that would express that less ugly than some would be in the key of C#.. as in [1 b2 bb3] == [C# D Eb] == [Db Ebb Fbb]. Of course all these can be described as [S R1 G1]. This is how it's notated in Indian.. but equivilent to Jazz in that there is a part that talks of which nth note of the change and a part that talks about how far from where it usually is. Obviously C# is better for this change than Db. Even if you use the Western Jazz to derive it it's not good unless in C#. Of course the Western jazz statement to me is more ugly because it doesn't count up in degrees sensibly from 1 through 7. The ugliness of the jazz numbers is equal to the ugliness of putting it in the key of C, like I said before. On other changes Jazz wins because Indian won't let you use #4 or b5.
I'm glad you'll use my codes too. Eventually once you have it working you can do a scale in the key of like... let's say Abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb.. which is actually also known as C or even B#.. ok stay sharp out there in code land. ;) Music theory is an obsession of mine and fun with codes. There are always many options. There's more than one correct answer. And there are ones that make less sense than others.
And P.S. to anyone just dropping in.. we're lazy so we type b instead of ♭, and # instead of ♯. The former is pronounced flat, is equal to the number -1 and is pronounced double-flat if there are two. The latter is pronounced sharp, is equal to +1 and same rule applies about not pronouncing something like "sharp sharp" in music ever. This way I can pronounce C septuple-sharp, which I made up. That particular strange way to describe a note is equivalent to G because music is weird like that. Also if something has six sharps then you could just as easily say it has six flats. So B♭♭♭♭♭♭ is the same note as B♯♯♯♯♯♯. And yes those are the very sexy-sounding sextuple type words ;)
[1] https://www.youtube.com/playlist?list=PLTR7Cy9Sv285kV3pohsMt...
Modern college textbook writers are doing a decent enough job of not focusing strictly on classical music. You could find out what your local university uses.
Launching soon http://ngrid.io.
Play the piano on your computer with Python:
https://jugad2.blogspot.com/2013/04/play-piano-on-your-compu...
The post got some interesting comments with info about Western music theory, which I knew nothing about. And suggestions on how to improve the program to make calculation of note frequencies more accurate.