home j h h l . n e t home

Fortuna Tuner

O Fortuna!

Version 1.0.0 © 2018 Henry Lowengard

https://jhhl.net/iPhone/Fortuna

Fortuna@jhhl.net

Introduction

Fortuna Tuner is microtonally aware tuner and scale builder. Fortuna's philosophy is to show you how close a tone is to a predetermined pitch in a particular tuning or scale. That's because you usually want to see if the pitch your instrument or voice is making is one in a scale you want to use.

It does this by showing you what a few milliseconds of your sound at that pitch actually looks like in several ways.

A particular scale is loaded into Fortuna which is used to provide a template for matching pitches. By default, it's that good old western familiar 12 equal divisions of the octave scale that's based on an A (in the 4th octave) at 440 Hz. Fortuna gives you access to the 4600+ scales of the Scala collection, compiled by Manuel Op de Coul. See The Scala Webpage for more details!


At the top of the screen are a number of buttons controlling the handy tone generator to use as a reference tone to tune to.

  • On/Off turns the sound on and off
  • The wave chooser doesn't work right now, but will swap what waveform the tone generator will play (Sine in this case). The choices are Sine, Square, Triangle, and Saw.
  • Rpt turns on and off the repeating of scales or tunings. Most tunings don't repeat, many scales do.
  • There's a Help button that you should press to read these notes.

On the far right is a place to specify the base frequency, or "key" of the tuning. You can specify this as a note name (with "f" or "b" for flat, "s" or "#" for sharp) with its optional octave, and with an optional +/- cents value. You can also just type in a Hertz value there. But most intriguing, you can play a note on your instrument and push the microphone button, and it will try to pick up the pitch from that tone. You may have to try it a few times, it has a tendency to be off by an octave one way or another. I'm working on that.

The main part of the screen is a display of phase correlation of the incoming sound, with each line showing how correlated a corresponding frequency is to itself. The screen shows a number of columns of correlations, with low frequences on the left to high ones on the right. Each column represents a little more than an octave, since sounds that correlate well tend to do so over a number of waveforms, effectively meaning lower pitches are alos the "same" pitch. The top and bottom ends overlap with the previous and next columns, so that sounds near the edge don't get lost.

When a sound's wave form is close to the same as it was on wavelength of the desired frequency ago, the color of that pixel, representing a sample of the wave, with its wavelength scaled to the width of the column, is black or nearly so.

Tick marks representing frequencies found in the currently selected scale are displayed on top of this diagram, so you can compare the real pitches to the ones in the scale. These are generally colored white, except for a blue line which represents the base frequency, and a green line in case you select a scale line to show more details. I may have more clues later.


At the top of the screen are a number of buttons controlling the handy tone generator to use as a reference tone to tune to.

  • On/Off turns the sound on and off
  • The wave chooser don't work but will swap what waveform the tone generator will play (Sine in this case). The choices are Sine, Square, Triangle, and Saw.
  • Rpt turns on and off the repeating of scales or tunings. Most tunings don't repeat, many scales do.
  • There's a Help button that you should press to read these notes.

On the far right is a place to specify the base frequency, or "key" of the tuning. You can specify this as a note name (with "f" or "b" for flat, "s" or "#" for sharp) with its optional octave, and with an optional +/- cents value. You can also just type in a Hertz value there. But most intriguing, you can play a note on your instrument and push the microphone button, and it will try to pick up the pitch from that tone. You may have to try it a few times, it has a tendency to be off by an octave one way or another. I'm working on that.

The big table on screen shows you all the reasonably audible pitches in the chosen scale, with various ways to describe the pitch on the left, and a visual display of the current sound at that pitch on the right.

At the top is a row of buttons

The left side of each pitch line has:

  • a play button,

The upper half of the line is about the frequency of this pitch:

  • its "Standard name" as currently configured, usually as a western ET note and a "cents" offset if necessary,
  • its value in Cycles per second (Hz) and milliseconds per cycle,
  • any comments provided with that pitch, and an automatically generated name with the octave in square brackets

The lower part of each line is the intervallic relationship to the base pitch (or key)

  • the actual interval specification
  • the offset in cents
  • the interval as a real number multiplier

On the right side of the screen, the actual samples of the sound, positive and negative, are displayed on the screen as yellow and blue. When it crosses from positive to negative, the "zero" is colored black.

When a sound is in synch with its wanted pitch, the waves of the sound, as expressed in color, will line up (more or less) in a single straight vertical line. If the sound is a little sharp, it will lean right, a little flat, it will lean left. Most of the time you'll see a staticky show of noise, or, in some frequencies lower than the one you want, the "subharmonic" frequencies, straight lines, but not a single one, a series of them. That's because the desired frequency is a harmonic, and even rational multiple, of the frequency you are seeing.

this kind of display can give you a sense of how pitches are harmonically related - which is the basis of a lot of tuning systems. Realizing those pitch relationships while also allowing for transposition is the main pursuit of scale construction over the centuries.

As a side effect, you can see how chaotic that sound actually is!

You can scroll the list to find where the sound best matches your tuning. [I might add a button for that]. Use the index on the side to skip to the octave of your choice.

Hearing these pitches

If you tap on the line of a pitch, it will play. You can adjust how loud it is with the slider below the buttons on the screen. If you tap a numbered "play" button on a line, it will play, (tap again to turn it off), and you can use it to play chords (up to eight notes in a chord). Touch the "On / Off" button to silence it without having to find the exact line again. Some notes are rather lower than the device's speaker can credibly produce, an some are too high for an old person like me to hear, but they are annoying to other with better hearing, so exercise caution and volume control!


Loading Scales

the line with the scale description is actually a button that leads to the scale picking screen.

Because there are thousands of scales, I let you search for them. This does a case insensitive search on the name and description of the scale. How many match is shown in the status section.

Scales recently chosen are given a prominent section!

Each scale or tuning is marked with icons indicating whether it's a user-made or imported tuning, and whether it's a repeating on non repeating scale or tuning. Most are repeating. It also tells you how many intervals are int eh scale.

For this app, I went through the Scala collection and analyzed the descriptions to see which were actually tunings, and marked as such in Fortuna's scale database. Many scales also indicated a particular key to be based on, which I've also added. More options will become available!

The Export buttons on each line turn the scale into a slight extended, but compatible Scala format that you can import to other apps. This is especially useful if you build your own scales in Fortuna, or want to alter one.

Once you chose a scale by tapping on it, you can tap DONE to go back to the measurement screen. The NEW button is covered below!

Repeating

Scala scales have a convention that they if they repeat, they repeat on the last interval specified. Fortuna follows this convention. Scala also includes many scales that span more than an octave, and Fortuna respects that as well. If a scale repeats, you can turn off that repeating if you want on the main screen.


The Tone Spiral

You can change the display to show the tuning or scale in an interactive way by sliding the page control at the bottom of the screen to the right.

A new display replaces the screen, with only the intervals specified in the tuning (not repeats) visible in a spiral that displays an octave in each "ring". Each interval is seen as a movable circle in the tone spiral. Tapping the circle plays it as a tone. This control will be familiar to people who use my app "Droneo".

tone spiral: equal guide

Various guides are available to help you analyze and construct new scales, with a button corresponding to each one.

  • "12" is 12EDO, the standard we're used to in the West, it shows the intervals as regular as the hours on a clock!
  • "J" is Just, a selection of popular Just intonation intervals, up to some 7-limit pitches
  • "S" means Scale, which let you us any scale of the scales built into the app as a guide. It's a little cumbersome right now, you pick the "guide scale" first and then tap the hairy asterisk button on the right to register it as a new guide. then you can load up another scale as usual.
  • "=" works with the interval specified next to it to make equally tempered scales. The interval can be specified in cents with just a number, or as a just ratio "A/B" like "18/17", or if it's an equal division of something other than an octave, the form "d:b@n/d" degree, base, numerator, denominator can be used. For example, "1:5@4/3", a 4/3 (perfect fourth) divided into 5 equal parts, which is about 99.1 cents.

If you move the intervals (dos) manually, there are some buttons to control what happens: - Free/Snap either lets you put an interval anywhere, or it snaps it to the nearest guideline. - Perturb, available when in Free mode, adds a random offset to all the intervals. Yeah, precise tuning ain't all it's cracked up to be. - Retune , available in Snap mode moves the interval to the closest guide. - Silence sets all the intervals to 0/1.

If your scale needs intervals the are out of range, just drag it to the edge (for higher intervals) or toward the center (for lower ones) and the spiral with adjust accordingly.

You can easily navigate from interval to interval with the "<",">", and "1" buttons (1 being the first interval). while it's easy to touch them, in a dense setup, you'll be happy to use these buttons!

A "+" button will add an interval, the "-" will remove the current interval. The current interval will show its spec somewhere, probably next to the "1", and you'll be able to type it in.


New Scales

The NEW button on the scale picking screen brings you here:

This scale building screen lets you build a scale by hand typing in the intervals. A scale is given an automatic, somewhat random name that you can change. The comment is also more important to change, there you can more accurately describe your new scale.

There's a base pitch (key) available, which the intervals are multiples of. Yes, you can set it with pitch detection and play it for reference.

Internally, like Scala's format, we assume there is a "1/1" or "0 cent" interval in every scale, so you don't actually specify it, except as a base pitch (key).

You add an interval (originally a 2/1) with the eponymous Add Interval button. there you can type in the Interval Spec (cents, ratio, equal division, or equal div of an interval) and a comment to describe it.

You can set each of the other intervals with pitch detection too, and clean them up. It'll put a description of the Hz value in the comment, which will be irrelevant if you change the base pitch. I may figure out how best to handle that. You can always change the interval descriptions anyway.

The last interval specified will be the repeat interval. Btu if you flip the repeat switch, it will just be the last interval.

The conventions about the 1/1 and repeat interval interfere with good interval labeling; I'll work on that.

You can clear the scale with the Clear button, and sort the intervals with the Sort button (Tunings don't have to be in order; a Uke tuning, for example). You will be able to drag the intervals out of order if you like.

Swipe to the left to allow a delete button to appear to remove an interval.

You can be done or Cancel this process with the Done and Cancel buttons.

When you are done, you go back to the scale screen and you can export it as Scala to another program, or just use it to tune another instrument to this tuning.

To delete the user scale, you just swipe its name to the left in the scale screen.

You can also import Scala scales from other programs into Fortuna.


Fortuna is in pretty good shape but there are parts I'm still working on - optimizing it internally while it's reading in scales and showing its data, a smoother workflow in places, etc. I may put in skins. I may put in something so it can act as an AUV3 and be put inline with a track somewhere, or that would be a different app.


Credits

Scala: Marcel Op De Coul!

AudioKit: not as great as all that, but I am using it.

Copyright 2018, Henry Lowengard,


jhhl's iPhone Apps
home
Main jhhl.net website
© 2018 Henry Lowengard.