HNHacker News
TopNewBestAskShowJobs

jdontillman

127 karma · joined March 7, 2009

Don Tillman has a background in electrical engineering, software engineering, music, physics, math, economics, business, and a bunch of other areas.

He lives in Palo Alto, California.

http://www.till.com for details, articles and fun.

submissionscomments
jdontillman··on What Is a Major Chord?
Sorry, but I have to say that none of this will make a particle of sense to someone who would be asking such a question.

A rudimentary question is a wonderful an opportunity to distill everything down to a simple understandable concept.

Here's how I would do it:

---

Western music is based on simple frequency ratios. 2:1 is so basic that we call it the same note, but an octave up.

Three pitches with ratios 4:5:6 make a major chord. These are the simplest possible ratios within an octave, so a major chord is the most basic chord, and all other chords are derived from that

jdontillman··on Yamaha DX7 Technical Analysis
"FM Synthesis" is a generic term that encompasses both phase modulation and frequency modulation.

And in John Chowning's original article, he bops back and forth between the two without mentioning it.

In practice, phase modulation is more useful and makes more sense. And yes, the DX-7 uses phase modulation throughout.

---

With Frequency Modulation, you can have an operator feed back on itself. However... with such an arrangement it is entirely possible for it to get stuck at 0 Hz. Not very musical.

---

And phase modulation makes a lot more sense. Watch as I demonstrate.

Student: "How does FM synthesis work?"

Teacher: "Well, do you know what happens if we have one oscillator modulating the frequency of another oscillator?"

Student: "You mean like vibrato?"

Teacher: "Yes, exactly. Now imagine a vibrato at the same frequency as the second oscillator."

Student: "That's doesn't even make sense."

Teacher: "Not to worry, the Bessel Functions still apply."

Student: "What's a Bessel Function. Can I calculate it?"

Teacher: "Not directly. It's kind of complicated."

Student: "Mutherfucker!"

Okay, now let's try phase modulation.

Student: "How does phase modulation work?"

Teacher: "Okay... Do you know how distortion works?"

Student: "I'm a guitar player. I'm intimately familiar with distortion."

Teacher: "Great! So distortion is a nonlinearity on the Y axis of a waveform."

Student: "Yep!"

Teacher: "Well, phase modulation is a nonlinearity on the X axis of a waveform. We stretch the waveform here [hand gesture], and compress the waveform over here [hand gesture]."

Student: "Hmm, warping the waveform along the X axis. That sounds kind of like PWM."

Teacher: "It's kind of similar, yeah."

Student: "Cool; thanks. I understand."

jdontillman··on Moiré No More
Hey! Lisp Machine Space Cadet Keyboard (in the sample photo) for the win!

Photo:

https://s3.amazonaws.com/revue/items/images/010/788/006/orig...

Space Cadet Keyboard:

https://en.wikipedia.org/wiki/Space-cadet_keyboard

Oh, he's writing a book about keyboards. That makes total sense, then.

jdontillman··on Apple acquires classical music streaming service Primephonic
It may be; I don't know enough about it.

I wrote these a while ago... should've dated them.

jdontillman··on Apple acquires classical music streaming service Primephonic
Heh... I predicted this exactly in my Article "38 Startup Company Ideas". This was number 4.

http://till.com/articles/startupideas

jdontillman··on Human taste buds can tell the difference between normal and 'heavy' water
I always thought that a nerdy boutique coffee shop that served coffee brewed with heavy water would make for an interesting business.
jdontillman··on Yamaha’s DX7 synthesiser changed modern music
Correction; the senator meant to say the Buchla 258 oscillator had linear FM.

(Although there were variations!)

The control voltage input goes through the exponential converter, and the FM input sets the bias of the exponential converter.

jdontillman··on Yamaha’s DX7 synthesiser changed modern music
>> Given 1983 technology, it was very difficult to implement digital audio filters, which require millions of multiplication/accumulation operations a second.

> This seems high? A second-order digital filter requires what, about 4 stores, recalls, and multiplies per sample? This would seem to be in the same level of complexity as six carrier/modulator interactions; you have to do a multiply to do a lookup after all. Or is the issue that the multiplies had to be 12-16 bit?

For microprocessors in 1983, multiply instructions, if they existed at all, involved a lot of shift and add cycles. That took a long time.

A simple filter might need 4 multiplies and accumulates. Times 44,000 times a second, for each sample. Times the number of voices; 16 in the case of the DX7.

Now you are easily over a million multiplies a second.

And even though the original DX7 is 12 bits, I think you'd need those multiplies to be 16x16 bits for accumulated error issues.

So the DX7 was an alternative to having to implement digital filters in 1983 technology. They could introduce a digital synth at a very reasonable price.

jdontillman··on Yamaha’s DX7 synthesiser changed modern music
>> John Chowning refined the concept, moved from frequency to phase modulation, and brought FM into the digital realm.

> ?? Chowning's paper doesn't mention phase modulation at all, does it? His equation is for frequency modulation. > >https://web.eecs.umich.edu/~fessler/course/100/misc/chowning... > > I would presume that the relationships between phase and frequency modulation were known a half-century before Chowning.

Chowning says his equation is for frequency modulation, but the equation is actually phase modulation.

Chowning's equation(1):

    e = A sin(𝛼t + I sinβt)
That's phase modulation. Frequency modulation would be:

    e = A sin((𝛼 + I sinβt) t)
Very different.

That's okay; it's the first academic paper on the topic, and things were still a little wobbly.

After the paper, he and others refined the concept, moved from frequency to phase modulation, and built digital implementations.

jdontillman··on Yamaha’s DX7 synthesiser changed modern music
> > FM synthesis, as such, was not new. The Buchla synthesizer featured it in the 60's.

> But the critical feature of FM synthesis that made it usable as a musical element was linear FM. Early synthesizers (like, I presume Buchla's) sported "FM" but it was exponential due to volt/oct.

No; the first Buchla oscillator, the 158, did indeed have linear FM.

And that was intentional. Early Buchla synths didn't have much going on in the filter department, so instead he made the oscillators extra expressive.

jdontillman··on Yamaha’s DX7 synthesiser changed modern music
"Hammond Organs are distinct and popular, but nowhere near as ubiquitous as the DX7."

Dude...

There were about 200,000 DX7s manufactured.

There were about 2 million Hammond Organs manufactured.

jdontillman··on Yamaha’s DX7 synthesiser changed modern music
Interesting. I agree that the article is an exaggeration.

It could be argued that the DX7 had a significant negative musical contribution. Oodles of sounds at the expense of musical expression. The musician became alienated from the process of making the sound. The keyboard player's job moved from playing the piano or organ to coming up with all the accompaniment parts that aren't guitars.

And the DX7 was way too difficult to program. Sort of like trying to solve a Rubik's Cube; you can be one twist away and not know it. And since whole point of synthesis was for the musician to explore and tweak their sound, the DX7 was sort of an anti-synth.

That said...

Maybe it was an accidental choice of words in the article, but I would also say that the DX7 was, indeed, one of the most important advances in terms of musical engineering.

Given 1983 technology, it was very difficult to implement digital audio filters, which require millions of multiplication/accumulation operations a second. The microprocessors of the day were not up to the task. TRW offered a 16x16 bit multiplier chip, but it cost around $300 for the chip alone (!!!) and required significant support circuitry.

FM synthesis, as such, was not new. The Buchla synthesizer featured it in the 60's. John Chowning refined the concept, moved from frequency to phase modulation, and brought FM into the digital realm.

Then some smart folks realized that FM synthesis could be implemented entirely in add and ROM lookup operations, which is downright easy in 1983 technology. Then they refined FM some more so it could produce a wide timbral range from the single engine.

That's the impressive part of the DX7.

jdontillman··on Growing a Language (1998) [video]
And the old version still has some great comments.
jdontillman··on Growing a Language (1998) [video]
For some reason that version has a large number of audio glitches.

But very recently the Computer History Museum published a cleaned-up version:

https://youtu.be/lw6TaiXzHAE

Good!

jdontillman··on Show HN: Triadex Muse in a Browser
"I've got a Muse sitting on a desk across the room staring at me right now."... That's something you don't hear every day.
jdontillman··on Show HN: Triadex Muse in a Browser
The Triadex Muse was a digital algorithmic music composer invented in 1969 by Marvin Minsky and Edward Fredkin at MIT.

The Muse is incredibly rare; one report claims that only 280 were built, and a small fraction of those are likely in working condition today. And that's a shame, because this was a remarkable device and we can learn much from it.

This is a Javascript simulation of the Muse that runs in a browser.

Please enjoy!

jdontillman··on CamelCase vs. underscores: Scientific showdown
Very often a variable name needs to provide more context.

I have found it very useful to use under_scores as a form of punctuation within camelCase to visually connect related variables.

Like this:

  spectrumPlot_x
  spectrumPlot_y
  spectrumPlot_drawHarmonics
  qa_signalDone
  qa_setLoadedFlag
  requestTimeout_minValue
  requestTimeout_maxValue
... and so forth.

(Note that the opposite doesn't work: camelCase as a punctuation within under_scores.)

← PreviousPage 2 of 2