Commands of

        CHAOS MUSIC COMPOSER
        ====================
                     From L.K.Avalon



        GENERAL FUNCTIONS

  These functions works in every windows:

2...0, Q...P, S...;, Z.../  - Music keyboard
TAB  - Move from a window to another one
SHIFT + [left] or [right]  - Select channel (shown on the "equalizer")
CONTROL + [left] or [right]  - Select instrument
CONTROL + [up] or [down]  - Select pitch for the music keyboard (shown under the "equalizer")
CONTROL + ESC  - Quit the composer. To return, type "RUN" in the DOS.
SHIFT + CONTROL + DELETE  - Clear everything!


        WINDOW "INSTR"

  You can select or make instruments for your song there. If there is "!" after number of the instrument, it sounds O.K. only on the first channel. "+" or "-" before the number shows if is the instrument used in the current pattern.

[left] or [right]  - Select number of the instrument

CONTROL + G  - Select a pre-defined instrument:
    [up] or [down]  - Selection
    RETURN  - Confirm
    ESC  - Abort
While selecting, you can play with the current instrument on the music keyboard!

CONTROL + E  - Modify (or make) the instrument:
    [left] or [right]  - Move the cursor
    [up] or [down]  - Set volume
    TAB  - Set the mark for drum
    RETURN  - Confirm
    ESC  - Abort

At the right edge of this window there are four parameters. You can move the cursor there, and type in new values. (hex.)

  - First value does define the drum (marked with TAB).
In the first half of this byte, these values are possible:
  0, 2, 3  - Noise (modes 8, 12, and 4)
  1  - Tone (mode 10)
Second half of the byte is the difference between basic tone and the drum, but values D, E, and F gives allways the same pitch.
    SHIFT + [up] or [down]  - Set "glide" effects there

  - The second value is the mode of sound.
The first half of this byte is "physical" mode - the same as in BASIC's command SOUND.
The second half gives special effects:
  0, 2  - Normal tone
  1  - Vibrato or Apreggio
  3  - Bass tones (only as C3)
 !4  - Interference
 !5, !6  - "Synthesizer" sound
 !7  - 16-bit tones
The modes marked with "!" are possible only on the first channel!

  - The third value gives the difference between basic tone and the final tone in your TV-speaker. The first half of the byte is for normal tone, and the second half is for "second" tone (Apreggio, Interference etc.)

  - And finally the last value is length of the sound after the defined part


        WINDOW "PATTERN"

  There you can type in the tones. The numbers at the begin of every line are the positions in the pattern. (There are max. 3 numbers - number of: 1/4, 1/16, and 1/64 of the pattern.) The begin is at "111".
  If there is "!" after the number of pattern, you can use it only on the first channel. "-" before the number of pattern meens that it is empty.
  First select the instrument, and then "play" the tones on music keyboard!

SPACE  - Clear the position
[left] or [right]  - Select number of the pattern
[up] or [down]  - Move the cursor
CLEAR  - Clear the pattern
INSERT  - Return the pattern after CLEAR. Repeat this in another patterns to copy the whole pattern there!
CONTROL + T  - Mark the begin of source to copy
SHIFT + INSERT  - Copy one line to the position of cursor. Repeat this to copy larger parts in a pattern!
CONTROL + P  - Play the pattern. You'll also hear a metronome.
SHIFT + CONTROL + P  - Play the pattern from begin.


        WINDOW "SONG"

  There you can link patterns to the song. Move the cursor with [left], [right], [up], and [down] keys, and type in numbers of the patterns. The patterns with "!" after the number can be placed only in the first column!

  You can also use some special functions. The parameters (for some of them) must be placed in the second (and third) column of the same line.
    SHIFT + T  - Set a new (local) tempo
    SHIFT + R  - Repeat. The first parameter is number of lines (after this one) to repeat, and the second parameter gives the number of repeats.
    SHIFT + U  - Jump up (relative)
    SHIFT + D  - Jump down (relative)
    SHIFT + J  - Jump to a position
    SHIFT + B  - End of a song (+ jump to begin)
    SHIFT + S  - End of a song (+ stop)
  You can make several songs in one file, you only need to place some of the last two commands between the songs.

CONTROL + T  - Set the tempo

CONTROL + P  - Play the song. While the song is played, you can play on the music keyboard too! (And select channel, instrument, and pitch)

  In the window "song" there are also some I/O functions available:
CONTROL + L  - Load music
CONTROL + S  - Save music
CONTROL + A  - Change the adress, where the song will be in memory
CONTROL + M  - Save the replay-routine. You can enter any adress, where the routine will work, and then the routine will be saved - under the same name as in the last 'Load' or 'Save', but with ".REP".


        REPLAY ROUTINE

  To use music in your own programs, you need to load both *.CMC, and *.REP files into the memory. Both are DOS-loadable files.

  To start the music from BASIC, use:
    USR (replay, song_nr, music_adr)
"replay" is the adress of replay-routine, "song_nr" is the number of the song (first is "1" etc.), and music_adr is the adress, where is the song itself (*.CMC file).
  To stop the music use:
    USR (replay)
Note that it's not possible to start the music twice - you must stop it first!
  How to load the files into memory? An example is in the program DEMO.BAS. (The subroutine BGET in this program gives the adress of loading as the value of function USR.)

  For assembler there are two routines. You only need to insert  JSR REPLAY+6  into (for example) VBI, and then you can use the second routine (at REPLAY+3) to control the sound:
  Play a song: A=$00    X=Number of song (first is 0!)
  Play a song: A=$10    X=Position in the song
  Play a tone: A=$20+number of channel
               X=Pitch  Y=number of instrument
    Set tempo: A=$30    X=tempo
 Stop playing: A=$40
    Interrupt: A=$50
     Continue: A=$60
   Initialize: A=$70    X=music_adr  - low byte
                        Y=music_adr  - high byte
The first action MUST be "Initialize". The difference between "Stop" and "Interrupt" is that after "Interrupt" the sound of instruments will continue.

  Simple example:
        LDX  #MUSADR:L
        LDY  #MUSADR:H
        LDA  #$70
        JSR  REPLAY+3    ;Initialize
        LDX  #0
        TXA
        JSR  REPLAY+3    ;Play the first song
LOOP    LDA  20
L2      CMP  20
        BEQ  L2
        JSR  REPLAY+6    ;Play...
        JMP  LOOP


                        ***


Commands of "DOS 2.5 COMMAND PROCESSOR":

DIR [fnam]  - Disk directory
ERA fnam    - Erase file
REN old_name new_name  - Rename file. If the file "new_name" exist, it'll be erased!!!
CAR  - Go to BASIC (and turn it on if necessary)
BOF  - Turn the BASIC off
MEM  - Show MEMLO and MEMHI values
RUN [adress] - Start program at given adress. If no adress is specified, it'll restart the last started program.

To start a program type its name.


                        ***


Note: In the original manual there is also something about COS, and NCOPY (NameCopy). But with disk version it is not very useful.

Second note: This is NOT a translation of original manual. This is only a list of commands of the Composer. (Some of these commands are missing in the original manual!)


     Jiri  Bernasek
      - BEWESOFT -
    Prague, 93-03-22

