But the thing is, I want a format that's

*simple*. Like WAV, except based on frequency instead of time-domain signals. I want simple math. (Well, if you count linear algebra and Fourier analysis as "simple".) I want any programmer to be able to generate "chiptune" music or make simple musical transformations like "make everything an octave lower" without specialized libraries.

Perhaps such a thing already exists; if so, please let me know. Until then, here are my notes for the design of a new format, which I am tentatively naming "LFE" for "Logarithmic Frequency Encoding".

**Basis Frequencies**

Each time-block of music will be represented as a sum of "basis" waves.

The basis frequencies will be equally logarithmically spaced, with *100 (144) frequencies per octave. The interval between each frequency is thus 8.33... "cents", approximating a "just noticeable difference" in frequency.

The specific basis frequencies are:

F(n) = 2^((n-972)/144)*440 Hz

Note the bias towards the A440 12-EDO pitch standard: Music using this tuning (and consisting only of sine waves) can be exactly represented. The numbering

*n*is arbitrarily chosen to be exactly a dozen times the TGM note number.

Since computer memory is a finite resource, we'll need to impose a reasonable range constraints on

*n*.

If we want our audio files to be converted to or from CD's, then we'll have to deal with their standard 44 100 Hz sampling rate and thus a Nyquist frequency of 22050 Hz. It turns out that

*n*= 1785 = *1049 is the highest we can go.

What about the lower end? It's frequently stated that the "normal" lower limit of human hearing is 20 Hz, which is approximated by F(330) = 20.015231264080082 Hz. Using this as our cutoff frequency gives us 1456 basis frequencies to work with, or a span of *A.14 octaves.

But that's kind of a "weird" number, so let's use a lower limit of F(273) = 15.212581077221454 Hz instead, giving us a "rounder" *A.6 octaves.

With

**273 <= n <= 1785**, there are

**1513**different basis frequencies.

Perhaps it would be a good idea to make the lower and upper frequencies configurable in the file format, to allow "compression" by band-limiting the signal, or to allow representation of infrasound and ultrasound by expanding the frequency range. But for now, I shall assume the above numbers as a sensible "default".

*To be continued...*