@DATABASE CS1xEditor
@AUTHOR "AlcoRhythm of The Problem"
@$VER: "CS1x Editor v1.0 by AlcoRhythm of The Problem."
@INDEX Index

@NODE main "CS1x Editor by AlcoRhythm of The Problem"

@{b}@{u}CS1x Editor by AlcoRhythm of The Problem@{uu}@{ub}

Welcome to the CS1x Editor Manual.
CS1x Editor 1.0 by AlcoRhythm of The Problem.

Thanks  already  for  using  this CS1x Editor!  I recommend you not to dive
into  this  manual  right  away.   At  first,  only read the parts that are
highlighted  below.   Then  just start the program and play around with it.
If  anything is fuzzy, go back to the manual.  I don't think you'll need it
a lot.

    @{"   " LINK Why} Why A CS1x Editor?
    @{"   " LINK Short} CS1x Editor In Short
    @{"   " LINK Startup} @{fg shine}Starting The CS1x Editor@{fg text}

    @{"   " LINK System} CS1x System Editor
    @{"   " LINK Edit} CS1x Performance Editor
    @{"   " LINK Menu} The Menus

    @{"   " LINK Load} Loading Files
    @{"   " LINK Save} Saving Files
    @{"   " LINK Receive} Receiving Dumps
    @{"   " LINK Send} Sending Dumps
    @{"   " LINK Request} Requesting Dumps

    @{"   " LINK TroubleShoot} @{fg shine}Startup Troubleshooting@{fg text}
    @{"   " LINK DoDont} @{fg shine}DO's and DON'Ts@{fg text}
    @{"   " LINK Tips} @{fg shine}Tips And Tricks@{fg text}
    @{"   " LINK RTUpdate} @{fg shine}Notes On Real Time Update@{fg text}

    @{"   " LINK Future} Future Plans
    @{"   " LINK Register} Register???
@ENDNODE

@NODE "Who" "Who did it?"
@{b}@{u}Who did it?@{uu}@{ub}

I  am  AlcoRhythm  of  The  Problem  (an  Amiga based music group) from The
Netherlands (party country number one!).  You may know me from earlier days
when  I  was still active in the MODs scene for Amiga.  Nowadays I still do
mods  on  occasion,  but  I  have  moved  on  to  the CS1x and Bars & Pipes
Professional (wow!  what a cool program that is!).

I've created various songs, which are available on the CS1x Archives on the
net.   Also  I  released  a sample editor with full midi support for Sample
Dump  Standard  called  ProDUMP  and  a  small database program for quickly
finding  CS1x  Material  voices  called 'CS1xFind'.  More information about
releases can be found on my homepage.

Once  I got the hang of programming for MIDI I decided to do the impossible
and  create  a CS1x Editor.  With help from Infinity (another member of The
Problem),  I  input  thousands  of  lines of data such as the CS1x Material
Voice  list,  XG Voice list and the CS1x Effect Parameter list.  Then I put
them all together in the CS1x Editor that now has your name on it!

Guilty as charged for creating a full featured CS1x Editor is:

Alco Lammers   (alias AlcoRhythm of The Problem)
Lage Veld 114
7122 ZK AALTEN
The Netherlands
+31 (0)543 475746
alcortm@subway.student.utwente.nl
http://subway.student.utwente.nl
@ENDNODE

@NODE DoDont "CS1x Editor - Do's and Don'ts"

@{b}@{u}CS1x Editor - Do's and Don'ts@{uu}@{ub}

DON'T  change  the  controller numbers using the CS1x System Editor, unless
you know exactly why you are doing it.

DO use the knobs on the CS1x for testing.  Just remember that the values of
the  knobs  CUTOFF  and  RESONANCE are ADDED (by the CS1x) to the values of
Cutoff and Resonance in the Performance Filter Editor.  And that the values
of  the knobs ATTACK and RELEASE are ADDED to the values of Attack Time and
Release  Time  in the Performance AEG Editor.  In short:  the knobs have no
effect  on the performance settings!  See the description of the Filter and
AEG editor for more information.  Note that the value of the knobs is reset
to neutral if you (re)send a performance to the CS1x.

DO use the 'Send Performance' function of the editor.  If you have used the
CS1x's  controls  for  changing  to  another  performance  or  for changing
parameters,  you  should use the 'Send Performance' to bring the CS1x up to
date again.

DO use the 'Request Performance' function of the editor.  In stead of using
'Send   Performance'  to  update  the  CS1x,  you  can  also  use  'Request
Performance' to update the Editor.

DON'T leave the CS1x in Multi mode or Utility mode.  If you need to go into
these  modes,  be sure to go back to performance mode after you're finished
and  before  using  the  editor  again.  This will avoid problems I haven't
bothered  to  think about yet :) You can use the 'Re-Init CS1x' menu-option
to put the CS1x in the correct mode again.

DON'T use screen promotion utilities to permanently promote the CS1x Editor
screen.   You can set the screenmode of the editor internally, although you
may  have  to promote it the first time you run it.  When you quit the CS1x
editor  it will save the screenmode used into the file 'S:CS1xEdit.config'.
The  editor  will  also  store  the last used device number here!  At first
startup, the CS1x Editor will open a 'PAL:High Res' screen, sized 640x256.
@ENDNODE

@NODE Tips "CS1x Editor - Tips And Tricks"

@{b}@{u}CS1x Editor - Tips And Tricks@{uu}@{ub}

@{fg shine}TIP 1:@{fg text}
If  you've  changed  controller  numbers using the CS1x System editor, your
CS1x  will  do  very strange things!  To fix this, quit the CS1x Editor and
restart  it.   This will reset the controllers in the CS1x Editor.  Then go
into  the  CS1x  System editor, and press the bottom cyclegadget repeatedly
until you've seen all the fields (from 'MW' up to 'Foot Switch').  The CS1x
has now received all the default settings again and should act normally.

@{fg shine}TIP 2:@{fg text}
If  you  happen  to  own  a  Multi  Sync  monitor,  try  using  the Euro 72
Productivity  screenmode.   It  suits the Editor perfectly.  Any other high
resolution  screen  sized  640  x 400 will also do nicely.  The editor will
work  fine  with  screens  sized 640 x 200 and bigger.  Bigger screens look
better though.

@{fg shine}TIP 3:@{fg text}
When  editing the FEG (Filter Envelope), increase the resonance level a bit
to make changes more audible.

@{fg shine}TIP 4:@{fg text}
If  you  feel  more  confortable  editing  some  parameters from the CS1x's
control  panel (e.g.  switching the Arpeggiator or Scene modes on and off),
feel  free to do so.  After you have made the change(s), use 'Request Perf'
to bring your changes over to the Editor.

@{fg shine}TIP 5:@{fg text}
When  you  start the CS1x Editor it will attempt to load a bank file called
'default.bank'  from  the  directory from which the editor is started.  You
are free to replace this bank with another bank.  To do this, simply copy a
new  file  over  it,  or save a bank over it from the Editor.  You can even
delete  it,  if  you  don't want to wait for it to load every time.  If the
file  is  not  present,  the editor will startup (faster) with a completely
empty bank.

@{fg shine}TIP 6:@{fg text}
You  can  see  the  CS1x-update  happen in real time.  If you are editing a
parameter  in  the  CS1x Editor, bring the parameter up on the CS1x display
using  it's control panel.  Then edit the parameter from the Editor and you
will see the update happen in real time. Ultimate proof!
@ENDNODE

@NODE RTUpdate "CS1x Editor - Notes On Real Time Update"

@{b}@{u}Notes On Real Time Update@{uu}@{ub}

Every  change  you make in the editor will be sent to the CS1x immediately.
This  happens  in  the form of a (stream of) Sys/Ex message(s).  The Editor
ONLY  uses  Sys/Ex data.  It never sends controllers.

If  you type a number in an integer gadget for example, the value you typed
is sent to the CS1x immedately after you are finished typing.  If you use a
slider,  a  whole  stream  of Sys/Ex data is sent to the CS1x while you are
dragging.   This  offers you a realtime control over every single parameter
in  the CS1x.  You don't even have that kind of control in the CS1x itself!
For instance, you can change every parameter of the Variation Effect, while
you  (or  the  Arpeggiator)  play  notes.   You can hear the effect of each
parameter change in real time.

To  see  this take place with your own eyes, simply bring up a parameter on
the  display  of  the  CS1x  using it's control panel and then use the CS1x
Editor  to  change  that  parameter.   You  will  see that the value in the
display of the CS1x changes while you are using the Editor.

This  real  time  update  goes  for  all  parameters  that  the  Editor can
influence.   This  includes master and system parameters like Master Volume
and  Master  Tune.

Once  you get used to real-time update, you will never want to live without
it again!
@ENDNODE

@NODE "Why" "Why a CS1x Editor?"

@{b}@{u}Why a CS1x Editor?@{uu}@{ub}

As  far  as  I know, there's only one other CS1x Editor for the Amiga.  And
that one didn't really work on my Amiga.  No offence intended, but I didn't
like  the  other  editor  too much, because all sliders were too small, the
windows  didn't  seem  to listen to their close gadget, you had to press an
'Update  CS1x' button to send changes to the CS1x and...  well, you get the
point.   Also,  the  other  CS1x  Editor  is a Demo version, with the nasty
restriction of no saving.  I believe you had to pay something like 40 DM or
more to get the full version, which I think stinks.

That's  why.   I  know this sounds very unfriendly toward the other editor,
but  I  have  to stress that this is only my own opinion.  I'm probably the
only one who sees these problems!

I  want an editor where everything is realtime.  You drag a slider, and the
CS1x  is  updated  immediately.   I want it to be this way for every single
parameter  in  the  CS1x.   I  want  to  receive  Bulk  Dumps as quickly as
technically possible, and I want graphical editors where possible.

That's  why  I  wrote this CS1x Editor.  It's an editor where everything is
updated  realtime  over  Midi,  where  envelopes  can be edited by dragging
points in a graphical display and where Bulk Dumps can be received as quick
as the CS1x can squeeze them out.

My  fingers  are black and blue from typing all the data lists for the CS1x
Voices  and  Effects Parameters, but now that it's finished, I think it was
worth  the effort!
@ENDNODE


@NODE "Short" "CS1x Editor In Short"

@{b}@{u}CS1x Editor In Short@{uu}@{ub}

Amiga  and  CS1x  have  one thing in common:  they are both great machines!
And  they  work  perfectly  together.   Here's  some  of the most important
features of this Editor:

@{fg shine}Features:@{fg text}
 - ALL PARAMETERS ARE UPDATED REALTIME OVER MIDI!
   Dragging a slider, pressing a button or typing a value will cause
   immediate updates to occur in the CS1x for ALL parameters.
 - Easy GUI with all parameters grouped together in logical groups.
 - Graphical editors for cut-off filter, AEG, FEG and PEG.
 - Big buttons and sliders for more precision.
 - Easy selection of voices from a categorised voicelist.
   Each category can be made visible or invisible at any time.
   There are search and sorting options available as well.
 - Layers can be muted for better pre-view listening.
 - You can select voices from the XG Bank, Material Voice Bank, XG SFX Bank
   AND the Demo Bank 'Drum Machine' for use in performances!
 - Fast sending and reception of Bulk Dumps and Performance Dumps.
 - List select for many items.
 - Load and save sys/ex files of Performance or Bulk Dumps.
 - Uses the MIDI library.
 - Easily accessable About requester...
 - Work with any device number, configurable from the editor.
 - Work on any screenmode sized 640x200 or bigger.
 - Edit all parameters of the Variation effect.
 - CS1x-style receive for bulkdump and performance dumps:
   just send it over and CS1x Editor will receive and record.
 - CS1x style edit buffer, so changes will not immediately destroy old
   data.
 - MIDI Thru option.
 - Easy to use.
 - Much, much, much more!

@{fg shine}Requirements:@{fg text}
 - An Amiga with WB2.0 or better.
 - A MIDI interface connected to your Amiga.
 - A CS1x synth connected to your MIDI interface.
 - The midi.library (included).

For technical reasons I was not able to include a CS1x with the program.
Sorry! :-)
@ENDNODE

@NODE Startup "CS1x Editor - Starting The Editor"

@{b}@{u}CS1x Editor - Starting The Editor@{uu}@{ub}

Before  starting the Editor, make sure your CS1x is turned ON and connected
to  your  Amiga  in  the  correct  way.  Make sure that the midi.library is
installed.   Now  doubleclick  the CS1x Editor icon and wait for it to load
up.   After  the  screen  opens,  the  Editor will attempt to load the file
'default.bank'.   While  it is loading, you will see a progress indication.
If  the  file  is  not  available, it is simply not loaded (the file is not
required).

After  loading is finished, the CS1x should be in User Performance Mode, at
user performance number 001.  This performance should be called '--:Empty '
and the 'E' (edit) sign should be visible.  If you play the CS1x, you don't
hear any sound.  This is correct.

At  this  point  the  Editor  is  ready for use, except when something went
wrong.  Here's @{"what to do in case of an error" LINK TroubleShoot}.

Throughout the program, you will always find a list of buttons on the left,
and  a specific editor on the right side of the screen.  The buttons on the
left  bring  up  editors on the right.  Everything works pretty much like a
browser.
@ENDNODE

@NODE TroubleShoot "CS1x Editor - Startup trouble"

@{b}@{u}Startup trouble@{uu}@{ub}

Here  are  some  suggestions for what to do when the editor doesn't startup
normally.

First:

   - Check MIDI connections.
   - Select 'Re-Init CS1x...' from the menu (or press RightAmiga + I).

If  the  CS1x  display  gives  you the message 'Device No Error', press the
'PERFORMANCE'  button  on  the  CS1x  to  clear the error.  Now you need to
change the Device Number setting.  Here are two ways of doing that:

   - Press 'UTILITY' to put the CS1x in Utility mode.
   - Select 'DEVICE NO' and note the device number in the CS1x display.
   - In the CS1x Editor on your Amiga press the 'CS1x System' button.
   - Fill in the correct value for 'Device Number:' so that it matches the
     value in the CS1x display.
   - Press the 'PERFORMANCE' botton on the CS1x again to leave the Utility
     mode.

Or, if you want to do it all from the editor:

   - Press the 'CS1x System' button in the Editor.
   - Grab the 'Device Number' slider with the mouse and drag it slowly
     all the way from the left to the right, so that all values are touched
     at least once. (While you drag the slider, the CS1x will automatically
     be found on one of the device numbers. You can see this happen if you
     put CS1x in Utility mode and select 'DEVICE NO').
   - Now drag the slider to the desired Device Number you want to use 
     (or type it into the integer-gadget next to the slider).

And, after you've finished going through one of the above lists:

   - In the Editor, press the 'Back' buton at the bottom left of the screen.
   - Press 'Send Performance' in the Editor.
   - Check the CS1x display. It should now say '--:Empty   ' and 'E001'

If can't get the CS1x Editor to work, please @{"let me know" LINK Who}!
@ENDNODE

@NODE Edit "CS1x Editor - Performance Editor"

@{b}@{u}Performance Editor@{uu}@{ub}

On the main screen you can find the @{" Performance List Editor " LINK PerfList}.

Select  a  performance from the list and press 'Edit' or 'Edit Performance'
to bring up the performance editor.

On the left you will now find access to the following editors:

@{" Performance    " LINK PerfEdit} Performance General Editor
@{" Effects        " LINK Effects} Performance Effects Editor
@{" Scenes         " LINK Scenes} Performance Scenes Editor
@{" Knobs          " LINK Knobs} Performance Knobs Editor
@{" Arpeggiator    " LINK Arp} Performance Arpeggiator Editor
@{" MW,PB,FC,Porta " LINK Porta} Performance MW/PB/FC/Porta Editor
@{" Layers         " LINK Layers} Performance Layers Editor
@ENDNODE

@NODE Layers "CS1x Editor - Performance Layers Editor"

@{b}@{u}Performance Layers Editor@{uu}@{ub}

From  the  Performance Editor you come to the Layers Editor.  This is where
you can edit the four layers that make up a performance.

On the left of the screen, at the top, you see four buttons (Layer 1, Layer
2,  Layer  3  and  Layer  4)  to switch layers with.  Just press any of the
buttons to switch to the corresponding layer.

Press 'Copy' to copy the currently active layer into the layer copy buffer.
Press 'Paste' to paste the current layer copy buffer to the current layer.

Also, you can find access to the following editors:

@{" General        " LINK GenLayer} Performance Layer General Editor
@{" Velocity       " LINK Velo} Performance Layer Velocity Editor
@{" Effects        " LINK LayerFX} Performance Layer Effects Editor
@{" LFO            " LINK LFO} Performance Layer LFO Editor
@{" Filter         " LINK Filter} Performance Layer Filter Editor
@{" Amplitude Env  " LINK AEG} Performance Layer AEG Editor
@{" Pitch Envelope " LINK PEG} Performance Layer PEG Editor
@{" Filter Env     " LINK FEG} Performance Layer FEG Editor
@ENDNODE

@NODE Menu "CS1x Editor - The Menus

@{b}@{u}CS1x Editor - The Menus@{uu}@{ub}

@{u}Project Menu@{uu}

@{fg shine}New Bank@{fg text}
Clears all performances in the editor.

@{fg shine}New Perf@{fg text}
Clears the current performance. Note that the change will only have a
permanent effect when you press 'Store' afterwards.

@{fg shine}Load Bank@{fg text}
Load a complete performance bank. More info @{"here" LINK Load}.

@{fg shine}Load Performance@{fg text}
Load a single performance as current performance. More info @{"here" LINK Load}.

@{fg shine}Save Bank@{fg text}
Save all performances in the editor as Bulk Dump All file. More info @{"here" LINK Save}.

@{fg shine}Save Performance@{fg text}
Save current performance to a Bulk Dump 1 Perf file. More info @{"here" LINK Save}.

@{fg shine}Send Bank@{fg text}
Sends all performances in the editor to the CS1x. More info @{"here" LINK Send}.

@{fg shine}Send Performance@{fg text}
Sends current performance to the CS1x. More info @{"here" LINK Send}.

@{fg shine}Request Performance@{fg text}
Sends  out  a  request  to  the CS1x to send the current performance to the
Editor.  More info @{"here" LINK Request}.

@{fg shine}About@{fg text}
Display program info and current device number.

@{fg shine}Quit@{fg text}
Euh... Quit.


@{u}Options Menu@{uu}

@{fg shine}Screenmode@{fg text}
Bring  up  a  screenmode requester for you to select a new screenmode from.
The  CS1x  Editor  will remember the last selected screenmode:  it will use
the same screenmode next time you start the program.

@{fg shine}Re-Init CS1x@{fg text}
This will re-do the initialisation of the CS1x as has been done at startup.

@{fg shine}Suspend On/Off@{fg text}
This  will  turn  on  and  off  the  Suspend  mode  of the CS1x Editor.  If
suspended,  the  CS1x  editor  will no longer respond to input and free all
MIDI  resources.   You can use them for something else now.  You might need
this  feature  to run the CS1x Editor in parallel with programs like Bars &
Pipes Professional and Music X. You don't need to suspend the CS1x Editor
if you want to run programs that use the midi.library in parallel.

@{fg shine}MIDI Thru@{fg text}
If  activated, all MIDI data except sys/ex is sent back out.  If you enable
this, you should set your CS1x to LOCAL OFF (and vice versa).

@{fg shine}Mute Layer 1@{fg text}
If activated, layer 1 will not produce sound.

@{fg shine}Mute Layer 2@{fg text}
If activated, layer 2 will not produce sound.

@{fg shine}Mute Layer 3@{fg text}
If activated, layer 3 will not produce sound.

@{fg shine}Mute Layer 4@{fg text}
If activated, layer 4 will not produce sound.

Use the Mute options for testing layers seperately, or in combination with
selected others. Pretty handy.
@ENDNODE

@NODE "PerfList" "CS1x Editor - Performance List Editor"

@{b}@{u}CS1x Editor - Performance List Editor@{uu}@{ub}

In  the  Performance List Editor you can select the performance you wish to
edit.   The  checkboxes on the far right of the screen allow you to turn on
and  off  individual categories.  This way you can reduce the length of the
list for better overview.

@{fg shine}NOTE:@{fg text}
The  category  checkboxes have no effect on performances which don't have a
category  (--)!   These  performances will always be in the list.  The same
goes for the currently selected performance.

To  select  a voice, simply click on it with the mouse.  When you look over
at you CS1x's display, you will see the 'Receiving!' indication.  Each time
you  select  a  performance,  it  is sent to the CS1x's current performance
buffer, so you can immediately test and hear the selected performance.

Use  the  Copy and Paste buttons to copy performances around the list.  You
can also Swap performances or Move them Up and Down the list.

If  you  press  'Edit' you can begin to edit the selected performance.  All
changes you make are recorded in an internal Edit Buffer, so no changes are
made  to  the  selected  performance directly.  When you go back (using the
'Back'  button  at  the  bottom left of the screen) to the Performance List
Editor  you  will  see  the  '(E)' indication after the current performance
name,  just  like  the  'E'  you  see on the CS1x's display when you change
something  there.   This  means that the performance was edited but not yet
stored.   When  you  are  happy  with  the edited performance, simply press
'Store'  to fix the changes and make them permanent.  To cancel the changes
simply  select  another  performance  to edit, or the same performance over
again.   Sounds  complicated?   Just try it out...  It will come naturally!
@ENDNODE


@NODE "PerfEdit" "CS1x Editor - Performance Editor"

@{b}@{u}CS1x Editor - Performance Editor@{uu}@{ub}

In this small editor screen you can edit the Performance category, name and
common  volume.   When  you  type  a new name, it will also change in the
display of your CS1x.  Change the category using the cycle gadget, or press
the List button to select a category from a list.
@ENDNODE


@NODE "Effects" "CS1x Editor - Performance Effects Editor"

@{b}@{u}CS1x Editor - Performance Effects Editor@{uu}@{ub}

In  this  editor  you  can  choose  the  effects  you  wish to use for your
performance.

@{fg shine}Reverb Type:@{fg text}
Select a reverb effect type to use.

@{fg shine}Chorus Type:@{fg text}
Select a chorus effect type to use.

@{fg shine}Vari Type:@{fg text}
Select a variation effect type to use.

For  the  Vari Effect Type you can also edit the parameters for the effect.
Use  the sliders to change the values.  For each variation effect there are
different  parameters  to  edit.  All changes you make are sent to the CS1x
immediately, so you can hear everything change in realtime.
@ENDNODE


@NODE "Scenes" "CS1x Editor - Performance Scenes Editor"

@{b}@{u}CS1x Editor - Performance Scenes Editor@{uu}@{ub}

Here  you  can edit the two scene modes of the CS1x.  Using the sliders you
can  set the knob values for all six knobs in both scenes.  All changes are
sent to the CS1x immediately so you can test everything in realtime.
@ENDNODE


@NODE "Knobs" "CS1x Editor - Performance Knobs Editor"

@{b}@{u}CS1x Editor - Performance Knobs Editor@{uu}@{ub}

Use  this  editor  to  set  the parameters for knob 6 (ASSIGN 2) and knob 3
(ASSIGN 1/DATA).

@{fg shine}Knob 6:@{fg text}
Use the cyclegadgets to browse through the available options, or press list
to  select  a  parameter  from  a list.  With the 'Layer x' gadgets you can
select   for   which   layer  the  parameter  should  be  used.   With  the
'Sensitivity'  sliders  you  can  change the amount of effect the parameter
will have.

@{fg shine}Knob 3:@{fg text}
Select  a  parameter  using  the  Cyclegadget  or  press list to bring up a
selection list.

All changes are sent to the CS1x immediately, so you can test everything in
realtime!
@ENDNODE

@NODE "Arp" "CS1x Editor - Performance Arpeggiator Editor"

@{b}@{u}CS1x Editor - Performance Arpeggiator Editor@{uu}@{ub}

Here  you  can  set  the  various  options  for the arpeggiator.

@{fg shine}Arpeggiator:@{fg text}
Use this cycle gadget to put the arpeggiator in one of three modes:
  - Off   (no arpeggiator)
  - On    (arpeggiator plays while keys are down)
  - Hold  (arpeggiator plays continuously after first key-down)

@{fg shine}Type:@{fg text}
Select  an  arpeggiator type using the 'Type' cycle gadget, or press 'List'
to bring up a selection list.

@{fg shine}Subdivision:@{fg text}
Select the subdivision of a note to use for the arpeggiator.

@{fg shine}Tempo:@{fg text}
Set the tempo in BPM for the Arpeggiator.

@{fg shine}MIDI Tempo:@{fg text}
Activate  the  'MIDI Tempo' to enable synchronisation of the Arpeggiator to
an external MIDI clock. The 'Tempo' setting is then ignored.

@{fg shine}Split:@{fg text}
Turn  the  arpeggiator split on and off.  If on, only the lower two octaves
of the keyboard will trigger the Arpeggiator.
@ENDNODE


@NODE "Porta" "CS1x Editor - MW, PB, FC and Porta"

@{b}@{u}CS1x Editor - MW, PB, FC and Porta@{uu}@{ub}

@{fg shine}MW = Mod Wheel@{fg text}
Edit  the  amount  of  effect  you want the Mod Wheel to have on any of the
following parameters:
 - Filter Control               - open/close the cutoff filter with MW
 - LFO Pitch Modulation Depth   - control the vibrato effect for pitch
 - LFO Filter Modulation Depth  - control the vibrato effect for filter

@{fg shine}PB = Pitch Bend@{fg text}
Edit the range of the pitch bend wheel in number of semitones.

@{fg shine}FC = Foot Controller@{fg text}
Edit  the  amount  of effect you want the Foot Controller to have on any of
the following parameters:
 - Filter Control               - open/close the cutoff filter with FC
 - LFO Filter Modulation Depth  - control the vibrato effect for filter

@{fg shine}Porta = Portamento@{fg text}
Control the Portamento Time and Portamento Switch.
@ENDNODE


@NODE "GenLayer" "CS1x Editor - Performance Layer General Editor"

@{b}@{u}CS1x Editor - Performance Layer General Editor@{uu}@{ub}

Here  you  can edit the general parameters for each of the four performance
layers.   You  can  switch between the layers at any time using the 'Layer'
buttons on the left.

@{fg shine}Voice:@{fg text}
Select a voice to use for this layer using the @{"Voice List" LINK VoiceList}.
You can see "Category: Name and MSB/LSB/Program" here.

@{fg shine}Volume:@{fg text}
Set the volume level for this layer.

@{fg shine}Panning Mode:@{fg text}
 - Normal Panning : Use the panning level set with the 'Panning:' slider.
 - Random Panning : Put each note at a random position in the stereo space.

@{fg shine}Panning:@{fg text}
Control the panning level:
   0 = Center
 -63 = Left
 +63 = Right

@{fg shine}Play Mode:@{fg text}
 - Polyphonic : support multiple sounds to play at once.
 - Monophonic : only one sound can play at any time.

@{fg shine}Note Shift:@{fg text}
Transpose the layer with a number of semitones.

@{fg shine}Note Limit:@{fg text}
 - Low  : Note number beneath which this layer is to produce no sound.
 - High : Mote number above which this layer is to produce no sound.

@{fg shine}Detune:@{fg text}
Detune the layer from the other layers.
@ENDNODE


@NODE "Velo" "CS1x Editor - Performance Layer Velocity Editor"

@{b}@{u}CS1x Editor - Performance Layer Velocity Editor@{uu}@{ub}

Here  you  can  edit  several  parameters  regarding  the keyboard velocity
settings.

@{fg shine}Sensitivity:@{fg text}
 - Level   : How sensitive this layer is to velocity.
 - Offset  : Value to add to the velocity.

@{fg shine}Limit@{fg text}
 - Low     : Velocity depth beneath which this layer will not produce sound.
 - High    : Velocity depth above which this layer will not produce sound.
@ENDNODE


@NODE "LayerFX" "CS1x Editor - Performance Layer Effects Editor"

@{b}@{u}CS1x Editor - Performance Layer Effects Editor@{uu}@{ub}

Here  you can change the Reverb Send, Chorus Send and Variation Send levels
for the current layer.
@ENDNODE


@NODE "LFO" "CS1x Editor - Performance Layer LFO Editor"

@{b}@{u}CS1x Editor - Performance Layer LFO Editor@{uu}@{ub}

This is where you can change the LFO (Low Frequency Oscillator) settings of
the current layer.

@{fg shine}Key Sync:@{fg text}
How to respond to key presses.
 --           = Normal.
FreeRun       = Free running oscillator, no response to keypresses.
Retrigger     = Restart oscillator after each keypress.

@{fg shine}Wave:@{fg text}
What type of waveform to use for the oscillation. 
--            = Normal Sine wave.
Saw           = Sawtooth wave.
Tri           = Trianglular wave.
Sample & Hold = Random-like wave.

@{fg shine}Speed:@{fg text}
How fast the oscillator should run.

@{fg shine}AMod Depth:@{fg text}
Amplitude Modulation Depth. How much you want the amplitude to change.

@{fg shine}PMod Depth:@{fg text}
Pitch Modulation Depth. How much you want the pitch to change (vibrato).

@{fg shine}FMod Depth:@{fg text}
Filter Modulation Depth. How much you want the filter to change.
@ENDNODE


@NODE "Filter" "CS1x Editor - Performance Layer Filter Editor"

@{b}@{u}CS1x Editor - Performance Layer Filter Editor@{uu}@{ub}

Here  you  can  edit  the cutoff filter and resonance level for the current
layer.

Use  the  sliders  to change the cutoff and resonance levels.  You will see
that  the graphical representation also changes.  You can also grab hold of
the graphic and drag it around with the mouse!  Ofcourse everything is sent
to  the  CS1x as it happens, so you can hear the effect instantly.  This is
fun to play with...  remember to keep breathing!

@{fg shine}NOTE:@{fg text}
The  parameters  'Cutoff'  and  'Resonance'  of  the  Filter  Editor can be
influenced by the CUTOFF and RESONANCE knobs on the CS1x.  If you enter the
Filter  Editor,  you are advised to put these knobs in the neutral position
(centered).   In  the  Filter  editor  you  are  always editing the neutral
position of the knobs.  The CS1x adds the values of the knobs to the values
you set with the Filter Editor!
@ENDNODE

@NODE "AEG" "CS1x Editor - Performance Layer Amplitude Envelope Generator"

@{b}@{u}CS1x Editor - Performance Layer Amplitude Envelope Generator@{uu}@{ub}

Here you can edit the AEG parameters of the current layer.

Use the sliders to change the various parameters.  Watch the graphic change
to see what you are doing.  You can also drag the editpoints in the graphic
and watch the sliders change.  Just whatever suits you...

@{fg shine}NOTE:@{fg text}
The  parameters  'Attack  Time' and 'Release Time' of the AEG Editor can be
influenced  by  the ATTACK and RELEASE knobs on the CS1x.  If you enter the
AEG  Editor,  you  are  advised  to put these knobs in the neutral position
(centered).   In the AEG editor you are always editing the neutral position
of  the knobs.  The CS1x adds the values of the knobs to the values you set
with the AEG Editor!
@ENDNODE


@NODE "PEG" "CS1x Editor - Performance Layer Pitch Envelope Generator"

@{b}@{u}CS1x Editor - Performance Layer Pitch Envelope Generator@{uu}@{ub}

Here you can edit the PEG parameters of the current layer.

Use the sliders to change the various parameters.  Watch the graphic change
to see what you are doing.  You can also drag the editpoints in the graphic
and watch the sliders change.  You know...  whatever...
@ENDNODE


@NODE "FEG" "CS1x Editor - Performance Layer Filter Envelope Generator"

@{b}@{u}CS1x Editor - Performance Layer Filter Envelope Generator@{uu}@{ub}

Here you can edit the FEG parameters of the current layer.

Use the sliders to change the various parameters.  Watch the graphic change
to see what you are doing.  You can also drag the editpoints in the graphic
and  watch the sliders change.  Or try both at the same time and call me if
you can do it!  :)

TIP:   In  some  occasions it's better to turn up the resonance level a bit
when  editing  the  FEG.   This  way you can hear more clearly what you are
doing.
@ENDNODE


@NODE "System" "CS1x Editor - CS1x System Editor"

@{b}@{u}CS1x Editor - CS1x System Editor@{uu}@{ub}

Use   this  editor  to  change  CS1x  Master  Parameters  and  CS1x  System
Parameters.  Note that some of these parameters are pretty low level, so be
careful!

@{u}CS1x Mater Parameters@{uu}

@{fg shine}Master Volume:@{fg text}
The CS1x Master Volume level.  The effect is the same as using the 'VOLUME'
knob on the CS1x.  Note that changing the Master Volume affects all of your
CS1x...  if you forget to turn up the volume again, your CS1x may go silent
on you semi-permanently!

@{fg shine}Master Tune:@{fg text}
For  editing  the  Master  Tuning  of  the CS1x.  This is the same value as
'MASTER TUNE' in Utility mode of your CS1x.


@{u}CS1x System Parameters@{uu}

@{fg shine}Device Number:@{fg text}
Use  this  to  set  the Device Number used by the CS1x and the CS1x Editor.
Always make sure that the CS1x and the CS1x Editor both use the same device
number!   In  the  Editor a value of '17' corresponds to 'All' in the CS1x.
To  check  the  device  number  settings,  put the CS1x in Utility mode and
select 'DEVICE NO'.  Then drag the slider around a bit and see if the value
on  the  display  of the CS1x matches the value on screen.  Once the device
numbers match, you will see that the CS1x display keeps track of the slider
when you move it!  The default value is 'All'.  If you have trouble setting
the Device Number, see @{"Starting Trouble" LINK TroubleShoot} for more details.

@{fg shine}Velocity Curve:@{fg text}
Choose the type of velocity curve you wish to use.

@{fg shine}Fix Velocity:@{fg text}
If  zero,  this  value  has  no  effect.   Otherwise it will set the 'Fixed
Velocity'  value.  This means that keyboard velocity has no effect, and all
notes will sound at the same level of velocity.

@{fg shine}Transpose:@{fg text}
Set the keyboard transpose level.

@{fg shine}Transmit Channel:@{fg text}
Set the transmit channel for the performance mode.

@{fg shine}Perf. Rcv. Channel:@{fg text}
Set the receive channel for the performance mode.

@{fg shine}Scene Controller:@{fg text}
Select which controller you wish to use to control the scene modes.

@{fg shine}Scene Mode:@{fg text}
Here  you  can  put  the  scene mode in 'Off', 'Scene1', 'Scene2' or 'Scene
Control'.   In  'Scene  Control'  mode  you  can  use  the  selected  Scene
Controller to do transitions between the two scenes.

Finally,  at  the  bottom  of  the  editor,  you  can find a way to set the
controller  numbers  used  for  the ModWheel, Foot Controller, Foot Volume,
Knobs  1  to  6  and Foot Switch.  If you don't know what to do with these,
then just DON'T touch them:  They can mess things up badly!
@ENDNODE

@NODE "VoiceList" "CS1x Editor - Voice List"

@{b}@{u}CS1x Editor - Voice List@{uu}@{ub}

The  Voice  List  is  much like the Performance List Editor.  You have some
more  options  available  though,  because  the  Voice List is a BIG thing!
Select  the  voice  you  want to use from the Voice List by clicking on it.
You  can  de-select  a  voice  by  clicking  on it again.  If you press the
'Accept'  or 'Okay' button, the currently selected voice is accepted as new
voice  for  the layer, if you press 'Back', the selected voice is not used.
Press 'Accept' with no voice selected to turn the layer off.  If you select
a  voice,  you  can instantly hear it in the current layer!  Use the 'Mute'
flags in the menu if you want to hear it more clearly! You can also see the
name of the selected voice in the display of the CS1x(!).

@{fg shine}Category Flags:@{fg text}
With the checkboxes on the right you can turn on and off certain categories
of voices in the voice list.  This will reduce the length of the list which
is pretty handy when you are looking for a specific kind of sound.

@{fg shine}List: (cyclegadget)@{fg text}
With  the  cycle gadget 'List:' you can choose what banks you want to list.
You  can  set  it  to  'All Voices', 'Material', 'XG', 'SFX' or even 'Dance
Machine'  (the  undocumented  Demo Bank of the CS1x).  The list may be VERY
long  if  you  set this gadget to 'All Voices', but you can reduce it using
the available filtering options.  Note the voices in the Dance Machine Demo
Bank  have no registered name in the CS1x, and that you can not access this
bank  in  any  way  from  the  CS1x control panel(s).  Also note that these
voices will not be in the list when the list is set to 'All Voices'!

@{fg shine}Find:@{fg text}
In  this  stringgadget  you  can  enter a string to find in the performance
names.   If you type nothing (empty string), all voices are listed.  If you
enter  a  string,  then only those voices that contain that string in their
name  will  be  listed.   So  if  you  enter  'oo'  then  only  voices like
'VoiceOoh',  'Bassoon',  'Woodblock'  etc.   will  be  in the list.  In the
resulting list you can still filter the categories using the checkboxes.

@{fg shine}Sort By Number@{fg text}
The voicelist is presented in order of appearance, sorted by bank and
program numbers.

@{fg shine}Sort By Name@{fg text}
The voicelist is presented in alphabetical order of voicenames.

@{fg shine}Sort By Category@{fg text}
The  voicelist  is  presented  in  order  of  category.  All categories are
grouped together.  The order within each category is meaningless.

@{fg shine}Okay@{fg text}
Press  this  to  accept the currently selected voice.  You can also use the
'Accept'  button  to  do  this.   Use the 'Back' button to cancel the Voice
List.
@ENDNODE

@NODE "Load" "CS1x Editor - Load File"

@{b}@{u}CS1x Editor - Load File@{uu}@{ub}

@{fg shine}Load Performance:@{fg text}
Loads  a  'single  performance' dump file.  You can create these files with
any  sys/ex  receiving program, or with the CS1x Editor itself.  Simply use
the CS1x's Bulk Dump 1 Perf function to do it.
The  file  is  loaded  into  the editor as the 'Current Performance'.  That
means   that  it  replaces  all  changes  you  have  made  to  the  current
performance.  The newly loaded file will not be stored in the current bank,
until you press the 'Store' button.
The  CS1x  Editor  behaves  the  same as the CS1x when it receives a single
performance  dump:  if you don't store the new performance, it will be lost
when you change program.

@{fg shine}Load Bank:@{fg text}
Loads  a  complete  CS1x  Bulk  dump  file.   This  will  replace  all  the
performances in  the current bank.  The current performance buffer will not
change, so if you were editing a performance, it is not lost when loading a
new bank.  You will ofcourse loose all other performances.
Again,  this  is the same behaviour as the CS1x when it receives a complete
bulk dump.
@ENDNODE

@NODE "Save" "CS1x Editor - Save File"

@{b}@{u}CS1x Editor - Save File@{uu}@{ub}

@{fg shine}Save Performance:@{fg text}
Saves  the  currently  selected  performance to a 'single performance' dump
file.   Note  that  all non-stored changes are also saved to the file.  The
resulting  file  contains  exactly  the  same information as a 'Bulk Dump 1
Perf' from the CS1x.

@{fg shine}Save Bank:@{fg text}
Saves  all  performances  in the current bank to a Bulk Dump All Perf file.
The file will contain (almost) the same info as what the CS1x would send if
you  perform  a  Bulk  Dump  All  Perf.  If the current performance was not
stored  before you saved the bank, the changes made to that performance are
not recorded in the file!  See the resemblence with the CS1x...
@ENDNODE

@NODE "Receive" "CS1x Editor - Receiving Dumps"

@{b}@{u}CS1x Editor - Receiving Dumps@{uu}@{ub}

CS1x Editor behaves just like a CS1x when receiving a Bulk Dump.

@{fg shine}Receive Single Performance:@{fg text}
You can send single performance dumps to the CS1x Editor at any time.  Just
go  to  your  CS1x and choose the performance you want to dump.  Then go to
Utility  mode,  select  Bulk  Dump 1 Perf and press Enter.  The CS1x Editor
will  recognise  the  incoming  data and will put up a 'Receiving!' message
just  like the CS1x does when it receives a dump.  The incoming performance
is  recorded  as  the  'Current  Performance'.  All changes you made to the
current  performance  will  be  lost,  as  they  are  replaced  by  the new
performance.   The  newly  received performance will not be stored into the
bank yet, you first have to press 'Store' to do that.

@{fg shine}Receive Bulk Dump:@{fg text}
This  works  the  same  way:   just  start a Bulk Dump All from your CS1x's
control  panel  and  the CS1x Editor will recognise the incoming data.  The
incoming  performances  are recorded in the performance bank of the Editor.
This  means that all existing performances will be overwritten.  Be sure to
save your bank if you made changes to it that you want to keep.
@ENDNODE

@NODE "Send" "CS1x Editor - Sending Dumps"

@{b}@{u}CS1x Editor - Sending Dumps@{uu}@{ub}

When  you select a performance from the Performance List in the Editor, the
selected  performance  is  sent to the CS1x as a Bulk Dump 1 Perf.  You can
see the 'Receiving!' indication in the CS1x display.

@{fg shine}Sending Single Performance Dump:@{fg text}
You  can  also  manually  (re)send  the current performance by pressing the
'Send  Performance'  button.  CS1x Editor will send the current performance
with all the changes you may have made.  You can regard this function as an
'Update CS1x' function.  Normally you will not need to use it.

@{fg shine}Sending Bulk Dump All:@{fg text}
Press 'Send Bank' to send all 128 performances from the Editor to the CS1x.
Note  that changes made to the current performance are not sent if they are
not stored first!
@ENDNODE

@NODE "Request" "CS1x Editor - Requesting Dumps"

@{b}@{u}CS1x Editor - Requesting Dumps@{uu}@{ub}

When  you  select  'Request  Performance', the CS1x is expected to send the
current performance to the Editor.  You will see the 'Receiving' window pop
up while seven blocks of data are received.

The  dump  is  received  just  as it would when you send a Bulk Dump 1 Perf
manually.   The  dump  is recorded in the current performance buffer, which
means that you have to store it before changing to another performance.

@{fg shine}REMARK@{fg text}
Why  is  there no 'Request Bank' function?  I can almost hear you ask.  The
reason  is  that  requesting  an  entire bank from the CS1x is really slow.
Instead,  you have to start a 'Bulk Dump All' manually from the CS1x.  It's
almost twice as fast.
@ENDNODE

@NODE "Future" "Future Plans"

@{b}@{u}Future Plans@{uu}@{ub}

Depending  on what the reactions to this program are, I am planning to do a
follow  up  of  this  program.  Some parts of it are already in the making.
These are some of the improvements I am planning to do:

 - A(n even) better (looking) GUI
 - Support for reading and writing MIDI files.
 - An XG and Drum Setup Editor for the 12 MultiParts.
 - A built in configurable arpeggiator to play with.
 - More configuration possibilities.
 - Database function with which you can look up the sys/ex and controller
   codes for every single parameter in the CS1x.
 - Midi input support for some editing functions.
 - Add bank editing and managing functions.
 - (your suggestions and ideas go here...)
@ENDNODE

@NODE Register "Register? Eeeeuuhhh...."

@{b}@{u}Register...?@{uu}@{ub}

The  CS1x  Editor is kind of free!  So it's hard for me to get anything out
of  it!  However, if you want to send me anything (anything at all, as long
as  it  doesn't  explode  when  I  open  it),  please feel free to send it.
Especially if it's worth a lot of money!

Seriously  though,  if  you  think  this  CS1x Editor is okay and should be
prolonged,  then  I  need  to know this.  So even if you don't want to send
anything  worth  something,  please do give me a note saying what you think
about  this program!  I can use the support and criticism.  You can imagine
that  typing in ALL CS1x parameters is a LOT of work.  I know, I did it!  I
don't  think  I  feel  like  creating an even bigger program if nobody even
looks in my direction for it!

If  you  send  me  something,  you  can  be sure I will send you the latest
version of the CS1x Editor with your name on it back to you when it exists!
I  will  reply  to  bug-reports by sending you a fixed version (I hope).  I
have not decided yet if the next version will be completely free again...

Send your reactions, bug reports, valuables and loved ones to:

Alco Lammers  (alias AlcoRhythm)
Lage Veld 114
7122 ZK AALTEN
The Netherlands
+31 (0)543 475746
alcortm@subway.student.utwente.nl
 http://subway.student.utwente.nl
@ENDNODE

@NODE Index
@{fg shine}Index@{fg text}

@{u}General@{uu}
  @{"   " LINK main} CS1x Editor by AlcoRhythm of The Problem.
  @{"   " LINK Why} Why a CS1x Editor?.
  @{"   " LINK Short} CS1x Editor In Short.
  @{"   " LINK DoDont} Do's and Don'ts.
  @{"   " LINK Startup} Starting The Editor.
  @{"   " LINK TroubleShoot} Startup Troubleshooting.
  @{"   " LINK Menu} The Menu.

@{u}Performance Edit@{uu}
  @{"   " LINK Edit} Performance Editor.
  @{"   " LINK PerfList} Performance List Editor.
  @{"   " LINK PerfEdit} Performance Editor.
  @{"   " LINK Effects} Performance Effects Editor.
  @{"   " LINK Scenes} Performance Scenes Editor.
  @{"   " LINK Knobs} Performance Knobs Editor.
  @{"   " LINK Arp} Performance Arpeggiator Editor.
  @{"   " LINK Porta} MW, PB, FC and Porta.

@{u}Layer Edit@{uu}
  @{"   " LINK Layers} Performance Layers Editor.
  @{"   " LINK GenLayer} Performance Layer General Editor.
  @{"   " LINK Velo} Performance Layer Velocity Editor.
  @{"   " LINK LayerFX} Performance Layer Effects Editor.
  @{"   " LINK LFO} Performance Layer LFO Editor.
  @{"   " LINK Filter} Performance Layer Filter Editor.
  @{"   " LINK AEG} Performance Layer Amplitude Envelope Generator.
  @{"   " LINK PEG} Performance Layer Pitch Envelope Generator.
  @{"   " LINK FEG} Performance Layer Filter Envelope Generator.

@{u}Other Edit@{uu}
  @{"   " LINK System} CS1x System Editor.
  @{"   " LINK VoiceList} Voice List.

@{u}I/O@{uu}
  @{"   " LINK Load} Load File.
  @{"   " LINK Save} Save File.
  @{"   " LINK Receive} Receiving Dumps.
  @{"   " LINK Send} Sending Dumps.
  @{"   " LINK Request} Requesting Dumps.

@{u}Extra Info@{uu}
  @{"   " LINK Who} Who did it?
  @{"   " LINK RTUpdate} About Real Time Updates.
  @{"   " LINK Future} Future Plans.
  @{"   " LINK Register} Register? Eeeeuuhhh.....
@ENDNODE
