Bobby Collins Claude Opus 4.6 commited on
Commit ·
44b55ef
1
Parent(s): d75a55f
Expand KB with tag scope, sensitivity, conflict resolution, and pitfalls (v1.3.0)
Browse files- Add 5 new reference sections: Tag Scope & Sensitivity, Tag Conflict
Resolution, Tag Pitfalls, Section-Level Overrides, Speculative Tags
- Unban stereo width (qualitative narrow/medium/wide now valid)
- Allow BPM in lyrics field for per-section tempo changes
- Reclassify mastering LUFS from banned to low-sensitivity/unreliable
- Add missing Punk subgenres (Anarcho-Punk, Queercore)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- CHANGELOG.md +16 -0
- knowledge_base.py +76 -3
CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
| 1 |
# Changelog
|
| 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3 |
## [1.2.1] - 2026-02-18
|
| 4 |
|
| 5 |
### Added
|
|
|
|
| 1 |
# Changelog
|
| 2 |
|
| 3 |
+
## [1.3.0] - 2026-02-18
|
| 4 |
+
|
| 5 |
+
### Added
|
| 6 |
+
- **Tag Scope & Sensitivity** section — documents which tags are HIGH/MEDIUM/LOW sensitivity and global vs. section vs. line scope
|
| 7 |
+
- **Tag Conflict Resolution** section — how Suno resolves conflicting tags (e.g., chords override key, section BPM overrides global)
|
| 8 |
+
- **Tag Pitfalls** section — 13 common mistakes that reduce output quality
|
| 9 |
+
- **Section-Level Overrides** section — per-section BPM and Key changes with examples
|
| 10 |
+
- **Speculative Tags** section — partially supported tags (KeyChange, FX, Repeat, ReferenceAudio, Extend) with confidence levels
|
| 11 |
+
- Stereo Width added to working production terms: narrow, medium, wide, extreme-wide
|
| 12 |
+
- Missing Punk subgenres added: Anarcho-Punk, Queercore
|
| 13 |
+
|
| 14 |
+
### Changed
|
| 15 |
+
- **BPM now allowed in lyrics field** — enables per-section tempo changes (previously restricted to style prompt only)
|
| 16 |
+
- **Stereo unbanned** — qualitative stereo width descriptors (narrow/wide) are valid; only hard-panned L/R positioning remains unsupported
|
| 17 |
+
- **Mastering LUFS reclassified** — changed from outright banned to "low-sensitivity and unreliable" (Suno may approximate but can't guarantee exact values)
|
| 18 |
+
|
| 19 |
## [1.2.1] - 2026-02-18
|
| 20 |
|
| 21 |
### Added
|
knowledge_base.py
CHANGED
|
@@ -17,9 +17,9 @@ Tag Weighting: Position 1 = ~50% influence, Position 2 = ~25%, Position 3 = ~12.
|
|
| 17 |
|
| 18 |
Style Prompt: 200-400 chars optimal (sweet spot 250-350). Beyond 400 = dilution and ignored descriptors.
|
| 19 |
|
| 20 |
-
Lyrics Field: Use structure tags on their own lines. Keep section-specific changes, performance cues, and actual lyrics here.
|
| 21 |
|
| 22 |
-
BANNED (Suno ignores these): Frequency specs (40Hz, 2kHz), decibel specs (-6dB, -30dB), time-based specs (6-second decay), DAW terms (sidechain compression, transient shaping),
|
| 23 |
|
| 24 |
USE INSTEAD: Qualitative descriptors ("deep bass," "punchy kicks," "crisp hats"), texture words ("lo-fi," "tape saturation," "vinyl crackle," "analog," "warm," "bitcrushed"), instrument names ("808 drums," "Rhodes piano," "TR-808"), mood words, physical placement ("close-mic," "room reverb," "distant").
|
| 25 |
|
|
@@ -37,6 +37,7 @@ Strings/Orchestral: "strings legato," "strings staccato," "strings pizzicato," "
|
|
| 37 |
Percussion: "hand percussion," "shakers," "cajon," "808 kick," "electronic percussion"
|
| 38 |
Compression: "transparent compression," "glue compression," "pumpy compression"
|
| 39 |
Tonal Balance: "bright top," "warm low-mids," "clean midrange," "bass-forward," "airy highs"
|
|
|
|
| 40 |
|
| 41 |
=== PERFORMANCE & HUMANIZATION ===
|
| 42 |
|
|
@@ -57,7 +58,7 @@ Arrangement:
|
|
| 57 |
Electronic: House, Techno, Trance, Drum and Bass, Dubstep, Synthwave, Ambient, IDM, Glitch, Electro-Industrial
|
| 58 |
Rock: Classic Rock, Hard Rock, Psychedelic Rock, Garage Rock, Post-Rock, Progressive Rock, Grunge, Alternative Rock, Indie Rock, Stoner Rock, Math Rock
|
| 59 |
Metal: Heavy, Thrash, Death, Black, Doom, Sludge, Progressive, Symphonic, Nu-Metal, Metalcore, Industrial Metal
|
| 60 |
-
Punk: Classic Punk, Hardcore, Post-Punk, Pop Punk, Garage Punk, Riot Grrrl, Crust, Horror Punk
|
| 61 |
Hip-Hop/Rap: Boom Bap, Trap, Drill, Lo-Fi Hip Hop, Gangsta Rap, Alternative Hip Hop, Conscious Rap, Cloud Rap
|
| 62 |
Pop: Mainstream Pop, Indie Pop, Synthpop, Electropop, Dance Pop, Bedroom Pop
|
| 63 |
Jazz: Bebop, Cool Jazz, Free Jazz, Fusion, Swing, Latin Jazz, Avant-garde Jazz
|
|
@@ -154,6 +155,78 @@ Vocals when unwanted -> Add "instrumental, no vocals" explicitly
|
|
| 154 |
Overproduced -> Limit to 2-3 core instruments, specify "sparse" arrangement
|
| 155 |
Robotic feel -> Add humanization cues ("loose feel," "organic imperfections," "live-band energy")
|
| 156 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 157 |
=== BANNED LYRIC PHRASES ===
|
| 158 |
|
| 159 |
NEVER use any of the following cliché phrases or close variants in generated lyrics. These are overused AI-isms that make lyrics feel generic and artificial. If you catch yourself reaching for one of these, find a more original way to express the idea.
|
|
|
|
| 17 |
|
| 18 |
Style Prompt: 200-400 chars optimal (sweet spot 250-350). Beyond 400 = dilution and ignored descriptors.
|
| 19 |
|
| 20 |
+
Lyrics Field: Use structure tags on their own lines. Keep section-specific changes, performance cues, and actual lyrics here. BPM can appear in both style prompt AND lyrics (useful for per-section tempo changes like [BPM: 140] before [Chorus]). Key goes in STYLE PROMPT ONLY, do NOT repeat in lyrics.
|
| 21 |
|
| 22 |
+
BANNED (Suno ignores these): Frequency specs (40Hz, 2kHz), decibel specs (-6dB, -30dB), time-based specs (6-second decay), DAW terms (sidechain compression, transient shaping), bit depth (12-bit reduction). Mastering LUFS specs (-14 LUFS, -3 dBTP) are low-sensitivity and unreliable — Suno may approximate but cannot guarantee exact values.
|
| 23 |
|
| 24 |
USE INSTEAD: Qualitative descriptors ("deep bass," "punchy kicks," "crisp hats"), texture words ("lo-fi," "tape saturation," "vinyl crackle," "analog," "warm," "bitcrushed"), instrument names ("808 drums," "Rhodes piano," "TR-808"), mood words, physical placement ("close-mic," "room reverb," "distant").
|
| 25 |
|
|
|
|
| 37 |
Percussion: "hand percussion," "shakers," "cajon," "808 kick," "electronic percussion"
|
| 38 |
Compression: "transparent compression," "glue compression," "pumpy compression"
|
| 39 |
Tonal Balance: "bright top," "warm low-mids," "clean midrange," "bass-forward," "airy highs"
|
| 40 |
+
Stereo Width: "narrow," "medium," "wide," "extreme-wide" (qualitative width — do NOT use hard-panned L/R positioning)
|
| 41 |
|
| 42 |
=== PERFORMANCE & HUMANIZATION ===
|
| 43 |
|
|
|
|
| 58 |
Electronic: House, Techno, Trance, Drum and Bass, Dubstep, Synthwave, Ambient, IDM, Glitch, Electro-Industrial
|
| 59 |
Rock: Classic Rock, Hard Rock, Psychedelic Rock, Garage Rock, Post-Rock, Progressive Rock, Grunge, Alternative Rock, Indie Rock, Stoner Rock, Math Rock
|
| 60 |
Metal: Heavy, Thrash, Death, Black, Doom, Sludge, Progressive, Symphonic, Nu-Metal, Metalcore, Industrial Metal
|
| 61 |
+
Punk: Classic Punk, Hardcore, Post-Punk, Anarcho-Punk, Pop Punk, Garage Punk, Queercore, Riot Grrrl, Crust, Horror Punk
|
| 62 |
Hip-Hop/Rap: Boom Bap, Trap, Drill, Lo-Fi Hip Hop, Gangsta Rap, Alternative Hip Hop, Conscious Rap, Cloud Rap
|
| 63 |
Pop: Mainstream Pop, Indie Pop, Synthpop, Electropop, Dance Pop, Bedroom Pop
|
| 64 |
Jazz: Bebop, Cool Jazz, Free Jazz, Fusion, Swing, Latin Jazz, Avant-garde Jazz
|
|
|
|
| 155 |
Overproduced -> Limit to 2-3 core instruments, specify "sparse" arrangement
|
| 156 |
Robotic feel -> Add humanization cues ("loose feel," "organic imperfections," "live-band energy")
|
| 157 |
|
| 158 |
+
=== TAG SCOPE & SENSITIVITY ===
|
| 159 |
+
|
| 160 |
+
Every Suno tag operates at a specific scope and has a sensitivity level that determines how strongly Suno responds to it.
|
| 161 |
+
|
| 162 |
+
Scope levels:
|
| 163 |
+
- Global: Affects the entire track. Place at top of style prompt or lyrics header.
|
| 164 |
+
- Section: Affects one section. Place immediately before the section tag.
|
| 165 |
+
- Line/Phrase: Affects a single lyric line or phrase. Place inline.
|
| 166 |
+
|
| 167 |
+
Sensitivity ratings (how reliably Suno honors the tag):
|
| 168 |
+
- HIGH: Genre, BPM, Key, Instruments, Vocal Register, Vocal Delivery, Groove Feel, Drum Style, Performance Energy, Language
|
| 169 |
+
- MEDIUM: Harmony Style, Time Signature, Arrangement Density, Vocal Effects, Vocal Articulation, Reverb, Delay, Compression, EQ/Tonal Balance, Stereo Width, Emotional Arc, Intensity Arc, Mood, LyricTone, Chords, Persona, Bar Counts, Layering
|
| 170 |
+
- LOW: Mastering/Loudness targets, Metadata tags, Licensing flags
|
| 171 |
+
|
| 172 |
+
Tags with HIGH sensitivity should be prioritized in the style prompt. Tags with LOW sensitivity may be approximated or ignored.
|
| 173 |
+
|
| 174 |
+
=== TAG CONFLICT RESOLUTION ===
|
| 175 |
+
|
| 176 |
+
When tags conflict, Suno resolves them using these rules:
|
| 177 |
+
|
| 178 |
+
Genre: If conflicting genres present, the last high-priority genre wins. Fallback is default "Pop" semantics.
|
| 179 |
+
BPM: If multiple BPM tags exist, the one closest to the section (most local) overrides global. Uploaded audio tempo always takes precedence over BPM tags.
|
| 180 |
+
Key: Section-local key overrides global key. Explicit chord progressions override Key if incompatible.
|
| 181 |
+
Chords: Explicit [Chords: ...] overrides Key tag. If chords are invalid, Suno infers from Key/genre.
|
| 182 |
+
Performance cues: If contradictory cues present, the last cue nearest to the phrase wins.
|
| 183 |
+
Persona/Voice: If an unavailable Persona is requested, Suno substitutes the nearest-match voice.
|
| 184 |
+
Time signature: If incompatible with BPM or chords, Suno defaults to idiomatic 4/4.
|
| 185 |
+
Mood: If conflicting mood tags present, the last one parsed wins.
|
| 186 |
+
Arrangement density: Global "dense" may conflict with intimate requests (e.g., close-mic vocal). Be intentional.
|
| 187 |
+
|
| 188 |
+
=== TAG PITFALLS ===
|
| 189 |
+
|
| 190 |
+
Common mistakes that reduce output quality:
|
| 191 |
+
|
| 192 |
+
- Stacking contradictory moods (e.g., "playful" + "melancholic") reduces coherence — pick ONE dominant mood
|
| 193 |
+
- Listing more than 6 instruments dilutes focus — keep to 3-6 core instruments
|
| 194 |
+
- Microtiming humanization values >50ms make the performance feel off-grid
|
| 195 |
+
- Zero or very high velocity variance removes intended dynamics or creates erratic output
|
| 196 |
+
- Heavy vocal processing can override subtle humanization cues
|
| 197 |
+
- "Energy: high" with "Tempo: slow" creates conflicting signals
|
| 198 |
+
- Very niche subgenres may be approximated to nearest mainstream subgenre
|
| 199 |
+
- Extreme stereo width can cause phase issues in mono playback
|
| 200 |
+
- "Production: lo-fi" + "Production: polished" are contradictory
|
| 201 |
+
- Too many emotional arc transitions reduce clarity — keep to 2-3 stages
|
| 202 |
+
- Rare time signatures (5/4, 7/8) may be approximated; test with explicit rhythmic examples
|
| 203 |
+
- Abstract adjectives like "emotional" are less actionable than "conversational" or "poetic"
|
| 204 |
+
- Avoid direct imitation of living regional artists; use descriptive cues instead
|
| 205 |
+
|
| 206 |
+
=== SECTION-LEVEL OVERRIDES ===
|
| 207 |
+
|
| 208 |
+
BPM and Key can be set per-section, not just globally. Section-level tags override the global value for that section only.
|
| 209 |
+
|
| 210 |
+
Examples:
|
| 211 |
+
[BPM: 100] (global default)
|
| 212 |
+
[Verse]
|
| 213 |
+
...
|
| 214 |
+
[BPM: 140] (override for chorus only)
|
| 215 |
+
[Chorus]
|
| 216 |
+
...
|
| 217 |
+
|
| 218 |
+
This is useful for songs that speed up, slow down, or shift key at the bridge. Section-local tags always take priority over global ones.
|
| 219 |
+
|
| 220 |
+
=== SPECULATIVE TAGS ===
|
| 221 |
+
|
| 222 |
+
These tags have partial or unverified support. Use with appropriate expectations — they may be approximated or ignored.
|
| 223 |
+
|
| 224 |
+
[KeyChange: to X at section] — Requests modulation (e.g., [KeyChange: D major at bridge]). LOW confidence. If unsupported, Suno keeps original key.
|
| 225 |
+
[FX: reverb=large, delay=200ms] — Mix-level effects via key=value pairs. LOW confidence. Reverb and delay keywords are partially recognized.
|
| 226 |
+
[Repeat: n] / [Vamps: n] — Request section repetition. LOW confidence. Studio-level loop controls are more reliable.
|
| 227 |
+
[ReferenceAudio: file_id] — Use uploaded audio as seed for style/voice. MEDIUM confidence for file usage; tag-in-lyrics is speculative. Use Studio UI for deterministic results.
|
| 228 |
+
[Extend] / [Loop: times] / [Replace] — Studio operation tags. MEDIUM confidence. Better used via Studio UI controls than in-lyrics tags.
|
| 229 |
+
|
| 230 |
=== BANNED LYRIC PHRASES ===
|
| 231 |
|
| 232 |
NEVER use any of the following cliché phrases or close variants in generated lyrics. These are overused AI-isms that make lyrics feel generic and artificial. If you catch yourself reaching for one of these, find a more original way to express the idea.
|