Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # patterns_data.py - Speicher für Arpeggiator-Patterns und Konfiguration
- # --- MIDI & System Konfiguration ---
- MIDI_IN_CHANNEL = None # None für alle Kanäle, oder 0-15
- MIDI_OUT_CHANNEL = 7 # Kanal 8 für User (0-15)
- INTERNAL_BPM = 120
- STEPS_PER_BEAT = 4
- CLOCK_TIMEOUT_S = 2.0 # Sekunden ohne externe Clock bis Fallback auf interne
- # --- Potentiometer Konfiguration ---
- POT_PIN_PATTERN = "A2" # Pin für Melodie / Arp Mode / Progression
- POT_PIN_TIMING = "A5" # Pin für Rhythmus / Gate
- # --- Gate Konfiguration ---
- DEFAULT_GATE_FACTOR = 0.9 # Standard-Gate-Faktor (wenn Pattern keinen liefert)
- MIN_GATE_FACTOR = 0.05 # Minimaler Gate-Faktor
- BASSLINE_PATTERNS = [
- # Pattern 0: 16tel "Rolling Bassline"
- [1.0, 1.0, 1.0, None],
- # Pattern 1: 16tel "Swingy Bass" (simuliert 12tel/Triolen durch Gate)
- # Lang auf 1&3, kurz auf 2&4 - oder umgekehrt? Probieren wir lang-kurz.
- # Spielt auf jedem Step, variiert aber Länge.
- # [1.5, 0.5, 1.5, 0.5], # Alternative 1: Lang-Kurz
- [0.5, 1.5, 0.5, 1.5], # Alternative 2: Kurz-Lang (Offbeat betont)
- # Pattern 2: 8tel "Offbeat Bass"
- [None, None, 2.0, None] # Spielt lange Note auf Step 3 (der 'und' von 2)
- ]
- # --- Rhythmische Patterns (Gate-Faktoren) ---
- # Steuert die Länge der Note relativ zur NOMINAL_STEP_INTERVAL_S.
- # 1.0 = normale Länge, 0.5 = halbe Länge, 2.0 = doppelte Länge, None = Pause
- RHYTHMIC_PATTERNS = [
- # ... (Deine Rhythmus-Patterns hier, z.B. aus Antwort #15) ...
- [1.0, 1.0, 1.0, 1.0], # 0: Gleichmäßige 16tel (Standard-Gate)
- [0.5, 0.5, 0.5, 0.5], # 1: Kurze 16tel (Staccato)
- [1.5, 1.5, 1.5, 1.5], # 2: Längere Noten (Legato, überlappend)
- [1.0, None, 1.0, None], # 3: Achtel-Gefühl (jede zweite Note Pause)
- # ... (füge weitere hinzu) ...
- ]
- # --- Melodische Patterns (Single Note Mode) ---
- # (Intervalle relativ zur Basisnote)
- MELODIC_PATTERNS = [
- # ... (Deine Melodie-Patterns hier, z.B. aus Antwort #17) ...
- [0, 4, 7, 12], # 0: Major Arp Up
- [0, 3, 7, 12], # 1: Minor Arp Up
- [0, 12, 7, 12], # 2: Octave, Fifth
- [0, 2, 4, 5, 7, 9, 11, 12], # 3: Major Scale Up
- # ... (füge weitere hinzu) ...
- ]
- # --- NEU: Chord Progression Daten ---
- # 1. Akkordtypen (Intervalle relativ zum Grundton des Akkords)
- CHORD_DEFS = {
- 'maj': (0, 4, 7),
- 'min': (0, 3, 7),
- # Optional mehr hinzufügen:
- # 'dim': (0, 3, 6),
- # 'aug': (0, 4, 8),
- # 'maj7': (0, 4, 7, 11),
- # 'min7': (0, 3, 7, 10),
- # 'dom7': (0, 4, 7, 10),
- }
- # 2. Stufen (Intervall relativ zum Grundton der Tonart)
- SCALE_DEGREES = {
- 'I': 0, 'i': 0,
- 'II': 2, 'ii': 2,
- 'III': 4, 'iii': 3,
- 'IV': 5, 'iv': 5,
- 'V': 7, 'v': 7,
- 'VI': 9, 'vi': 8,
- 'VII': 11, 'vii': 10
- }
- # 3. Progressionen (Liste von Tupeln: (Stufe_String, Akkordtyp_String))
- PROGRESSIONS = {
- 'Pop I-V-vi-IV': [('I', 'maj'), ('V', 'maj'), ('vi', 'min'), ('IV', 'maj')],
- # 'Jazz ii-V-I': [('ii', 'min'), ('V', 'maj'), ('I', 'maj')], # ENTFERNT
- # 'Minor i-iv-V': [('i', 'min'), ('iv', 'min'), ('V', 'maj')], # ENTFERNT
- # 'Andalusian': [('i', 'min'), ('VII', 'maj'), ('VI', 'maj'), ('V', 'maj')], # ENTFERNT
- 'Basic I-IV-V': [('I', 'maj'), ('IV', 'maj'), ('V', 'maj')],
- 'Just I': [('I', 'maj')],
- 'Just i': [('i', 'min')],
- }
- # 4. Standard-Tonart (wenn nicht aus Terz erkennbar)
- DEFAULT_TONALITY = 'maj'
- # --- Arpeggio Patterns ---
- # Melodische Patterns (nur Intervalle)
- MELODIC_PATTERNS = [
- # --- Grundlegende Arpeggios (bereits bekannt) ---
- [0, 4, 7, 12], # 0: Major Arp Up (C E G C')
- [0, 3, 7, 12], # 1: Minor Arp Up (C Eb G C')
- [0, 7, 12], # 2: Fifth & Octave Up (C G C')
- [12, 7, 4, 0], # 3: Major Arp Down (C' G E C)
- [12, 7, 3, 0], # 4: Minor Arp Down (C' G Eb C)
- # --- Erweiterte Arpeggios (7ths, Sus) ---
- [0, 4, 7, 10], # 5: Dominant 7th Arp (C E G Bb) - Typisch für Spannung
- [0, 3, 7, 10], # 6: Minor 7th Arp (C Eb G Bb) - Klassischer House/Deep House Sound
- [0, 4, 7, 11], # 7: Major 7th Arp (C E G B) - Eher jazzig/chill
- [0, 5, 7, 12], # 8: Sus4 Arp (C F G C') - Offener Klang
- [0, 2, 7, 12], # 9: Sus2 Arp (C D G C') - Auch offen, modern
- # --- Sequenz-artige Muster ---
- [0, 2, 4, 2], # 10: Auf-Ab-Bewegung (C D E D) - Einfache Sequenz
- [0, 7, 5, 7], # 11: Quint-Sprung mit Nebennoten (C G F G)
- [0, 12, 7, 12], # 12: Oktave, dann Quinte (C C' G C') - Klassischer Bassline-Move
- [0, 3, 5, 7], # 13: Moll-Tonleiter Fragment (C Eb F G)
- [0, 4, 7, 9], # 14: Dur-Tonleiter Fragment (C E G A)
- [0, -2, 0, 3], # 15: Tief-Hoch Bewegung (C Bb C Eb) - Gut für Basslines
- [0, 0, 7, 5], # 16: Repetierter Grundton, dann Bewegung (C C G F)
- # --- Modale / Interessante Intervalle ---
- [0, 3, 6, 10], # 17: Vermindert/Bluesy (C Eb Gb Bb) - Dissonanter
- [0, 5, 7, 10], # 18: Quarte/Quinte/kleine Sept (C F G Bb) - Modal/Mixolydisch-Andeutung
- [0, 1, 5, 7], # 19: Phrygisch-Andeutung (C Db F G) - Spanisch/Düster
- [0, 4, 6, 11], # 20: Lydisch-Andeutung (C E F# B) - Schwebend/Filmmusik
- # --- Oktav-Muster ---
- [0, 12, 0, -12], # 21: Oktav-Sprünge hoch/runter (C C' C C_low)
- [0, 12, 12, 7], # 22: Oben bleiben (C C' C' G)
- [0, 7, 12, 19], # 23: Quint, Oktave, Oktave+Quint (C G C' G') - Weit
- # --- Kürzere Muster / Techno-Style ---
- [0, 3, 0, 7], # 24: Kurz, Moll-Dreiklang Andeutung (C Eb C G)
- [0, 0, 3, 5], # 25: Repetitiv, Moll-Fragment (C C Eb F)
- [0, 7, 0, 10], # 26: Quint/Septime Wechsel (C G C Bb)
- ]
- RHYTHMIC_PATTERNS = [
- # --- Grundmuster ---
- [1.0, 1.0, 1.0, 1.0], # 0: Gleichmäßige 16tel (Standard-Gate)
- [None, 1.0, 1.0, 1.0], # 0: Gleichmäßige 16tel (Standard-Gate)
- #[0.5, 0.5, 0.5, 0.5], # 1: Kurze 16tel (Staccato)
- #[0.25, 0.25, 0.25, 0.25], # 2: Sehr kurze 16tel (Sehr Staccato)
- #[1.5, 1.5, 1.5, 1.5], # 3: Längere Noten (Legato, überlappend)
- #[2.0, 2.0, 2.0, 2.0], # 4: Noch längere Noten (Mehr Legato)
- # --- Muster mit Pausen ---
- [1.0, None, 1.0, None], # 5: Achtel-Gefühl (jede zweite Note Pause)
- #[1.0, 1.0, None, 1.0], # 6: 16tel mit einer Pause auf der '3'
- # [0.5, None, 0.5, None], # 7: Kurze Achtel (Staccato)
- #[1.0, None, None, None], # 8: Nur auf der '1' (Viertel-Gefühl)
- # [1.5, None, 1.0, None], # 9: Akzent auf 1, dann Pause, dann normal auf 3
- # --- Akzentuierte / Groove Muster ---
- [1.5, 0.5, 0.75, 0.5], # 10: Akzent auf 1, kurz auf 2, etwas länger auf 3
- #[0.5, 1.5, 0.5, 1.0], # 11: Akzent auf 2 und 4 (leicht synkopisch)
- #[1.0, 0.25, 1.0, 0.5], # 12: Abwechslungsreich kurz/lang
- [2.0, 0.5, None, 0.5], # 13: Langer Start, dann kurze Staccato-Antwort mit Pause dazwischen
- # --- Längere Muster (8 Schritte = 2 Beats bei 4 Steps/Beat) ---
- [1.0, 0.5, 0.75, 0.5, 1.5, 0.5, 0.75, 0.5], # 14: 8-Step Variation von #10
- [1.0, None, 0.5, None, 1.0, None, 0.75, None], # 15: 8-Step Achtel-Pattern mit variierender Länge
- # --- Experimentell ---
- #[0.1, 0.2, 0.4, 0.8], # 16: Ansteigende Länge
- #[1.5, 1.0, 0.5, 0.25], # 17: Abfallende Länge
- ]
- # Pattern für Arpeggio (2 Noten)
- ARPEGGIO_PATTERN_TWO_NOTES = [0, 1]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement