Monday, October 22, 2018

Pursuing clarity through openness, part 4: treating harmonic structures as units

Just as it's easier to carry a bucket that has a handle than one that doesn't, it's easier to manipulate and make use of a collection of related harmonic series if they are all tied to a single frame of reference that both specifies the relationships between them and relates them to an external context.

That external context is the pitch scale, frequencies measured in Hz. This is a bit like Schrödinger's cat in that it doesn't matter for the purpose of the relationships between harmonic series and their members, not until those relationships begin to participate in the generation of sound, whether tinkering, composition, practice, or performance. The relationships between series in a structure are pitch-independent (beat frequencies excepted).

However, in the interest of being able to apply that external pitch scale when the time comes, it will be convenient to have a sort of handle to connect to, a node which is stable with respect to the rest of the structure (at least between edits), so that by assigning a frequency to it you also assign frequencies to every member of every series in the structure. That node need not actually be a member of any of those series. The only requirement is that it be in integer-ratio relationship with them; exactly what's used is somewhat arbitrary. There are probably better choices and less good choices, based on the complexity of the ratios needed to specify the fundamentals of the component series, and it may be desirable to recompute this central point of reference after an edit, for the sake of keeping those ratios as simple as possible, but these issues are out of scope for the moment.

I'll be referring to this recomputable central point of reference as the 'anchor'. I say this with some trepidation as I have also used 'anchor' to mean something different, but this seems both the best word for what is intended and the best use of the word, so I'll let it be. Again, I welcome pointers to any standard terminology having the same meaning.

The anchor might start out as the fundamental of the first series in a structure, before anything else is added, but later you might find yourself moving that series either higher or lower with respect to the rest of the structure, meaning that either the anchor follows it, and the ratios relating it to the other fundamentals will need to be recalculated, or it remains stable with respect to the rest of the structure and the ratio relating it to that initial series will need to be recalculated. However one deals with this, after it's over the anchor must remain in integer-ratio relationship with the fundamentals of all series in the structure.

There's also the matter of how to specify the anchor within the external pitch-scale context. You can simply assign it a frequency, and then recompute that frequency as needed, however I recommend using the combination of an infinitely variable scalar (a floating-point value) and an integer ratio, multiplied together to produce the anchor's frequency. The ratio makes consonant transposition simple, and the scalar allows fine tuning.

Next, the nature of the 'highest common fundamental' and what it's good for.

Part 5: the highest common fundamental

Sunday, October 21, 2018

Pursuing clarity through openness, part 3: related harmonic series and harmonic structures

A single harmonic series offers quite an assortment of intervals, but they won't necessarily be conveniently positioned with respect to each other. For example maybe you want to follow a 5:3 with another 5:3 – there's no way to do that, at least not without interspersing a 6:5 interval.

On the other hand, if you add another harmonic series, aligned so that its 3rd harmonic is at the same pitch as the 5th harmonic from the first series, then you can follow the 5:3 from the first series with another 5:3 using the second series. Moreover, every member of the second series will be 5:3 of the corresponding member of the first series, including the fundamental.

Add a third series in the same relationship to the second as the second is to the first, and not only do you get the opportunity to chain three 5:3 intervals together, and a new set of 5:3 intervals between the members of the second and third series, but you also get a set of 25:9 intervals between the corresponding members of the first and third series, again including between the fundamentals.

I use 'related harmonic series' to mean series that have members with the same pitch at different harmonic numbers, and I use 'harmonic structure' to collectively refer to two or more harmonic series that are related in this sense, either directly or through a chain of such relationships. So far as I am aware, these are my own terms, and I'd welcome a pointer to any standard terminology having the same meaning. I'm not out to stake a claim to the namespace.

It might not be obvious why there's any advantage to treating sets of related harmonic series collectively, as a structure. One reason is that doing so simplifies certain operations, both conceptually and in terms of the code required to perform those operations programmatically. Another reason is that it more closely approximates the notion of a musical scale than does a list of harmonic series and their relationships.

That said, I wouldn't advocate for casting any such structure in stone. What's the point of having composable structures if you can't edit them? In my humble opinion, any software written to enable working with harmonics using such structures should place emphasis on making them easily editable.

It's worth noting that there are other ways of arranging pitches related to each other by integer ratios of frequencies, besides placing harmonic series adjacent to each other, for example the tonality diamond. My original goal was to arrange nodes representing related pitches into an editable tree structure. Unfortunately I never came up with a way of keeping such a tree structure from becoming disproportionate and messy on-screen, and I've generally found harmonic series easier to work with, both in abstract terms and for the purpose of building software around them.

Next I'll address the question of how to deal with a harmonic structure as a single unit.

Part 4: treating harmonic structures as units

Saturday, October 20, 2018

Pursuing clarity through openness, part 2: harmonics, intervals, integer ratios, and powers of primes

At its simplest, a harmonic series is just a sequence of consecutive integers, beginning with one – 1, 2, 3, 4, and so forth. In the context of sound, those integers are multiplication factors, applied to some fundamental frequency. If we use 'x' to represent that fundamental frequency, then its harmonic series is 1x (the fundamental itself), 2x, 3x, 4x, and so forth. These are also called the first harmonic (again, the fundamental itself), the second harmonic, the third harmonic, the fourth harmonic, ..., and are collectively called the members of the harmonic series defined by a particular fundamental. Different fundamentals, different harmonic series. The position of a harmonic in such a series is its harmonic number.

If someone were to ask you how you would determine the difference between two members of a harmonic series, your first instinct might be to subtract the smaller from the larger. Again using 'x' to represent the frequency of the fundamental, you might be tempted to say that the difference between the fifth harmonic (5x) and the third harmonic (3x) is 2x, and while this isn't wrong exactly (the frequency of the interference pattern between them, or 'beat frequency' would in fact be 2x), it's also not the best answer for how these two harmonics sound together, simultaneously or sequentially, as musical notes.

A better answer is that the perceived relationship or 'interval' between these two harmonics is the ratio between their harmonic numbers, in this example 5:3. The interval between any two members of a harmonic series can be expressed in this way, as a ratio of the integers which mark the positions of the specific harmonics in the series, and, in this, all harmonic series are the same, because the interval between a pair of harmonics in one series will sound very much like the interval between the same pair of harmonics in another series with a different fundamental. A 5:3 interval is a 5:3 interval, whether it's 50:30 Hz or 500:300 Hz; in each case the size of the step from one to the other sounds much the same.

I have fallen into the habit of representing these ratios in terms of the powers of prime numbers, for example representing 9:8 as (3^2):(2^3), where '^' is an exponentiation operator. For most purposes this is a matter of hunch on my part. Perhaps others can make an argument for the musical relevance of prime factors; I cannot, except in one particular use, which I'll get to in a later installment.

Next up, how harmonic series can be related and combined into structures.

Part 3: related harmonic series and harmonic structures

Friday, October 19, 2018

Pursuing clarity through openness, part 1: motivation

I expect this will prove to be the first of several, perhaps many installments.

I recently engaged in a 'tweet storm' with the initial intention of sharing an epiphany that allowed me to move forward with this project, or will if and when I have more time to give to it. Over the course of that tweet storm I realized that I'm more than a little confused about what I'm doing here, but also made some progress at addressing that confusion.

My primary purpose here is to achieve greater clarity for myself, but I also intend to lay my thinking open for others, and hope that it may take on a life of its own and no longer depend upon my completing some project.

I'm going to assume that any readers of this blog are at least familiar with the notion of harmonics, and I won't bother arguing their applicability to melody, nor their relative merits as compared with the twelve step equal tempered scale and all of the theoretical epicycles that have grown up around it.

I'll also make no attempt to represent the alternative theory of music called Just Intonation, nor the community of practice that has grown up around it. I am not a musician, but am drawn to making musical tools, and have invested thousands of hours to that end, with more than nothing to show for it.

In the next installment, I'll introduce a few basic concepts. The challenge for me will be to give them names I can live with until someone better informed about musical terminology comes along. The ideas are simple enough, but they do defy succinct description.

Part 2: harmonics, intervals, integer ratios, and powers of primes

Monday, March 26, 2018

name change

When I decided to start a second Twitter account for my music-related programming efforts, I reconsidered naming and decided to use the handle "harmonicLattice" to shift away from a focus on integer ratios and towards the idea of tonal structure based on harmonics. Integer ratios are still very much part of it, just not as blatantly so as they were in RatioKey.

Since then, I have also opened a gitHub account using the same handle. While I have yet to put anything there, my intention is to use this account to post some code as open source. (Details to be forthcoming if and when this actually happens.)

Now I have also changed the name of this blog to "Harmonic Lattice" although the URL remains unchanged, to keep from breaking any links to it which might exist out there in the wild.

That's not to say that this will be the name of any new app (if and when), but it does provide a glimpse at the direction in which I'm working in my efforts to create one.

I have made progress towards this, but a great deal of work remains to be done, and I won't hazard a guess as to when it might be ready for initial submission to the App Store.

I say initial submission, because I fully expect to not gain acceptance on the first try. Standards are higher than they were in 2010, and I've been out of the loop enough that I may have forgotten or be unaware of certain requirements.

Thursday, September 21, 2017

dream => crawl => walk

I am making some progress towards creating a replacement (yet to be named) for RatioKey. Of course, that is no guarantee it will ever be published, but I'm feeling more hopeful in that regard.

I'll post any real milestones here, but if you would like to follow this project in more detail, I've created a Twitter account just for that: @harmonicLattice. That handle contains a hint about what I'm currently working on, but only a hint.

Saturday, September 03, 2016

Version 1.1 has become an embarrassment

Rather than subject myself to the tension of wondering whether Apple would choose to remove RatioKey 1.1 from the App Store, I have chosen to remove it myself. My apologies to the handful of you who might still have found some value in it.

I can't promise that I will ever manage to publish an updated (reconceptualized) version, but it is still my intention to make the attempt, although that project may not bear the same name.