For any composition/arrangement request, read this skill first, then decide which other one to read.
The output of this libraryis not audio, it is an ARR-SPEC(arrangement specification sheet). The audio is generated by the backend; the specification sheet determines what it looks like and how to accept it.
The fundamental stance of this library: AI flavor is not a timbre problem, it isthat no one has made choices. The entire process is a machinethat forces choices to be made。
0. Thirty-second positioning: where should I go
| What you want to do now | Go to |
|---|---|
| Start a song from scratch | §1 Stage table, start from S0. ★ S2a must be read first mc-development then fill in material and form[].development, filling in only according to the schema's field descriptions will write each section as a new scene |
| Already have a brief, need to produce a specification sheet | S1–S4 of §1 (S2 is now split into S2a material and development, S2b harmony) |
| Specification sheet is written, need to generate | S5 of §1 + mc-render-compile |
| Generation came back, something is off | §4 Diagnostic path |
| Don't know which skill a certain problem belongs to | §2 Whole-library boundary table |
| lint fails | §3.2 |
| Need to hand off to lyric writing, mixing, editing, etc. other departments / other people | §5 External interfaces |
| Need to verify: whether the chosen skill is correct, which of two versions is better, whether the backend followed through | §6 Three verification methods |
| Need to blend two styles(rap + Chinese style, city pop + EDM…) | ★ §2.4 |
1. Stage table S0–S7
Each stage has clear deliverables and gates. If the gate is not passed, you may not enter the next stage.
| Stage | What to do | Deliverable | Gate | Primary skill |
|---|---|---|---|---|
| S0 Concept | Turn the brief into "do only one thing" | intent four items |
All four items complete,borrow may not write only the song title |
This skill §3.1 |
| S1 Skeleton | Set key, meter, tempo, form table | meta + form |
Sections connect end to end;may not all be multiples of 8 | mc-form、mc-harmony、mc-arrangement-arch |
| S2a Material and development | Set the theme motif, which section the original statement is in, what each section does with it | material + form[].development |
Read first mc-development then fill in; motif and stated_in are non-empty; every section's development is filled in; sections filled with new are not more than half |
mc-development、mc-melody |
| S2b Melody and harmony | Write the main melody, chord progression, necessary counterpoint | form[].harmony + harmony_letters |
Both notations must be present; at least one section has a non-diatonic chord | mc-melody、mc-harmony、mc-progressions、mc-modulation、mc-counterpoint |
| S3 Instrumentation | Who is present, when they enter and exit, what frequency band they occupy | arrangement all sections |
Energy curvemust have a descent; at least one instrument exits early; at least one subtraction event | mc-arrangement-arch、mc-orchestration、mc-texture-layering、mc-rhythm-section、mc-sound-design |
| S4 Vocal and Mix Intent | How to sing, how to place the soundstage | vocal + mix_intent |
Dynamicsdifferent section by section; chorusvaries with each pass; width takes at least two values | mc-vocal-direction、mc-mix-intent |
| S5 Compilation | spec sheet → inputs for each backend | render.* |
Self-check against the 20 items in §3.0; fix the ones that fail or write down the reason | mc-render-compile、mc-symbolic-score |
| S6 Generation | Run the backend, take multiple versions | Audio | According to backends.yaml 's honors determine which fields can be counted on |
mc-render-compile |
| S7 Acceptance | compute first, then listen | compliance rate + AI-flavor flags | Look at two things separately first: whether the backend complied, and whether the finished product has machine fingerprints; the ears step in after that | mc-ai-tell-audit |
1.1 ★ Three steps whose order must not be skipped
intentIf not aligned, do not writeform—— this is the only hard gate in the entire process- If the 17 items fail, do not compile —— failure means the spec isn't finished, not nitpicking. ★ Self-check item by item per §3.0,do not write a lint script for this
- If the compliance rate fails, do not rework by ear —— change the spec and regenerate first; the ears are the last small step
Item 3 is the easiest to break. "It sounds wrong to me, let me tweak the mix"—— at that moment you go fromspec-drivenback tofeel-driven, and feel-driven output cannot be reproduced, cannot be A/B'd, and cannot accumulate.
1.2 How the ears intervene (after S7)
Listen only after the compliance rate passes, and do it this way:Shuffle A/B → pairwise comparison → listen to the same pair twice to see if the conclusion is stable. Two passes are not extra caution: the auditory system changes its own processing strategy under repeated exposure, and the same sound may yield different conclusions the second time; this kind of judgment is naturally prone to irreproducibility (p0251-p0252). Two inconsistent conclusions = the difference does not exist, don't change it.
If a long time separates the two listens, also guard against the opposite bias: the ears gradually adapt to timbre changes under sustained exposure, and the more you listen the more the two versions seem the same, making it easy to misjudge a real difference as "nonexistent" (p0342).Leave a gap between the two judgments, don't switch back and forth continuously, which guards against both at once.
2. Whole-library boundary table
Every decision has exactly one owner. When unsure, consult this table.
2.1 Look up by question
| Question | Owner |
|---|---|
| What is this song supposed to do | this skill S0 |
| What form to use, how long the sections are | mc-form(music theory) + mc-arrangement-arch(asymmetry and energy) |
| How to write the melody, singability | mc-melody |
| How to choose chords, how to voice them | mc-harmony |
| Look up a ready-made progression | mc-progressions |
| How to modulate | mc-modulation |
| What the rhythm pattern is | mc-rhythm-groove |
| How voices become independent, how to avoid parallels | mc-counterpoint |
| How a motif grows into a section, how a section grows into a song | mc-development(L1); the melody itself is in mc-melody, the paragraph function is in mc-form |
| when instruments enter and exit, the energy curve | mc-arrangement-arch |
| which instrument to use, blended timbres | mc-orchestration |
| how to divide the frequency bands, who competes with whom, foreground/midground/background | mc-texture-layering |
| whether it sounds human, how the bass and kick drum pair up | mc-rhythm-section |
| how to make the synth timbre | mc-sound-design |
| how the vocals sing, how to add harmony | mc-vocal-direction |
| how to place the soundstage, who makes way for whom | mc-mix-intent |
| how this style should be done | mc-style-*(L3) |
| how the spec sheet becomes a prompt | mc-render-compile |
| need to output ABC / MIDI / MusicXML | mc-symbolic-score |
| where the generated stuff looks like AI | mc-ai-tell-audit |
| find a breakdown of a real work | mc-case-studies |
2.2 The six groups of boundaries most easily confused (★ memorize each one)
| A ⇄ B | Boundary |
|---|---|
mc-form ⇄ mc-arrangement-arch |
form governs what the musical form is (music theory), arrangement-arch governs why this song is cut this way (decision) |
mc-rhythm-groove ⇄ mc-rhythm-section |
groove governs what the rhythm itself is, rhythm-section governs how to play it out like a human |
mc-texture-layering ⇄ mc-mix-intent |
texture's solution is "rewrite" (change register/reduce notes/alternate), mix-intent's solution is "remix" (frequency/sidechain/dynamics). What can be solved by rewriting must not be left to mixing |
mc-orchestration ⇄ mc-sound-design |
orchestration governs real instruments and blending, sound-design governs the design of synthesized timbres |
mc-sound-design ⇄ sound (sound effects, Foley) |
This library's sound-design ismusical timbre; the film/TV sense of "sound design" (sound effects/Foley/space) issoundthis function's business, same name but different thing |
| This library ⇄ lyric writing | Everything about lyrics is lyric writing's business, including lyric-melody alignment (fuwari, jiamari, daoji, xieyin)—that is the lyric process; this library reads the same song's lyrics (meta.upstream.lyrics), for who defines and who reads the shared six fields see §5.1 |
2.4 ★ Style blending: not blending evenly, but signing off dimension by dimension
★ Boundaries are division of labor, not prohibitions. The purpose of isolation is to make every choice have someone signing off on it, not to lock the style down. When writing a J-Pop spec, borrowing a city pop ura chord along the way, or when writing Chinese style the bass goes hip-hop 808—as long as in
style_layers/fusion_noteyou write a line saying why, it is a legitimate blend;slight crosstalk is completely acceptable, what really needs to be guarded against is "no one chose it, it just defaulted to looking like that."
Contamination isolation ≠ prohibition of blending. The difference between the two is only one thing:
Blending is a written-down choice; contamination is no one choosing. A rap + Chinese style song (such as Silence Wang's "Peach Blossom Fan") is completely valid—provided the spec sheet can statewhich dimension belongs to whom。
Method:meta.style_layers fill in a division-of-labor table (schema §1.1.1), one base + several overlay,
for each layer write clearly which owns dimensions it covers:
| Dimension | "Peach Blossom Fan"-style division (illustrative) |
|---|---|
harmony、melody、color_instruments |
Chinese style (pentatonic melody, folk instrument samples as color layer) |
(for the complete division of labor see mc-style-hiphop §8.1) |
|
groove、low_end、vocal_delivery_verse |
hip-hop (groove, 808, verse flow) |
vocal_delivery_chorus、form |
Chinese style chorus singing, structure is still verse-chorus |
★ owns isa closed set, you can only choose from these fourteen:
harmony melody groove low_end fill_policy instrumentation color_instruments timbre arrangement_hook vocal_delivery(can be split into vocal_delivery_verse / vocal_delivery_chorus) form mix. If the thing to be assigned is not in the table, assign it to the closest one, and in fusion_note write a sentence of explanation,do not invent names。
Three rules(self-check for rule 18):
- Each dimension has only one owner—both layers claim
groove= two default values stacked together, and neither was chosen - Each layer owns at least one dimension—otherwise it was merely read and had no effect
fusion_notesay in one sentence why this combination holds—if you cannot say it, it is forced
How to use each L3's transplant table: what overlay brings in is exactly the items marked in its transplant table as "cannot be moved / will be recognized"—
that is the distinctiveness you want. But each item moved in must be signed off in owns , and check whether the base style's transplant table allows giving up that dimension
(for example, city pop's transplant table says "rushed bass can be moved", so when the base is city pop, groove giving it to someone else requires second thoughts).
On routing: a mixed brief shouldread all named L3 skills, and this does not count as contamination; readingnot namedstyles is what does.
2.3 Things not belonging to this package
| Content | Which function it belongs to |
|---|---|
| EQ frequencies, compression ratios, reverb parameters, bus chain, mastering | Sound (mixing, mastering); this package only provides mix_intent this intent |
| Film/TV sound effects, Foley, ambience, spatial design | Sound(recording, sound effects) |
| Score structure that follows the picture, cue sheet, spotting | Scoring(writing music for the picture) |
| Lyric writing, rhyming, imagery, narrative person | Lyric writing。★ Three cases for lyrics: userdid not mention lyrics → may or may not produce them; if produced, note in checks.exemptions that "lyrics did not go through the lyric-writing process"; user explicitly wantspure music / light music / instrumental → do not add a single word, leavevocal blank; userexplicitly wants lyrics → lyrics must be produced; if there are lyrics for the same song (meta.upstream.lyrics), follow them; if not, write according to this library's mc-vocal-direction and record the exemption. When only indicating vocal rhythm (rap flow, chorus syllable count), use placeholder syllables (da-da / la-la) or X marks |
| Commercial process (compe, demo vocals, copyright, revenue split) | Not done |
3. ARR-SPEC: the only handoff artifact of this library
The complete specification is in this skill directory's ARR-SPEC.schema.md(v1.0), blank template ARR-SPEC.template.yaml, backend capability profile backends.yaml。
★ Before writing the spec sheet, Read the template first and fill in according to its field names—in practice, if the agent does not look at the template, it will invent its own fields (intent.scene/borrow、push_pull written as a string).
(These three files are all the "formats" delivered with this library—apart from Reading them, no tools are needed.)
3.1 One thing, four uses
| Use | How to use |
|---|---|
| External handoff | This is the one for mixers, musicians, lyricists, and other departments (§5) |
| AB test subject | Change one field → regenerate → compare.Variables controllable |
| Compilation source | mc-render-compile Compile it into a Suno prompt / YuE input / MIDI |
| Acceptance baseline | Compare what comes back field by field against it, to see how much the backend followed through |
★ The second and fourth are key:Without a spec sheet there is no controllable experiment, and without a controllable experiment you can only rely on feeling.
3.0 ★ The 20-point self-check after writing
This library does not require any tools on the user's machine—no lint, no scripts, no assumption of Python or Node.
After writing the spec sheet, go through the following 20 points one by one yourself, and write the results into checks.self_audit。
★ These are criteria, not iron laws: if a point fails, either change it, or write in one sentence why this song should be this way.
A deviation with a written reason is a legitimate choice;None of them will "block" the later compilation.
★ Do not write scripts just to check (an agent has actually been observed doing this, wasting many rounds)—all 20 points can be judged with your eyes.
| # | Self-check question | Corresponding field |
|---|---|---|
| 1 | intent Are all four items filled in?reference_pair Exactly 2 items and each item states "which point is borrowed"? |
intent |
| 2 | Each section's start_bar end-to-start connected? (previous section start + bars = next section start) |
form |
| 3 | At least one section's bars is not a multiple of 8? |
form[].bars |
| 4 | energy_curve 's key set == form 's id set? (no more, no less) |
energy_curve |
| 5 | Does the energy curve decrease at least once? | energy_curve |
| 6 | subtraction_events ≥ 1? |
subtraction_events |
| 7 | Each instrument has entry; at least one exit is not end? |
roster |
| 8 | arrangement_hook.what non-empty? |
hooks |
| 9 | Does at least one non-Intro/Outro section have an out-of-key chord or modulation marker? | form[].harmony |
| 10 | fill_policy.bars is not an arithmetic sequence with common difference 4? |
groove |
| 11 | push_pull At least one item offset_ms ≠ 0, and each item is a {part, offset_ms, note} dictionary? |
groove |
| 12 | width_map At least two values? |
mix_intent |
| 13 | style_prompt non-empty and without epic/emotional/beautiful;section_tags if manually filled, consistent with form section count and order (derived from form[].name , may be left unfilled)? |
render.suno |
| 14 | Σbars × 每小节拍数 ÷ tempo × 60 and target_duration deviation ≤ 10%? |
meta |
| 15 | When there are vocals, dynamics_by_section at least two values? (skip for instrumental works) |
vocal |
| 16 | When there are vocals, chorus_variation non-empty? (skip for instrumental works) |
vocal |
| 17 | For multiple styles: exactly one base; each dimension has only one owner; each layer has at least one dimension;fusion_note non-empty? |
meta.style_layers |
| 18 | material.motif and stated_in non-empty; each section's development filled in;new no more than half; at least one section repeat or recap; chorus repetitions are not all new? |
material form[].development |
| 19 | Chord spellings all ASCII, suffixes in a closed set (maj7 m7b5 dim, do not write △ ø ° ♭ ♯ ×)? |
form[].harmony_letters harmony |
| 20 | key is "tonic major/minor";mode within the enumeration; section names within the closed set;subtraction_events[].at is {section, bar_offset} Isn't this structure a sentence? |
meta form[].name subtraction_events |
YAML self-check(where agents most often write it wrong):
- List fields (
roster/sound_stage/push_pull/emotional_arc…)- {…}entries belowcannot havenote:keys attached—for comments use same-levelxxx_note:or# - Space after colon; quote values containing colons; indent consistently with two spaces
3.2 What to do if the self-check fails
Failing items usually point to a skill you haven't read, not something to force-fill:
| Failing item | Most likely which skill wasn't read |
|---|---|
| 1 (intent incomplete) | S0 in §1 of this skill—go back and think it through, don't force-fill |
| 2, 3, 14 (sections and duration) | mc-arrangement-arch §4 |
| 4, 5 (energy curve) | mc-arrangement-arch §2 |
| 6 (subtraction events) | mc-arrangement-arch §3 |
| 7 (arrangement entry and exit) | mc-arrangement-arch §5 |
| 8(arrangement_hook) | mc-arrangement-arch §7 |
| 9 (harmonic monotony) | mc-harmony、mc-modulation |
| 10, 11 (fill and groove) | mc-rhythm-section §3、§8 |
| 12 (constant width) | mc-mix-intent §2 |
| 13 (incomplete compilation) | mc-render-compile |
| 15, 16 (vocals) | mc-vocal-direction §1、§4 |
Exemption rules: write into checks.exemptions,must include a reason.
Silently skipping = not finished.
3.3 ★ Default value comparison table for generation backends
Backends drift toward the left column when given no instructions. The corresponding ARR-SPEC fields exist precisely to pull them back.
| Backend default tendency | Counter field | lint |
|---|---|---|
| Sections equal length, all multiples of 8 | form[].bars |
#3 |
| Energy monotonically rising to the end | energy_curve |
#5 |
| Instruments all laid out from the start | roster[].entry |
— |
| All instruments sounding from start to finish | roster[].exit |
#7 |
| Only adding, never subtracting | subtraction_events |
#6 |
| A transition every 4 bars | fill_policy.bars |
#10 |
| All parts strictly aligned to the grid | groove.push_pull |
#11 |
| Vocals at one intensity throughout | vocal.dynamics_by_section |
#15 |
| Chorus copied verbatim each time | vocal.chorus_variation |
#16 |
| Vocal pitch perfectly in tune | vocal.pitch_policy |
Manual item |
| Stereo width constant throughout the track | mix_intent.width_map |
#12 |
| Dynamics flattened | mix_intent.dynamics |
Manual item |
| No non-vocal hook | hooks.arrangement_hook |
#8 |
| Duration always 3:30 | meta.target_duration |
#14 |
4. Diagnostic path: generation comes back wrong
Check in this order, don't jump by intuition.
听着"像 AI"
└─ 先分开两个问题:后端照做了没有(照做率)、成品有没有机器指纹(AI 味旗标)
├─ 照做率低 → 后端没照做
│ ├─ 查 backends.yaml:这个字段该后端 honors 是 none 吗?
│ │ └─ 是 → 不是它的错。换后端(YuE2 控制力最强)或接受
│ └─ 否 → 编译问题,查 mc-render-compile
└─ 照做率高但仍像 AI → 规格本身不够
└─ 走 mc-ai-tell-audit 的清单
4.1 Specific symptom → skill
| Symptom | Check first |
|---|---|
| Flat, no ups and downs | mc-arrangement-arch §2 energy curve |
| Muddy, murky | mc-texture-layering §4 → Check sustained notes first, don't blame the drums first |
| Lead not standing out | mc-texture-layering §3 four depth clues |
| Mechanical, too precise | mc-rhythm-section §2 + mc-vocal-direction §4 |
| Sounds okay but not memorable | mc-arrangement-arch §7 —— arrangement_hook is it empty |
| Second chorus same as the first | mc-arrangement-arch §6 + mc-vocal-direction §1④ |
| Vocals buried in the accompaniment | Check pitch first(mc-vocal-direction §4.1), then check frequency bands |
| Bass disappears on mobile | mc-sound-design §6 difference tones |
| Ending very abrupt / fades out and that's it | mc-arrangement-arch §8 three kinds of endings |
| Technically clean but emotionally wrong | mc-mix-intent §3.1 —— mood Is it not written |
4.2 ★ The two numbers must not be conflated
| What is asked | How it is calculated | |
|---|---|---|
| Compliance rate | How much the backend did according to the spec | Compare field by field against the spec by listening/looking; for the 0–100 reference line see §6.3 |
| AI-flavor flag | Whether the finished product has machine fingerprints | mc-ai-tell-audit checklist, counted independently |
Something with a compliance rate of 100 can be completely full of AI flavor—that means the spec was written like AI. Conversely, a compliance rate of 40 but good-sounding means the backend did well on its own, but younot reproducible。
5. External interface
This library manages the composition and arrangement decisions for one song(key, tempo, sections, harmony, thematic material, who enters and exits when, energy curve, how to sing, what the mix must achieve), and the output is ARR-SPEC. It does not assume who the downstream is or what tools they use; externally it goes only through the spec sheet: the fields handed over, the upstream fields read if present (§5.2),messages(§5.3). How to understand the fields:ARR-SPEC.schema.md §5。
| Function | Not belonging to this library | Handed over |
|---|---|---|
| Lyric writing | How the lyrics are written: rhyme, imagery, narrative person; how the words are set to notes (syllable splitting, extra syllables, inverted tones, co-articulation) | Shared six fields (§5.1);vocal.phrasing/breath_points、hooks.vocal_hook、intent.emotional_arc、form[].melody_register |
| Sound (mixing, mastering) | EQ frequency points, compression ratio, reverb parameters, bus chain, mastering; recording; sound effects and foley in the film/TV sense | mix_intent(write intent only),roster、depth_map、spectrum_budget、subtraction_events、vocal.pitch_policy/stacking;deliverable includes stems when handing over stems |
| Scoring (writing music for picture) | Structure that follows the picture: spotting, cue sheet, which frame to enter from | meta.tempo/tempo_map/target_duration、form[].start_bar/bars、material、hooks.arrangement_hook、energy_curve |
| Editing stage | Placing the music onto the picture: where to cut, shorten, seams | The same time fields as above,subtraction_events、stems |
Shot design reads tempo and section times when playing back to picture; after handing over, any later change must first be written as a message; for pre-commercial licensing see backends.yaml of license(production and on-site). For the convention for converting measures to seconds see schema §5.1.
5.1 The six fields shared with the other side of the song
form[].id / form[].bars / form[].name / meta.tempo / meta.key / vocal.persona. Both sides use the same set of section ids.
- Whoever goes first decides. Music first, lyrics later: this library decides and writes it into its own fields. Lyrics first, music later: read it in as-is from
meta.upstream.lyrics.sharedand use it as a locked item; the word count and sentence patterns of the lyrics in turn constrainform[].bars。 - When going later, do not change these six items. If the lyrics cannot fit into these measures, or cannot be sung at this key or tempo, write a
messages(to: lyrics), stating which item to change and why; once the other party accepts and changes its own spec sheet, this library reads it again. - When there is only music and no lyrics side, these six items are decided by this library itself.
Full rules and original text: schema §5.4.
5.2 Upstream: read if present
meta.upstream.brief/lyrics/picture It does not matter who it comes from: read it if present (the shared six items when lyrics come first and music later are locked items); if absent, follow this library's own analysis—S0 starts from the brief, if there are no lyrics follow the three cases in §2.3, and if there is no picture duration set the duration yourself. Already filled upstream fields are not rewritten; on conflict, write this library's fields truthfully, then write a message to the function it came from.
5.3 messages: how to send and receive
- Receive: Read at S0 kickoff and before every spec change
to: music, hand it to the owner of the field indicated byabout(§2.1); if the spec was changedaccepted, if the spec was not changedrejected,replywrite what was changed or the reason. - Send: e.g.
{from: music, to: sound, about: "mix_intent.dynamics", says: "D 段比 C2 低 6 dB 是唯一的大落差,母带请留住", status: open};totakelyricssoundeditingshot-designwritingproduction。 - Do not wait: if no reply is received, treat it as none;
opendoes not block self-check, does not stop the stage, and is handed over as-is at delivery.
6. Three verification methods
6.1 When choosing skills, check against the boundary table
Before starting, list the skills this song needs to read, and check two things against §2 and each skill's boundary table:
- Whether what should be read was read: every decision to be made in the brief has an owner selected
- Whether what should not be read got mixed in —— especially the L3 style layer,reading one extra style skill that was not named is the easiest way to bring its default values into this song(a named mix does not count, see §2.4)
This is why every skill must have a "Boundary: what is not this skill's responsibility" table—— that table is for looking at when choosing skills, not just for people to read.
6.2 Text-layer AB
Finalize the evaluation table before looking at the results. Change one field → regenerate → blind compare. Look at the results only after finalizing, otherwise you will unconsciously adjust the evaluation criteria toward the one you have already seen.
Before comparing loudness, align the level first, then compare content: as long as the sound is louder, the ear tends to think it is better, and this bias will quietly turn the judgment of "which field had an effect" into "which version is louder" (p0299-p0300). If the loudness or overall density of the two generated versions is not aligned, level these two first before making a paired comparison, otherwise the effect of the field itself will be overshadowed by the loudness difference.
6.3 Calculate first, then listen (compliance rate)
See S7 in §1 and §4.2.
★ Zero-point calibration(reference value, for understanding the magnitude, not a delivery threshold): take a City Pop spec (112 BPM, 10 sections, 114 bars) and compare it with three unrelated, well-produced Chinese-language finished tracks, scoring by weighted fields gives 63–66, so we treat 82 / 70 as the reference line for "well complied / barely", not 60. When comparing field by field, the compliance rate is a judgment after comparison, and does not need to be calculated as a number.
7. Directory map
随包发布(用户拿到的就是这些,全是文本):
skills/<27 个 skill>/SKILL.md, reference.md
skills/mc-workflow/ARR-SPEC.schema.md ★ 规格单定义(v1.0)
skills/mc-workflow/ARR-SPEC.template.yaml 空模板
skills/mc-workflow/backends.yaml ★ 各后端的 honors 声明
skills/mc-workflow/example-*.yaml 填好的示例(citypop / 混合 / 反面样本)
8. Self-check after finishing a song
-
intentThe four items arethought up, not filled in just to pass lint - The 20 items in §3.0 were checked one by one, and reasons were written for any that were not passed
- Every field can statewhich skill's which sectiondecided it
- The generated results were compared field by field, and it is known which items are
honors: nonenot expected in the first place - Ran
mc-ai-tell-audit - The ear islastto intervene, and the A/B conclusion is consistent across two passes
Appendix: Why this library is layered this way
The criterion for splitting libraries/skills is that all four things are different: handoff artifact, judge, corpus, evaluation method. Split by process, not by knowledge domain.
Therefore:
- "Harmony" is aknowledge domain, but it is split into
mc-harmony(when writing) andmc-progressions(when checking)—— because these are two separate processes - "city pop" is astyle, and its drum pattern does not go into
mc-rhythm-section, it goes intomc-style-citypop-rnb—— because "playing like a human" and "playing like city pop" are two separate processes - "Mixing" spans three layers: intent is in
mc-mix-intent, rewriting-type solutions are inmc-texture-layering, parameters are a matter ofmixing——because their judges are different (composition judgment / arrangement judgment / engineering judgment)
Appendix: Sources
- Howard & Angus, Acoustics and Psychoacoustics(Acoustics and Psychoacoustics)——§1.2 Two psychoacoustic bases for listening twice: repeated listening changes the auditory system's processing strategy, and continuous exposure brings about auditory adaptation. Page numbers are from the Chinese translation.
- Roey Izhaki《Mixing Audio》(The Mixing Guide)——§6.2 The loudness bias it warns about: louder versions are easily judged as "better," unrelated to differences in the content itself. Page numbers are from that book. For the bibliographies cited by the other skills in this library, see their respective "Appendix: Sources."