Skip to content

Tuning Panel

Damon Law edited this page Jul 11, 2018 · 4 revisions

@marcus - do you want to add more about this panel

Information to be formatted later:

Tuning Panel will now toggle between 4 states when you tap:

  1. Harmonic approximation,
  2. Pitch (log2(frequency)%1),
  3. Cents (1200 x log2(frequency)),
  4. and frequency.

The Synth One tuning library is curated from a panel of microtonalists with nearly 200 collective years of experience. For this first release:

Tunings are stored in a tuning table of size 128 (a mapping from midi note number to frequency) Tunings are octave-based, so there is always a well-defined notion of "notes-per-octave" used to scale sequencer patterns. The keyboard has no knowledge of the scale and is simply note-number-based. Every note on the keyboard maps to all 128 note numbers which maps to 128 frequencies of the tuning table.

The "pitch wheel" is a log2 ("pitch") representation of the frequencies of one octave of the tuning table.

The "master tuning" control is actually changing middle C based on what an A in 12ET would be. i.e., assume 12 et, adjust middle C based on the "master tuning" of A, then apply that to the 0th degree of the scale as if that was middle C. The code looks like this:

AKPolyphonicNode.tuningTable.middleCFrequency = getSynthParameter(frequencyA4) * exp2((60.f - 69.f)/12.f);

The Synth One tuning library is static for this first release, but under the hood the library is dynamic and will import new scales as they are shared via presets. As we add new presets with new scales, or add Scala file support, user's libraries will be updated. More work needs to be done here, but it has a rudimentary future-proofing.

Clone this wiki locally