Ted Kocher  /  Writing  /  A Study in B3

Preprint  ·  cs.SD (Sound)  ·  13 October 2026  ·  Not peer reviewed

A Study in B3

Evaluating YuE2-3B as a local replacement for Suno, across seven engines, one hundred clips, and one tavern

Author
Ted Kocher
Affiliations
Back Pocket Music · Northwestern Michigan College · Southern Utah University
Published
13 October 2026
DOI
None. This is a website.
Correspondence
ted@tedkocher.com

Abstract

In a previous paper [1], the author promised to stop using Suno on the day an ethically trained model sounded as good. This paper does not keep that promise. It checks on it.

We evaluate YuE2-3B, a three-billion-parameter open-weight song model run at 4-bit precision on a laptop, against six cloud engines and one open engine that could not be reached, across two controlled shootouts and one hundred rendered clips. Its developers report that, keeping the best of eight renders, it outscores every Suno model they tested on a benchmark of song quality [2]. We measured something smaller. Every prompt stated a tempo, a key and a meter. Asked for D minor, YuE2-3B delivered D minor in 3 of 15 renders and D-sharp minor in 7. Suno V6 delivered D minor in 8 of 10, ElevenLabs in 8 of 10, and Google’s two Lyria models in 1 of 10 each.

YuE2-3B is, however, the only engine that writes its intentions down. Alongside every song it produces a two-voice score in ABC notation, and its audio matches the key of that score in 20 of 20 renders. We conclude that the model follows instructions perfectly. They are simply its own. It renders six to ten times slower than real time, costs nothing, carries a non-commercial license, sings when asked not to, and was selected in part because its name contains a B and a 3.

Keywords text-to-music · local inference · key adherence · ABC notation · Hammond organ · D-sharp minor

Upper manual · nine drawbars88 8000 0001234567816′123456785⅓′123456788′123456784′123456782⅔′123456782′123456781⅗′123456781⅓′123456781′
Drag a drawbar, or focus one and use the arrow keys.
Figure 0. The author’s prior. Hammond drawbars set to 88 8000 000, the registration most people mean when they say “organ” and do not mean pipes. Drag a drawbar, or focus one and use the arrow keys, then play. The tonewheels are approximated with sine waves, which is roughly how a tonewheel works and nothing like how one sounds.
Where the error happens A prompt for 80 BPM, 4/4, D minor becomes a plan in 2/4 at 86 BPM in D-sharp minor. The arrow from prompt to plan is marked: 3 of 15 keys correct. The audio is then measured in E-flat minor, the same key as the plan. The arrow from plan to audio is marked: 20 of 20 keys faithful. Light combat, take 1 · one render of twenty Prompt 80 BPM · 4/4 D minor instrumental, no vocals Plan · plan.abc Q:1/4=86 M:2/4 K:D#m Vocal Melody · 165 notes Audio · measured E♭ minor same key as the plan, spelled the other way 3 of 15 keys right 20 of 20 faithful the error happens here and never here Where the error happens A prompt for 80 BPM, 4/4, D minor becomes a plan in 2/4 at 86 BPM in D-sharp minor. The arrow from prompt to plan is marked: 3 of 15 keys correct. The audio is then measured in E-flat minor, the same key as the plan. The arrow from plan to audio is marked: 20 of 20 keys faithful. Light combat, take 1 · one render of twenty Prompt 80 BPM · 4/4 · D minor instrumental, no vocals 3 of 15 keys right the error happens here Plan · plan.abc Q:1/4=86 M:2/4 K:D#m Vocal Melody · 165 notes 20 of 20 faithful and never here Audio · measured E♭ minor same key as the plan, spelled the other way
Figure 1. Where the error happens. YuE2-3B writes a plan before it renders. Every key error in this study happens between the prompt and the plan. From the plan onward the model is faithful in all twenty renders (Section 4.3). The example is real: light combat, take 1.

1Introduction

In September the author published an account of how he makes songs with Suno [1]. It ends with a disclosure: these models learned from an ocean of music nobody agreed to teach from, and the day an ethically trained model sounds this good, he switches, along with everything he has built on top of it.

It is the kind of sentence that reads like a principle when you write it and like a deadline when you read it back. This paper is the reading back.

The question is narrow. Can an open model, running on a laptop, do the specific job Suno does in a working composer’s practice? That job is not “make music.” It is “make a version of this, in this key, at this tempo, without being asked twice.” A collaborator who cannot hear D minor is not a collaborator. It is a radio.

We tested one open model in depth and six others for comparison.11The author is one person. “We” is retained in accordance with academic convention and in recognition of the B3, in whose honor the model was selected. We chose YuE2-3B for three reasons, set out in Section 2. Two of them are good.

This paper makes the following contributions:

2Model selection

2.1Criteria

Candidate models were required to satisfy three conditions:

  1. the weights are published;
  2. inference runs locally, on one laptop, without an account;
  3. the model’s name contains the characters B and 3, in any order.

Formally, for a model name s:

𝟙B3(s) = 𝟙[B∈s] · 𝟙[3∈s] (1)

Conditions (i) and (ii) follow from the promise in [1]. A replacement for a subscription should not be another subscription, and a model that needs a data center is not a replacement. It is a different landlord. Condition (iii) is discussed below.

2.2The Hammond prior

The author plays Hammond organ and has a long-standing preference for the B3 (Figure 0).22The B3 was built from the mid-1950s until 1974 and weighs roughly four hundred pounds without its bench. Its sound comes from spinning tonewheels [3], each producing something close to a sine wave, blended by the drawbars in Figure 0. It was an additive synthesizer decades before anyone needed the phrase. This preference is not scientific. We include it because every evaluation has a prior, and most papers bury theirs in the related work.

Criterion (iii) proved less restrictive than intended. It admits YuE2-3B, but it also admits every model in the three-billion-parameter class, of which there are now a great many. The field appears to have been designing for the author for some time without telling him. The experiments in this paper were run on an Apple M4, which fails the criterion. We regret this.

2.3What YuE2-3B is

YuE2-3B comes from M-A-P, the open research group behind YuE [4], a family of lyrics-to-song models. Its developers describe a single network that first writes a score and then renders the audio from it [5], and their documentation calls the planning step chain of thought [2]. It thinks, in other words, in ABC. The version tested here has three billion parameters and was run at 4-bit precision on a Mac through ChorusPop, an app Casey Halverson built around it. M-A-P’s reference setup is a 24 GB graphics card without quantization [2]; this study used a laptop and four bits, and its results describe that configuration. We did not train the model or inspect its weights.

The app keeps the thought. Alongside every song it saves a file called plan.abc: a score in ABC notation33ABC is a plain-text music notation, first published in the early 1990s for trading folk tunes by email [6]. It is fitting that the model’s worst moment in this study was a folk tune. with a tempo, a key and a meter; two voices, one named Vocal Melody and one named Ins Melody; chord symbols; and section markers for intro, verse, chorus and interlude. Listing 1 reproduces one in full.

The plans describe complete songs, between 1:22 and 8:36 long. The renders are their first 60 or 90 seconds, stopped at the requested length. The ambient plan in Shootout II runs eight and a half minutes. One minute of it exists.

3Experimental setup

3.1Engines

Table 1 lists the engines. The three Suno models were reached through a third-party API and report themselves by internal names, which are birds. The flagship is chirp-hawk. The small one is chirp-goose. The one marked Wild is chirp-hawk-wild, which is the same bird with less supervision.

Table 1. Engines under test. Model IDs are as reported by each API, or as requested where the API reports nothing.
EngineModel IDWeightsRan onShootouts
YuE2-3B, 4-bityue2-3b-4bit@1openlocal · Apple M4I, II
Suno V6chirp-hawkclosedcloud APII, II
Suno V6 Minichirp-gooseclosedcloud APII
Suno V6 Wildchirp-hawk-wildclosedcloud APII
ElevenLabs Musicmusic_v1closedcloud APII, II
Lyria 3.5lyria-3.5closedcloud APII
Lyria 3 Pro (preview)lyria-3-pro-previewclosedcloud APII
ACE-Step 1.5 XL, turboacestep-v15-xl-turboopenshared GPU · free tierII, attempted

3.2Shootout I: five cues, one key

Five cues of the kind a game needs on an ordinary Tuesday: exploration, stealth, light combat, heavy combat and a cinematic suite. Every prompt opened with the same head, 80 BPM, mid-tempo, 4/4, D minor, instrumental, no vocals, followed by a shared description of the world and a paragraph specific to the cue (Appendix B). Clips were 90 seconds long.

The shared description originally named a living composer. ElevenLabs and both Lyria models decline prompts that do, so those three received a version that said in a modern blockbuster style in place of the name and was otherwise identical. The author’s own prompt tool, Songwright, has refused to name artists since the day it was built. He made an exception here, for comparability across engines, and three engines caught him. They were right.

YuE2-3B rendered three takes of each cue and every other engine two. The third YuE2-3B take tested a workaround, described in Section 4.5.

3.3Shootout II: five genres, five keys

The second shootout varied the target (Table 2). Clips were 60 seconds long. Two of the five genres asked for vocals and were given lyrics written by the author (Appendix C). An eighth engine, ACE-Step 1.5 XL, joined this round and is discussed in Section 4.6.

Table 2. Shootout II targets. Every prompt stated these values in its first words, then described the genre (Appendix B). Clips were 60 seconds.
GenreBPMMeterKeyVocals
ambient904/4A minorno
orchestral1404/4D minorno
funk1044/4E minorno
tavern1206/8D majoryes
credits1264/4A majoryes

3.4Measurement

For YuE2-3B we read tempo, key and meter from the header of its plan. For every engine, YuE2-3B included, we also measured the audio. Tempo was estimated with librosa [7] and scored with the two accuracy measures of Gouyon et al. [8]. A clip passes Accuracy 1 if its tempo T̂ is within 4% of the target T, and Accuracy 2 if it is within 4% after doubling, tripling, halving or thirding, which forgives an estimator for hearing the wrong level of the beat:

Acc1 =𝟙[|T^−T|≤0.04T] Acc2 =maxk∈{1,2,3,12,13}𝟙[|kT^−T|≤0.04T] (2)

Key was estimated by correlating the clip’s average chroma c̄, which is how much of each of the twelve pitch classes the clip contains, with the twenty-four rotated Krumhansl–Kessler key profiles pk [9],

k^= argmaxk∈𝒦 ρ(c¯,pk), |𝒦|=24 (3)

and scored with the weighted measure in mir_eval [10], which gives full credit for the right key and partial credit for near misses:

S(k^,k)= { 1if k^=k 0.5if k^ is a perfect fifth above k 0.3if k^ is the relative major or minor 0.2if k^ is the parallel major or minor 0otherwise, including D♯ minor (4)

Nothing is given for D-sharp minor.44mir_eval gives half credit for an answer a fifth above the target and none for an answer a fifth below. This is a convention inherited from the MIREX evaluation campaigns. We did not ask why. All analysis code read the audio files directly; no engine was told it was being measured.

4Results

4.1Key

Table 3 and Figure 2 give the headline. Asked for D minor, the Suno models delivered it most of the time, ElevenLabs delivered it eight times in ten, and YuE2-3B delivered it three times in fifteen. The two Lyria models delivered it once each. Lyria also ignored the requested length and returned clips of about three minutes, so we infer that it treats a prompt as a mood board.

Table 3. Shootout I. Every lane asked for 80 BPM in D minor. Key and tempo are measured from the audio (Eqs. 2–4). The last tempo column also forgives the dotted pulse (×4/3, ×3/4, ×3/2, ×2/3; Section 4.2). Length is the median clip length; 1:30 was requested.
EnginenKey exactKey scoreAcc 1Acc 2Acc 2 + dottedLength
Suno V6, full prompt109/100.920/102/109/101:29
Suno V6, same prompt108/100.840/100/108/101:29
ElevenLabs Music108/100.820/104/109/101:30
Suno V6 Wild107/100.760/100/109/101:29
Suno V6 Mini106/100.670/100/108/102:46
YuE2-3B153/150.230/151/157/151:30
Lyria 3.5101/100.150/102/1010/102:58
Lyria 3 Pro101/100.120/102/1010/103:00
Key adherence by engine, Shootout I Bars show the fraction of clips in D minor. Suno V6, full prompt 9 of 10; Suno V6, same prompt 8 of 10; ElevenLabs Music 8 of 10; Suno V6 Wild 7 of 10; Suno V6 Mini 6 of 10; YuE2-3B 3 of 15; Lyria 3.5 1 of 10; Lyria 3 Pro 1 of 10. Clips in D minor · bar = exact key · tick = weighted score 0%25%50%75%100%Suno V6, full prompt: D minor in 9 of 10; weighted score 0.92Suno V6, full prompt9 / 10Suno V6, same prompt: D minor in 8 of 10; weighted score 0.84Suno V6, same prompt8 / 10ElevenLabs Music: D minor in 8 of 10; weighted score 0.82ElevenLabs Music8 / 10Suno V6 Wild: D minor in 7 of 10; weighted score 0.76Suno V6 Wild7 / 10Suno V6 Mini: D minor in 6 of 10; weighted score 0.67Suno V6 Mini6 / 10YuE2-3B: D minor in 3 of 15; weighted score 0.23YuE2-3B3 / 15Lyria 3.5: D minor in 1 of 10; weighted score 0.15Lyria 3.51 / 10Lyria 3 Pro: D minor in 1 of 10; weighted score 0.12Lyria 3 Pro1 / 10 Key adherence by engine, Shootout IBars show the fraction of clips in D minor. Suno V6, full prompt 9 of 10; Suno V6, same prompt 8 of 10; ElevenLabs Music 8 of 10; Suno V6 Wild 7 of 10; Suno V6 Mini 6 of 10; YuE2-3B 3 of 15; Lyria 3.5 1 of 10; Lyria 3 Pro 1 of 10.Clips in D minorbar = exact key · tick = weighted scoreSuno V6, full prompt: D minor in 9 of 10; weighted score 0.92Suno V6, full prompt9 / 10Suno V6, same prompt: D minor in 8 of 10; weighted score 0.84Suno V6, same prompt8 / 10ElevenLabs Music: D minor in 8 of 10; weighted score 0.82ElevenLabs Music8 / 10Suno V6 Wild: D minor in 7 of 10; weighted score 0.76Suno V6 Wild7 / 10Suno V6 Mini: D minor in 6 of 10; weighted score 0.67Suno V6 Mini6 / 10YuE2-3B: D minor in 3 of 15; weighted score 0.23YuE2-3B3 / 15Lyria 3.5: D minor in 1 of 10; weighted score 0.15Lyria 3.51 / 10Lyria 3 Pro: D minor in 1 of 10; weighted score 0.12Lyria 3 Pro1 / 100%25%50%75%100%
Figure 2. Key adherence, Shootout I. Bars give the share of clips measured in D minor; the tick is the mean weighted score (Eq. 4), which awards partial credit for near misses and none for D-sharp minor.

YuE2-3B’s misses were not random. Seven of its fifteen renders came back in D-sharp minor.

D-sharp minor is one semitone above D minor, the smallest distance two keys can have on a keyboard. On the circle of fifths it is five steps away, nearly the largest distance two keys can have in harmony (Figure 3). Of every wrong answer available, the model repeatedly chose the one that is closest and farthest at the same time. It also spelled it D-sharp minor, six sharps, rather than E-flat minor, which sounds identical and uses six flats.55Very little music is written in D-sharp minor. The best-known example is the eighth fugue of Bach’s Well-Tempered Clavier, Book I [11], which follows a prelude in E-flat minor, the same key spelled the other way, as if to apologize. In practice none of this matters, because a cue in D-sharp minor cannot be cut into a score in D minor without pitch-shifting it, and a pitch shift is the audio equivalent of a toupee.

Its other misses were in E minor, a whole step up, four times, and A minor once. Light combat came back in D-sharp minor three times out of three. At that point it is not an error. It is a preference.

Where D minor went, on the circle of fifths The circle of fifths with major keys outside and minor keys inside. D minor, the requested key, is circled. YuE2-3B's fifteen planned keys: D-sharp minor 7, E minor 4, D minor 3, A minor 1. Suno V6's ten measured keys: D minor 8, D major 2. CAmGEmDBmAF♯mEC♯mBG♯mF♯D♯mD♭B♭mA♭FmE♭CmB♭GmFDmaskedYuE2-3B planned D♯ minorYuE2-3B planned D♯ minorYuE2-3B planned D♯ minorYuE2-3B planned D♯ minorYuE2-3B planned D♯ minorYuE2-3B planned D♯ minorYuE2-3B planned D♯ minorYuE2-3B planned E minorYuE2-3B planned E minorYuE2-3B planned E minorYuE2-3B planned E minorYuE2-3B planned D minorYuE2-3B planned D minorYuE2-3B planned D minorYuE2-3B planned A minorSuno V6 measured D minorSuno V6 measured D minorSuno V6 measured D minorSuno V6 measured D minorSuno V6 measured D minorSuno V6 measured D minorSuno V6 measured D minorSuno V6 measured D minorSuno V6 measured D majorSuno V6 measured D majorone semitone apartfive steps apartYuE2-3B, planned key (15)Suno V6, same prompt, measured (10)
Figure 3. Where D minor went. Major keys outside, their relative minors inside; the request is circled. YuE2-3B’s plans (filled) cluster at D-sharp minor, which is the nearest key on a keyboard and five steps away here. Suno’s misses (hollow) are D major: the right D, the wrong mode.

The commercial engines have habits of their own. In Shootout II, Suno V6 was asked for a boss fight in D minor and returned D major, then asked for a tavern song in D major and returned D minor (Table 4). It is not wrong about the D.

Table 4. Shootout II, measured. Each cell gives the measured tempo and key; marks are Accuracy 2 and the exact key. For YuE2-3B the plan’s header is shown too. ACE-Step did not render (Section 4.6).
Genre · targetYuE2-3BSuno V6ElevenLabsACE-Step
ambient90 · A minor172 · E♭ majorplan 91 · E♭ · 4/4
tempo ✗ · key ✗
92 · A minortempo ✓ · key ✓118 · A minortempo ✗ · key ✓—quota
orchestral140 · D minor144 · D minorplan 140 · Dm · 4/4
tempo ✓ · key ✓
144 · D majortempo ✓ · key: parallel144 · D minortempo ✓ · key ✓—quota
funk104 · E minor103 · E minorplan 105 · Em · 4/4
tempo ✓ · key ✓
103 · E minortempo ✓ · key ✓103 · E minortempo ✓ · key ✓—quota
tavern120 · D major92 · G minorplan 92 · Gm · 2/4
tempo ✗ · key ✗
123 · D minortempo ✓ · key: parallel118 · D majortempo ✓ · key ✓—quota
credits126 · A major123 · A majorplan 124 · A · 4/4
tempo ✓ · key ✓
129 · A majortempo ✓ · key ✓123 · A majortempo ✓ · key ✓—quota
Totaltempo 3/5 · key 3/5tempo 5/5 · key 3/5tempo 4/5 · key 5/50/5 · 0/5

4.2Tempo

Tempo was harder to measure than to request. Our estimator placed most 80 BPM cues, from every engine, at 107.7 BPM. That is four thirds of 80, the signature of an estimator locking onto a dotted pulse instead of the beat, which is a forgivable mistake in music built almost entirely out of ostinatos. Under the standard Accuracy 2 measure the best lane, ElevenLabs, hit 80 BPM four times in ten, and most lanes never did. If the estimator is also forgiven the dotted pulse (×4/3, ×3/4, ×3/2 and ×2/3), the Suno and ElevenLabs lanes land at 8 or 9 of 10, Lyria at 10 of 10, and YuE2-3B at 7 of 15. We trust key more than tempo in this paper and recommend the reader do the same.

Fortunately YuE2-3B tells us which tempo it intended. Asked for 80, its plans ranged from 64 to 132 and landed within three BPM of the request twice in fifteen. At faster tempos it was much better: in Shootout II its planned tempo was within two BPM of the request in four genres of five. The exception was the tavern, which asked for 120 and was planned at 92. We suspect the model does not believe anyone wants 80 BPM. In a number of game studios, it would be right.

4.3The model follows its own plan

Observation 1.In every render, the key of YuE2-3B’s audio matches the key written in its plan: 20 of 20. Its tempo matches the plan’s in 14 of 20 by the standard measure, and in 19 of 20 if the estimator is forgiven its dotted pulse. The twentieth is the ambient cue, which has no pulse to forgive.

Corollary.The problem is the plan. ∎

Plan tempo against measured tempo, YuE2-3B Twenty points, one per render. All but one sit on one of three lines: the measured tempo equals the plan's, four thirds of it, or twice it. The exception is the ambient cue. 60801001201406080100120140160180tempo in the plan · BPMtempo measured in the audio · BPM×1 · the beat×4/3 · a dotted pulse×2 · double timecinematic suite, take 1: plan 69, audio 136.0 (×1.97)cinematic suite, take 2: plan 126, audio 129.2 (×1.03)cinematic suite, take 3: plan 64, audio 129.2 (×2.02)combat heavy, take 1: plan 120, audio 117.5 (×0.98)combat heavy, take 2: plan 132, audio 129.2 (×0.98)combat heavy, take 3: plan 84, audio 172.3 (×2.05)combat light, take 1: plan 86, audio 112.3 (×1.31)combat light, take 2: plan 82, audio 161.5 (×1.97)combat light, take 3: plan 72, audio 143.6 (×1.99)exploration, take 1: plan 95, audio 123.0 (×1.29)exploration, take 2: plan 86, audio 117.5 (×1.37)exploration, take 3: plan 90, audio 123.0 (×1.37)stealth, take 1: plan 80, audio 107.7 (×1.35)stealth, take 2: plan 90, audio 92.3 (×1.03)stealth, take 3: plan 120, audio 117.5 (×0.98)ambient: plan 91, audio 172.3 (×1.89)ambient · no pulse to forgivecredits: plan 124, audio 123.0 (×0.99)funk: plan 105, audio 103.4 (×0.98)orchestral: plan 140, audio 143.6 (×1.03)tavern: plan 92, audio 92.3 (×1.00)Shootout IShootout II Plan tempo against measured tempo, YuE2-3BTwenty points, one per render. All but one sit on one of three lines: the measured tempo equals the plan's, four thirds of it, or twice it. The exception is the ambient cue.60801001201406080100120140160180tempo in the plan · BPMmeasured in the audio · BPM×1 beat×4/3 dotted×2 doubleambient · no pulseShootout IShootout II
Figure 4. The audio follows the plan. Each point is one YuE2-3B render: the tempo it wrote down against the tempo we measured. Every point but one lies on one of three lines, the beat, a dotted pulse, or double time, which are the three ways a tempo estimator can be right about a piece. The exception is the ambient cue, which has no beat to be right about. Key agrees in all twenty.

This is the central result of the paper, and it reframes everything before it. YuE2-3B is not bad at following instructions. It is excellent at following instructions. The instructions are simply its own. Somewhere between the prompt and the plan, D minor becomes D-sharp minor, 6/8 becomes 2/4, and 80 becomes 132. From the plan onward, the model does exactly what it wrote down. In the one case where a plan was shorter than the requested length, the render stopped early too.

For a composer this is the most important property in the study, and no other engine has it. Every other engine in Table 1 is a black box: when it gets the key wrong, the only remedy is to ask again, which is how one arrives at sixteen thousand clips [1]. YuE2-3B shows its work, in a format a musician can read, before it plays a note. A plan can be argued with. According to its developers it can also be replaced: planning and synthesis are separate steps, and a user may bring their own ABC score [2]. We did not test this. If it works as described, one line changed from K:D#m to K:Dm, adherence stops being a property of the model and starts being a property of the person using it. The renderer has already shown that it will comply.

4.4Meter, and the single bar

Asked for 4/4 at 80 BPM, the model planned 2/4 in seven renders of fifteen. Asked for 6/8, it planned 2/4.66Both have two beats to the bar. In 2/4 each beat divides into two; in 6/8, into three. That is the entire difference between a march and a jig. A jig became a march.

Stranger is what happens after the meter is set. In six plans of twenty, the model inserts exactly one bar of an odd meter, 3/8 in four plans, 5/8 in one and 7/8 in one, and then returns to the original meter for the rest of the song. It never writes two. Four of these bars fall inside the rendered audio, between seven and fifteen seconds in. The orchestral cue, which otherwise hit 140 BPM in D minor exactly, plays its single bar of 7/8 at 0:15 (Section 4.7).

The other two exist only on paper. The exploration plan ends on its bar of 5/8 at 3:34, two minutes after the render stopped, like a sentence finished in another room. The tavern’s bar of 3/8 falls at 1:19. The render stopped at 1:00, just after the held G that ends the first chorus, so that bar has never been played, and neither has the second verse, which begins The bard knows one song and this is it. The bard, it turns out, knows one verse. Listing 1 plays the whole plan, including the parts that were never rendered.

plan.abc · tavern · M:2/4 · Q:1/4=92 · K:Gm
requested: 6/8, 120 BPM, D major · 79 bars · 1:42

Press play to hear the plan, including the forty-two seconds that were never rendered.

The plan as written · ABC source
X:1
T:
M:2/4
L:1/32
Q:1/4=92
V: Vocal clef=treble name="Vocal Melody" snm="Vocal"
V: Ins clef=treble name="Ins Melody" snm="Inst."
K:Gm
% intro
V: Vocal
Z2|"Gm"z16|"Gm"z16|
V: Ins
Z|z12g2a2|b2a2g2f2g2d2d2c2|d2f2f2d2c2B2B2A2|
V: Vocal
"Gm"z16|"Gm"z16|"Gm"z16|"Gm"z16|
V: Ins
B2A2B2c2d2e2d2c2|d8z4g2a2|b2a2g2f2g2d2d2c2|d2f2f2d2c2B2B2A2|
V: Vocal
"Gm"z16|"Gm"z16|"Gm"z16|"Gm"z16|
V: Ins
B2A2B2c2d2e2d2c2|d12g2a2|b4g4g4d4|d4f4f4B4|
V: Vocal
"Eb"z8"F"z8|"Gm"z16|"Gm"z16|"Gm"z16|
V: Ins
B4d4c4A4|G12g2a2|b4g4g4d4|d4f4f4B4|
V: Vocal
"Eb"z8"F"z8|"Gm"z12D4|
V: Ins
B4d4c4A4|G12z4|
% verse
V: Vocal
"Gm"G8G4A4|"Gm"B8z4d4|"F"c8A8|"Gm"G8G4A4|
V: Ins
Z4|
V: Vocal
"Eb"B8G8|"Bb"F8D6D2|"F"C8F8|"Gm"D8z4D4|
V: Ins
Z4|
V: Vocal
"Gm"G8A8|"Gm"B12d4|"F"c8A8|"Gm"G8z4A4|
V: Ins
Z4|
V: Vocal
"Eb"B8G8|"Bb"F8D6D2|"F"C8F8|"Gm"G16-|
V: Ins
Z4|
V: Vocal
"Gm"G16|
V: Ins
Z|
% chorus
V: Vocal
"Gm"z4d2d2d4B2B2|c4c2d2c4B4|"Eb"B2B2B2B2B4d4|c4B2A2G4z4|
V: Ins
Z4|
V: Vocal
"Gm"z4d2d2d4B2B2|c4c2d2c4B2A2|"Eb"B4B4B4d4|c4B4A4F4|
V: Ins
Z4|
V: Vocal
"Gm"G16-|"Gm"G16|"Gm"z16|"Gm"z16|
V: Ins
Z2|G8G8|G8G4G2A2|
% interlude
V: Vocal
"Gm"z16|"Gm"z16|"Eb"z8"F"z8|"Gm"z16|
V: Ins
B4G4g4d4|d4f4f4B4|B4d4c4A4|G12G2A2|
V: Vocal
"Gm"z16|"Gm"z16|"Eb"z8"F"z8|"Gm"z12G4|
V: Ins
B4G4g4d4|d4f4f4B4|B4d4c4A4|G12z4|
% verse
V: Vocal
"Gm"G8A8|"Gm"B8d8-|"Gm"d16-|"Gm"d8z4B4|
V: Ins
Z4|
V: Vocal
"F"c16|"F"A16|
V: Ins
Z2|
V: Vocal
M:3/8
"Gm"G12|
V: Ins
M:3/8
Z|
V: Vocal
M:2/4
"Gm"z12A4|"Eb"B16|"Eb"G16|"Bb"F8z8|
V: Ins
M:2/4
Z4|
V: Vocal
"Bb"z4D4D4D4|"F"C16-|"F"C8z8|"F"F16|
V: Ins
Z4|
% interlude
V: Vocal
"Gm"G16-|"Gm"G16-|"Gm"G16-|"Gm"G16|
V: Ins
Z4|
V: Vocal
"Gm"z16|"Gm"z16|"Gm"z16|"Gm"z16|
V: Ins
G4z2G2G2z2G2z2|G2z4G2G2z2G2z2|G4z2G2G2z2G2z2|G4z12|
V: Vocal
"Gm"z16|
V: Ins
Z|
Listing 1. The plan YuE2-3B wrote for the tavern song, reproduced as written: 79 bars, two voices, G minor, 2/4 at 92 BPM, against a request for 6/8 at 120 in D major. The two annotations are ours. Playback is by a piano, which is not what the model intended and is closer to what the author would have. The render stopped where marked; everything after it, including the second verse and the bar of 3/8, is heard here for the first time.

4.5“Instrumental, no vocals”

Every prompt in Shootout I said instrumental, no vocals. Every plan contained a voice named Vocal Melody anyway. With the lyrics field left empty, that voice was given notes to sing in ten plans of ten: 191 on average, and 486 in one heavy-combat cue that was, on any reading of the prompt, not supposed to have a singer (Table 5).

The model appears to believe, at a structural level, that all music has a vocalist. It is not wrong about most music.

The workaround was found by accident. Filling the lyrics field with section tags and no words reduced the vocal melody to zero notes in four plans of five. Along the way we found that ChorusPop translates the tag [instrumental] into the tag [Bridge] before the model sees it. Its documentation lists four section tags, and [instrumental] is not one of them. A bridge is, traditionally, the part of a song where something new is said. The model was asked, in effect, to say something new with no words, and it mostly complied.

Table 5. Notes in the Vocal Melody voice of each plan, by what was in the lyrics field. Every prompt in the first three rows asked for an instrumental.
Lyrics fieldPlansWith a vocal melodyMean notesMost notes
EmptyShootout I, takes 1–21010191486
Section tags, no wordsShootout I, take 351315
[instrumental], fed as [Bridge]Shootout II3297260
LyricsShootout II, tavern and credits22104104

4.6Speed, cost, and the eighth engine

YuE2-3B rendered a minute of audio in five to eight minutes on an Apple M4 at 4-bit precision, a real-time factor of about six,

RTF=TgenTaudio≈370 s60 s≈6.2, (5)

and was slower still on the 90-second cues of Shootout I, at roughly fifteen minutes each. The cloud engines returned a minute of audio in ten to thirty-six seconds, and Suno returns two clips per request (Figure 5). By this measure YuE2-3B is thirteen times slower than Suno and eighteen times slower than ElevenLabs. The model itself is not slow. On an RTX 4090, without quantization, its developers report a 3.6-minute song in 71 seconds, three times faster than real time [2]. On the laptop, at four bits, it ran about nineteen times slower than that, which is the price of criterion (ii). It is also the only engine in the study that costs nothing, needs no account, and would work on an airplane. These are not small things. Neither is waiting fifteen minutes to learn that the key is D-sharp minor.

Time to render one minute of audio On a logarithmic scale: YuE2-3B about six minutes per minute of audio, Suno V6 about half a minute, ElevenLabs about twenty seconds, and ACE-Step never. 10 s30 s1 min2 min5 min10 min20 minreal timeYuE2-3B: mean 370 s to render one minute; range 320–463 sYuE2-3Blocal · M4 · 4-bit6.16× real timeSuno V6: mean 28 s to render one minute; range 21–36 sSuno V6cloud · two clips per request0.46× real timeElevenLabs Music: mean 20 s to render one minute; range 10–36 sElevenLabs Musiccloud0.33× real timeACE-Step 1.5 XLshared GPU · free tierTry again in 23:48:02 Time to render one minute of audioOn a logarithmic scale: YuE2-3B about six minutes per minute of audio, Suno V6 about half a minute, ElevenLabs about twenty seconds, and ACE-Step never.× real time10 s1 min5 min20 minreal timeYuE2-3B: mean 370 s to render one minute; range 320–463 sYuE2-3Blocal · M4 · 4-bit6.16×Suno V6: mean 28 s to render one minute; range 21–36 sSuno V6cloud · 2 per request0.46×ElevenLabs Music: mean 20 s to render one minute; range 10–36 sElevenLabs Musiccloud0.33×ACE-Step 1.5 XLtry again in 23:48:02
Figure 5. Time to render one minute of audio, Shootout II, on a log scale. Bars are means and whiskers are ranges across five genres. Suno’s time is per request, and each request returns two clips. ACE-Step’s bar continues for a little under twenty-four hours.

The eighth engine, ACE-Step 1.5 XL, is open and fast and was meant to be the paper’s second open model. To avoid making an account, the author reached it through a free shared GPU, which violates criterion (ii). The first request ran for three and a half minutes and returned GPU task aborted. The next three were refused with the following message, which we reproduce in full because it is the most precise sentence any engine produced in this study:

You have exceeded your ZeroGPU quota (180s requested vs. 0s left). Try again in 23:48:02.

ACE-Step therefore scores zero on every measure, which reflects nothing about the model and everything about the author’s reluctance to make an account. Its name, we note, contains neither a B nor a 3.

4.7Listening

Selected clips follow. Each lists what was asked, what YuE2-3B planned where it planned, and what we measured. Nothing loads until you press play.

The tavern · Shootout II · asked 120 BPM, 6/8, D major

YuE2-3B · a jig, as a march
–:––
planned 92 · 2/4 · G minor  →  measured 92 · G minor
Suno V6 · the right D
–:––
measured 123 · D minor
ElevenLabs Music · correct on both counts
–:––
measured 118 · D major

YuE2-3B on its own · Shootout II

Orchestral · the model at its best
–:––
asked 140 · D minor  →  planned 140 · D minor  →  measured 144 · D minor  
Ambient · the right tempo, a tritone away
–:––
asked 90 · A minor  →  planned 91 · E♭ major  →  measured E♭ major · one minute of an 8:36 plan

Light and heavy combat · Shootout I · asked 80 BPM, 4/4, D minor, instrumental

YuE2-3B, take 1 · D-sharp minor, as written
–:––
planned 86 · 2/4 · D♯ minor  →  measured E♭ minor
Suno V6, same prompt · for comparison
–:––
measured D minor
YuE2-3B, take 2 · asked for no vocals
–:––
planned 132 · D♯ minor  ·  Vocal Melody: 486 notes

YuE2-3B renders were made with YuE2-3B by M-A-P, whose weights are released under CC BY-NC 4.0, and are shared under the same license, unedited, for non-commercial critique. Suno and ElevenLabs renders were generated under the author’s accounts.

5Discussion

Is YuE2-3B a replacement for Suno? Not yet, and not for the job described in [1]. It hit the requested key in three of fifteen slow cues, it sings when asked not to, and it takes long enough per render that a person can make a pour-over and drink most of it.

That verdict sits awkwardly beside the model card. On WildSongBench, a set of 192 song prompts, YuE2, keeping the best of eight renders, posts the highest SongBench average of any model its developers evaluated: 6.96, against 6.87 for Suno V5, 6.56 for Suno V6 and 6.42 for Suno V6 Wild [2]. The findings are not in conflict. SongBench asks whether a song is good. This paper asks whether it is in D minor.

Best of eight also means eight renders to keep one. On the laptop in Section 4.6, eight one-minute renders take about 49 minutes, and even the card’s standard setting keeps the better of two. Every render this paper made is reported, including the ones a selection step would have discarded.

There is also a paperwork problem. YuE2-3B’s weights are released under CC BY-NC 4.0 [2], and ChorusPop stamps the same license on the files it exports. The N and the C stand for non-commercial. The original YuE is listed under Apache 2.0, which permits commercial use; in this one respect, progress has gone the other way. The author’s job consists of writing music that ships inside products people pay for, which is commercial in the most literal sense available. We did not investigate how that license applies to model output, which is a question for a different kind of paper and a different kind of professional. We note only that a replacement for Suno that cannot be used for work is, for the purposes of this paper, a very well-documented hobby.

But the question in the introduction turns out to be the wrong question, and the plan file is why. The job Suno does in the author’s practice is not generation. It is the round trip, source to generation to Pro Tools to generation to Pro Tools, repeated until the thing stops lying [1]. The round trip exists because the commercial engines cannot be corrected, only asked again. YuE2-3B is the first model the author has used that can, in principle, be corrected: it writes a score, and then it plays the score. An open model with an editable plan is not a worse Suno. It is a different instrument, closer to a player piano than to a session musician, and the author has spent eighteen years writing music for systems that play exactly what they are given.

The B3 criterion did not predict quality. It did not predict the opposite either.

6Limitations

7Ethics statement

Open weights are not ethical training. Running a model in one’s own house does not change what it learned from. YuE2-3B’s model card does not describe its training data, and we have not verified where it came from. The promise in [1] is about how a model was trained, not where it runs. This paper therefore does not keep that promise. It only checks on it, and for now the answer is no.

The author broke his own rule against naming living artists in prompts, for the sake of comparison. Three engines refused. They were right.

All YuE2-3B inference ran locally: no prompt, lyric or audio left the house for that engine. The cloud engines are discussed in [1].

The YuE2-3B renders and the plan in Listing 1 are shared under CC BY-NC 4.0, the license of the model’s weights and the one ChorusPop stamps on its exports, with attribution to M-A-P, for non-commercial critique. The audio has not been edited; the plan carries two annotations, marked as ours.

Acknowledgments

The author thanks M-A-P, for releasing the weights and a model that shows its work; Casey Halverson, for ChorusPop, which runs YuE2-3B on a laptop; the M4, which rendered for about four hours without complaint; and the ZeroGPU quota, for its candor. This work received no funding, which is reflected in the sample size.

References

  1. [1]T. Kocher. Sixteen thousand clips and one honest sentence. tedkocher.com, 2026.
  2. [2]M-A-P. YuE2-3B model card. Hugging Face, 2026. huggingface.co/m-a-p/YuE2-3B, accessed 13 October 2026.
  3. [3]L. Hammond. Electrical musical instrument. U.S. Patent 1,956,350, 1934.
  4. [4]R. Yuan et al. YuE: Scaling open foundation models for long-form music generation. arXiv preprint arXiv:2503.08638, 2025.
  5. [5]R. Yuan et al. YuE2: Unifying symbolic and audio music generation at frontier quality. arXiv preprint arXiv:2609.33757, 2026.
  6. [6]C. Walshaw. The abc music standard 2.1. abcnotation.com, 2011.
  7. [7]B. McFee et al. librosa: Audio and music signal analysis in Python. Proceedings of the 14th Python in Science Conference, 2015.
  8. [8]F. Gouyon, A. Klapuri, S. Dixon, M. Alonso, G. Tzanetakis, C. Uhle and P. Cano. An experimental comparison of audio tempo induction algorithms. IEEE Transactions on Audio, Speech, and Language Processing 14(5):1832–1844, 2006.
  9. [9]C. L. Krumhansl and E. J. Kessler. Tracing the dynamic changes in perceived tonal organization in a spatial representation of musical keys. Psychological Review 89(4):334–368, 1982.
  10. [10]C. Raffel et al. mir_eval: A transparent implementation of common MIR metrics. Proceedings of the 15th International Society for Music Information Retrieval Conference, 2014.
  11. [11]J. S. Bach. Das wohltemperirte Clavier, Book I, Prelude and Fugue No. 8 in E-flat minor / D-sharp minor, BWV 853. 1722.

AEvery YuE2-3B render

All twenty renders, with the seed ChorusPop reported, the plan’s header, what we measured, and anything unusual in the plan. The author has not tested whether the seeds reproduce, and suspects the answer is in D-sharp minor.

Table A1. Every YuE2-3B render. Highlighted rows were planned in D-sharp minor. “Agrees” compares the measured key with the plan’s.
#ShootoutCueTakeSeed Plan BPMPlan keyMeterAudio BPMAudio key AgreesVocal notesPlan lengthNotes
1Iexploration150797315595D♯ minor4/4123.0E♭ minor✓2353:57
2Iexploration225545438786E minor4/4117.5E minor✓543:36one bar of 5/8 at 3:34, after the render
3Iexploration361860400890E minor4/4123.0E minor✓03:33section-tag lyrics
4Istealth179897456880E minor2/4107.7E minor✓1634:24
5Istealth277544559990D♯ minor4/492.3E♭ minor✓352:13
6Istealth3681444963120A minor4/4117.5A minor✓01:56section-tag lyrics
7Icombat light167976367286D♯ minor2/4112.3E♭ minor✓1653:58
8Icombat light242219389082D♯ minor2/4161.5E♭ minor✓1513:11
9Icombat light316491998772D♯ minor2/4143.6E♭ minor✓154:29one bar of 3/8 at 0:10; section-tag lyrics
10Icombat heavy1437920893120D♯ minor4/4117.5E♭ minor✓782:22
11Icombat heavy2306529947132D♯ minor4/4129.2E♭ minor✓4865:25
12Icombat heavy397063219884D minor2/4172.3D minor✓01:22one bar of 3/8 at 0:15; section-tag lyrics
13Icinematic suite168211600069D minor2/4136.0D minor✓3073:25
14Icinematic suite2599811403126D minor4/4129.2D minor✓2354:59
15Icinematic suite389647134864E minor2/4129.2E minor✓02:33one bar of 3/8 at 0:07; section-tag lyrics
16IIambient1102728278391E♭ major4/4172.3E♭ major✓08:36fed [Bridge]
17IIorchestral13552691859140D minor4/4143.6D minor✓322:59one bar of 7/8 at 0:15; fed [Bridge]
18IIfunk13445152386105E minor4/4103.4E minor✓2604:02fed [Bridge]
19IItavern156290402892G minor2/492.3G minor✓1031:42one bar of 3/8 at 1:19, after the render
20IIcredits1281627738124A major4/4123.0A major✓1041:50

BPrompts

Shootout I

Every Shootout I prompt is the head, then the world, then one cue paragraph.

Head. 80 BPM, mid-tempo, 4/4, D minor, instrumental, no vocals.

World. Modern hybrid orchestral film score in a modern blockbuster style: orchestra fused with dark synths, no rock drums, no guitars. This is the version ElevenLabs and Lyria received. The YuE2-3B and Suno lanes received the same sentence with a living composer’s name in place of in a modern blockbuster style (Section 3.2).

Exploration. Exploration cue: patient and wondrous, warm evolving synth pads, sub drone, soft string ostinato, sparse solo cello motif, felt piano, gentle orchestral percussion, never climactic.

Stealth / Tension. Stealth tension cue: ticking synth pulse, col legno strings, low processed cello fragments, cold dissonant pads, sub heartbeat, metallic swells, no release.

Light Combat. Light combat cue: driving spiccato string ostinato, pulsing synth bass, taiko and frame drums, darting staccato brass motif, urgent but restrained.

Heavy Combat. Heavy combat cue: pounding taiko and orchestral percussion, braams, heroic low brass theme, saturated synth bass, relentless string ostinato, maximum intensity.

Cinematic Suite. Cinematic suite: intimate solo cello theme grows to French horns, choir and full orchestra with taiko and synth pads at the peak, then resolves quietly.

Shootout II

ambient. 90 BPM, 4/4, A minor, instrumental, no vocals. Modern ambient electronic for open-world exploration: slowly evolving analog synth pads, modular arpeggios, warm sub bass, wide and patient. All percussion is live and human-played: brushed drum kit, hand percussion and frame drum, close and room mics, loose natural timing. No drum machine, no programmed drums.

orchestral. 140 BPM, 4/4, D minor, instrumental, no vocals. Hybrid orchestral action cue for a boss fight: driving spiccato strings, heavy low brass theme, dark synth bass under the orchestra. All percussion is live and human-played: taiko ensemble, orchestral snare drums and timpani recorded in a large hall, real stick attack and dynamics. No drum machine, no programmed drums.

funk. 104 BPM, 4/4, E minor, instrumental, no vocals. Jazz-funk hub and shop theme for a video game: round electric bass, Rhodes electric piano, clavinet, tight horn section stabs, relaxed and friendly. The drums are a live pocket drummer on an acoustic kit with ghost notes, open hi-hat and small human push and pull, dry room sound. No drum machine, no programmed drums.

tavern. 120 BPM, 6/8, D major, with vocals. Fantasy tavern folk song for a video game: fiddle lead, bouzouki, tin whistle, a plain male lead voice and a rowdy group chorus singing together. All percussion is live and human-played: bodhran, hand claps, boot stomps on a wooden floor, one room, no click. No drum machine, no programmed drums.

credits. 126 BPM, 4/4, A major, with vocals. End-credits indie rock anthem for a video game: chiming electric guitars, piano, melodic bass, an earnest lead vocal, a big final chorus. The drums are a live acoustic drum kit played by a human drummer, roomy and dynamic, real cymbals, fills that rush slightly. No drum machine, no programmed drums.

CLyrics

Written by the author for Shootout II. Unlike the keys, intentional.

Tavern · fantasy folk, 6/8

verseThe innkeeper says the stew is fine
It was fine last week and the week before
I sold nine swords to buy one shield
Then left the shield by the cellar door
chorusRaise a cup to the quest we forgot
The map is upside down, we like it a lot
Raise a cup to the rats in the hall
We were sent to clear them and we fed them all
verseThe bard knows one song and this is it
He plays it slow when the fire is lit

Credits · end-credits anthem

verseThe save file says one hundred hours
Most of that was the fishing game
I beat the final boss on Tuesday
He seemed tired, I felt the same
chorusSo roll the names and roll them slow
Everyone who made the snow
Thank you to the testing crew
For every wall that let me through
verseThe menu music plays again
I put the controller down at ten

DHow to cite

@misc{kocher2026b3,
  title        = {A Study in {B3}: Evaluating {YuE2-3B} as a Local
                  Replacement for {Suno}, Across Seven Engines,
                  One Hundred Clips, and One Tavern},
  author       = {Kocher, Ted},
  year         = {2026},
  month        = oct,
  howpublished = {\url{https://tedkocher.com/b3.html}},
  note         = {Preprint. Not peer reviewed. DOI: none.}
}