Step 1 of 2
The request
Compose eight-bar C major MIDI miniature with files
Read the full request
Compose an original eight-bar two-voice miniature in C major and deliver an actual Standard MIDI File miniature.mid, a human-readable score.csv and composition.md. No web app, player UI or external libraries. Use 4/4, 120 beats per minute, 480 ticks per quarter, exactly 32 quarter-note beats (15360 ticks), one melody note per beat (32 notes) and one bass note held for each whole bar (8 notes). Melody pitches must be within MIDI 60..79 and use only C-major pitch classes; bass pitches within 36..55 with one note per bar whose pitch class follows C,F,G,C,A,F,G,C (0,5,7,0,9,5,7,0). Melody ends on MIDI 72, adjacent melody pitches differ by at most 7 semitones. Include a tempo event of 500000 microseconds per quarter and 4/4 signature. Put the two voices on distinct MIDI channels and document track organization. CSV columns are voice,start_tick,duration_ticks,pitch,velocity and must agree exactly with MIDI notes. Provide a standard-library-only generator and a verifier that parses the actual binary MIDI independently of the generator's note list, checks every constraint, correctly pairs note-on/off, validates both end-of-track times at 15360 ticks or a documented equivalent single-track duration, and compares against CSV. Record successful verification; explain the musical design without claiming that rule compliance proves aesthetic quality. Do not include contradictory durations: 32 quarter beats at 480 ticks per quarter is 15360 ticks.
The journey
- Read the requestTurned it into a list of things it would have to prove before calling the work done.
- Did the workPlanned the pieces, built them and checked the result as it went.
- Delivered6 files handed over.
The result
- __pycache__/verify_miniature.cpython-311.pyc11.4 KB
- composition.md3.8 KB
- generate_miniature.py2.3 KB
- miniature.mid426 B
- score.csv965 B
- verify_miniature.py5.6 KB