Pitfalls

Pitfalls

microtonal scale explorer / chord arpeggiator / isomorphic grid keyboard

item: There are pitfalls in using equal division within which
         to calculate 2-interval-patterns which the unwary traveler
         will most certainly fall into.
                                                                              - Erv Wilson [0]

godzilla-9 semaphore-9

Many thanks to inspiration from Stephen Weigel, Sevish, Erv Wilson, and other explorers of microtonal/xenharmonic scales.

I’ve encoded my naïve interpretations into Pitfalls - a norns library for exploring microtonal scales and chords, and playing them via Grid as an isomorphic grid keyboard.

If there’s interest I can hone Pitfalls into a library for reuse - anywhere microtonal scale pitches are desired.

Already there are some concepts forming:

scale = Scale:new(2, 1, "LLsLLLs")
scale:set_mode(2)

intervals = ScaleIntervals:new(scale)
pitches = Pitches:new(scale, intervals, tuning = 432, midi_start = 60)

Requirements

  • norns
  • optional:
    • grid (64 or 128 varibright)
    • or midigrid (see edit settings to change grid lib)

Documentation

Explore & play your own microtonal scales.

Set interval structure as a sequence of large L, small s, and optional medium M steps.

For example, C Major diatonic scale:

   LLsLLLs  L: 2  s: 1  base: C

A 19 EDO, 7 note scale:

   LLsLLLs  L: 3  s: 2

Toggle note/chord arpeggiator to hear scales.

Pitfalls let’s you play your scales via grid as a isomorphic keyboard.

Controls:

-- E1 change cutoff filter
-- E2 change value
-- E3 select step or parameter to change
-- K1 
-- K2 toggle arpeggiator
-- K3 toggle circle, original, and strings display modes.

Download

Available on maiden, or:

pitfalls v0.4.0 - in progress, may add monophonic pitch-bend live retuning to play microtonal scale pitches on external synths via MIDI.

pitfalls v0.3.0 tutti terpstra - add ability to browse over 3,000 named microtonal scales[1][2][3].

pitfalls v0.2.0 giojoso geola - add circle/string display modes, medium M scale step, and show existing scale name if any.

pitfalls v0.1.0 einfach einem - just one octave, many scale pitfalls.

Source

References

[0] An Introduction to the Moments of Symmetry
[1] Xenharmonic Wiki
[2] Scala - list of musical modes
[3] Siemen Terpstra - world of musical tuning

50 Likes

microtones!!! this looks like an amazing way to start reprogramming my brain. can’t wait to try.

1 Like

enjoy! I learnt a lot about structuring Lua from reading your arcologies sourcecode!

2 Likes

Interesting - I was just discussing microtonal electronic instruments with someone and Pitfalls appeared…

By the way, anyone who is wondering how to add midigrid to this script just needs redacted (EDIT: ignore me, because @delineator cleverly allowed for midigrid already!)

Any chance we can begin to potentially add crow to this as well? Analog oscillators could match beautifully with this!

3 Likes

Actually you don’t need to alter the pitfalls sourcecode to use midigrid.

Instead I’ve added a grid_lib parameter.

You can change the grid_lib parameter option, and save a default PSET file like so:

K1 -> E1 right -> Parameters EDIT -> PITFALLS -> grid_lib -> choose between grid, midigrid/lib/midigrid, and midigrid/lib/mg_128

K2 -> PSET -> SAVE -> OK

2 Likes

Fantastic! That’s really great and I can confirm it works with mg_128. Nice!

I don’t have a crow setup myself. I could take a peek at other libraries to see what’s required code-wise.

1 Like

New release: Pitfalls v0.2.0 giojoso geola … happy new year!

godzilla-9 semaphore-9

  • Add circle display - show intervals on circle spokes.
  • Add strings display - show line lengths proportionate to interval ratios.
  • K3 toggles original, circle, and strings display.
  • Add M medium step to scale sequences.
  • Add more just intervals and chords.
  • Label scale in display with an exisiting scale name when it exists in MusicUtil, the Xenharmonic Wiki, or Scala.
16 Likes

New release: Pitfalls v0.3.0 tutti terpstra … microtonal scales for everyone!

  • Allow users to browse and play named scales via norns screen UI input.
  • Update named scales list from Scala.
  • Add initial pitch-bent MIDI out support (disabled for now - to be completed in a future release).

Over 3,000 names scales can be browsed and played! Or used as a launching point to edit your own custom scales.

13 Likes

This script is great! Having a lot of fun playing in Glacial-7, Lobonian. TBH I don’t really know what I’m doing but it’s a blast :smiley:

Hacked Pitfalls grid code to use @infinitedigits’s mx.samples and this was the result:

7 Likes

Here’s an interesting article about Khyam Allami’s work promoting software support for microtonal music:

3 Likes

I’m really surprised this script doesn’t have more attention. It is really awesome and probably in my top 5 scripts used.
I think features that would be cool to be added(obviously besides midi repitching) is midi keyboard input(my grid is sometimes hard to play) and more control over the sound parameters/better system the engine.

Thanks for the awesome script!

1 Like

Wow, great to hear you’re enjoying it. Made my day to hear this :blush:

Thanks for the feature suggestions. All sound good. MIDI reptiching I did start working on, using MIDI pitchbend for monophonic playing. The MPE standard allows for increased polyphony, but not much synth hardware seems to support MPE to date.

1 Like