Irish cream · User manual and technical appendicesGetting started
First listening session
Extract the folder and open Irish-cream.html in a recent browser. The application, repertoire and synthesizer are inside the file. Your computer or phone can remain offline.
1. In Repertoire, choose Dance Music of Ireland · 1001. Search for Salamanca and select The Salamanca reel. Check the title above the staff.
2. Open Tempo and selection in the bottom playback bar. Select Half note, enter 80 and press Apply. The working copy now contains Q:2/4=80. Press Play, then Stop.
3. In Arrangement and voices, enable Countermelodies and Written chord part. Listen to the same bar again. Under Instruments, try a flute for the countermelody and a guitar for the chords.
4. Clear Melody in the playback bar. You can now play the tune yourself over the other parts. Select Melody again to hear the ensemble. The score and notation exports retain the melody in both cases.
Finding your way
Score shows the staves. Workshop opens the melody grid or the structured study. Create generates a dance with explicit settings. Decision tree draws choices using probabilities. All four tabs share the active title. Français / English switches the interface without reloading the page.
Accompanying a jig in 6/8
Count “one two three, four five six”
The two main pulses fall on 1 and 4. Open Bass and chord pattern, choose 6/8 and enter six space-separated cells. Apply pattern creates or enables the Bass and Chords staves. The pattern repeats in each bar of that meter.
| Position | 1 | 2 | 3 | 4 | 5 | 6 |
|---|
| Bass with offbeat chords | B | . | A | B | . | A |
| Held bass, then chord | B | - | A | B | - | A |
| Both on the first beat | X | . | A | B | . | A |
B plays bass, A plays the chord and X (or B+A) plays both. A dot rests. A dash holds the previous cell. In the second example the first bass note lasts two eighth notes. Try B A B A in a four-cell 4/4 bar. Use eight cells for eighth-note placement.
Hear the difference
1. Apply B . A B . A. Clear Melody and press Play. Bass lands on 1 and 4, guitar on 3 and 6.
2. Replace the first B with X, apply and listen again. Bass and chord now attack together on 1.
3. Try another pattern in the same meter. Choose Follow melody rhythm to return to attacks derived from the tune. The harmonic choices remain available.
An opening pickup uses the end of the pattern. A one-eighth pickup in 6/8 therefore starts at the sixth cell. Cells divide each bar into equal lengths. Pattern generation works on a single-voice melody.
Working on a passage and its voices
Select the music to work on
Under Tempo and selection, Entire tune follows repeats. Start at begins with the first occurrence of the selected written bar. Selection plays occurrences of the chosen range in performance order. Numbering includes the pickup. In Workshop, use Select on the grid, then click the first and last passages. The player also offers preset sections.
Write a countermelody
1. Enable Countermelodies. Set the lowest and highest note. C4 is MIDI note 60. If the range contains no suitable chord tone, the voice rests.
2. Add a second countermelody, up to six. Select bars 5–8 and choose Recompose selection on that voice. The other bars and other countermelodies retain their notes.
3. Listen to the secondary voices alone and then with the melody. Pick timbres under Instruments. To use external hardware, find outputs under Sound and MIDI and select a destination. Availability depends on your browser and MIDI permission.
Harmony, copying and edits
Edit chords applies to the selected bar or fragment. Modes and musical ideas compares the written scale with the accompaniment mode; apply it to the tune or passage. In the grid, copy a contour onto a different rhythm or edit the ABC notes. After editing text, press Apply changes.
Drag a ↔ handle horizontally to change a number. Moving the pointer or finger further away vertically makes the adjustment finer. Keyboard input is also available.
Generating a dance from a seed
From theme to copies
In Create, choose jig, reel or hornpipe, then a meter, key and form. A seed is a number that reproduces the result with the same settings. ABAC copies the first block into the third position. ABCB copies the second block into the fourth. Block length and variation settings control how much material is copied and how closely. Open theme before copies lets you compare.
Read the tree from top to bottom
1. In Decision tree, set a seed. Put Reel at 100% to work exclusively on reels.
2. In that branch, assign probabilities to meters, starting notes, modes and structures. Mutually exclusive choices add up to 100%. Harmonic accents, pivots and rests are independent decisions.
3. Set Bars with a triplet to 0% and compose. Keep the seed and raise it to 100%. Compare the attacks and lilt. The control affects bars with a suitable subdivision.
4. Use JSON session to keep the tree for later. To harmonize the result, return to Score or Workshop. The generated piece is now the active tune.
The repertoire contains 12,199 transcriptions, including versions of the same tune. Dance profiles come from the 1,001 Gems to avoid overweighting editorial variants. The structured 32-bar study has its own grid. Whole-tune variation retains the length of the source.
Saving, importing and finding your work
Which file should I use?
| Action | What it keeps |
|---|
| My projects → Save | A copy of the active tune and arrangement in this browser. |
| Export → ABC project | The active tune, source, arrangement settings and any structured study. |
| Export → JSON session | Working tunes, active tune, tab, playback range, ABC draft, creative parameters and decision-tree probabilities. |
| Standard ABC · Harmony | Written voices, with lyrics only when requested. |
| MusicXML / MIDI / PDF | An editable score / a performance / printable pages. |
The My projects shelf belongs to this browser. Export a file before clearing its data or moving to another device. A JSON session refers to the same corpus edition. Reconnect external MIDI equipment manually.
Reopen a session
1. Export your current session first if you want to keep it. Open My projects → Import a project and select the JSON. A session restores its working state. Importing an ABC file adds its tunes to the current repertoire.
2. Check the message below the button for the filename and active tune, or the reason for a failure. You can also load an ABC project through Open ABC files or a ZIP.
3. Browse the full repertoire clears the search, opens the list and displays the first results. Use Next or Previous, or search by title. Click a title to open its score.
Exchange with Harmony Assistant
Start with Standard ABC and leave lyrics unchecked. For an actual song, select Include lyrics in ABC. MusicXML retains written chords as simultaneous pitches and offers an alternative interchange format. Keep a session backup as well.
Technical appendix · From file to sound
Data model and rendering
assembler.py reads the Sources modules, gzipped corpus and guides to produce a self-contained HTML file. To rebuild, run python Sources/assembler.py from the extracted directory. The browser expands corpus.json.gz with fflate. Each entry holds a collection, identifier, title, ABC and alternate titles. Transcriber credits remain in the corpus source.
atelier.js manages book (bundled repertoire), library (working repertoire), active (current entry), settings (arrangement) and arranged (generated notation). activate analyses the source; draw rebuilds the score. abcjs interprets the notation and supplies engraving and playback data.
Rhythm independent of the melody
When settings.motifs is present, voix.js delegates the bas and acc parts to voixDeMotif in accompagnement.js. Each meter has an array, for example {"6/8":["B",".","A","B",".","A"]}. A cell lasts (numerator/denominator)/cell count whole notes. Six cells in 6/8 therefore last an eighth note each. Effective durations, including tuplet scaling, are used to follow the harmony.
A bass or chord spanning several melody notes keeps its duration until the next cell unless a relevant chord change intervenes. Repeat signs remain in the generated parts. Local recomposition can change chord inversions and bass register. The two parts remain independent in the exports.
Playback, muting and synthesis
lecteur.js converts abcjs tracks to MIDI events. The melody filter removes track 0 notes from playback while retaining the other track numbers and instruments. Tiny Synth receives events through JZZ. External MIDI uses the same note selection. Score export reads arranged independently of playback muting.
Technical appendix · Files and verification
Session contract
session.js produces an object with format = irish-cream-session, version = 1 and corpus = ONeill-12199-v1. modifications refers to visited or edited corpus entries by index; ajouts carries imports and generated tunes. courant identifies the active entry. lecture, creatif and arbre store the playback range, generation settings and decision-tree control values in node order. The ecriture draft may differ from committed raw ABC. The JSON contains neither device credentials nor the entire local project shelf.
Notation and interoperability
abcHarmony cleans a copy of arranged. It strips % comments, bibliographic notes and free-text directives. The w: and W: lyric fields are optional. V: voices, barlines, keys, notes and simultaneous pitches in brackets remain in the ABC. An importer can still interpret an annotation or an older ABC dialect differently. To report a discrepancy, retain the ABC project and note the title, bar number and Harmony Assistant version.
exports.js writes score-partwise MusicXML. Notes belonging to a chord share their onset through chord elements. Voices remain separate parts. Some ornaments and ABC-specific layout instructions do not have a conversion.
Short acceptance test
Choose a jig in 6/8; apply B . A B . A; verify two attacks on each accompaniment staff per full bar. Mute the melody and listen. Export MusicXML: the first part should still be present. Save a session, reload the page and import the JSON; compare the tune, playback range and probabilities. Follow a guide reference and return to the workshop with your selection intact.
References
Vincent Lesbros, Atelier Incrémentiel pour la Musique Expérimentale, Université Paris 8, 1995, § 7.8.1, figure 7.40 and the “Irlandais” appendix. Earlier programs: irlandais.html and gavotte-aven.2.5.html (Sources/antecedents). Pivots, copying and variation inform the generator.
O’Neill (MIT) · ABC 2.1 · abcjs · JZZ / Tiny Synth · MusicXML