EMU-Script

emu-icon

User Manual

EMU-Script is a programmable MIDI sequencer and music sheet viewer. It proposes an innovative approach to electronic music creation. I hope you will enjoy using it!

1. Installation and Configuration

To install EMU-Script, you just need to copy the EMU-Script.app file into the Mac’s Applications directory (or on your desktop).

1.1 MIDI Setup

EMU-Script will communicate with your MIDI instruments through MIDI ports.

virtual-ports

1. The User Interface

EMU-Script is a document-based application. Upon starting, you will be prompted to either open an existing EMU script document or to create a new one.

Here is the main view of the application after the creation of a new document:

main-view The user interface has four distinct parts:

script-editor The following keyboard shortcuts are available:

2. The Music Sheet

The music sheet is a visual representation of the composition. From left to right, it displays the measures of the compositions. From top to bottom, it displays the following:

music-sheet

2.1 Staffs

A staff has a range of two octaves (+ 2 whole tones). Here are the notes of the C major scale:

c-major-scale

The chromatic notes (sharp notes) have an outlined shape. Here are all the chromatic notes of a 6/8 staff in C major:

chromatic-notes

The color used for the horizontal line of the note is an indicator of the note pitch. The color has a gradient ranging from red (low pitches), orange (mid pitches), and yellow (high pitches). Here is the C major scale of a bass instrument:

c-major-scale-bass

2.2 Drum Staffs

A drum staff has only one line, and it displays the notes as plain text:

drum-staff

2.3 Notes Durations

The duration of a note is proportional to its length on the staff. The shape of the note’s head is also an indicator of its duration. Here is an example showing different note durations (4/4 time signature):

notes-duration

2.4 Intervals and Chords

The notes of an interval or chord are linked using a vertical line, and only the lower note has a horizontal line. Here are some chords in C major:

chords

3. The Script Editor

The script editor is a simple text editor with syntax highlighting and error checking. It implements cut and paste and undo/redo functionalities.

An EMU script has differents sections that describe a composition.

In an EMU script, notes can either be numeric (1 to 7) or alphabetic (A to G). There is a strict equivalence between the two: C=1, D=2, E=3, F=4, G=5, A=6, and B=7.

Here are some of the language’s reserved characters and their meaning:

For a complete description of the scripting language, please refer to the EMU-Script Reference Manual.

4. Examples

Following are a few examples of EMU scripts.

4.1 Ambient Music

[composition]
title: "La brume des Caps"
by: "Sylvain Pearson"
time: 4/4
BPM: 85
transposition: +4 
playlist: intro, A, B, inter, A, B, outro

[instruments]
piano: "piano", octave=3, velocity=80, channel=8
bass: "piano", octave=1, velocity=80, channel=8
flute: "woodwinds", octave=2, velocity=80, channel=7
pad: "brass", octave=2, velocity=80, channel=6
drum: "drum", velocity=80, channel=12

[sequences]
arp: $1 $3 $2 $1  $3 $2 $1 $3
s1: $1 - - - - - - $2
d1: B (. h) h (B h)  
d2: B (o h) h (Bo h)

[intro]
piano: . 1  | . 3 |  . 4 | . | . . 4 2
bass:  6 | 5 | 4 - - 3 | 2/6  
flute: . | . | . | . 4 | -

[A]
piano: s1(1, 2) | s1(3, 5) | s1(4, 3) | s1(4, 2) | 3- - (4 5 6) | 5 7 | 4- - (5 6 7) | 1'
bass: arp(6, 1', 3') | arp(3, 5, 7) | arp(4, 6, 1') | arp(2, 4, 6) | ...
pad: . | . | . | . | 3 | 5 | 6 | 2 4

[B]
piano: 6 | 3 | 4 5 . 4| . 4/6 - (. #5) | '63 | 3 | 4 5 . 4| . 26 - (. 4) | '63 
bass: arp(6, 1', 3') | arp(3, 5, 7) | arp(4, 6, 1') | arp(2, 4, 6) | ...
pad: 3 | 5 | 4 | 2 | 3 6 | 57 | 4 | 2 | 1'
drum: d1 | ...

[inter]
piano: . | . | . | . | 6 | 5 3 | 6 41 | 6 . 4 - | 1 '6 - -  | '7 37 5 - | . 41 - - | 6 5 4 3
bass: . | . | . | .  | . | . | . | . | . '6 - - | . 3 - - | . 4 - - 
flute: arp(63, 1', -) | arp(37, 5, -) | arp(41, 6, -) | arp(26, 4, -) | ...
drum: d2 | ...

[outro]
piano:  arp(6, 1', 3') | arp(3, 5, 7) | arp(4, 6, 1') | arp(2, 4, 6)  | '63
bass:  36 | 5 3 | 6 41 | 6 4 | '63 | . '6 | . '6
pad:  6 | 7 | 1' - - . 
flute:  . | . | . | . | arp(6, 1', 3') | arp(6, 1', 3') | 6 3' 1' 6 - - - -

4.2 Drum and Bass

[composition]
title: "Drum and bass"
by: "Deep Purple"
BPM: 115
time: 4/4
transposition: -2     
playlist: intro,verse

[instruments]
bass:  "bass", channel=11, octave=2, velocity=90
drum: "drum", channel=12, velocity=120

[sequences] 
b1: 6 6 6' - 6 6 6' -  
b2: 6 6 6' - 5' 2' 5 -  
d1: bh h  sh h  bh h  sh h      
d2: bh h  sh h s s (4 4 3 3)
d3: (bh h h h) (sh h h h) (s s s -) (s s s s)

[intro]
drum: i i i i | d3

[verse]
bass: b1 | 6 6 3' 1' - 2' #2' 3' | b2 | - 6 7 1' 6' 3' 2' 1' 
bass: b1 | b1  | 6 6 6' - 5' 2' 5 | 6 3' #2' 2' 1' 6 5 #5
drum: d1 | * | * | * | * | * | * | d2 

bass: b1 | 6 6' 5' 3' 2' 1' 6 5 | b2 | 6 - 6' 5' 3' 2' 1' 2'
bass: b1 | 6 6 2' 3' 5' 6' 2' 3' | b2 | 6 6 6' 5' 3' 2' 1' 6
drum: d1 | * | * | * | * | * | * | d3 | c

4.3 Simple Song

[composition]
title: "Noël Blanc"
by: "Irving Berlin"
BPM: 110
time: 4/4
playlist: A1, B, A2, C

[instruments]
lead: "piano", channel=1, octave=3, velocity=95     
bass: "bass", channel=11, octave=2, velocity=85

[A]
lead: E | F E #D E | F | #F G - - | . A B C' | D' C' B A | G | . . C D | E E 
bass: C G | C - 'B C | D A | #D E - G | F | - | E - F #F | G | C - C' B 

[A1]
text: "Oh | quand j'en_ tends chan_ | ter | No_ ël - - | . J'aime a re_ |voir mes joies d'en_ |fant | . . Le sa_ | pin sin_"

[A2]
text: "Oh | quand j'en tends so_ | nner | au ciel - - | . L'heure où le  | bon vieill_ ard des_ | cend | . . Je re_ | vois tes"

[B]
lead: E A - G | C C | C G - F | E | F E D #C | D | -
text: "ti_ llant -  la | nei_ ge | d'ar_ gent - No_ | ël | mon beau rê_ ve | blanc"
bass: #A | A | #G | G C | #C - - . | . D E F | G 'B

[C]
lead:  E A - G | C' | FC - C D | E E | A- ('B) 'B 'B | C | -
text: "yeux clairs - ma_ | man | . . Et  je | songe à | d'autres - No_ ëls | blancs"
bass: #A | A - G F | #G | G | F G | . C | -

4.4 Guitar Strumming

[composition]
title: "Guitar Strumming"
by: "Sylvain Pearson"
time: 4/4
BPM: 120
transposition: -1
playlist: example

[instruments]
guitar: "guitar", channel=4, octave=3, velocity=60

[sounds]
dw: strum(54321, msec=5, vdec=3)
up: strum(12345, msec=6, vdec=5)

[sequences]
r1: dw/chord(5) - - up/chord(3) dw/chord(5) - - -
r2: up/chord(5) - - dw/chord(3) up/chord(5) - - -
r3: dw/chord(5) - - - - - up/chord(3) -

[example]
guitar: r1 | r2 | r1 | r3 | r1 | r2 | r1 | up/chord(5)
chord: 'min(A) | min(D) | maj(G,D) | maj(C) | maj(F) | 'dim(B) | min(E) | 'min(A)