Popular Posts

Wednesday, March 23, 2011

Pythagoras first real Microtonality - 53tet

The main motivation for creating Pythagoras was to demonstrate something wonderful about the use of touch screens as instruments. Believe it or not, the iPad is capable of being a highly playable instrument that will do things that are typically impossible. You just can't do microtonality correctly the way it is currently practiced. A bunch of re-tuning tables for a MIDI controller with 12 keys per octave is a joke as a microtonal instrument. If you want to do microtonality, it also needs a very smooth transition in and out of 12tet to be useful in the real world. That's where the Mugician / Pythagoras / Linnstrument / ExpressionPad / TapSynth / SynthX layout comes in.

When I made the decision to tune to Just 4th intervals rather than the typical piano tuning, the main motivation was to avoid the annoying finger adjustments required to hit proper power chords in fretless mode.

In fact, in fretted mode it wasn't completely possible to hit those intervals at all. Like a guitar, if you tune to harmonics, you will find that the octaves don't match when you get done tuning. This is because the 4th interval (and its inverse, the 5th) of the piano is an approximation to the harmonic series rather than using the actual thing.

The most important interval is the octave. You just take a frequency and multiply it by some whole power of 2 to get a new frequency. As long as these numbers are whole, everything you get back will have an octave relationship from it. The second most important interval is the fifth which is (3/2) to some integer power. Notice that if you ignore octaves, then you can throw away powers of 2, and just call it some integer power of 3. So this is a curious number system where all of the numbers are of the form 2^n*3^m.

If you think about it, you can extend this to all of the prime numbers. But the Pythagorean tuning system creates all notes in the scale from just 4ths. So, ignoring octaves, it's simply generates the scale all "reasonably small" powers of 3 brought into the current octave. Unfortunately, there isn't some number that hits the octave exactly at some point - because 2,3,5,... are PRIME factors - the problem is not perfectly fixable. At the 12th fifth away its kind of close, which is why the 12 tone system was invented. (And 12 has interesting numerological and symmetry properties as well, if you want to ignore the actual frequencies it implies). But at the 53rd fifth away from the root it's very close.

It's so close that the screenshot you see... isn't 53tet. It's the actual harmonic series of just fourths up to the 53rd power. It's the same as 53tet to the pixel, except being slightly off right after the last harmonic, which is basically harmonically useless with respect to the root note anyway. I colored the lines so that the bluer it is, the closer it is to the center (ie: the lower the absolute value of the integer power of 3 in its factorization). The more green the tint the more fourths it has, and the more red the tint the more fifths it has.

How does it sound? It sounds incredible. When chords are standing waves due to perfect ratios, they have a real "face" to them and resonate like one voice. In this intonation, the order of the usefulness of intervals is in the order of the number of fourths or fifths to reach the note (the absolute value of that power of 3). The usefulness of the intervals is even in a different order from 12tet. In 12tet it goes: octave,fifth,majThird,minThird,second,dim5. In Pythagorean it goes: octave,fifth,second,majThird,... It quite obviously is ordered by the absolute value of that power of 3 exponent.

If you start from a base pitch and just start traveling up and down by Just 5ths, you get phenomena in this order: octaves, fifths chords (power chords), pentatonics, scales. However, because the fifths don't exactly match to an octave something interesting happens.

+/- 1 5th gives power chord of 3 notes. +/- 2 5th gives pentatonic of 5 notes. +/- 3 5th gives 7 notes - all white keys with Pythagorean intonation. going up and down give more sharps and flats. So +/- more notes and you have a total of 12 notes, even if they are tweaked a little different from the 12 tone system. But if you go up 5 in one direction for sharps and down 5 in the other direction for flats, these sharps and flats are *not* repeats of the same set of notes, but they are close to each other.

7 + 5 = 12. 12 + 5 = 17.

These are the 17 note scales related to pure tunings, not some 17tet craziness. In this 17 note scale, the sharps and flats are pretty close to each other. You can see this in the Pythagoras screenshot in the area where the black notes reside. In these cases, the yellow marker for the 12tet fret is about centered on both sides by two bluish lines. The one with the reddish tint is created by walking fifths and the one with the greenish tint by fourths (or maybe it's backwards... but you get the idea).

So you easily notice when playing fretless that if you play almost a quartertone away to make the pattern even that there is some number of frets that almost lines up, and it's 53. So after walking the circle of fifths for 31 octaves it is very close to fitting. So what this means is that you can tune a guitar to Just 4ths as long as you use 53 frets per octave. What will be available will be all the notes that involve fifths and octaves as overtones. Some of the notes just happen to be close to other perfect intervals, which you can see by inspecting the angled lines to see if they hit any of the vertical lines. Since it has a pretty close major third, then that means that 53tet is a good approximation for Just intonation as well.

The math behind all this is really besides the point. The point is to match up with the harmonic series, not to have some funny number of frets that hasn't been tried yet. The most I will say is that there is a prime factorization like... 2^m * 3^n * 5^p ... (oct,fth,majthrd,...). Pythagorean tuning treats the ones involving 2,3 as the only useful ones for creating all the harmonics. This is good in that all of the pitches sound like they are in a common family as well.

Anyways, this intonation allows the exact kinds of scales that Mugician and Pythagoras were created to play. I have to make an admission that the pure fretlessness, though nice to be able to do, introduced as much slop as magic. You can do quartertones, and hit those crazy resonances that 12tet squeezes out of everything. But you also just make a lot of sloppy bends to only hit them in passing. 53tet is an answer for Just intonation, middle eastern scales (which officially uses 24tet ... but it's more complicated than that, and in a lot of ways is trying to be Pythagorean). What is also really good from a practical perspective is that it provides *just enough* correction to hit the notes that the inaccuracy in the touches is preventing and getting you to the subpixel value that's the intent.

I might add in 24tet just to have it, but 53tet sounds better if you don't absolutely need 24tet for your quartertone scales.

Monday, March 14, 2011

Goofing off far below audible pitch range

If you go down enough octaves, tempo is tied to the drone note. Different chords have different rhythms. What you hear are not pure notes because I have the distortion and some harmonics turned up so that it's audible. But this is part of the point I would like to make about thinking in terms of notes as being simplistic. When you play fretless, there are no special notes anywhere. There are only special ratios of one pitch relative to another. They make interesting rhythmic patterns that you can hear below the audible tones:


Imagine your BPM being midi note -24 or whatever it maps to... something absurdly low. Then the drone note is some octave up. double time is an octave. triplets are a fifth in some octave, etc.... it could be interesting to connect the two by having a sound with some absurdly low octaves in it.

Wednesday, March 9, 2011

Pythagoras Octave Rounding.

I got simple octave rounding working in Pythagoras last night. Between this being still unfretted and me being sloppy, the playing is a little out of tune. But considering the speed and octave range, it isn't awfully out of tune.


Maybe the microtonal slider will snap to 12tet at lowest setting, to the harmonic series approximation to 53tet somewhere in the middle (for very tight chords with respect to the drone), and fully fretless all the way over to the right.

With octave rounding, you don't need a lot of octave range to really run up and down the board...just room to reposition from the left or the right. It's not quite what I want, but it's a start.

Wednesday, March 2, 2011

hwado's Musician vs my Mugician

"WTF is this?" - A quote from somebody that helped work on Mugician with me, after seeing this image on his iPad.

I made Mugician open source a few weeks ago. I got asked by a lot of people to add features that I didn't want, so I figured that making the project open source was a reasonable thing to do. So I put it here.


In the README file that shows up on this page, it merely states some simple conditions in the license. They are all aimed at just making sure that I don't end up getting emails about the Malware version of Mugician, or confusing my users.

If you buy "Musician" just note that it's a blind re-compile of the Mugician project in its latest state, with a few bug fixes that are not yet in the official Mugician, and a stupid splash screen banner added.

I really dislike this sort of developer, and these guys were the only thing that gave me pause to making Mugician open source. But whatever, some developer that wants to really add something, like make an ergonomically workable iPhone Mugician or add MIDI support... be my guest. Just credit the project, and I will endorse your work enthusiastically, and ask you to submit your changes into a branch. If I trust you enough, I will write an exception to the request to submit changes into a branch that I can compile too.

Pythagoras won't be open source because of this sort of thing though. It would be a better candidate because the source is smaller and cleaner, and there is a good possibility of the whole sound engine being in libpd. I might have to share it on a peer-to-peer basis with specific collaborators just to shut out the compiletards that just take people's stuff and try to re-brand it as their own.

If you don't understand why that irritates me about a free app, keep in mind that I am not the only person that sunk time into Mugician's design. Jordan Rudess is an example of somebody who spent time on it. Hiding "Musician"'s origins as "Mugician" hides the credit that Jordan Rudess deserves. In this case, calling it "Musician" is clearly an attempt to confuse my users as well. I just did a gig with Mugician the other night, and I am sure that people will be sending email to HWADO thinking that it's me, and that I don't respond to emails.

It hides the credit to all of my many testers, and people who got up on stage and risked their gig with my instrument.

I hope that Apple tires of these sorts of developers and starts revoking their certificates en-masse. There is always talk about it, and at some point Apple will have to step in and do it. hwado's business will be gone overnight when it does. Apple even noted quite explicitly in the developers agreement that they don't need more fart apps, so they don't just blindly allow junk because it's not violating an explicit rule. Musician is a good app because it's Mugician, but it's definitely an underhanded way to avoid the obligation to contribute something or to write your own code.

Note that I wrote the license myself in plain english, and I did not pick some legally binding GPL. The reality is that the legal mumbo-jumbo is unreadable because it's not really in English, and it only works in the case of enforcing it against a large company - but that would still require lawyers to challenge it anyway. So I am relying on people to simply point out what these people are doing in the app comments.

Maybe "Musician" will be a runaway hit for some strange reason. I guess that's ok as long as everybody follows links back to Mugician to see who actually did the work on it, because it still validates what I am trying to do. My main concern is that I never want to have to deal with a malware version of my app floating around, especially one that *does* credit Mugician.