aboutsummaryrefslogtreecommitdiff
path: root/doc/eef.txt
diff options
context:
space:
mode:
authorsik2018-01-22 19:19:19 -0300
committersik2018-01-22 19:19:19 -0300
commit8fdf49b8e53fd3063ccc2eb51c49c3b6e4d073bb (patch)
treeaddb91518f99d4df76986d3e282e41cd6baf077e /doc/eef.txt
parenta2f67fbe8fe6b27f661e70ce2b6b75c17cd1fe54 (diff)
Echo 1.6 release... kind of a mess, will clean up in further commits I guess
Diffstat (limited to 'doc/eef.txt')
-rw-r--r--doc/eef.txt34
1 files changed, 23 insertions, 11 deletions
diff --git a/doc/eef.txt b/doc/eef.txt
index c3ab92e..57eeb1d 100644
--- a/doc/eef.txt
+++ b/doc/eef.txt
@@ -7,13 +7,25 @@ OVERVIEW
FORMAT
- EEF instruments consist of a list of volume levels. Each byte represents
- a different volume level, and the value ranges from $00 (loudest) to $0F
- (quietest). Each byte represents one tick (i.e. 1/60th of a second).
+ EEF instruments consist of a byte per tick (1/60th of a second). The
+ bottom nibble is the volume level (relative to the note's volume),
+ ranging from $x0 (loudest) to $xF (quietest).
+
+ The upper nibble is a "semitone shift", which is added to the current
+ note's semitone. These can be useful for things like vibrato (e.g. for
+ whistles) and such. The amount the semitone is shifted is as follows:
+
+ $0x ... 0 | $1x ... +1 | $8x ... -1
+ | $2x ... +2 | $9x ... -2
+ | $3x ... +3 | $Ax ... -3
+ | $4x ... +4 | $Bx ... -4
+ | $5x ... +6 | $Cx ... -6
+ | $6x ... +8 | $Dx ... -8
+ | $7x ... +12 | $Ex ... -12
Looping is possible. The start of the loop is marked by a byte with value
$FE, while the end of the loop is marked by a byte with value $FF. There
- must be at least one volume byte between them or Echo will hang.
+ must be at least one tick byte between them or Echo will hang.
To make a non-looping PSG instrument, just put the last volume value
inside the loop.
@@ -22,14 +34,14 @@ FORMAT
NOTES
- Yes, this format was kind of an afterthought. Later I may improve it to
- provide at least some kind of RLE-like compression, but for now you'll
- have to stick with this :P
-
- Also, since PSG instruments are required to use PSG channels and I know
- many of you don't want to mess with them at all, here's a flat PSG
- instrument (i.e. no envelope):
+ Since PSG instruments are required to use PSG channels and I know many of
+ you don't want to mess with them at all, here's a flat PSG instrument
+ (i.e. no envelope):
$FE,$00,$FF
+
+ There's a flavor of the Set Frequency event that doesn't play nice with
+ semitone shifting (in which case it'll just act as if it was always $0x).
+ It will work again once a new note starts or the other flavor is used.
=============================================================================