I received an e-mail from someone asking about using a Pythagorean tuning in SCAMP, so I thought I’d answer it here and let you all see!
If you want to play back pitches in a 12-step Pythagorean tuning you can use the Scale object from scamp_extensions to do the work for you. Here’s how that might work:
# defining the scale; could put this in a separate file and import the pg object from scamp_extensions.pitch import ScaleType, Scale # specify the tuning (you can also load scales from a scala file with `ScaleType.load_from_scala` pythagorean_scale_type = ScaleType("2187/2048", "9/8", "32/27", "81/64", "4/3", "729/512", "3/2", "6561/4096", "27/16", "16/9", "243/128", "2/1") pg = Scale(pythagorean_scale_type, 0) # main script from scamp import * s = Session() clarinet = s.new_part("clarinet") # play individual notes for pitch in range(60, 73): clarinet.play_note(pg[pitch], 0.7, 0.5) # play sequence of perfect 5ths for pitch in range(60, 73): clarinet.play_chord(pg[pitch, pitch + 7], 0.7, 0.5)
By having the scale start on MIDI pitch 0, you can just index in with the standard MIDI pitch, and it will give you the Pythagorean-tuned version. Also, as demonstrated with the
play_chord call above, you can can index into a scale with multiple values and get a list of Pythagorean-tuned pitches in return.
If you want to center the pythagorean tuning on a different pitch, you can do, e.g.:
Hope that’s helpful to you all!
P.S. If this is useful to you, maybe join my Patreon (https://www.patreon.com/marcevanstein)?