movement_probabilitiesΒΆ
this module contains probability values for melody sequences.
"""this module contains probability values for melody sequences."""
from itertools import permutations, chain
default_probs = [
[1] * 30,
[2] * 10,
[3] * 4,
[4] * 2,
[5] * 2,
[6] * 2,
[7] * 4,
[8, 9, 10, 11, 12] * 1]
mid_probs = [
[1] * 20,
[2] * 7,
[3] * 5,
[4, 5, 6, 7] * 1]
flat_mid_probs = [
[0] * 20,
[1] * 7,
[2] * 7,
[3] * 5,
[4, 5, 6, 7] * 1
]
bass_probs = [
[1] * 6,
[2] * 10,
[3] * 5,
[4] * 10,
[5] * 5,
[6] * 2,
[7] * 1]
rock_bass_probs = [
[0] * 35,
[1] * 1,
[2] * 2,
[3] * 1,
[4] * 1,
[5] * 5,
[6] * 1,
[7] * 1]
DEFAULT_MOVEMENT_PROBS = sum(default_probs, [])
MIDDLE_VOICES_MOVEMENT_PROBS = sum(mid_probs, [])
FLAT_MID_MOVEMENT_PROBS = sum(flat_mid_probs, [])
BASS_MOVEMENT_PROBS = sum(bass_probs, [])
ROCK_BASS_MOVEMENT_PROBS = sum(rock_bass_probs, [])
BASS_CHORD_DISTANCE_PROBS = list(chain(*[[0] * 30, [2] * 10, [4] * 5, [6] * 3, [8] * 1]))
ORNAMENTS = {(0, 1): [[(0.5, 0), (0.5, 1)],
[(0.5, 0), (0.5, -1)],
[(0.25, 0), (0.25, -1), (0.25, 0), (0.25, -1)],
[(0.25, 0), (0.25, 1), (0.25, 0), (0.25, 1)],
[(0.3333333333, 1), (0.3333333333, 0), (0.33333333, 1)]],
(0, 2): [[(0.25, 2), (0.25, 1), (0.25, 2), (0.25, 1)],
[(0.25, 2), (0.25, 3), (0.25, 2), (0.25, 1)],
[(0.25, 0), (0.25, 1), (0.25, 2), (0.25, 1)],
[(0.25, 0), (0.25, 1), (0.25, 0), (0.25, -1)],
[(0.3333333333, 0), (0.3333333333, 1), (0.33333333, 0),
(0.3333333333, 1), (0.3333333333, 0), (0.33333333, 1)],
[(0.3333333333, 0), (0.3333333333, -1), (0.33333333, 0),
(0.3333333333, 1), (0.3333333333, 0), (0.33333333, 1)],
[(0.3333333333, 0), (0.3333333333, 1), (0.33333333, 0),
(0.3333333333, -1), (0.3333333333, 0), (0.33333333, -1)]
],
(1, 1): [[(0.5, 1), (0.5, 0)],
[(0.5, 1), (0.5, 2)],
[(0.3333333333, 0), (0.3333333333, 1), (0.33333333, 0)]],
(1, 2): [[(0.25, 0), (0.25, 1), (0.25, 0), (0.25, 1)],
[(0.25, 1), (0.25, 2), (0.25, 1), (0.25, 0)],
[(0.25, 1), (0.25, 0), (0.25, 1), (0.25, 2)],
[(0.3333333333, 1), (0.3333333333, 2), (0.33333333, 1),
(0.3333333333, 0), (0.3333333333, 1), (0.33333333, 0)],
[(0.3333333333, 1), (0.3333333333, 0), (0.33333333, 1),
(0.3333333333, 2), (0.3333333333, 1), (0.33333333, 2)]],
(1, 3): [[(1 / 3.0, 0), (1 / 3.0, 1), (1 / 3.0, 0),
(1 / 3.0, 1), (1 / 3.0, 0), (1 / 3.0, 1),
(1 / 3.0, 0), (1 / 3.0, 1), (1 / 3.0, 0)]],
(1, 4): [[(1 / 3.0, 1), (1 / 3.0, 0), (1 / 3.0, 1),
(1 / 3.0, 0), (1 / 3.0, 1), (1 / 3.0, 0),
(1 / 3.0, 1), (1 / 3.0, 0), (1 / 3.0, 1),
(1 / 3.0, 0), (1 / 3.0, 1), (1 / 3.0, 0)]],
(2, 1): [[(0.5, 2), (0.5, 1)],
[(0.5, 0), (0.5, 1)],
[(0.3333333333, 1), (0.3333333333, 0), (0.33333333, 1)],
[(0.3333333333, 1), (0.3333333333, 2), (0.33333333, 1)]],
(3, 1): [[(0.5, 1), (0.5, 2)],
[(0.3333333333, 1), (0.3333333333, 0), (0.33333333, 1)],
[(0.3333333333, 1), (0.3333333333, 2), (0.33333333, 1)]],
(4, 1): [[(0.5, 2), (0.5, 3)],
[(0.5, 4), (0.5, 3)],
[(0.3333333333, 1), (0.3333333333, 2), (0.33333333, 1)]],
(5, 1): [[(0.5, 5), (0.5, 4)],
[(0.5, 3), (0.5, 4)],
[(0.25, 1), (0.25, 2), (0.25, 3), (0.25, 4)],
[(0.3333333333, 2), (0.3333333333, 0), (0.33333333, 2)],
[(0.3333333333, 4), (0.3333333333, 5), (0.3333333333, 4)]
]}
DRUM_FILLS = [
[0.5, 0.5],
# 1/3d based
[0.333333333, 0.333333333, 0.3333333333],
[0.333333333, 0.666666666],
[0.666666663, 0.3333333333],
# 1/6th based
[0.166666666, 0.166666666, 0.16666666666,
0.166666666, 0.166666666, 0.16666666666],
[0.333333333, 0.16666666666, 0.333333333, 0.16666666666],
[0.16666666666, 0.333333333, 0.16666666666, 0.333333333],
[0.333333333, 0.16666666666, 0.16666666666, 0.333333333],
[0.166666666, 0.16666666666, 0.333333333, 0.333333333],
[0.333333333, 0.333333333, 0.16666666666, 0.16666666666],
# 2, 1, 2, 1
[0.333333333, 0.16666666666,
0.333333333, 0.16666666666],
# 1/8th based
[0.75, 0.25],
[0.25, 0.75]
]
DRUM_FILLS.extend(list(set(permutations([0.125, 0.125, 0.75]))))
DRUM_FILLS.extend(list(set(permutations([0.125, 0.125, 0.25, 0.5]))))
DRUM_FILLS.extend(list(set(permutations([0.125, 0.125, 0.125, 0.125, 0.5]))))
DRUM_FILLS.extend(list(set(permutations([0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.25]))))
DRUM_FILLS.extend(list(set(permutations([0.1666, 0.1666, 0.1666, 0.1666, 0.333]))))
DRUM_FILLS.extend(list(set(permutations([0.1666, 0.1666, 0.333, 0.333]))))
DRUM_FILLS.extend(list(set(permutations([0.25, 0.25, 0.5]))))