|
- import json
- import os
-
- scales = """
- Ionian (Major) 1-2-3-4-5-6-7
- Dorian 1-2-b3-4-5-6-b7
- Phrygian 1-b2-b3-4-5-b6-b7
- Lydian 1-2-3-#4-5-6-7
- Mixolydian 1-2-3-4-5-6-b7
- Aeolian (Minor) 1-2-b3-4-5-b6-b7
- Locrian 1-b2-b3-4-b5-b6-b7
- Aeolian 7 (Harmonic Minor) 1-2-b3-4-5-b6-7
- Locrian 6 1-b2-b3-4-b5-6-b7
- Ionian #5 1-2-3-4-#5-6-7
- Dorian #4 1-2-b3-#4-5-6-b7
- Phrygian 3 1-b2-3-4-5-b6-b7
- Lydian #2 1-#2-3-#4-5-6-7
- Locrian b4 bb7 1-b2-b3-b4-b5-b6-bb7
- Aeolian 6 7 (Melodic Minor) 1-2-b3-4-5-6-7
- Phrygian 6 1-b2-b3-4-5-6-b7
- Lydian #5 1-2-3-#4-#5-6-7
- Lydian b7 1-2-3-#4-5-6-b7
- Aeolian 3 1-2-3-4-5-b6-b7
- Locrian 2 1-2-b3-4-b5-b6-b7
- Locrian b4 1-b2-b3-b4-b5-b6-b7
- Bebop Dominant 1-2-3-4-5-6-#6-7
- Bebob Major 1-2-3-4-5-b6-6-7
- Bebob Minor 1-2-b3-3-4-5-6-b7
- Bebob Melodic Minor 1-2-b3-4-5-b6-6-7
- Blues Major 1-2-b3-3-5-6
- Blues Minor 1-b3-4-b5-5-b7
- Blues Diminished 1-b2-b3-3-b5-5-6-b7
- Blues Pentatonic 1-b3-4-5-b7
- Blues Rock'n'Roll 1-2-b3-3-4-b5-5-6-b7
- Byzantine 1-b2-3-4-5-b6-7
- Hungarian Minor 1-2-b3-b5-5-b6-7
- Hungarian Gypsy 1-2-b3-#4-5-b6-b7
- Spanish Gypsy 1-b2-3-4-5-b6-b7
- Major Pentatonic 1-2-3-5-6
- Neutral Pentatonic 1-2-4-5-b7
- Rock Pentatonic 1-b3-4-#5-b7
- Scottish Pentatonic 1-2-4-5-6
- Minor Pentatonic 1-b3-4-5-b7
- Whole 1-2-3-#4-#5-#6
- Whole-Half 1-2-b3-4-#4-#5-6-7
- Half-Whole 1-b2-b3-3-b5-5-6-b7
- Augmented 1-#2-3-5-#5-7
- Byzantine 1-b2-3-4-5-b6-7
- Chromatic 1-#1-2-#2-3-4-#4-5-#5-6-#6-7
- Enigmatic (Ascending) 1-b2-3-#4-#5-#6-7
- Enigmatic (Descending) 1-b2-3-4-b6-b7-7
- Hungarian Major 1-b3-3-b5-5-6-b7
- Hungarian Minor 1-2-b3-b5-5-b6-7
- Neapolitan Major 1-b2-b3-4-5-6-7
- Neapolitan Minor 1-b2-b3-4-5-b6-7
- Overtone 1-2-3-#4-5-6-b7
- Prometheus 1-2-3-b5-6-b7
- Prometheus Neapolitan 1-b2-3-b5-6-b7
- Spanish 8 Tone 1-b2-b3-3-4-b5-b6-b7
- """
-
- note_indexes = {
- "1": 0,
- "#1": 1,
- "b2": 1,
- "2": 2,
- "#2": 3,
- "b3": 3,
- "3": 4,
- "b4": 4,
- "4": 5,
- "#4": 6,
- "b5": 6,
- "5": 7,
- "#5": 8,
- "b6": 8,
- "6": 9,
- "bb7": 9,
- "#6": 10,
- "b7": 10,
- "7": 11,
- }
-
- dir = "presets/Quantizer"
- os.makedirs(dir, exist_ok=True)
- count = 0
-
- for line in scales.splitlines():
- if not line:
- continue
-
- data = {
- "plugin": "Fundamental",
- "model": "Quantizer",
- "version": "2.0.0",
- "params": [],
- "data": {
- "enabledNotes": [
- False,
- False,
- False,
- False,
- False,
- False,
- False,
- False,
- False,
- False,
- False,
- False,
- ]
- }
- }
-
- name, notes = line.split("\t")
- notes = notes.split("-")
-
- for note in notes:
- note_index = note_indexes[note]
- data["data"]["enabledNotes"][note_index] = True
-
- path = os.path.join(dir, f"{count:02d}_{name}.vcvm")
- print(path)
- print(data)
- with open(path, "w") as f:
- json.dump(data, f, indent=2)
-
- count += 1
|