Skip to content

Presets Reference

This document lists all available presets in MIDI Sketch.

Structure Patterns

18 song structure patterns are available:

IDNameBarsDuration @120 BPMSections
0StandardPop242:00A(8)-B(8)-Chorus(8)
1BuildUp282:20Intro(4)-A(8)-B(8)-Chorus(8)
2DirectChorus161:20A(8)-Chorus(8)
3RepeatChorus322:40A(8)-B(8)-Chorus(8)-Chorus(8)
4ShortForm121:00Intro(4)-Chorus(8)
5FullPop564:40Intro-A-B-Chorus-A-B-Chorus-Outro
6FullWithBridge524:20Intro-A-B-Chorus-Bridge-Chorus-Outro
7DriveUpbeat524:20Intro-Chorus-A-B-Chorus-Chorus-Outro
8Ballad564:40Intro(8)-A-B-Chorus-Interlude-B-Chorus-Outro
9AnthemStyle524:20Intro-A-Chorus-A-B-Chorus-Chorus-Outro
10ExtendedFull907:30Full form with extended sections
11ChorusFirst322:40Chorus(8)-A(8)-B(8)-Chorus(8)
12ChorusFirstShort242:00Chorus(8)-A(8)-Chorus(8)
13ChorusFirstFull564:40Chorus-A-B-Chorus-A-B-Chorus
14ImmediateVocal242:00A(8)-B(8)-Chorus(8) (no intro)
15ImmediateVocalFull484:00A-B-Chorus-A-B-Chorus (no intro)
16AChorusB322:40A(8)-Chorus(8)-B(8)-Chorus(8)
17DoubleVerse322:40A(8)-A(8)-B(8)-Chorus(8)

Section Types

TypeVocal DensityEnergyPurpose
IntroNone/SparseLowEstablish mood
AFullMedium-LowVerse, storytelling
BFullMediumPre-chorus, tension
ChorusFullHighHook, payoff
BridgeSparseMediumContrast
InterludeNoneMedium-LowInstrumental break
OutroSparseMedium-LowResolution

Duration Calculation

At 120 BPM: 1 bar ≈ 2 seconds. Use targetDurationSeconds=0 to use the exact pattern duration, or specify a target duration for auto-generated structures.

Mood Presets

24 mood presets define the overall feel:

IDNameBPMDrum StyleCharacter
0StraightPop120StandardClassic pop groove
1BrightUpbeat128UpbeatSyncopated, energetic
2EnergeticDance130FourOnFloorDance-oriented
3LightRock125RockGuitar-oriented feel
4MidPop115StandardBalanced mid-tempo
5EmotionalPop110StandardSentimental, softer
6Sentimental95SparseBallad-like
7Chill100SparseRelaxed, minimal
8Ballad80SparseSlow, sparse drums
9DarkPop118SynthDarker, dramatic
10Dramatic115StandardHigh expression
11Nostalgic105StandardRetro feel
12ModernPop125SynthContemporary
13ElectroPop135FourOnFloorElectronic, dance
14IdolPop138FourOnFloorJ-pop idol style
15Anthem120StandardTriumphant, grand
16Yoasobi148SynthAnime-style, high-energy
17Synthwave118SynthRetro synth, neon
18FutureBass145SynthModern electronic
19CityPop110Standard80s city pop vibe
20RnBNeoSoul85-100StandardR&B/Neo-Soul, strong swing, extended chords
21LatinPop95StandardLatin Pop, dembow rhythm, tresillo bass
22Trap70SynthTrap, half-time feel, 808 sub-bass, hi-hat rolls
23Lofi80SparseLo-fi, strong swing, max velocity 90

Mood Categories

Chord Progressions

22 chord progressions from simple to complex:

Basic (2-3 Chords)

IDNameDegreesUse Case
5MinimalI-IVSimple, folk
6AltMinimalI-VPower pop
7Progression3I-vi-IVThree-chord pop

Standard (4 Chords)

IDNameDegreesUse Case
0Pop4I-V-vi-IVUniversal pop
1Axisvi-IV-I-VMelancholic
2Komurovi-IV-V-IBright J-pop
4Emotional4vi-V-IV-VBuilding tension
8Rock4I-bVII-IV-IRock feel

Extended (5+ Chords)

IDNameDegreesUse Case
3CanonI-V-vi-iii-IVClassic
9Extended5I-V-vi-iii-IVFull progression
10Emotional5vi-IV-I-V-iiComplex emotional

Style Presets

17 style presets that combine mood, structure, and composition approach:

Choosing a Style Preset

Style presets provide sensible defaults for BPM, structure, vocal attitude, and recommended chord progressions. You can override any of these settings after calling createDefaultConfig().

IDNameDescriptionDefault BPM
0Minimal Groove PopRepetitive 2-4 chord loops, simple melody122
1Dance Pop EmotionClassic structure, emotional chorus release128
2Bright PopUpbeat, memorable melodies with simple structure135
3Idol StandardUnison-friendly, memorable melodies140
4Idol EmotionEmotional idol songs with building pre-chorus130
5Idol EnergyHigh-energy idol songs for live performances150
6Idol MinimalMinimal idol songs for short-form content135
7Rock ShoutAggressive vocals with raw expression125
8Pop EmotionWord-driven emotional pop with lyrical focus108
9Raw EmotionalIntense emotional expression with boundary-breaking phrases102
10Acoustic PopClear harmony, rhythm-light, vocal-centered95
11Live Call & ResponseConcert-ready with call-response structure140
12Background MotifMotif-driven with subdued vocals, ambient feel120
13City PopGroovy 80s Japanese city pop with jazzy chords105
14Anime OpeningEpic, dramatic anime OP style with building energy142
15EDM Synth PopModern electronic dance music with synth leads138
16Emotional BalladSlow emotional ballad with expressive vocals78

Style Categories

CategoryIDsDescription
Pop/Dance0-2General pop and dance styles
Idol3-6Japanese idol music styles
Rock/Emo7-9Rock and emotional styles with raw expression
Special/Derived10-12Acoustic, live, and ambient styles
Genre-Specific13-16City pop, anime, EDM, and ballad styles

Composition Styles

3 composition approaches:

StyleFocusVocalAuxKey Features
MelodyLead (0)Vocal melodyYesYesFull melodic expression
BackgroundMotif (1)Repeating patternNoYesMotif as main element, Aux stays active
SynthDriven (2)Synth/ArpeggioNoNoElectronic, arpeggio requires manual arpeggioEnabled=true

BGM-Only Modes

BackgroundMotif and SynthDriven do not generate vocal tracks. BackgroundMotif keeps Aux active for sub-melody support. SynthDriven disables both Vocal and Aux. Use MelodyLead for songs with vocals.

Production Blueprints

10 production blueprints control how the music is generated (arrangement style), independent of style/mood:

IDNameParadigmRiffPolicyDrums RequiredWeight
0TraditionalTraditionalFree-42%
1RhythmLockRhythmSyncLockedYes14%
2StoryPopMelodyDrivenEvolving-10%
3BalladMelodyDrivenFree-4%
4IdolStandardMelodyDrivenEvolving-10%
5IdolHyperRhythmSyncLockedYes6%
6IdolKawaiiMelodyDrivenLockedYes5%
7IdolCoolPopRhythmSyncLockedYes5%
8IdolEmoMelodyDrivenLocked-4%
9BehavioralLoopTraditionalLockedPitch-0%*
255(Random)----

*BehavioralLoop: explicit selection only (weight 0%, not randomly selected). Forces addictive_mode=true, HookIntensity=Maximum, RiffPolicy=LockedPitch.

Use blueprintId: 255 for auto-selection based on weights.

Generation Paradigms

ParadigmTrack OrderDescription
TraditionalVocal → Aux → Motif → Bass → Chord → Guitar → Arpeggio → Drums → SEClassic pop generation
RhythmSyncMotif → Vocal → Aux → Bass → Chord → Guitar → Arpeggio → Drums → SEMotif-first, rhythm-locked groove
MelodyDrivenVocal → Aux → Motif → Bass → Chord → Guitar → Arpeggio → Drums → SEMelody-centered, accompaniment follows

RiffPolicy

PolicyValueDescription
Free0Each section varies independently
LockedContour1Contour locked, rhythm varies
LockedPitch2Pitch fully locked, velocity varies
LockedAll3All aspects locked
Evolving4Gradual changes (30% chance every 2 sections)

Note: Locked is an alias for LockedContour (1).

Blueprint Override

When using a non-Traditional blueprint (ID 1-9), the formId setting is overridden by the blueprint's section flow. Use ID 0 (Traditional) to keep full control of form structure.

MelodyLead

BackgroundMotif

No Vocal in BackgroundMotif

BackgroundMotif disables the Vocal track. The Aux track remains active and provides sub-melody support alongside the motif.

SynthDriven

No Vocal/Aux in SynthDriven

SynthDriven disables both the Vocal and Aux tracks. Arpeggio must be manually enabled (arpeggioEnabled=true) as it is not auto-enabled.

Arpeggio Patterns

8 arpeggio patterns for SynthDriven composition style:

IDNameDescription
0UpAscending pattern
1DownDescending pattern
2UpDownUp then down pattern
3RandomRandom note order
4PinwheelRotating pattern
5PedalRootRoot pedal tone with moving upper voices
6AlbertiClassical Alberti bass pattern
7BrokenChordBroken chord pattern

Vocal Attitudes

3 melodic expression levels:

AttitudeCharacteristicsBest For
CleanChord tones only, on-beatPop, ballad
ExpressiveTensions, timing variationEmotional, dynamic
RawNon-chord tones, boundary breakingEdgy, modern

Melody Templates

7 melody templates define the core melodic behavior using a template-driven approach:

IDNamePlateauMax StepUse Case
0Auto--VocalStylePreset-based selection
1PlateauTalk0.652NewJeans, Billie Eilish (talk-sing)
2RunUpTarget0.204YOASOBI, Ado (ascending runs)
3DownResolve0.303B-section, pre-chorus
4HookRepeat0.403TikTok, K-POP hooks
5SparseAnchor0.502Ballad, Official髭男dism
6CallResponse--Duet patterns
7JumpAccent--Emotional peaks
  • Plateau ratio: Probability of staying on the same pitch (0.0-1.0)
  • Max step: Maximum melodic interval in semitones

Vocal Style Presets

14 vocal style presets that automatically select melody templates:

IDNameTemplateCharacter
0AutoSection-basedVerse=PlateauTalk, Chorus=RunUpTarget
1StandardPlateauTalkBalanced pop vocal
2VocaloidRunUpTargetFast, wide leaps
3UltraVocaloidRunUpTargetExtreme speed (32nd notes)
4IdolPlateauTalkCatchy hooks, high 16th
5BalladSparseAnchorSlow, sustained
6RockRunUpTargetPowerful, register shift
7CityPopPlateauTalkJazzy, groovy
8AnimeHookRepeatDynamic hooks
9BrightKiraHookRepeatHigh register
10CoolSynthPlateauTalkElectronic, precise
11CuteAffectedHookRepeatPlayful, cute
12PowerfulShoutRunUpTargetIntense, shout-y
13KPopHookRepeatK-POP style with syncopation focus and hook-driven melody

Vocal Style Categories

Melodic Complexity

3 complexity levels affecting melody generation:

LevelEffectUse Case
Simple (0)Reduced density, smaller leaps, more hooksCatchy, memorable
Standard (1)Default behaviorGeneral use
Complex (2)Increased density, larger leaps, more variationSophisticated

Hook Intensity

4 hook repetition levels:

LevelEffectUse Case
Off (0)No hook repetitionProgressive, varied
Light (1)Light hook presenceSubtle callbacks
Normal (2)Standard repetitionBalanced pop (default)
Strong (3)Strong hook emphasisCatchy, commercial

Vocal Groove Feel

6 rhythm feel options:

GrooveEffectBest For
Straight (0)On-beat, no swingPop, rock
OffBeat (1)Off-beat emphasisReggae-influenced
Swing (2)Swing timingJazz, R&B
Syncopated (3)Syncopated rhythmLatin, funk
Driving16th (4)16th note driveElectronic, fast pop
Bouncy8th (5)Bouncy 8th notesUpbeat pop

Syncopation Dependency

The syncopation effects of VocalGroove (OffBeat, Swing, Syncopated, Driving16th, Bouncy8th) only take effect when enableSyncopation=true. When enableSyncopation=false, syncopation weight is forced to 0.0, syncopation_prob is set to 0.0, and allow_bar_crossing is set to false. Timing offsets (e.g., +30 ticks for OffBeat) are applied regardless of the enableSyncopation setting.

Energy Curve

4 energy curve options control how energy progresses throughout the song:

ValueNameDescription
0GradualBuildGradually building energy (default)
1FrontLoadedHigh energy from the start, settling later
2WavePatternWave-like energy progression
3SteadyStateMaintain consistent energy level

Mora Rhythm Mode

3 rhythm modes for syllable timing:

ValueNameDescription
0StandardEnglish stress-timed rhythm
1MoraTimedJapanese mora-timed (equal syllable groups)
2AutoAuto-select from VocalStylePreset (default)

Melody Overrides

Fine-grained melody parameters that override VocalStylePreset and MelodicComplexity defaults. Sentinel values (0, 0xFF, -128) preserve preset defaults.

ParameterRangeDefaultDescription
melodyMaxLeap0=preset, 1-120Maximum melodic leap in semitones
melodySyncopationProb0-100, 0xFF=preset0xFFSyncopation probability (%)
melodyPhraseLength0=preset, 1-80Phrase length in bars
melodyLongNoteRatio0-100, 0xFF=preset0xFFLong note ratio (%)
melodyChorusRegisterShift-12 to +12, -128=preset-128Chorus register shift in semitones
melodyHookRepetition0=preset, 1=off, 2=on0Hook repetition (tri-state)
melodyUseLeadingTone0=preset, 1=off, 2=on0Leading tone insertion at section boundaries (tri-state)

Parameter Application Order

Melody overrides are applied after StylePreset, VocalStylePreset, and MelodicComplexity. User-specified values always take the highest priority.

Motif Overrides

Fine-grained motif parameters that override style defaults:

ParameterRangeDefaultDescription
motifLength0=auto, 1/2/40Motif length in beats
motifNoteCount0=auto, 3-80Number of notes in the motif
motifMotion0xFF=preset, 0-40xFFMotion type (0=Stepwise, 1=GentleLeap, 2=WideLeap, 3=NarrowStep, 4=Disjunct; internal 5=Ostinato)
motifRegisterHigh0=auto, 1=low, 2=high0Register range
motifRhythmDensity0xFF=preset, 0-20xFFRhythm density (0=Sparse, 1=Medium, 2=Driving)

Drive Feel

Continuous value 0-100 controlling performance intensity:

  • 0 = Laid-back (relaxed timing, lower velocity)
  • 50 = Neutral (default)
  • 100 = Aggressive (ahead timing, higher velocity, enhanced syncopation with enableSyncopation=true)

Key Options

12 keys available (0-11):

IDKeyNotes
0CNatural, no sharps/flats
1C# / Db5 sharps / 7 flats
2D2 sharps
3D# / Eb3 flats
4E4 sharps
5F1 flat
6F# / Gb6 sharps / 6 flats
7G1 sharp
8G# / Ab4 flats
9A3 sharps
10A# / Bb2 flats
11B5 sharps

BPM Range

Valid tempo range: 40-240 BPM

BPM Setting

  • Set to 0 to use the style preset's default BPM
  • Each style preset has an optimal default BPM setting
  • BPM outside the 40-240 range will cause validation errors

Configuration Examples

Simple Pop Song

javascript
import { createDefaultConfig } from 'midi-sketch'

// Use MinimalGroovePop preset
const config = createDefaultConfig(0)
config.key = 0                  // C major
config.chordProgressionId = 0   // Pop4 (I-V-vi-IV)
config.formId = 0               // StandardPop
config.bpm = 0                  // Use default (120)
config.drumsEnabled = true

Emotional Ballad

javascript
// Use Emotional Ballad preset
const config = createDefaultConfig(16) // Emotional Ballad
config.key = 7                         // G major
config.chordProgressionId = 4          // Emotional4
config.formId = 8                      // Ballad structure
config.bpm = 0                         // Use default (78)
config.drumsEnabled = true

Ballad Tempo

Ballad presets typically have slow default tempos (78-95 BPM). If you need a faster ballad, explicitly set config.bpm.

Anime Opening Style

javascript
// Use Anime Opening preset
const config = createDefaultConfig(14) // Anime Opening
config.key = 2                         // D major
config.chordProgressionId = 2          // Komuro
config.bpm = 0                         // Use default (142)
config.drumsEnabled = true
config.vocalStyle = 2                  // Vocaloid style
config.melodicComplexity = 2           // Complex melodies
config.hookIntensity = 3               // Strong hooks

Vocaloid-style Melodies

For YOASOBI/Ado-style dense melodies with wide intervals, use:

  • vocalStyle: 2 (Vocaloid) or vocalStyle: 3 (UltraVocaloid)
  • melodicComplexity: 2 (Complex)
  • melodyTemplate: 2 (RunUpTarget)

Chill Background

javascript
// Use Background Motif preset
const config = createDefaultConfig(12)  // Background Motif
config.key = 5                          // F major
config.chordProgressionId = 5           // Minimal
config.formId = 4                       // ShortForm
config.bpm = 95
config.drumsEnabled = false             // No drums for ambient

Background Motif Style

The Background Motif preset (ID 12) is ideal for ambient and BGM-style tracks with subdued vocals and repeating patterns.

Idol Pop with Calls

javascript
// Use Idol Standard preset
const config = createDefaultConfig(3)  // Idol Standard
config.key = 0                         // C major
config.callEnabled = true              // Enable call track
config.introChant = 1                  // Gachikoi intro
config.mixPattern = 1                  // Standard mix
config.callDensity = 2                 // Standard density
config.modulationTiming = 1            // Modulate at last chorus
config.modulationSemitones = 2         // Up 2 semitones

Syncopation & Groove

javascript
const config = createDefaultConfig(0)
config.enableSyncopation = true        // Enable syncopation
config.vocalGroove = 3                 // Syncopated rhythm

Energy Curve

javascript
const config = createDefaultConfig(0)
config.energyCurve = 1                 // FrontLoaded energy

Melody Fine-Grained Control

javascript
const config = createDefaultConfig(0)
config.melodyMaxLeap = 5              // Max melodic leap in semitones
config.melodyPhraseLength = 4         // Phrase length in bars
config.melodyHookRepetition = 2       // Hook repetition ON (tri-state: 0=preset, 1=off, 2=on)

Motif Fine-Grained Control

javascript
const config = createDefaultConfig(12) // Background Motif
config.motifLength = 4                 // Motif length in beats
config.motifNoteCount = 5             // Number of notes in motif
config.motifMotion = 1                // Motif motion type
config.motifRhythmDensity = 2         // Rhythm density level

Guitar Track

javascript
const config = createDefaultConfig(0)
config.guitarEnabled = true            // Enable guitar track

R&B / Neo-Soul

javascript
const config = createDefaultConfig(0)
config.stylePresetId = 20             // RnBNeoSoul mood
config.chordExt7th = true             // Enable 7th extensions
config.chordExt9th = true             // Enable 9th extensions

Lo-fi BGM

javascript
const config = createDefaultConfig(12) // Background Motif
config.stylePresetId = 23             // Lofi mood
config.compositionStyle = 1           // BackgroundMotif

Mora Timing

javascript
const config = createDefaultConfig(0)
config.moraRhythmMode = 1             // MoraTimed (Japanese mora-timed)

BehavioralLoop

javascript
const config = createDefaultConfig(0)
config.blueprintId = 9                // BehavioralLoop (addictive loop)

Released under the MIT License.