/PentatonicScales

A simple python script to generate every pentatonic musical scale as a midi file

Primary LanguagePython

Generating Pentatonic Scales Programmatically

The following list contains all pentatonic (5 note) scales that meet the following criteria:

  • Made up of minor 2nd, major 2nd, minor 3rd or 3rd intervals
  • Do not have two consecutive minor 2nd intervals

This Results in 25 unique interval patterns, or scale groups, each from which five modes can be constructed, for a total of 125 different scales. The scale group number is arbitrary, but scales within the same scale group are modes of each other. For example, the western major and minor pentatonic scales come from scale group 25, Modes 3 and 2 respectively. Scale group 11 is usually referred to as the Japanese Hirajoshi scale, which contains the Japanese Akebono, In and Iwato scales, while group 6 contains the Insen scale and its modes. We represent each scale as numbers of semitones above the root, always starting with zero (the root note)

Some notable scales:

  • 0, 2, 4, 7, 9: Major Pentatonic
  • 0, 3, 5, 7, 10: Minor Pentatonic
  • 0, 4, 5, 7, 10: Dominant 7th
  • 0, 2, 4, 7, 10: Dominant 7th Sus2
  • 0, 2, 4, 7, 11: Major 7th Sus2
  • 0, 4, 5, 7, 11: Major 7th 4th
  • 0, 2, 4, 6, 9: Major Sharp 4th
  • 0, 3, 5, 7, 9: Minor 6th
  • 0, 2, 5, 7, 10: Egyptian scale
  • 0, 2, 3, 7, 8: Hirajoshi, Akebono Scale
  • 0, 1, 5, 7, 8: In Scale
  • 0, 1, 5, 7, 10: Insen Scale
  • 0, 1, 5, 6, 10: Iwato Scale

Table Definition

  • Semitones
    • A list of all five notes, as semitones above the root.
  • Scale Group
    • A number that identifies which scales comes from the same group. Each scale in a group can be consider to be a mode of the other scales within the same group.
  • Mode Number
    • The number from 1 to 5 representing an inversion, or mode, of the scale within its group. The number is arbitrary and does not hold any significance between different groups
  • Flat Representation
    • Lists the intervals in the scale using flats
  • Sharp Representation
    • Lists the intervals in the scale using sharps
  • Features
    • Identifies scales which encompass major and minor triads, as well as minor 7th, dominant 7th and major 7ths
    Semitones       | Scale Group  | Mode Number  | Flat Repr.         | Sharp Repr.        | Features          
    0, 1, 3, 4, 8   | 1            | 2            | 1, b2, b3, 3, b6   | 1, #1, #2, 3, #5   | 
    0, 1, 3, 5, 8   | 19           | 1            | 1, b2, b3, 4, b6   | 1, #1, #2, 4, #5   | 
    0, 1, 3, 5, 9   | 5            | 2            | 1, b2, b3, 4, 6    | 1, #1, #2, 4, 6    | 
    0, 1, 3, 6, 8   | 18           | 1            | 1, b2, b3, b5, b6  | 1, #1, #2, #4, #5  | 
    0, 1, 3, 6, 9   | 21           | 3            | 1, b2, b3, b5, 6   | 1, #1, #2, #4, 6   | 
    0, 1, 3, 6, 10  | 13           | 2            | 1, b2, b3, b5, b7  | 1, #1, #2, #4, #6  | 
    0, 1, 3, 7, 8   | 14           | 3            | 1, b2, b3, 5, b6   | 1, #1, #2, 5, #5   | Min
    0, 1, 3, 7, 9   | 7            | 3            | 1, b2, b3, 5, 6    | 1, #1, #2, 5, 6    | Min
    0, 1, 3, 7, 10  | 3            | 3            | 1, b2, b3, 5, b7   | 1, #1, #2, 5, #6   | Min7
    0, 1, 4, 5, 8   | 17           | 1            | 1, b2, 3, 4, b6    | 1, #1, 3, 4, #5    | 
    0, 1, 4, 5, 9   | 4            | 2            | 1, b2, 3, 4, 6     | 1, #1, 3, 4, 6     | 
    0, 1, 4, 6, 8   | 16           | 1            | 1, b2, 3, b5, b6   | 1, #1, 3, #4, #5   | 
    0, 1, 4, 6, 9   | 24           | 2            | 1, b2, 3, b5, 6    | 1, #1, 3, #4, 6    | 
    0, 1, 4, 6, 10  | 12           | 2            | 1, b2, 3, b5, b7   | 1, #1, 3, #4, #6   | 
    0, 1, 4, 7, 8   | 15           | 1            | 1, b2, 3, 5, b6    | 1, #1, 3, 5, #5    | Maj
    0, 1, 4, 7, 9   | 22           | 4            | 1, b2, 3, 5, 6     | 1, #1, 3, 5, 6     | Maj
    0, 1, 4, 7, 10  | 20           | 4            | 1, b2, 3, 5, b7    | 1, #1, 3, 5, #6    | Dom7
    0, 1, 4, 8, 9   | 17           | 3            | 1, b2, 3, b6, 6    | 1, #1, 3, #5, 6    | 
    0, 1, 4, 8, 10  | 10           | 3            | 1, b2, 3, b6, b7   | 1, #1, 3, #5, #6   | 
    0, 1, 5, 6, 8   | 14           | 1            | 1, b2, 4, b5, b6   | 1, #1, 4, #4, #5   | 
    0, 1, 5, 6, 9   | 15           | 4            | 1, b2, 4, b5, 6    | 1, #1, 4, #4, 6    | 
    0, 1, 5, 6, 10  | 11           | 2            | 1, b2, 4, b5, b7   | 1, #1, 4, #4, #6   | 
    0, 1, 5, 7, 8   | 11           | 4            | 1, b2, 4, 5, b6    | 1, #1, 4, 5, #5    | 
    0, 1, 5, 7, 9   | 8            | 4            | 1, b2, 4, 5, 6     | 1, #1, 4, 5, 6     | 
    0, 1, 5, 7, 10  | 6            | 4            | 1, b2, 4, 5, b7    | 1, #1, 4, 5, #6    | 
    0, 1, 5, 8, 9   | 4            | 4            | 1, b2, 4, b6, 6    | 1, #1, 4, #5, 6    | 
    0, 1, 5, 8, 10  | 2            | 4            | 1, b2, 4, b6, b7   | 1, #1, 4, #5, #6   | 
    0, 1, 5, 9, 10  | 1            | 4            | 1, b2, 4, 6, b7    | 1, #1, 4, 6, #6    | 
    0, 2, 3, 5, 8   | 13           | 1            | 1, 2, b3, 4, b6    | 1, 2, #2, 4, #5    | 
    0, 2, 3, 5, 9   | 3            | 2            | 1, 2, b3, 4, 6     | 1, 2, #2, 4, 6     | 
    0, 2, 3, 6, 8   | 12           | 1            | 1, 2, b3, b5, b6   | 1, 2, #2, #4, #5   | 
    0, 2, 3, 6, 9   | 20           | 3            | 1, 2, b3, b5, 6    | 1, 2, #2, #4, 6    | 
    0, 2, 3, 6, 10  | 10           | 2            | 1, 2, b3, b5, b7   | 1, 2, #2, #4, #6   | 
    0, 2, 3, 7, 8   | 11           | 1            | 1, 2, b3, 5, b6    | 1, 2, #2, 5, #5    | Min
    0, 2, 3, 7, 9   | 6            | 3            | 1, 2, b3, 5, 6     | 1, 2, #2, 5, 6     | Min
    0, 2, 3, 7, 10  | 2            | 3            | 1, 2, b3, 5, b7    | 1, 2, #2, 5, #6    | Min7
    0, 2, 3, 7, 11  | 1            | 3            | 1, 2, b3, 5, 7     | 1, 2, #2, 5, 7     | MinMaj7
    0, 2, 4, 5, 8   | 10           | 1            | 1, 2, 3, 4, b6     | 1, 2, 3, 4, #5     | 
    0, 2, 4, 5, 9   | 2            | 2            | 1, 2, 3, 4, 6      | 1, 2, 3, 4, 6      | 
    0, 2, 4, 6, 8   | 9            | 1            | 1, 2, 3, b5, b6    | 1, 2, 3, #4, #5    | 
    0, 2, 4, 6, 9   | 23           | 2            | 1, 2, 3, b5, 6     | 1, 2, 3, #4, 6     | 
    0, 2, 4, 6, 10  | 9            | 2            | 1, 2, 3, b5, b7    | 1, 2, 3, #4, #6    | 
    0, 2, 4, 7, 8   | 8            | 1            | 1, 2, 3, 5, b6     | 1, 2, 3, 5, #5     | Maj
    0, 2, 4, 7, 9   | 25           | 3            | 1, 2, 3, 5, 6      | 1, 2, 3, 5, 6      | Maj
    0, 2, 4, 7, 10  | 23           | 3            | 1, 2, 3, 5, b7     | 1, 2, 3, 5, #6     | Dom7
    0, 2, 4, 7, 11  | 19           | 2            | 1, 2, 3, 5, 7      | 1, 2, 3, 5, 7      | Maj7
    0, 2, 4, 8, 9   | 16           | 3            | 1, 2, 3, b6, 6     | 1, 2, 3, #5, 6     | 
    0, 2, 4, 8, 10  | 9            | 3            | 1, 2, 3, b6, b7    | 1, 2, 3, #5, #6    | 
    0, 2, 4, 8, 11  | 5            | 3            | 1, 2, 3, b6, 7     | 1, 2, 3, #5, 7     | 
    0, 2, 5, 6, 8   | 7            | 1            | 1, 2, 4, b5, b6    | 1, 2, 4, #4, #5    | 
    0, 2, 5, 6, 9   | 22           | 2            | 1, 2, 4, b5, 6     | 1, 2, 4, #4, 6     | 
    0, 2, 5, 6, 10  | 8            | 2            | 1, 2, 4, b5, b7    | 1, 2, 4, #4, #6    | 
    0, 2, 5, 7, 8   | 6            | 1            | 1, 2, 4, 5, b6     | 1, 2, 4, 5, #5     | 
    0, 2, 5, 7, 9   | 25           | 1            | 1, 2, 4, 5, 6      | 1, 2, 4, 5, 6      | 
    0, 2, 5, 7, 10  | 25           | 4            | 1, 2, 4, 5, b7     | 1, 2, 4, 5, #6     | 
    0, 2, 5, 7, 11  | 18           | 2            | 1, 2, 4, 5, 7      | 1, 2, 4, 5, 7      | 
    0, 2, 5, 8, 9   | 24           | 4            | 1, 2, 4, b6, 6     | 1, 2, 4, #5, 6     | 
    0, 2, 5, 8, 10  | 23           | 4            | 1, 2, 4, b6, b7    | 1, 2, 4, #5, #6    | 
    0, 2, 5, 8, 11  | 21           | 4            | 1, 2, 4, b6, 7     | 1, 2, 4, #5, 7     | 
    0, 2, 5, 9, 10  | 19           | 3            | 1, 2, 4, 6, b7     | 1, 2, 4, 6, #6     | 
    0, 2, 5, 9, 11  | 13           | 3            | 1, 2, 4, 6, 7      | 1, 2, 4, 6, 7      | 
    0, 2, 6, 7, 9   | 18           | 4            | 1, 2, b5, 5, 6     | 1, 2, #4, 5, 6     | 
    0, 2, 6, 7, 10  | 16           | 4            | 1, 2, b5, 5, b7    | 1, 2, #4, 5, #6    | 
    0, 2, 6, 7, 11  | 14           | 4            | 1, 2, b5, 5, 7     | 1, 2, #4, 5, 7     | 
    0, 2, 6, 8, 9   | 12           | 4            | 1, 2, b5, b6, 6    | 1, 2, #4, #5, 6    | 
    0, 2, 6, 8, 10  | 9            | 4            | 1, 2, b5, b6, b7   | 1, 2, #4, #5, #6   | 
    0, 2, 6, 8, 11  | 7            | 4            | 1, 2, b5, b6, 7    | 1, 2, #4, #5, 7    | 
    0, 2, 6, 9, 10  | 5            | 4            | 1, 2, b5, 6, b7    | 1, 2, #4, 6, #6    | 
    0, 2, 6, 9, 11  | 3            | 4            | 1, 2, b5, 6, 7     | 1, 2, #4, 6, 7     | 
    0, 3, 4, 6, 8   | 5            | 1            | 1, b3, 3, b5, b6   | 1, #2, 3, #4, #5   | 
    0, 3, 4, 6, 9   | 21           | 2            | 1, b3, 3, b5, 6    | 1, #2, 3, #4, 6    | 
    0, 3, 4, 6, 10  | 7            | 2            | 1, b3, 3, b5, b7   | 1, #2, 3, #4, #6   | 
    0, 3, 4, 7, 8   | 4            | 1            | 1, b3, 3, 5, b6    | 1, #2, 3, 5, #5    | Min
    0, 3, 4, 7, 9   | 24           | 1            | 1, b3, 3, 5, 6     | 1, #2, 3, 5, 6     | Min
    0, 3, 4, 7, 10  | 22           | 3            | 1, b3, 3, 5, b7    | 1, #2, 3, 5, #6    | Min7
    0, 3, 4, 7, 11  | 17           | 2            | 1, b3, 3, 5, 7     | 1, #2, 3, 5, 7     | MinMaj7
    0, 3, 4, 8, 9   | 15           | 3            | 1, b3, 3, b6, 6    | 1, #2, 3, #5, 6    | 
    0, 3, 4, 8, 10  | 8            | 3            | 1, b3, 3, b6, b7   | 1, #2, 3, #5, #6   | 
    0, 3, 4, 8, 11  | 4            | 3            | 1, b3, 3, b6, 7    | 1, #2, 3, #5, 7    | 
    0, 3, 5, 6, 8   | 3            | 1            | 1, b3, 4, b5, b6   | 1, #2, 4, #4, #5   | 
    0, 3, 5, 6, 9   | 20           | 2            | 1, b3, 4, b5, 6    | 1, #2, 4, #4, 6    | 
    0, 3, 5, 6, 10  | 6            | 2            | 1, b3, 4, b5, b7   | 1, #2, 4, #4, #6   | 
    0, 3, 5, 7, 8   | 2            | 1            | 1, b3, 4, 5, b6    | 1, #2, 4, 5, #5    | Min
    0, 3, 5, 7, 9   | 23           | 1            | 1, b3, 4, 5, 6     | 1, #2, 4, 5, 6     | Min
    0, 3, 5, 7, 10  | 25           | 2            | 1, b3, 4, 5, b7    | 1, #2, 4, 5, #6    | Min7
    0, 3, 5, 7, 11  | 16           | 2            | 1, b3, 4, 5, 7     | 1, #2, 4, 5, 7     | MinMaj7
    0, 3, 5, 8, 9   | 22           | 1            | 1, b3, 4, b6, 6    | 1, #2, 4, #5, 6    | 
    0, 3, 5, 8, 10  | 25           | 5            | 1, b3, 4, b6, b7   | 1, #2, 4, #5, #6   | 
    0, 3, 5, 8, 11  | 24           | 3            | 1, b3, 4, b6, 7    | 1, #2, 4, #5, 7    | 
    0, 3, 5, 9, 10  | 18           | 3            | 1, b3, 4, 6, b7    | 1, #2, 4, 6, #6    | 
    0, 3, 5, 9, 11  | 12           | 3            | 1, b3, 4, 6, 7     | 1, #2, 4, 6, 7     | 
    0, 3, 6, 7, 9   | 21           | 1            | 1, b3, b5, 5, 6    | 1, #2, #4, 5, 6    | Min
    0, 3, 6, 7, 10  | 24           | 5            | 1, b3, b5, 5, b7   | 1, #2, #4, 5, #6   | Min7
    0, 3, 6, 7, 11  | 15           | 2            | 1, b3, b5, 5, 7    | 1, #2, #4, 5, 7    | MinMaj7
    0, 3, 6, 8, 9   | 20           | 1            | 1, b3, b5, b6, 6   | 1, #2, #4, #5, 6   | 
    0, 3, 6, 8, 10  | 23           | 5            | 1, b3, b5, b6, b7  | 1, #2, #4, #5, #6  | 
    0, 3, 6, 8, 11  | 22           | 5            | 1, b3, b5, b6, 7   | 1, #2, #4, #5, 7   | 
    0, 3, 6, 9, 10  | 21           | 5            | 1, b3, b5, 6, b7   | 1, #2, #4, 6, #6   | 
    0, 3, 6, 9, 11  | 20           | 5            | 1, b3, b5, 6, 7    | 1, #2, #4, 6, 7    | 
    0, 3, 7, 8, 10  | 19           | 4            | 1, b3, 5, b6, b7   | 1, #2, 5, #5, #6   | Min7
    0, 3, 7, 8, 11  | 17           | 4            | 1, b3, 5, b6, 7    | 1, #2, 5, #5, 7    | MinMaj7
    0, 3, 7, 9, 10  | 13           | 4            | 1, b3, 5, 6, b7    | 1, #2, 5, 6, #6    | Min7
    0, 3, 7, 9, 11  | 10           | 4            | 1, b3, 5, 6, 7     | 1, #2, 5, 6, 7     | MinMaj7
    0, 4, 5, 7, 8   | 1            | 1            | 1, 3, 4, 5, b6     | 1, 3, 4, 5, #5     | Maj
    0, 4, 5, 7, 9   | 19           | 5            | 1, 3, 4, 5, 6      | 1, 3, 4, 5, 6      | Maj
    0, 4, 5, 7, 10  | 18           | 5            | 1, 3, 4, 5, b7     | 1, 3, 4, 5, #6     | Dom7
    0, 4, 5, 7, 11  | 14           | 2            | 1, 3, 4, 5, 7      | 1, 3, 4, 5, 7      | Maj7
    0, 4, 5, 8, 9   | 17           | 5            | 1, 3, 4, b6, 6     | 1, 3, 4, #5, 6     | 
    0, 4, 5, 8, 10  | 16           | 5            | 1, 3, 4, b6, b7    | 1, 3, 4, #5, #6    | 
    0, 4, 5, 8, 11  | 15           | 5            | 1, 3, 4, b6, 7     | 1, 3, 4, #5, 7     | 
    0, 4, 5, 9, 10  | 14           | 5            | 1, 3, 4, 6, b7     | 1, 3, 4, 6, #6     | 
    0, 4, 5, 9, 11  | 11           | 3            | 1, 3, 4, 6, 7      | 1, 3, 4, 6, 7      | 
    0, 4, 6, 7, 9   | 13           | 5            | 1, 3, b5, 5, 6     | 1, 3, #4, 5, 6     | Maj
    0, 4, 6, 7, 10  | 12           | 5            | 1, 3, b5, 5, b7    | 1, 3, #4, 5, #6    | Dom7
    0, 4, 6, 7, 11  | 11           | 5            | 1, 3, b5, 5, 7     | 1, 3, #4, 5, 7     | Maj7
    0, 4, 6, 8, 9   | 10           | 5            | 1, 3, b5, b6, 6    | 1, 3, #4, #5, 6    | 
    0, 4, 6, 8, 10  | 9            | 5            | 1, 3, b5, b6, b7   | 1, 3, #4, #5, #6   | 
    0, 4, 6, 8, 11  | 8            | 5            | 1, 3, b5, b6, 7    | 1, 3, #4, #5, 7    | 
    0, 4, 6, 9, 10  | 7            | 5            | 1, 3, b5, 6, b7    | 1, 3, #4, 6, #6    | 
    0, 4, 6, 9, 11  | 6            | 5            | 1, 3, b5, 6, 7     | 1, 3, #4, 6, 7     | 
    0, 4, 7, 8, 10  | 5            | 5            | 1, 3, 5, b6, b7    | 1, 3, 5, #5, #6    | Dom7
    0, 4, 7, 8, 11  | 4            | 5            | 1, 3, 5, b6, 7     | 1, 3, 5, #5, 7     | Maj7
    0, 4, 7, 9, 10  | 3            | 5            | 1, 3, 5, 6, b7     | 1, 3, 5, 6, #6     | Dom7
    0, 4, 7, 9, 11  | 2            | 5            | 1, 3, 5, 6, 7      | 1, 3, 5, 6, 7      | Maj7
    0, 4, 8, 9, 11  | 1            | 5            | 1, 3, b6, 6, 7     | 1, 3, #5, 6, 7     |