386 lines
12 KiB
TOML
386 lines
12 KiB
TOML
# MusicGen TOML Configuration Schema
|
|
# Complete reference for all available fields and options
|
|
|
|
# ============================================================================
|
|
# METADATA SECTION
|
|
# Optional information about your composition
|
|
# ============================================================================
|
|
|
|
[metadata]
|
|
title = "My Composition" # Title of the track
|
|
artist = "Artist Name" # Your name or band name
|
|
description = "An electronic song" # Description of the composition
|
|
tags = ["electronic", "ambient", "chill"] # Genre tags or keywords
|
|
|
|
# ============================================================================
|
|
# COMPOSITION SECTION
|
|
# Core musical settings that define the overall structure
|
|
# ============================================================================
|
|
|
|
[composition]
|
|
# Musical key - can be MIDI note number (60 = C4) or note name
|
|
key = "C4" # Options: MIDI numbers 0-127 OR note names like "C4", "F#3", "Bb5"
|
|
|
|
# Scale type - defines which notes are used
|
|
scale = "major" # Options: "major", "minor", "dorian", "phrygian", "lydian",
|
|
# "mixolydian", "aeolian", "locrian", "pentatonic",
|
|
# "blues", "chromatic"
|
|
|
|
# Tempo in beats per minute
|
|
tempo = 120.0 # Range: 40.0 - 300.0 BPM
|
|
|
|
# Time signature - how many beats per measure
|
|
[composition.time_signature]
|
|
numerator = 4 # Beats per measure (1-16)
|
|
denominator = 4 # Note value for one beat (2, 4, 8, or 16)
|
|
|
|
# Composition length and complexity
|
|
measures = 32 # Number of measures (1-1000)
|
|
complexity = 0.7 # Overall complexity (0.0-1.0, default: 0.6)
|
|
harmony_density = 0.8 # How much harmony/chords (0.0-1.0, default: 0.7)
|
|
rhythmic_density = 0.6 # How busy the rhythm is (0.0-1.0, default: 0.8)
|
|
seed = 12345 # Random seed for reproducible generation (optional)
|
|
|
|
# ============================================================================
|
|
# TRACKS SECTION
|
|
# Each track is like one instrument in your band
|
|
# ============================================================================
|
|
|
|
# Example 1: Custom melody track
|
|
[[tracks]]
|
|
name = "main_melody"
|
|
instrument = "piano" # Options: "sine", "square", "sawtooth", "triangle", "noise", "piano"
|
|
volume = 0.8 # Track volume (0.0-1.0)
|
|
|
|
[tracks.pattern]
|
|
type = "custom" # Pattern type: "custom", "chord", "arpeggio", "sequence"
|
|
loop_length = 16.0 # How long before pattern repeats (in beats)
|
|
|
|
# Individual notes in the pattern
|
|
[[tracks.pattern.steps]]
|
|
time = 0.0 # When to play (in beats from start of loop)
|
|
note = "C5" # MIDI number or note name
|
|
duration = 1.5 # How long to hold the note (in beats)
|
|
velocity = 0.7 # How loud to play this note (0.0-1.0)
|
|
|
|
[[tracks.pattern.steps]]
|
|
time = 2.0
|
|
note = "E5"
|
|
duration = 1.0
|
|
velocity = 0.6
|
|
|
|
[[tracks.pattern.steps]]
|
|
time = 4.0
|
|
note = "G5"
|
|
duration = 2.0
|
|
velocity = 0.8
|
|
|
|
# Effects for this track
|
|
[[tracks.effects]]
|
|
type = "reverb"
|
|
room_size = 0.7 # Size of the reverb space (0.0-1.0)
|
|
damping = 0.5 # How much high frequencies are absorbed (0.0-1.0)
|
|
mix = 0.3 # How much effect to blend in (0.0-1.0)
|
|
|
|
[[tracks.effects]]
|
|
type = "delay"
|
|
time = 0.25 # Delay time in seconds (0.01-2.0)
|
|
feedback = 0.3 # How much delay repeats (0.0-0.95)
|
|
mix = 0.2 # How much effect to blend in (0.0-1.0)
|
|
|
|
# Example 2: Chord progression track
|
|
[[tracks]]
|
|
name = "harmony"
|
|
instrument = "sawtooth"
|
|
volume = 0.6
|
|
|
|
[tracks.pattern]
|
|
type = "chord"
|
|
loop_length = 16.0
|
|
voicing = "spread" # Options: "close", "spread", "drop2", "drop3"
|
|
octave = 3 # Which octave to play chords in (0-8)
|
|
|
|
# Chord progression
|
|
[[tracks.pattern.chord_progression]]
|
|
time = 0.0
|
|
chord = "Cmaj7" # Chord name (e.g., "C", "Am", "F#dim", "Bbmaj7")
|
|
duration = 4.0
|
|
|
|
[[tracks.pattern.chord_progression]]
|
|
time = 4.0
|
|
chord = "Am7"
|
|
duration = 4.0
|
|
|
|
[[tracks.pattern.chord_progression]]
|
|
time = 8.0
|
|
chord = "Fmaj7"
|
|
duration = 4.0
|
|
|
|
[[tracks.pattern.chord_progression]]
|
|
time = 12.0
|
|
chord = "G7"
|
|
duration = 4.0
|
|
|
|
# Effects for chord track
|
|
[[tracks.effects]]
|
|
type = "lowpass"
|
|
cutoff = 2000.0 # Cutoff frequency in Hz (20-20000)
|
|
resonance = 1.2 # Filter resonance (0.1-10.0)
|
|
|
|
# Example 3: Bass track
|
|
[[tracks]]
|
|
name = "bass"
|
|
instrument = "sine"
|
|
volume = 0.9
|
|
|
|
[tracks.pattern]
|
|
type = "custom"
|
|
loop_length = 8.0
|
|
|
|
[[tracks.pattern.steps]]
|
|
time = 0.0
|
|
note = "C2"
|
|
duration = 1.0
|
|
velocity = 0.9
|
|
|
|
[[tracks.pattern.steps]]
|
|
time = 2.0
|
|
note = "G2"
|
|
duration = 1.0
|
|
velocity = 0.8
|
|
|
|
[[tracks.pattern.steps]]
|
|
time = 4.0
|
|
note = "A2"
|
|
duration = 1.0
|
|
velocity = 0.8
|
|
|
|
[[tracks.pattern.steps]]
|
|
time = 6.0
|
|
note = "F2"
|
|
duration = 1.0
|
|
velocity = 0.9
|
|
|
|
# Bass effects
|
|
[[tracks.effects]]
|
|
type = "highpass"
|
|
cutoff = 80.0 # Remove very low frequencies
|
|
resonance = 0.7
|
|
|
|
# Example 4: Percussion track
|
|
[[tracks]]
|
|
name = "drums"
|
|
instrument = "noise"
|
|
volume = 0.7
|
|
|
|
[tracks.pattern]
|
|
type = "custom"
|
|
loop_length = 4.0
|
|
|
|
# Kick drum
|
|
[[tracks.pattern.steps]]
|
|
time = 0.0
|
|
note = "C1" # Low note for kick
|
|
duration = 0.1
|
|
velocity = 1.0
|
|
|
|
[[tracks.pattern.steps]]
|
|
time = 2.0
|
|
note = "C1"
|
|
duration = 0.1
|
|
velocity = 1.0
|
|
|
|
# Snare/hi-hat
|
|
[[tracks.pattern.steps]]
|
|
time = 1.0
|
|
note = "D4" # Higher note for snare
|
|
duration = 0.05
|
|
velocity = 0.7
|
|
|
|
[[tracks.pattern.steps]]
|
|
time = 3.0
|
|
note = "D4"
|
|
duration = 0.05
|
|
velocity = 0.7
|
|
|
|
# Drum effects
|
|
[[tracks.effects]]
|
|
type = "distortion"
|
|
drive = 1.5 # Amount of distortion (1.0-10.0)
|
|
tone = 0.6 # Tone control (0.0-1.0)
|
|
|
|
[[tracks.effects]]
|
|
type = "chorus"
|
|
rate = 1.2 # Modulation rate in Hz (0.1-10.0)
|
|
depth = 0.4 # Modulation depth (0.0-1.0)
|
|
layers = 3 # Number of chorus layers (1-8)
|
|
mix = 0.3
|
|
|
|
# ============================================================================
|
|
# SECTIONS SECTION (Optional)
|
|
# For structured compositions with different parts
|
|
# ============================================================================
|
|
|
|
[[sections]]
|
|
name = "intro"
|
|
measures = 8
|
|
tempo = 100.0 # Optional tempo change for this section
|
|
complexity = 0.3 # Lower complexity for intro
|
|
repeat = 1 # How many times to repeat this section
|
|
|
|
[[sections]]
|
|
name = "verse"
|
|
measures = 16
|
|
complexity = 0.6
|
|
repeat = 2
|
|
|
|
[[sections]]
|
|
name = "chorus"
|
|
measures = 16
|
|
tempo = 125.0 # Faster tempo for chorus
|
|
complexity = 0.8
|
|
key = "F4" # Optional key change
|
|
scale = "major" # Optional scale change
|
|
repeat = 2
|
|
|
|
[[sections]]
|
|
name = "bridge"
|
|
measures = 8
|
|
complexity = 0.9
|
|
key = "Am" # Relative minor
|
|
repeat = 1
|
|
|
|
[[sections]]
|
|
name = "outro"
|
|
measures = 8
|
|
tempo = 90.0 # Slower outro
|
|
complexity = 0.2
|
|
repeat = 1
|
|
|
|
# ============================================================================
|
|
# EXPORT SECTION
|
|
# How to save your finished composition
|
|
# ============================================================================
|
|
|
|
[export]
|
|
filename = "my_song" # Output filename (without extension)
|
|
format = "wav" # Only "wav" currently supported
|
|
sample_rate = 44100 # Options: 22050, 44100, 48000, 96000
|
|
bit_depth = 24 # Options: 16, 24, 32
|
|
stereo = true # true for stereo, false for mono
|
|
max_duration = 180.0 # Maximum length in seconds (optional)
|
|
|
|
# Optional: Generate variations of your composition
|
|
[export.variations]
|
|
count = 3 # Number of variations to generate
|
|
vary_complexity = true # Vary the complexity between versions
|
|
vary_rhythm = true # Vary the rhythmic patterns
|
|
vary_harmony = false # Vary the chord progressions
|
|
vary_tempo = false # Vary the tempo
|
|
|
|
# ============================================================================
|
|
# EFFECT TYPES REFERENCE
|
|
# Complete list of all available effects and their parameters
|
|
# ============================================================================
|
|
|
|
# FILTERS
|
|
# [[tracks.effects]]
|
|
# type = "lowpass" # Removes high frequencies (makes sound warmer/duller)
|
|
# cutoff = 1000.0 # Frequency cutoff in Hz (20-20000)
|
|
# resonance = 1.0 # Emphasis at cutoff frequency (0.1-10.0)
|
|
|
|
# [[tracks.effects]]
|
|
# type = "highpass" # Removes low frequencies (makes sound thinner/brighter)
|
|
# cutoff = 100.0 # Frequency cutoff in Hz (20-20000)
|
|
# resonance = 1.0 # Emphasis at cutoff frequency (0.1-10.0)
|
|
|
|
# TIME-BASED EFFECTS
|
|
# [[tracks.effects]]
|
|
# type = "delay" # Echo effect
|
|
# time = 0.25 # Delay time in seconds (0.01-2.0)
|
|
# feedback = 0.3 # How much delay feeds back (0.0-0.95)
|
|
# mix = 0.3 # Wet/dry mix (0.0-1.0)
|
|
|
|
# [[tracks.effects]]
|
|
# type = "reverb" # Spatial reverb
|
|
# room_size = 0.5 # Size of reverb space (0.0-1.0)
|
|
# damping = 0.5 # High frequency absorption (0.0-1.0)
|
|
# mix = 0.3 # Wet/dry mix (0.0-1.0)
|
|
|
|
# [[tracks.effects]]
|
|
# type = "chorus" # Thickening/modulation effect
|
|
# rate = 1.0 # Modulation rate in Hz (0.1-10.0)
|
|
# depth = 0.5 # Modulation depth (0.0-1.0)
|
|
# layers = 3 # Number of voices (1-8)
|
|
# mix = 0.3 # Wet/dry mix (0.0-1.0)
|
|
|
|
# DISTORTION
|
|
# [[tracks.effects]]
|
|
# type = "distortion" # Hard clipping distortion
|
|
# drive = 2.0 # Amount of distortion (1.0-10.0)
|
|
# tone = 0.5 # Tone control (0.0-1.0, 0=dark, 1=bright)
|
|
|
|
# LO-FI EFFECTS
|
|
# [[tracks.effects]]
|
|
# type = "vinyl" # Vinyl crackle and surface noise
|
|
# intensity = 0.5 # Crackle intensity (0.0-1.0)
|
|
# frequency = 0.5 # Crackle frequency (0.0-1.0)
|
|
# mix = 0.3 # Wet/dry mix (0.0-1.0)
|
|
|
|
# [[tracks.effects]]
|
|
# type = "tape" # Tape saturation and warmth
|
|
# drive = 2.0 # Saturation amount (1.0-10.0)
|
|
# warmth = 0.7 # Warmth/color (0.0-1.0)
|
|
# mix = 0.5 # Wet/dry mix (0.0-1.0)
|
|
|
|
# [[tracks.effects]]
|
|
# type = "bitcrusher" # Digital degradation
|
|
# bit_depth = 8.0 # Bit depth reduction (1.0-16.0)
|
|
# sample_rate_reduction = 2.0 # Sample rate reduction factor (1.0-10.0)
|
|
# mix = 0.5 # Wet/dry mix (0.0-1.0)
|
|
|
|
# ============================================================================
|
|
# INSTRUMENT TYPES REFERENCE
|
|
# ============================================================================
|
|
|
|
# instrument = "sine" # Pure sine wave - smooth, warm, flute-like
|
|
# instrument = "square" # Square wave - classic video game sound, punchy
|
|
# instrument = "sawtooth" # Sawtooth wave - bright, buzzy, good for leads
|
|
# instrument = "triangle" # Triangle wave - mellow, soft, like filtered square
|
|
# instrument = "noise" # White noise - for percussion and texture
|
|
# instrument = "piano" # Natural piano with harmonics
|
|
|
|
# ============================================================================
|
|
# PATTERN TYPES REFERENCE
|
|
# ============================================================================
|
|
|
|
# type = "custom" # Specify exact notes and timing
|
|
# type = "chord" # Play chord progressions
|
|
# type = "arpeggio" # Arpeggiate chords (play notes one after another)
|
|
# type = "sequence" # Step sequencer patterns
|
|
|
|
# ============================================================================
|
|
# CHORD NAMES REFERENCE
|
|
# ============================================================================
|
|
|
|
# Basic triads: "C", "Dm", "E", "F#", "Bb"
|
|
# Seventh chords: "Cmaj7", "Dm7", "E7", "F#m7b5", "Bbmaj7"
|
|
# Extended chords: "C9", "Dm11", "E13"
|
|
# Altered chords: "C7#11", "Dm7b5", "E7alt"
|
|
# Diminished/Augmented: "Cdim", "Caug", "C°7", "C+7"
|
|
|
|
# ============================================================================
|
|
# NOTE NAMES REFERENCE
|
|
# ============================================================================
|
|
|
|
# Format: [Note][Accidental][Octave]
|
|
# Notes: C, D, E, F, G, A, B
|
|
# Accidentals: # (sharp), b (flat), ♯, ♭
|
|
# Octaves: 0-9 (C4 = middle C = MIDI 60)
|
|
# Examples: "C4", "F#3", "Bb5", "A0", "G9"
|
|
|
|
# MIDI equivalents:
|
|
# C4 = 60, C#4 = 61, D4 = 62, D#4 = 63, E4 = 64, F4 = 65
|
|
# F#4 = 66, G4 = 67, G#4 = 68, A4 = 69, A#4 = 70, B4 = 71
|
|
# Add/subtract 12 for different octaves
|