FoxDot.lib.Scale

class FoxDot.lib.Scale.FreqScalePattern[source]

Bases: ScalePattern

get_freq(freq, *args, **kwargs)[source]

Returns the frequency of a midinote calculated by self.get_midi_note. Returns a tuple containing the freqency and midinote if get_midi is set to True.

get_midi_note(freq, *args, **kwargs)[source]

Calculates a midinote from a scale, octave, degree, and root

class FoxDot.lib.Scale.PentatonicScalePattern(scale)[source]

Bases: ScalePattern

update(scale)[source]
static values(scale)[source]
class FoxDot.lib.Scale.ScalePattern(semitones, name=None, tuning=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])[source]

Bases: ScaleType, Pattern

get_freq(degree, octave=5, root=0, get_midi=False)[source]

Returns the frequency of a midinote calculated by self.get_midi_note. Returns a tuple containing the freqency and midinote if get_midi is set to True.

get_midi_note(degree, octave=5, root=0)[source]

Calculates a midinote from a scale, octave, degree, and root

get_tuned_note(degree)[source]
getslice(start, stop, step=1)[source]

Called when using __getitem__ with slice notation. Numbers smaller than 0 and greater than the max value are adjusted.

name = None
note_to_semitone(pitch)[source]

Takes a pitch value and returns the semitone value e.g. midinote value not accounting for octaves

semitones(pitches)[source]

Returns the semitone values for a series of pitches in this scale

class FoxDot.lib.Scale.ScaleType[source]

Bases: object

class FoxDot.lib.Scale.Tuning[source]

Bases: object

ET12 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
bohlen_pierce = [0.0, 1.4630423083579904, 2.926084616715981, 4.389126925073971, 5.852169233431962, 7.315211541789951, 8.778253850147943, 10.241296158505934, 11.704338466863923, 13.167380775221915, 14.630423083579903, 16.093465391937894, 17.556507700295885]
just = [0.0, 1.1173128526978, 2.0391000173077, 3.1564128700055, 3.8631371386483, 4.9804499913461, 5.9022371559561, 7.0195500086539, 8.1368628613517, 8.8435871299945, 10.175962878659, 10.882687147302]
class FoxDot.lib.Scale.TuningType(data)[source]

Bases: list

class FoxDot.lib.Scale.__scale__[source]

Bases: object

aeolian = P[0, 2, 3, 5, 7, 8, 10]
altered = P[0, 1, 3, 4, 6, 8, 10]
bebopDom = P[0, 2, 4, 5, 7, 9, 10, 11]
bebopDorian = P[0, 2, 3, 4, 5, 9, 10]
bebopMaj = P[0, 2, 4, 5, 7, 8, 9, 11]
bebopMelMin = P[0, 2, 3, 5, 7, 8, 9, 11]
blues = P[0, 3, 5, 6, 7, 10]
chinese = P[0, 4, 6, 7, 11]
choose() Returns a random scale object[source]
chromatic = P[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
custom = P[0, 2, 3, 5, 6, 9, 10]
diminished = P[0, 1, 3, 4, 6, 7, 9, 10]
dorian = P[0, 2, 3, 5, 7, 9, 10]
dorian2 = P[0, 1, 3, 5, 6, 8, 9, 11]
egyptian = P[0, 2, 5, 7, 10]
freq = [inf]
get_scale(name)[source]

Returns a ScalePattern using a name

halfDim = P[0, 2, 3, 5, 6, 8, 10]
halfWhole = P[0, 1, 3, 4, 6, 7, 9, 10]
harmonicMajor = P[0, 2, 4, 5, 7, 8, 11]
harmonicMinor = P[0, 2, 3, 5, 7, 8, 11]
hungarianMinor = P[0, 2, 3, 6, 7, 8, 11]
indian = P[0, 4, 5, 7, 10]
justMajor = P[0, 2, 4, 5, 7, 9, 11]
justMinor = P[0, 2, 3, 5, 7, 8, 10]
library()[source]

Returns a dictionary with scale names to scale instances

locrian = P[0, 1, 3, 5, 6, 8, 10]
locrianMajor = P[0, 2, 4, 5, 6, 8, 10]
lydian = P[0, 2, 4, 6, 7, 9, 11]
lydianAug = P[0, 2, 4, 6, 8, 9, 11]
lydianDom = P[0, 2, 4, 6, 7, 9, 10]
lydianMinor = P[0, 2, 4, 6, 7, 8, 10]
major = P[0, 2, 4, 5, 7, 9, 11]
majorPentatonic = P[0, 2, 4, 7, 9]
melMin5th = P[0, 2, 4, 5, 7, 8, 10]
melodicMajor = P[0, 2, 4, 5, 7, 8, 11]
melodicMinor = P[0, 2, 3, 5, 7, 9, 11]
minMaj = P[0, 2, 3, 5, 7, 9, 11]
minor = P[0, 2, 3, 5, 7, 8, 10]
minorPentatonic = P[0, 3, 5, 7, 10]
mixolydian = P[0, 2, 4, 5, 7, 9, 10]
names()[source]

Returns a list of all the scale names

phrygian = P[0, 1, 3, 5, 7, 8, 10]
prometheus = P[0, 2, 4, 6, 11]
romanianMinor = P[0, 2, 3, 6, 7, 9, 10]
scales()[source]

Returns a list of all the scales object

susb9 = P[0, 1, 3, 5, 7, 9, 10]
wholeHalf = P[0, 2, 3, 5, 6, 8, 9, 11]
wholeTone = P[0, 2, 4, 6, 8, 10]
yu = P[0, 3, 5, 7, 10]
zhi = P[0, 2, 5, 7, 9]
FoxDot.lib.Scale.freqtomidi(freq)[source]
FoxDot.lib.Scale.get_freq_and_midi(degree, octave, root, scale)[source]

Returns the frequency and midinote

FoxDot.lib.Scale.midi(scale, octave, degree, root=0, stepsPerOctave=12)[source]

Calculates a midinote from a scale, octave, degree, and root

FoxDot.lib.Scale.miditofreq(midinote)[source]

Converts a midi number to frequency

FoxDot.lib.Scale.Scale = <FoxDot.lib.Scale.__scale__ object>