
                            SCHOENBERG 5
                            
                  An Algorithmic Compositional Program
                          for the Atari ST

           Copyright 1997 - Megastar Synthesiser Collective
                            Version 5.0

         Program written and compiled in GFA Basic Version 3.5
                          by GARETH JONES


     This program is not in the Public Domain and futher distribution is
prohibited. All material on this disk is copyright. It may not be copied or
altered in any way without the permission of the author.

In the SCHOENBERG 5 folder you should find the following files-

  SCHOENB5.PRG - The main program.
  SCHOENB5.TXT - This document.
    MIRROR.NEO - Colour Welcome screen.
    MIRROR.PI3 - Monochrome Welcome screen.
  SB5TITLE.NEO - Colour Title Screen.
  SB5TITLE.PI3 - Monochrome Title Screen.
   THEME15.AVR - Jingle Sample.
       MSC.AVR - Robot Sample.
  SB5TITLE.AVR - Schoenberg 5 sample
           SB5 - Folder containing many example SCHOENBERG 5 files.
           SB3 - Folder containing many example SCHOENBERG 3 files.
           MID - Folder containing several example Standard MIDI files.

     To run this program you will need an Atari ST working in medium (colour)
or high ( monochrome ) resolutions ,and a MIDI synthesiser. Best results will
be obtained if the synthesiser is multi-timbral and can support eight or more
Midi channels. However the program is perfectly happy to work with a smaller
system, even down to a single channel.

     There are four different versions of the SCHOENBERG 5, two for 1/2 Meg
machines, and two for 1 Meg Plus. This is because it was found that when MIDI
equipment attached to the MIDI In socket of the ST, then any MIDI messages
received when SCHOENBERG was replaying samples ( ie during the intro screens
), would freeze the program. So if the user has a MIDI set-up that has
equipment permanently plugged into the "MIDI IN" socket of the ST they can
select the "sampleless" versions of the program. See the section SCHOENBERG 5
INSTALLATION for further details.

     It is recommended that SCHOENBERG 5 should be run from a copied disk with
the write-protect tab in the "write" position.



INSTALLING SCHOENBERG 5
***********************
     There are four versions of SCHOENBERG 5 program which the user can
choose to run. These are;

 1: 1/2 Meg  No Samples  - Suitable for 1/2 Meg machines with MIDI equipment
                           connected to the "MIDI IN" socket of the Atari ST.

 2: 1/2 Meg with Samples - Suitable for 1/2 machnes with "MIDI IN"
                           unconnected.

 3: 1Meg Plus No Samples - Suitable for machines with 1 Meg or larger memory
                           "MIDI equipment connected to the "MIDI IN" socket
                           of the Atari ST.

 4: 1Meg Plus w. Samples - Suitable for machines with 1 Meg or larger memory
                           with "MIDI IN" unconnected.

    The installation process is as follows - set the "Write Protect" tab from
"Protect", to the "Write" position and run the SCHOENB5.PRG. Then select
the version you want to run from the four options. Once this is made, an
"INSTALL.INF" is saved to disk. This will allow the program to automatically
select your chosen version whenever the program is run. Should you want to
change your selected version, then delete the "INSTALL.INF" file and rerun
the program.



ABOUT SCHOENBERG

     SCHOENBERG is an algorithmic serial music composition emulator for the
Atari ST and related computers. This program emulates the serial (twelve-tone)
music composition techniques developed by the Second Veinnese School of
composers, Schoenberg, Berg, and Webern. These techinques are still widely
used by many of today's "serious" composers.

     The composition system is as follows. The twelve notes that make up the
octave are arranged in a fixed order using each note only once. This is called
a TONE or NOTE-ROW. The composition is  then built from repeated appearances
of the tone-row. The row may be used in four ways; forwards, backwards
(retrograde ), upside-down ( inversion ), backwards and upside-down
combined ( inverted retrograde ). The tone-row may also start at any of the
twelve pitches within the row. This gives a total of 48 row variations
from which to compose the piece. In composition more than one note from each
row may be used to form chords.

      With this program the composer enters a tone-row in to the computer
which then automatically calulates all 48 variations and arranges them in to
random order. When the computer plays back the music, it works through all 576
notes of the composition randomly picking out single notes and chords, and
sending them to each of 16 virtual MIDI "players". As well as notes this
program also has cmpositional data rows for note length, and note velocity.
Both these rows undergo the same transformations to make up the finished piece
of music. In the 1 Meg Plus versions the process is repeated 3 times to
produce compostions of 1728 notes length ( in "ECHOES" PLAYBACK modes the
composition are only a quarter of these lengths ).
     Although this program was written for pure twelve-tone music it is
flexible enough to encompose other styles as well.


PROGRAMMABLE PALATTES

    In the tone world that Schoenberg envisaged, all 12 notes of the octave
c, c#, d, etc. would be of equal importance. However in most other musics,
scales and harmony are used, restricting the possible selection of notes and
giving some greater value than others. So in order to extend the "musical"
range of SCHOENBERG 5, a method of restricting the possible pitches, note
lengths, and velocities has to be used. This is achieved with programmable
palattes for the pitch and length-rows, and a choice of preset values for the
velocity row.



                           SCHOENBERG 5  FEATURES
                           **********************
PLAYBACK

    SCHOENBERG 5 offers the user 8 different PLAYBACK modes. These control the
way the pitch, length and velocity is processed and turned into MIDI data when
the "PLAY" button is selected.

  CHORDS :This is Playback method used in the original SCHOENBERG and
          SCHOENBERG 2. The program works through the all the row variations
          in turn to produce a series of chords. The number of notes in
          each chord varies between 1 and the "POLY" value.

INDIVIDUAL:This generates up to 4 ( set by "POLY" ) simultaneous, independant
           musical lines.

    ROWS :In this mode each randomly selected "player" will play all twelve
          notes of each row variation in turn. The number of simultaneous
          "players" is controlled by "POLY"

MULTIPLIER:This is very similar to ROWS except that the lengths of all the
          notes of the row are sometimes doubled or qaudrupled. This is by
          far the most "musical" of the Playback modes.

  RANDOM :As the name suggests, values are picked out at random from the
          generated row variations.

MULTIPLIER2:This the same as MULTIPLIER but with a different ratio of
            different note lengths, in this one doubled and quadrupled note
            lengths are favoured over normal ones.

MULTIPLIER3:As with MULTIPLIER but the ratios of note lengths are 3 and 6
            times the original.

     ECHOES:Produces a quarter length composition on "player" 1 and up to
            3 delayed copies on "players" 2 - 4 respectively. The number of
            delays is controlled by "POLY" and the amount by the appropriate
            "Track Delay" setting on the SYTLE screen.


LINKER AND INVERSIONS

    To futher enhance the musicality of the music output, the "LINKER"
functions can be used. Normally the pitch, length, and velocity data are
independantly created from the random selections from the 48 row variations
( Linker selection = "NONE" ). However if another Linker is selected e.g.
"PITCH-LENGTH" then when a pitch-row variation is selected ,the corresponding
length-row variation is also selected.
    If the original pitch and length-rows were;

         c  d  e  f  g  a  b  C  D  E  F  G
         12 12 24 24 12 12 12 6  6  6  6  12

and the program selects the fourth position retrograde variation for
the pitch-row. Then the program will also select the fourth position
retrograde variation of the length-row, resulting in the following note
sequence.

         D  C  b  a  g  f  e  d  c  G  F  E
         6  6  12 12 12 24 24 12 12 12 6  6

    The effect is to "lock" certain pitches to certain note lengths.

    The "INVERSIONS" options for the three data rows results in the
elimination of the "inverted" and the "inverted retrograde" variations from
the composition. This results in only the original tone-row data being played
either forward or backwards. So no new pitches, note lengths, or velocities
will be generated.


PALATTE SEQUENCER

    New to this version of SCHOENBERG 5 is the Palatte Sequencer. This allows
the user to periodically change any or all of the three palattes during a
composition. In the 1Meg version the composition is split into 8 equal
sections ( 4 in the 1/2 Meg ), each of which can use any combination of the
six programable pitch-palattes, six programable length-palattes, and six
preset velocity-palatte. This allows the user to introduce subtle extra
variations in the music or to generate complete multi-movement compostions.
However it must be remembered that though the palattes might change the
selection and order of notes in thr tone-row remain unchanged. Also to get
maximum effect from this feature the "LINKER" function should be disengaged



                             GUIDE TO FUNCTIONS
                             ******************

DROP-DOWN MENUS

#### LOAD MENU ####

      " .SB2 " - LOAD SCHOENBERG 2. Loads in and converts a .SB2 file created
                 by the SCHOENBERG 2 program.

      " .SB3 " - LOAD SCHOENBERG 3. Loads all SCHOENBERG3 and General MIDI
                 parameters previously saved as a .SB3 file. When loading a
                 .SB3 file into a 1 Meg Plus version of SCHOENBERG 5, the user
                 must re-"COMPOSE" the music data in order to generate the
                 longer music files used.

      " .SB4 " - LOAD SCHOENBERG 4. Available on 1 Meg Plus versions only.
                 Loads all SCHOENBERG4 and General MIDI parameters previously
                 saved as a .SB4 file from the SCHOENBERG 3 program.

      " .SB5 " - LOAD SCHOENBERG 5. Available on 1 Meg Plus versions only.
                 Loads all SCHOENBERG 5 and General MIDI and Sequencer Screen
                 parameters saved as a .SB5 file.

      " .GNF " - LOAD GENERAL MIDI FILE. Loads in a new set of General MIDI
                 parameters ( from any of this or other M.S.C compostional
                 programs ), as displayed on the GENERAL MIDI screen.

      " QUIT " - Return to the Desktop.



#### SAVE MENU ####

     " .SB3 " - SAVE SCHOENBERG 3 file. Saves all music data, composition,
                playback, sequencer data, and General MIDI values as a
                single SCHOENBERG 3 file.

     " .SB5 " - SAVE SCHOENBERG 5 file - 1 Meg Plus versions only. Saves the
                the triple-length music data, compositional, playback, and
                sequencer data with General MIDI data as a single SCHOENBERG 5
                file.

     " .GMF " - SAVE GENERAL MIDI FILE saves to disk, the  complete set of
                General MIDI parameters as displayed on the General MIDI
                screen as single file.

     " .MID " - SAVE MIDIFILE. Converts the SCHOENBERG music data into a
                Standard MIDI file for loading into compatable computers or
                sequencers, for futher editing or composition. The format of
                the file is set by the parameters on the "Midifile" menu.



#### MIDIFILE MENU ####

  " FORMAT 0 or 1 " - Sets the format of the .MID file. Either as a single
                      track - format 0, or 17 track - format 1

 " PPQN 96 to 480 " - Sets the timebase resolution ( Pulses per Quater Note )
                      of the MIDIFILE.

      " G.M.DATA " - When this feature is selected then the General MIDI
                      values, as displayed on the GENERAL MIDI screen, are
                      incorporated at the start of the MIDIfile.

      " G.M.NAME " - If Midifile format 1 is already selected then this
                     parameter is able to incorporate the GM/GS names of the
                     instruments in the saved file.




COMMON PARAMETERS

SEQUENCER :Displays the SEQUENCER screen.

 TONE ROWS:Displays the TONE-ROWS screen.

    STYLE :Displays the STYLE and PLAYBACK screen.

  EDIT GM :Displays the GENERAL MIDI screen.

  COMPOSE :This composes a new piece of music from current data rows. There
           are over 64,000 million possible variations. This can only be used
           once the data-rows have been filled. This function should be used
           every time the data-rows are altered. The 1 Meg Plus versions of
           SCHOENBERG 5 produces compositions 3 times the length of the
           1/2 meg versions.

    PLAY! :Clicking the left mouse button will play back the composition.
           To stop it press any key on the keyboard. Music can only played
           after it has previously been composed !

    TEMPO :( 7 - 120 )
           Sets the playback rate of the composition.

     POLY :( 1 - 4 )
           Fixes the maximum number of notes that can sound at one time.
           Changing this value will alter the music played back.

    CLOCK :( ON - OFF )
           Controls the output of MIDI Clock, Start, and Stop commands. MIDI
           clocks are sent out at the rate of 24 per quater note (crotchet).

     BIAS :( 1 - 5 )
           Controls the degree of randomness in the selection of "players".
           When BIAS is greater than 1 lower numbered "players" are more
           likely to be selected than higher ones.



TONE-ROW SCREEN

     CHAN :( 1 - 16 )
           This is the MIDI output channel for each of the 16 "players" and
           is set by the mouse buttons. Each channel is completely independent
           allowing any number of "players" to use the same channel.

     TRAN :( 0 - 7 )
           Sets the transposition, in octaves, of each of the "players".
           This is necessary because the "players" only perform within a
           two octave range.

PITCH-ROW :( c - b, C - B )
           Contains the twelve note pitch row selected from the 12 possible
           pitch-palatte values. Higher case letters are an octave higher
           than lower case.

PITCH-PALATTE:( 1 - 6 )
           Selects one of the six programmable pitch-palattes.

LENGTH-ROW :( 2 - 96 )
           Contains the twelve note lengths used by the computer and are
           equivalent to MIDI timing clocks ie 24 = crotchet ( quater-note ).

LENGTH-PALATTE :( 1 - 6 )
           Selects one of the six programmable length-palattes.

VELOCITY-ROW :( 5p - 5f )
           Contains the twelve velocity values.

VELOCITY RANGE :( | - f )
           Controls the dynamic range of the "players".
          " | ": Standard
          "< >": Wide
          "> <": Narrow
          " p ": Soft
          " f ": Loud
          "---": Fixed ( MIDI Velocity 64 )



GENERAL MIDI SCREEN

   RESET! :Resets all the General MIDI and GS parameters to their standard
           values and transmits the changes over MIDI.

 TRANSMIT :Transmits over MIDI, all the currently displayed GM/GS values.

G.M. EDIT :( Piano1 - Gunshot )
          Sends MIDI Program Change messages 0 - 127.

   VOLUME :( 0 - 63 )
           Sends MIDI Volume commands ( controller No.7 ) data, 0 - 126.

      PAN :( 0 - 63 )
           Sends MIDI Pan commands ( controller No.10 ) data.

   CHORUS :( 0 - 63 )
           Sends GS Chorus Depth ( controller No.93 ) data.

   REVERB :( 0 - 63 )
           Sends GS Reverb Depth (controller No.91 ) data.



STYLE AND PLAYBACK SCREEN

     LINKER:( NONE - ALL ROWS )
            This sets the "linkage" between the Pitch, Length, and Velocity
            rows. When a row is linked then both rows will undergo the same
            data generating processes. This parameter only affects the
            COMPOSING phase.

 INVERSIONS:( PITCH ROW - LENGTH ROW - VELOCITY ROW )
            These buttons control which rows undergo the inversion processes
            during the COMPOSING mode. If INVERSION is switched off, then all
            the rows will consist solely of the data row played forward and
            backward.

 TRANSPOSE:( ON - OFF )
           When this function is activated, each 12 note Pitch - Row variation
           is transposed by the relative pitch value of the first note. For
           example if the first note happened to be "f" the whole row would
           be transposed by 5 semitones. This function is only used when
           "COMPOSING".

  PLAYBACK:( CHORDS - ECHOES )
           These buttons selects the algorithym that controls the structure of
           the outputed music. See SCHOENBERG 5 FEATURES for futher details.
           This function is only used when "PLAYING".

ECHO DELAY:( Track2 - Track4 )
           Sets the amount of delay for each track in terms of MIDI clocks ( 1
           - 96 ), the number of delayed tracks is controlled directly by the
           "POLY" value. Track 1 is always undelayed.

   PRESET?:When this button is clicked one of eight Style and Playback
           settings ( set by the "PRE SELECT" button ) are recalled and
           displayed on the screen.

PRE SELECT:( Randomise - Echo2 )
           Selects which of the eight Style and Playback presets are initiated
           when the "PRESET?" is engaged.



SEQUENCER SCREEN


   SEQUENCER PITCH:( 1 - 6 )
                   Selects which Pitch palatte is used in each of the eight
                   sequencer steps ( 4 in 1/2 meg versions ) used in composing
                   mode.

  SEQUENCER LENGTH:( 1 - 6 )
                   Selects which Length palatte is used in each of the eight
                   sequencer steps ( 4 in 1/2 meg versions ) used in composing
                   mode.

SEQUENCER VELOCITY:( " | " - "---" )
                   Selects which Velocity palatte is used in each of the eight
                   sequencer steps ( 4 in 1/2 meg versions ) used in composing
                   mode.

    SEQUENCER MODE:( NORMAL - SEQUENCER )
                   This function switches between the NORMAL and the SEQUENCER
                   modes of composition when the "COMPOSE" is used.




USING THE MOUSE
***************
     All parameters can be altered using either the left or right mouse
buttons. To change a value just position the pointer in the corresponding box
and use the left button to raise ,the right to lower. With switches, the left
button is ON, the right, OFF. This makes SCHOENBERG a very easy program to
operate.



GETTING STARTED
***************
     To run SCHOENBERG double-click SCHOENB5.PRG icon, if you are running
the program for the first time then the installation will appear ( see
"Installing SCHOENBERG 5" for details ), once you have made your selection,
the intro screens will appear followed by the main "TONE-ROWS" screen.

     To start composing and playing music with SCHOENBERG, bring down the
"Load" drop-down menu and click either the .SB5 or .SB3 option. Then from
the respective SB5 and SB3 folders select KLANG.SB5 or KLANG.SB3 demonstation
files with the fileselector the file should then load and the displayed
parameters updated.

     The TONE-ROW screen should most of the parameters and settings of the
KLANG file including the data rows. You will see on the left of the screen
that all the "players" use MIDI channel 1. You can either set your synthesiser
to match, or change the values on SCHOENBERG. The latter is acheived by
repositioning the mouse over the respective channel and then using the mouse
buttons to change the value. Then select a sound on your synthesiser which has
a slow attack and a long release. If you are running the 1 Meg Plus version
you should click the COMPOSE button. Then move the mouse to the PLAY box
and click the left button.
     The result should be a stark ambient peice based on a "circle of fifths"
which lasts about 10-30 minutes. You can stop it anytime by pressing the space
key on the keyboard.
     Try changing the sound on the synthesiser to match the feel of the piece.
Once you done that, you can recompose the music using the COMPOSE button. Then
change the tempo, polyphony,and bias to see what affect they have on the music
Finally click the "STYLE" button, and try altering the Playback mode and see
what effect each function has on the result music.



MAKING YOUR OWN MUSIC
*********************
     On the TONE-ROW screen move the mouse to the blank button to the left of
the PITCH-ROW and left-click. The pitch row values previously displayed are
now replaced by 12 hyphens.To enter new pitch data, place the mouse over the
pitch-palatte ( C - B ) displayed beneath the hyphens and click. The selected
pitch then appears in the row above. Continue until all 12 pitches are
selected. The program doesn't allow you to do anything else until this is
completed.
     Repeat this procedure for the length and velocity rows. Now you can
compose your masterpiece by clicking on the COMPOSE box. The results of this
operation are controlled from by the paranmeters displayed on the STYLE
screen, i.e. "LINKER", "INVERSIONS", and "TRANSPOSE ROWS". Then make any
changes you wish to the "player" parameters ,tempo etc.

     Now comes the big moment when you play the finished composition by
clicking on the "PLAY" button and retire to a safe distance.



ALTERING THE PALATTES

     Firstly change the pitch-palatte by positioning the mouse on the box on
the lower left of the pitch row, this should currently show the value "1". Use
the left mouse button to raise this to "2". You should notice that all the
notes in the palatte row and their corresponding values in the tone - row
change to lower case c's. Now move the mouse over the first of the notes in
the palatte and change the note within the two octave range using the mouse
switches.
     Upper case notes are an octave higher than lower case. Once you have
selected your note proceed across the palatte until all the values have been
changed.
     It must be noted that the order of notes in palatte is of great
importance because when the tone-row is inverted, the notes are inverted
according to their positions in the palatte.

       e.g. If the tone-row was " c d e f g a b C D E F G "
        and the palatte row was " c d e f g a b C D E F G "
  the resultant inverted row is " G F E D C b a g f e d c "

   Then when the tone-row is inverted "c" the fist note in the palatte row
would become the twelveth "G", "d" (2nd) would become "F"(11th), and so on.

        However if tone-row was " c d e f g a b C D E F G "
        and the palatte row was " E g b a D c e F d f G C "
  the resulting inverted row is " e a c b G d f E F C D g "

   Then when the tone-row is inverted "c" the sixth note in the palatte row
would become the seventh "e", "d" (9th) would become "a" (4th), and so on.
     After the palatte row has been changed you may want to change the tone -
row to suit your needs. To do this use the same method as illustrated earlier.
    Then you can continue and alter the rhythm-palatte using the same rules
that applied to the pitch-palatte.

     Finally select the velocity range you require, set the velocity row,
intiallise the "COMPOSE" function, and play.

It will help you to study the demonstration files and see how they work.

     Experimentation with sympathetic sounds, data rows, pitch-palattes, and
"player" parameters will teach you which are the most "musical" settings and
which are not. It's a program which you get the more from, the more thought
you put in.



MIDI FILE DATA
**************
     The music that generated by SCHOENBERG 5 can be saved as a Standard MIDI
File ( Format 0 or 1 ). The converted file contains all the note information,
program changes, and a very rough approximation of the tempo. It should be
noted that SCHOENBERG 5 can run up to 290 BPM !!!.

FORMAT 0 - 1 Track
     Time Base   96-480ppqn   At start of track
     Time Sig.   4/4                   "
     Tempo       30-290 BPM            "
     GM\GS data                        "

FORMAT 1 - 17 Tracks
     Time Base   96-480ppqn   At start of Tempo track 1
     Time Sig.   4/4                   "
     Tempo       30-290 BPM            "
     GM\GS data               At start of each of the remaining 16 tracks.
     Instrument names                  "



CLOSING
*******
     If you have any queries or comments or problems about this program please
dont hesitate to write to me at the address below-

    6th January 1998
    Copyright Megastar Synthesiser Collective.

Write to -  Mr. Gareth Jones .
            36 Tarn Drive ,
            Creekmoor ,
            Poole ,
            Dorset ,
            BH17 7DQ ,
            Great Britain .


The MEGASTAR SYNTHESISER COLLECTIVE - "Take a bad song, and make it better"

BYE  BYE  !
