awed
project name: awed
project url: https://github.com/melocoi/_awed
author: ululo
description: harmonic series aggregator
discussion url: https://llllllll.co/t/awed/72603
documentation url: https://github.com/melocoi/_awed/blob/main/README.md
tags: drone harmonics engine grid

_awed

a harmonic series aggregator

for norns w/grid

</img>

video performance/tutorial

here are some of the key combos that are not in the video, but may be helpful

the following allows for quick controls over the buffer length, ( performed in video around 8:06 )

for quick reference here are some controls mentioned in the video

Here is a map of the grid layout

</img>

Now some info on the different parts of the script…

The script comprises 2 major sections. the Synth and the Tape loop.

………………………………………………………………………

………………………………………………………………………

………………………………………………………………………

the Synth

The synth engine is based on a band pass filtered saw wave.

There are two modes available. Percussion mode and Long Tone mode. Selected by the PERC/LONG TOGGLE (displayed above).

Control of the synth is available by using the grid sections ENVELOPE GRID, HARMONICS, and ROOT NOTE (displayed above). As well as a filter resonance control using Enc 2.

The premises of this synth and the way to make sounds and pitches is intimately related to the harmonic series. An understanding of which, while not required, can open up some of the possibilities and limitations that are present in this interface. The most basic thing to understand is how a harmonic is a multiple of a root pitch.

So, the 12th harmonic of a pitch of C2 (65.41Hz) is 784.92Hz (65.41 * 12). You may, or may not, realize that this pitch is not a ‘real’ note in the equal tempered scale, you can’t find this on a piano. But it is a real pitch, and these are the kinds of tones that we get to explore with this interface.

With this in mind, when playing this synth, we select our pitch, or pitches, through a combination of the ROOT NOTE section, and the HARMONICS section. It is possible to have more than one harmonic selected. But only one root note can be selected. Every time we launch a synth, by pressing one of the ENVELOPE GRID keys, it will randomly pick a harmonic that is activated and multiply it by the root note that is selected.

synth(FREQ) = (ROOT NOTE) * (random(HARMONIC))

</img> root note

</img> harmonics

TUNING

_awed has a tuning system that allows you to set the ROOT FREQ directly, entering a number in Hz, or by selecting a ROOT NAME, such as C2 or E3. You also have two modes of temperament, JUST INTONATION and EQUAL TEMPERAMENT. You can refer to other resources for more information on this topic, it is quite a deep rabbit hole, and utterly fascinating. However, for a more immediate and functional understanding, if you want to be in tune with a “traditional” synth, or a piano, or guitar, stick to the ET mode and choosing a ROOT NAME. To be more adventorous, Choose your ROOT FREQ directly and set it to JI.

You can further customize the ‘flavor’ of Just Intonation by going into _awed.lua directly, using Maiden, and editing the justI table. it looks like this…

-- to change your flavor of Just Intonation
-- Comment and Uncomment the lines to select which JI intervals you want.
-- Or make your own!!!
-------------------------------------------------------------------------------------------------------------
justI = { 1/1, 16/15, 9/8, 6/5, 5/4, 4/3, 45/32, 3/2, 8/5, 5/3, 16/9, 15/8 } -- "normal"
--justI = { 1/1, 16/15, 9/8, 6/5, 5/4, 4/3, 45/32, 3/2, 8/5, 5/3, 9/5, 15/8 } --"Ptolemy"
--justI = { 1/1, 17/16, 9/8, 19/16, 5/4, 21/16, 11/8, 3/2, 13/8, 27/16, 7/4, 15/8 } --"overtone"
--justI = { 1/1, 16/15, 8/7, 32/27, 16/13, 4/3, 16/11, 32/21, 8/5, 32/19, 16/9, 32/17 } -- "undertone"

The final step to the tuning process is to choose your SCALE. At this point you will be ready to play all the notes you could ever dream of, and then some.

PLAYING

Once you have your tuning worked out, a ROOT NOTE selected, and some HARMONCS picked out, it is now time to play. This is accomplished by using the keys in the ENVELOPE GRID section.

Each key in this section will launch a synth with an envelope related to the key that is pressed. Basically, envelopes are shortest to longest from right to left and top to bottom.

The formula for the envelope is in the code… (line 828 of _awed.lua)

  engine.atk(x+y)
  engine.rel(x*y)
  engine.sus(x/2)

This is in seconds, so the shortest envelope possible is at grid 1,1 (which is the top right corner of the grid) and it will be 3.5 seconds long.

atk(1+1) + rls(1*1) + sus(1/2) = 2 + 1 + 0.5 = 3.5

From this we can see that the envelope is more or less symetrical on the top row of the grid, and as we move down the grid (which will increase the y value) we quickly begin to significantly increase the release stage of the envelope. The bottom left grid key (8,8) would have the following envelope

atk(8+8) + rls(8*8) + sus(8/2) = 16 + 64 + 4 = 84 seconds long

and the bottom right grid key (1,8) would be

atk(1+8) + rls(1*8) + sus(1/2) = 9 + 8 + 0.5 = 17.5 seconds long

for completionists sake, the top left grid key (8,1)

atk(8+1) + rls(8*1) + sus (8/2) = 9 + 8 + 4 = 21 seconds long

One thing that may be confusing about the interface is the way the lights are indicating the volume envelope. Because the lights reduce in brightness and go dark before brightening up again, which can give the visual impression that the envelope is repeating itself. This is not the case. The audio envelope cycles once. However, visually, the key will change in brightness every second and cycle through from brightest to darkest until the envelope completes.

You are free to launch as many synths as you would like, although it is possible to overload the CPU of your Norns if too many synths are playing. This can be heard as a crackling sound. You can also keep track of CPU load by looking at the Norns menu screen. I deliberately chose not to limit the amounts of synths that are launchable because this is a musical instrument that the player needs to learn and become familiar with the limits, so they may be able to push them when they so choose.

FILTER

ENC2 allows you to adjust the filtering applied to the saw wave. It’s default setting is the highest Q factor and produces, essentially, a sine wave. Turning clockwise will open up the filter to allow the full harmomnic spectrum of the saw wave through. This is indicated on screen by the randomly drawn lines getting thicker or thinner based on how open or closed the filter is.

PEC/LONG TONE

There are two distinct modes available. PERC, or percussion, and LONG TONE.

The LONG TONE mode is indicated when the grid key is illuminated. In this mode the synth sounds like you would expect with a traditional synth, providing long sustained tones.

In PERC mode things are a little different. When lauching a synth, we are greeted with a regular series of short envelopes triggered at a constant tempo. At least this is what it sounds like. In fact, what is happening is that the synth is playing back at such a low frequency the sound is perceived as a series of clicks. With the filtering applied, the clicks can be shaped into what sounds kind of like a Marimba, in a pinged filter sort of way. Or it can be raw noisy clicks with the filter open.

The rhythms are effectd by which envelope key you press.

The formula is as follows found at line 820 of _awed.lua

mults[y]*(x*x)

This formula is based on a table called “mults” which is defined as mults = {1, 1/2, 1/3, 1/4, 1/5, 1/6, 1/7, 1/8}

For an example, pressing key 5,3 (which is 5 down and 3 from the left) would provide the following tempo of clicks…

mults[3] = 1/3

(1/3) * (5 * 5) = 8.333…Hz or 498 BPM

key 8,8 (the top left key) would give us the following

mults[8] = 1/8

(1/8) * (1 * 1) = 0.125Hz or 7.5 BPM

………………………………………………………………………

………………………………………………………………………

………………………………………………………………………

the TAPE LOOP

coming soon!!!!!!!!!