Personally, I fall on the side of “call anything whatever you want, but let me know what I can use”. Scales are tools that I use to write and improvise. The way that I use them, they are subsets of my 12 tone system that are octave-agnostic. They let me know what notes I will look at for my “first choice” when coming up with a line in any octave. If I abandon this notion, and try to use SHMML to write the same way I do with other scales, I run into issues of choice. Do I need to restrict certain notes to a certain register to honor the non-octave repeating thing? If I don’t, will my music sound the way I want? Is it more useful to think of it this way than just thinking “use the chromatic scale”? I don’t see why we can’t just think of this thing as two or more separate scale movements, similar to how classical theorists treat a minor tonic by ascending in melodic minor and descending in natural minor.

If you know sql, no reason you shouldn’t have your own backend! If you self hosted your own django app (or flask, fastapi, etc), then it could connect to a Postgres database, and you could create APIs that serve many future projects. Doing so will take some time, but you can start small and get up and running locally in a day if you buckle down. It will teach you some very applicable skills, like how to deploy code, how to run migrations, how to create a restful API, how to use GitHub, etc. If you learn some JavaScript, it can also help you learn how to build a backend which serves a frontend. One good project would be user authentication, IE a login page and a user profile for a site. That’s a full stack flow that is very applicable to a day job. In the end, learn the world of web dev and build projects that I as an interviewer can interact with. Boom, hired

lol she didn’t get to where she is on accident man. Not your thing sure, not mine either, but pay we gotta respect where it’s due. It’s not easy running her life, show, or catalogue

Don't just trust your professor because he said so, the math is right there and tells the whole story. It's (3/2)^12, which makes good physical sense. IE, you take a fifth of a frequency by multiplying it by 3/2. Then you take that result and do it again, 12 successive times. This should be the same as taking an octave of a frequency (multiplying it by 2) 7 successive times.

I would try not to get caught up on the little stuff, and instead power past my questions knowing it will all make sense eventually. Also, I would 100% start a Django or FastAPI project and keep contributing to it over time. A fully functioning backend is a great vessel to experiment with literally any project. I don't think I truly understood how Python was a general purpose tool until I started to build APIs, schedulers, parsers, etc. And a backend is a living organism that can host and control all of these things. Plus, this is what a job actually looks/feels like, not coding algorithms.

Happy to help! Don't worry too much about list comprehensions at this stage, you can pretty much always get around them in a more readable way with loops.

Yes exactly! At least, it's a rule when calling a function, so we can preserve this builtin behavior:

>>> def someFunc(*args, **kwargs):
...     print(args)
...     print(kwargs)
...
>>> someFunc(1, 2, var3=3, var4=4)
(1, 2)
{'var3': 3, 'var4': 4}

The rule is, if you have a function like this, and you want to use positional arguments when calling it, you must have the positional args be the first N args when passed. IE, you cannot call arg3 positionally, but arg2 with a keyword.

def someFunc(arg1, arg2, arg3, arg4):
    print((arg1, arg2, arg3, arg4))

# fine
someFunc(1, 2, 3, 4)
someFunc(1, 2, 3, arg4=4)
someFunc(1, 2, arg3=3, arg4=4)
someFunc(1, 2, arg4=4, arg3=3)

# fine
params = {"arg3": 3, "arg4": 4}
someFunc(1, 2, **params)
someFunc(**params, arg1=1, arg2=2)

# fine
params = [1, 2]
someFunc(*params, arg3=3, arg4=4)

# not fine
someFunc(arg1=1, 2, 3, 4)
someFunc(1, arg2=2, 3, arg4=4)

# not fine
params = {"arg1": 1, "arg2": 2}
someFunc(**params, 3, 4)

# not fine
someFunc(arg1=1 arg2=2, *params)

Quick easy rule is that bottom number only matters when writing it down on a staff, otherwise you can just think "5", or "7". The top number is how many beats to get back to the 1

Alright for someFunc(1, 2, var4=4, var3=3), you've stumbled upon a python-specific weirdness. When you pass an argument with its name (such as var4, var3), it is called a keyword argument. When you use keyword arguments, you can pass them in any order, which is powerful. There are more advanced patterns down the line which will use this logic to their advantage. But when you just pass an argument's value, like 1 or 2, and don't specify the name, this is called a postitional argument and order matters. You must pass positional arguments before keyword arguments if you use both when calling a function. It is good practice to either call your function with positional arguments, or keyword arguments, but don't mix. This is not a hard rule though and it is not "bad code" to break it.

Second, with regards to nested list comprehensions, there is an easy trick to understand it. If you can imagine writing a nested for loop without a comprehension, you use the same order of verbiage when collapsing it to a comprehension. These here are equivalent:

result = []
for i in numbers:
    for w in words:
        result.append([i,w])

result = [[i,w] for i in numbers for w in words]

So basically, move the logical statement to the front, and then write the for..in statements exactly as they are declared from outer loop to inner loop. However, this too might be considered bad practice, as the result is far less readable. When reviewing other's code, I would prefer the first way of writing it. Hope that helps!

Looks like some lorem ipsum they forgot to remove

Personally, I was in a similar situation and got a guitar teacher to teach me jazz. In 25 years, I haven't seen increases like I have the last 4 years. It's amazing what it can do for you if you bite the bullet and get serious about reading and learning tons of shapes. I honestly think its the most fun I've had playing guitar, because instead of just memorizing songs, playing over a standard is akin to a video game. The chords are coming at you and you need to adjust your thinking on the fly to match. I go to local jam sessions every week now and its the thing I look forward to the most. Also, I am so much better at my other favorite styles of music because of it.

I never even really wanted to make jazz, but it was one of the few things on the guitar I didn't "understand". IE even though I couldn't play my favorite metal solos, it was basically just a matter of athleticism I didn't care to achieve, I at least knew what they were doing in terms of notes and scales and all that. But not with jazz, it was like a foreign language. I recommend getting a local teacher to kick your ass with stuff you don't know, good luck on your journey!

If you consider the C major scale as the basis of your musical universe. IE it is the number line, or graph space, in which all structures are represented, then you start to see all other structures as aberrations from that “0” scale. This is actually easier to think about in practice. Instead of having 12 things, 7 of which are “included” at any given time, you have 7 things which are always included, and any number of which are “toggled”.

Since you’re on guitar like me, I would think about two exercises to compare. What could you do faster A) look at a chromatic scale pattern on the guitar, and highlight all the frets that are in an Ab major scale, or B) look at a C major scale pattern on the guitar, and slide the pitches to the left which would make an Ab major scale. I think this is not supposed to be an obvious answer, and maybe differs amongst players with different experience levels, but I would argue B becomes the easier and more effective mental model over time

Nah you're right. the IV chord can be seen as a rootless voicing of a ii chord. Sure theorists can argue about the definition of the word "extension", but that doesn't change how this works in practice. They are subsets of the major scale which contain the "even" tones, IE the ingredients of a sub-dominant chord. In a straight-forward song such as this, you can rely on the bass line to tell you how to think about it, but you wouldn't be wrong either way

“I just dropped a huge laufey”

Count out loud, each measure just say the number. Then when that's comfortable, do it every other measure, then every four. Eventually you'll kinda have what 32 measures feels like in your bones. Plus, the melody and what the band is doing sort of helps. It's usually pretty obvious that the end of a section is being wrapped up, either through the drum fills or what the other players are doing. If you want to do it without cues, set a loop and play over it for a while

You know I tend to agree, sometimes chord scale system is adding more complexity than we need to make music. If I see a long chain like this, that's just leading to the tonic, its really just "Eb". Doesn't make sense to think in modes when the moment is passing like this. I think the chord scale system shines on tunes with weirder harmonies, or tunes that lay on a non-tonic chord for a measure or more. Songs like "Blue in Green", "Naima", or any Wayne Shorter tune.

For example, "Take the A train" is basically in C, but the second chord is a D7 and they lay on it for two measures. That's an opportunity to consider what different scales work and experiment. Its not really acting as a V chord, so its hard to say what's correct. Straight up mixolydian would technically work, but lydian dominant sounds better to my ears. It would be a mode of the A melodic minor scale, and since Am and C are pretty related, it works well. Wholetone is also a cool and correct choice. Switching to scales like this are more conscious movements than just playing in C and changing a couple notes. But in any situation I can do the latter, I prefer thinking that way

Probably good to mix it up every time through!

  • Since the 6 is a secondary dom to 2, it would make sense to interpret the 3-6 in the key of F, and you switch to the key of Eb when the 2 chord comes around
  • Since all chords are in the key of Eb except for C7, you could really just play in the key of Eb for the whole thing. Playing the notes of Cm over C7 is totally fine, bluesy if anything. Maybe avoid the b9 over Gm7 you don't like by not choosing either 9 in your lines. I agree the Ab is a jarring choice, Gm7 could be seen as the upper voicing of Ebmaj7, and in either case, an Ab is a stinker to lean into. An "avoid note" one might say
  • Check out some rhythm changes tunes, use the appropriate diminished scale over the 6 and 5, keep everything else in Eb. Usually sounds pretty cool

The difference there is that his base doesn't see it the same way. Sure those issues were "career enders" to the opposition, but they were wrapped in different labels to the other side. To them, Trump is a hero crusading against the deep state, everything he's done wrong is really a wrong being done on him. That's how he stays relevant and afloat, by hosting a separate fictional world. This is not the same, Biden just lost all confidence amongst his own base, it was so famously bad that he needs to drop out or he will lose. Call it an over-reaction if you will, but the tone seems to be that this won't go away, it is a disaster for the left.

I think the representation thing is overplayed, who gaf what the label is, if you win and everyone knows you’re from somewhere, that’s all that matters. Russia knows this. Taking away the ability to represent your country is less than a slap on the wrist. It’s just a PR stunt to say we care while not changing anything IMO

No matter how good, Phish fans would argue goose is better lol, he’d have a hard time in todays world

As a democrat, I think this take gives Biden too much credit. He objectively lost that debate, it was a disaster. Sure trump lied the majority of the time, but that only loses when an honest candidate can successfully bulldoze you for it. Biden failed to do that, and convinced me he won’t survive long enough to see the end of his next term. I’m still gonna vote for him, but damn it was bad

This is a version of a tonnetz, look that up if you haven’t and enjoy the geometry. Every chord differs from a chord it’s connected to by one semitone