From psto@xs4all.nl Tue Oct  4 10:47:09 1994
Date: 20 Sep 1994 16:02:22 GMT
From: Peter Stone <psto@xs4all.nl>
To: sci-virtual-worlds@nl.net
Newsgroups: sci.virtual-worlds
Subject: EWorks FAQ (Virtual Sequencer)

I'm putting together EWorks FAQ, and send some basic information to the
net. If you have more questions I'd be happy to answer them.

What is EWorks? 

EWorks is a virtual sequencer, and it's the first music language that is
purpose-build to make music on the charts. For instance, there are some
powerful scripts suitable for dance music, and if you handle structured
programming it is relatively easy to write scripts to clone hits
(really!). Programming gets you directly in the song blueprint level, and
the virtual fingers are much more flexible than the physicals ones.

How do you write music with EWorks? 

The basic idea is to create sections and orchestras. Next you send
messages to the instruments, and these scripts tell them how to play.

create score
   all-sections be intro a b chorus bridge a2 b2 chorus chorus end
   intro be i1 i2
   bridge be part1 part2
   end be intro bridge a b2
endcreate

define orchestra
   all-instruments be drums perc synths
   drums be bassd1 bassd2 snare1 snare2 hihato hihatc
   perc be tablas xylophone
   synths be emu matrix6 obmx
enddef

The following script shows how to tell the virtual fingers to play synths
(which are here emu, matrix6, obmx). Note that intro has sections i1 and
i2, and so this message is received by emu, matrix6, obmx which play in
i1 and i2. Got it? This is called 'inheritance' and it's a really neat
feature.

tell fingers of synths
   in sections
      intro play a b c e b a :restart
      bridge play same
endtell

Then you tell more. Each instrument has 5 components, bars, positions (=
chords or scales), fingers, beats and dynamics. The scripts operate on
these. Finally it's time to play it all into a MIDI file. This is done
with play script. Now the virtual sequencer starts crunching and
allocates virtual tracks, and the virtual hands start playing. Then 
it saves the results to a MIDI file. There is not yet internal playback 
capabilities, but they are working on it.

play to file "EWorks"
   all-instruments in all-sections
endplay

What does the 1 million tick resolution mean? 

The virtual sequencer has internal tick resolution about one million
ticks. When it plays to a file, ticks are converted to a lower
resolution. This means that EWorks extends your sequencer's resolution
with the virtual resolution and lets you make polyrhythms not possible
otherwise.

How does EWorks compare to sequencers? 

Comparison makes interesting reading. While sequencers give instant
interaction with keyboard, they are flexibility-restricted what comes to
designing. EWorks by contrast grows into virtual dimension and gives
ascript language that let you roam free.

FEATURES                         EWorks         Sequencers
Hypersections                    unlimited      no
Sections                         unlimited      few
Instruments                      unlimited      limited
Tick resolution                  1 million      3000
Full cloning of hypersections,   YES            NO, only pattern, or 
sections, instruments and                       pattern group copying
components                   
Well-tempered processors         YES            NO, only chromatic
transpose
Fractal generation               YES            NO
Beat manipulation                YES            NO, only quantisation
English-like music language      YES            NO

What sort of languages is it?

Here is a listing of EWorks scripts. SCORE menu: setting, create, design,
define, tell, give, play, clone, take, place, modify, as, sections of,
leftovers, like, bar, total, header. TURBO menu: wave, fractalize, ask,
fibonacci, morph, brownian, white, vmix, quantize, range, modulate,
tofingers, todynamics, topositions, tobeats. TRANS menu: transpose,
reverse, invert, multiply, iterate, scale, mix, exclude, extract,
midpass, midcut, template, pause, beat, calm, common, scratch, randomize,
keep, humanize, variate, chordize, melodize. TONALS menu: tonality,
drums, reposition, maj, min, dim, aug, v, &5, sus2, sus4, 6, 7, maj7, 9,
7#9, 7&9, 7#11, 6-9, (all positions & inversions) + major, melodic-minor,
harmonic-minor, natural-minor, blues1, blues2, lydian, ionian, dorian,
aeolian, locrian, phrygian, mixolydian, pentatonic, pentamajor,
chromatic, whole-tone, (easy to expand). BEATS menu: syncopate, figurate,
condense, flipbeat, staccato, addrest, addup, zonalize, beatspace, tick,
change.

How easy it is to write scripts? 

If you get this far, you will probably handle it. It shouldn't be more
difficult that writing HyperCard scripts. EWorks has a Mozart parser that
checks the scripts. If it finds errors it gives you a check list. As
you have probably heard, some find programming easy, and some don't.
The more you do it the easier it gets. And the more you know music
the better, or is it? Some say it is better not to know music because
then you can break the rules and find new paths. I'd say "turn on,
tune in, write out".

How fast does it compile? 

That depends on your Mac. In general it is from 10 seconds to few
minutes. If you have 10 instruments and a 3 minute song, it is likely
that the compilation takes also 3 minutes. It depends on how much
interrelations the sections have, and how much your scripts use
well-tempered processing.

What is a WTP (well-tempered processor)? 

The virtual fingers play a virtual keyboard. The fingers do not play
directly the keys, but they play in a position. It is the same as in real
life: you never play just notes, but you always play in a position,
whether a scale or a chord. When your hand moves to a new positions your
fingers play different notes. A WTP processes finger patterns, and the
results play in the same key as the original pattern. You can also hook
several WTPs together to get more complex behaviour. The horrors of
chromatic transpose are over. Check out the TRANS menu and the last ones
in TURBO menu that show the predefined WTPs.

Shortly 

EWorks, The Virtual Sequencer, runs on Macintosh with 4MB of RAM; hard
disk drive; System 6.0.5 or later. EWorks is a programmable arpeggiator &
accompaniment software. It supports unlimited number of tracks and
sections, and there's no user style limitations like in hard-wired synths
or software. You write music with simple english-type scripts, that tell
the virtual fingers how to play. The scripts allow full cloning of
sections, instruments and components, so you can take a section a and
clone it to section b making variations as a whole while cloning. There
are also 23 Well-Tempered processors developed by J.S. Bach. That's quite
exiting feature, plus it provides also fractals and morphs. It's
expandable plugging in new modules. SoundEffects add sounds to
compilation. XTC-808 adds sequencer-type scripts for dance and chart
music. Ambient- Expander adds music randomization scripts and new
waveforms.

% An unlimited track virtual sequencer
% A programmable arpeggiator & accompaniment software 
% No user style limitations
% Perfect tick-adjustment on all sequencers 
% Adds high-level script language to any sequencer

To extend this FAQ list send your questions to Innovative Solutions, RR
#1, BOX 70 D-1 RICHMOND, VT 05477 (802) 482-3464, e-mail:
jcrystal@moose.uvm.edu, or psto@xs4all.nl.
