Data

Introduction

This module provide a collection of models available in the library for different types of musical data. It provides predefined chord patterns that can be used to generate chords based on a root note.

Chords Model

ChordModel is a class for handling chord models in musical data.

class musicnpy.data.ChordModel

Bases: object

Database of chords intervals (semitones from root)

Example:

>>> print(ChordModel.maj)
>>> [0, 4, 7]
aug = [0, 4, 8]
aug7 = [0, 4, 8, 10]
aug_maj7 = [0, 4, 8, 11]
dim = [0, 3, 6]
dim7 = [0, 3, 6, 9]
dom7 = [0, 4, 7, 10]
dom9 = [0, 4, 7, 10, 14]
dom_b9 = [0, 4, 7, 10, 13]
french_aug6 = [0, 4, 6, 10]
german_aug6 = [0, 4, 7, 10]
half_dim7 = [0, 3, 6, 10]
italian_aug6 = [0, 4, 10]
maj = [0, 4, 7]
maj6 = [0, 4, 7, 9]
maj7 = [0, 4, 7, 11]
maj9 = [0, 4, 7, 11, 14]
min = [0, 3, 7]
min6 = [0, 3, 7, 9]
min7 = [0, 3, 7, 10]
min9 = [0, 3, 7, 10, 14]
min_maj7 = [0, 3, 7, 11]
neapolitan = [0, 4, 8]
prometheus = [0, 6, 10, 16, 21]
quartal = [0, 5, 10, 15]
quintal = [0, 7, 14, 21]
sus2 = [0, 2, 7]
sus4 = [0, 5, 7]
tristan = [0, 3, 6, 10]

Scales Model

ScaleModel is a class for handling scale models in musical data. It provides predefined scale patterns that can be used to generate scales based on a root note. It includes the chords of the scale as well, which are derived from the intervals of the scale.

class musicnpy.data.ScaleModel

Bases: object

Database of scales with intervals and diatonic harmonization.

Example:

>>> print(ScaleModel.maj["intervals"])
>>> [0, 2, 4, 5, 7, 9, 11]
>>> print(ScaleModel.maj["harmo"])
>>> [ChordModel.maj, ChordModel.min, ...]
altered = {'harmo': [[0, 4, 7, 10], [0, 4, 8], [0, 4, 8], [0, 4, 8, 11], [0, 3, 6, 10], [0, 3, 7, 10], [0, 4, 7, 10]], 'intervals': [0, 1, 3, 4, 6, 8, 10]}
bayati = {'harmo': [[0, 3, 7], [0, 4, 8], [0, 4, 7], [0, 3, 7], [0, 3, 7], [0, 4, 7], [0, 3, 6]], 'intervals': [0, 1, 3, 5, 7, 8, 10]}
bebop = {'harmo': [[0, 4, 7, 11], [0, 3, 7, 10], [0, 3, 7, 10], [0, 4, 7, 11], [0, 4, 7, 10], [0, 3, 7, 10], [0, 3, 6, 10], [0, 4, 7, 10]], 'intervals': [0, 2, 4, 5, 7, 9, 10, 11]}
bhairav = {'harmo': [[0, 4, 7], [0, 4, 8], [0, 3, 6], [0, 3, 7], [0, 4, 7], [0, 4, 8], [0, 4, 7]], 'intervals': [0, 1, 4, 5, 7, 8, 11]}
blues = {'harmo': [[0, 4, 7, 10], [0, 3, 7, 10], [0, 3, 6, 10], [0, 4, 8], [0, 4, 7, 10], [0, 4, 7, 10]], 'intervals': [0, 3, 5, 6, 7, 10]}
chromatic = {'harmo': [[0, 4, 7], [0, 4, 7], [0, 4, 7], [0, 4, 7], [0, 4, 7], [0, 4, 7], [0, 4, 7], [0, 4, 7], [0, 4, 7], [0, 4, 7], [0, 4, 7], [0, 4, 7]], 'intervals': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]}
dimHalfWhole = {'harmo': [[0, 3, 6, 9], [0, 4, 7, 10], [0, 3, 6, 9], [0, 4, 7, 10], [0, 3, 6, 9], [0, 4, 7, 10], [0, 3, 6, 9], [0, 4, 7, 10]], 'intervals': [0, 1, 3, 4, 6, 7, 9, 10]}
dimWholeHalf = {'harmo': [[0, 3, 6, 9], [0, 3, 6, 9], [0, 3, 6, 9], [0, 3, 6, 9], [0, 3, 6, 9], [0, 3, 6, 9], [0, 3, 6, 9], [0, 3, 6, 9]], 'intervals': [0, 2, 3, 5, 6, 8, 9, 11]}
esaton = {'harmo': [[0, 4, 8], [0, 4, 8], [0, 4, 8], [0, 4, 8], [0, 4, 8], [0, 4, 8]], 'intervals': [0, 2, 4, 6, 8, 10]}
harmonicMaj = {'harmo': [[0, 4, 7, 11], [0, 3, 7, 10], [0, 3, 7, 10], [0, 4, 7, 11], [0, 4, 7, 10], [0, 4, 8, 11], [0, 3, 6, 9]], 'intervals': [0, 2, 4, 5, 7, 8, 11]}
hijaz = {'harmo': [[0, 4, 7], [0, 4, 8], [0, 3, 6], [0, 3, 7], [0, 4, 7], [0, 4, 8], [0, 3, 7]], 'intervals': [0, 1, 4, 5, 7, 8, 10]}
hijazKar = {'harmo': [[0, 4, 7], [0, 4, 8], [0, 3, 6], [0, 3, 7], [0, 4, 7], [0, 4, 8], [0, 4, 7]], 'intervals': [0, 1, 4, 5, 7, 8, 11]}
hirajoshi = {'harmo': [[0, 3, 7], [0, 4, 7], [0, 4, 8], [0, 3, 7], [0, 4, 7]], 'intervals': [0, 2, 3, 7, 8]}
hungarianMaj = {'harmo': [[0, 4, 8], [0, 4, 7, 10], [0, 3, 7], [0, 3, 6], [0, 4, 7], [0, 3, 7], [0, 4, 8]], 'intervals': [0, 3, 4, 6, 7, 9, 10]}
hungarianMin = {'harmo': [[0, 3, 7], [0, 4, 8], [0, 4, 7], [0, 3, 6], [0, 4, 7], [0, 4, 7], [0, 3, 6]], 'intervals': [0, 2, 3, 6, 7, 8, 11]}
insen = {'harmo': [[0, 3, 7], [0, 4, 7], [0, 3, 7], [0, 4, 7, 10], [0, 4, 7]], 'intervals': [0, 1, 5, 7, 10]}
iwato = {'harmo': [[0, 3, 6], [0, 4, 7], [0, 3, 6], [0, 4, 8], [0, 3, 6, 10]], 'intervals': [0, 1, 5, 6, 10]}
kafi = {'harmo': [[0, 3, 7], [0, 3, 6], [0, 4, 7], [0, 3, 7], [0, 3, 7], [0, 4, 7], [0, 4, 7]], 'intervals': [0, 2, 3, 5, 7, 9, 10]}
kalyan = {'harmo': [[0, 4, 7], [0, 3, 7], [0, 3, 7], [0, 4, 8], [0, 4, 7], [0, 3, 7], [0, 3, 6]], 'intervals': [0, 2, 4, 6, 7, 9, 11]}
lydianDom = {'harmo': [[0, 4, 7, 10], [0, 4, 7, 10], [0, 3, 6, 10], [0, 4, 8], [0, 3, 7, 10], [0, 3, 7, 10], [0, 4, 7]], 'intervals': [0, 2, 4, 6, 7, 9, 10]}
maj = {'harmo': [[0, 4, 7], [0, 3, 7], [0, 3, 7], [0, 4, 7], [0, 4, 7], [0, 3, 7], [0, 3, 6]], 'intervals': [0, 2, 4, 5, 7, 9, 11]}
minHarm = {'harmo': [[0, 3, 7], [0, 3, 6], [0, 4, 8], [0, 3, 7], [0, 4, 7], [0, 4, 7], [0, 3, 6, 9]], 'intervals': [0, 2, 3, 5, 7, 8, 11]}
minMel = {'harmo': [[0, 3, 7, 11], [0, 3, 7, 10], [0, 4, 8, 11], [0, 4, 7, 10], [0, 4, 7, 10], [0, 3, 6, 10], [0, 3, 6, 10]], 'intervals': [0, 2, 3, 5, 7, 9, 11]}
minNat = {'harmo': [[0, 3, 7], [0, 3, 6], [0, 4, 7], [0, 3, 7], [0, 3, 7], [0, 4, 7], [0, 4, 7]], 'intervals': [0, 2, 3, 5, 7, 8, 10]}
nahawand = {'harmo': [[0, 3, 7], [0, 3, 6], [0, 4, 8], [0, 3, 7], [0, 4, 7], [0, 4, 7], [0, 3, 6, 9]], 'intervals': [0, 2, 3, 5, 7, 8, 11]}
pelog = {'harmo': [[0, 3, 7], [0, 4, 8], [0, 4, 7], [0, 3, 7], [0, 3, 6]], 'intervals': [0, 1, 3, 7, 8]}
pentaMaj = {'harmo': [[0, 4, 7], [0, 3, 7], [0, 3, 7], [0, 4, 7], [0, 3, 7]], 'intervals': [0, 2, 4, 7, 9]}
pentaMin = {'harmo': [[0, 3, 7], [0, 4, 7], [0, 3, 7], [0, 3, 7], [0, 4, 7]], 'intervals': [0, 3, 5, 7, 10]}
phrygianDom = {'harmo': [[0, 4, 7], [0, 4, 8], [0, 3, 6], [0, 3, 7], [0, 3, 6], [0, 4, 7], [0, 3, 7]], 'intervals': [0, 1, 4, 5, 7, 8, 10]}
prometheus = {'harmo': [[0, 4, 7], [0, 4, 8], [0, 4, 8], [0, 3, 6], [0, 4, 7], [0, 4, 7, 10]], 'intervals': [0, 2, 4, 6, 9, 10]}
rast = {'harmo': [[0, 3, 7], [0, 3, 6], [0, 4, 7], [0, 3, 7], [0, 3, 7], [0, 4, 7], [0, 4, 7]], 'intervals': [0, 2, 3, 5, 7, 9, 10]}
slendro = {'harmo': [[0, 2, 7], [0, 5, 7], [0, 3, 7], [0, 5, 7], [0, 2, 7]], 'intervals': [0, 2, 5, 7, 10]}
spanishOctatonic = {'harmo': [[0, 3, 7], [0, 4, 8], [0, 4, 7, 10], [0, 4, 7], [0, 3, 7], [0, 4, 7], [0, 4, 8], [0, 3, 6]], 'intervals': [0, 1, 3, 4, 5, 7, 8, 10]}
todi = {'harmo': [[0, 3, 6], [0, 4, 8], [0, 3, 6], [0, 4, 8], [0, 4, 7], [0, 4, 8], [0, 4, 7]], 'intervals': [0, 1, 3, 6, 7, 8, 11]}
yo = {'harmo': [[0, 2, 7], [0, 4, 7], [0, 5, 7], [0, 4, 7], [0, 3, 7]], 'intervals': [0, 2, 5, 7, 9]}