STARKOS 1.1
-----------
By Targhan/Arkos
Released on January 2004.


Hi everyone ! Arkos is proud to present you his new sountrakker on CPC,  STARKOS
1.1.



GENERAL DESCRIPTION
-------------------
STarKos is a conventional soundchip tracker, in the sense that writing musics is
done the same way as existing trackers on CPC or  Atari  ST.  The  new  features
mainly comes from sound editing.


Some features to begin :

- 256 positions available.
- Each position is composed of 3 tracks, one par channel.
- Manages 512 tracks, each one being reusable several times in different
  positions OR in the same position, why not. Memory saving !
- A track can have a height from 0 to 127.
- Each track can be be transposed independently.
- The whole song can be transposed.
- Each position has its own height, from 0 to 127, independently of the height
  of the tracks.
- 255 instruments free to use.
- Each PSG registers can be modified while creating instruments.
- Each track/instrument is compacted in memory, this one is reorganized after
  every modification, so you've got plenty of memory for you !
- Frequency replay of 13, 25, 50, 100, 150 or 300 hz.

- *** NEW ***. Now you can see the patterns scroll while playing the song !

- Digidrums are supported : it is possible to enter  'SPL'  keys  along  with  a
sample number, that can be read through the external player  while  playing  the
song. However, you can't load/hear a sample inside the editor.




GENERAL HANDLING
----------------

After having typed RUN"STK", appears the STarKos main menu.

Most of the pages composing Starkos follows the same 3 parts design : a menu  on
top-left, some data on top-right, and the middle and bottom of the screen  being
taken by the song information.

You can go from a part to another by pressing TAB, and ESC to come back  to  the
first one.

With the cursor keys, move this one, use SPACE or RETURN to select.

Every number upon which you move can be modified, either by typing a new  number
(ESC to cancel), or by increasing/decreasing it through left/right combined with
SHIFT and/or CONTROL. Each number possesses a min/max limit, and every  of  your
entries is corrected according to this interval.

Note that some numbers are signed, so you will have to use '-' if  you  want  to
enter a negative value by typing it. Finally, let's precise that all numbers use
the hexadecimal notation, I won't insult you by explaining.

IMPORTANT : You can access most of time to every screen composing STarKos with
these keys :
CTRL+F1 = TRACKS LINKER (first page)
CTRL+F2 = PATTERNS EDITOR
CTRL+F3 = INSTRUMENTS EDITOR

Useful shortkeys too :
F7/F4 = Increase/Decrease position
F8/F5 = Increase/Decrease instrument
F9/F6 = Increase/Decrease octave



POSITIONS, PATTERNS, TRACKS, SPECIAL TRACKS and INSTRUMENTS
-----------------------------------------------------------

Even though Starkos works as most trackers,  some  variations  exist.  A  little
vocabulary lesson is essential :

- The TRACKS repesent the basis of your compositions. All the notes are  entered
there. Each track has a height from 0 to 127, and you've got 512 of  them.  Each
track is identified by its number.

- a PATTERN is composed of 3 tracks, each played on one channel of the PSG. It's
impossible to play a track alone, it must be included to a pattern. You can  use
up to 256 patterns, each having a height from 0 to 127. If the  tracks  included
are higher, then they'll be truncated INSIDE THIS PATTERN ONLY, which means that
the 'overflown' data aren't erased from the memory at all, they're not  used  in
this pattern, that's all. So it's possible to use half of a track in a  pattern,
and the whole in another. On the opposite, a pattern  can  be  higher  than  the
tracks inside. In this case, there's no problem, you'll find empty notes at  the
end of the tracks. Note that it's possible to use the same track 2 or 3 times in
the same pattern.

The fact that the tracks are independent of the patterns allows a lot of  memory
saving. I encourage you to use a track as much as you can along your song.


- POSITIONS represent the way PATTERNS are played. Consider  position  like  the
link of a chain. To each link corresponds  a  single  pattern.  When  you  start
playing your song, the position 0 is played. When  the  pattern  to  which  it's
linked is over, then the POSITION 1 is played, and so on...  256  positions  are
allowed, but your songs will be really shorter than that usually.  The  Position
system allows the musicien to play the same pattern several times without having
to copy it.


- You know or guess what INSTRUMENTS are, so I won't dwell on that. You have 255
instruments, from 1 to 256.

- SPECIAL TRACKS are new. They allow to set digidrums, and speed  changes.  Each
pattern has a Special Track, on top of the 3 normal tracks. You have 256 special
tracks available.





THE VARIOUS SCREENS
-------------------

Once STARKOS is loaded, the first screen appears :

*****************
THE TRACKS LINKER
*****************

This screen allows to link the tracks of your songs. Press  TAB  to  go  in  the
middle part of the screen, and use up/down with SHIFT  and/or  CONTROL  to  move
quickly.

Here are the explanation of the columns you can see :

NOPOS : Positions number. The position 0 is the first one played of your song.
TRACK1/2/3 : Tells which track is played in this position, and on which sound
channel.
TRANSP1/2/3 : Tells the level of transposition attributed to the track of eac
 channel. In most case, it equals 0.
HEIGHT : Height of the pattern, from 0 to &7f, thus a height of 1 to 128 lines.
SPECIAL TRACK : Number of the special track used for this position.

As you've probably notice, some NOPOS are white, others  blue.  Know  that  only
white POS are going to be played, because only them are included to the interval
of the played positions, from 0 to ENDPOS. To modify this value, 2 ways :  Press
TAB till you're in the upper right part and modify the value.

You can also use the keyboard shortcuts in the middle part :  RETURN  to  define
ENDPOS, SPACE to define LOOPTO, according to  the  cursor  position,  obviously.
Note as well that each move refreshes NOWPOS.  Moreover,  know  that  LOOPTO  is
always equal or inferior to ENDPOS, which is logical.



But let's go back to the upper left menu.  We'll  see  later  about  'DISC'  and
'MISC', but by selecting 'SONG INFO' (or by pressing TAB twice), you go  to  the
upper-right menu. Here's the description of the various columns :

SONG POS = Current position. It's the pattern linked  to  this  position  that's
going to be edited (when going to the pattern editor). It's also from here  that
will be played the song if you select 'PLAY SONG'.

END POS = Last position used in the song. Defines the end of the song, in  other
words.

LOOPTO = When the music is over, it loops to the position  designed  by  LOOPTO.
Generally, LOOPTO=0 to make the song restart from the beginning.

INSTR = Number of the current instrument. You  can  play  this  instrument  (see
below), and it's this one that will be written inside the  tracks  when  editing
patterns. OF course, you can change it at any time.

BEG SPD = Speed of the song when played from the beginnning through PLAY SONG.

REP FRQ = Replay Frequency. Various possibilities : 13, 25, 50, 100, 150, 300hz.
Enough to entertain you for centuries. Warning, highest frequencies considerably
slow down the software. 50Hz is generally used. Warning ! Modifying the REP  FRQ
also changes all speeds of the songs ! The player was first intended to  balance
speed in consequence, but some people argued about  that,  because  it  wouldn't
have allowed unusual speeds.

OCTAVE = ...Octave. Used when playing a sound, or entering a note in a track.

FREEMEM = Free memory. STarKos manages memory dynamically and optimizes data  as
much as possible. When this value equals 0, then the screen becomes red and  the
last action is cancelled. It's greatly advisable NEVER to save your song if this
happen.





Let's now have a look at 'DISC' and 'MISC'.



---------------
DISC OPERATIONS
---------------

This menu allows you to load/save your song/instruments.

Note : All files generated with STarKos are saved in ASCII format. Disc accesses
are therefore slower, but it's a necessity, as the data aren't written  linearly
in the memory. It brings a second problem : the AMSDOS errors managment of  such
file is a bit limited ; it doesn't allow an accurate detection of what error can
happen while loading/saving. However, when an error  occurs,  it's  possible  to
RETRY or CANCEL.

STARKOS filenames have reserved extension :
SKS for SONGS,
SKI for INSTRUMENTS.


Here's what you can find in the DISC menu :

- GETDIR : reads the disc directory, and gives back the remaining kilobytes,
as well as the numbers of SONGS/INSTRS on the disc. Loading a file is disabled
if there's nothing to load, which is logical.
- DRIVE A/B : Allows you to switch between your drives, if you're lucky enough
to have two of course.
- LOAD SONG : Load a song, chosen in a little list. WARNING ! When the loading
begins, the previous song in memory is erased !
- SAVE SONG : Save your song. The filename corresponds to the SONGNAME given
in the PATTERNS LINKER page.
- LOAD INST : Load an instrument. Once in memory, you must choose where to put
it among the 255 slots. Note that a badly loaded instrument is automatically
erased in memory.
- SAVE INST : Save a selected instrument. The filename is the instrument name.
- ERASE : Erase a file to select in a list. White filenames are the ones
created with STarKos, for you not to erase a wrong file.

A little remark : a loaded  music  is  already  completely  optimized,  so  it's
useless to optimize it once loaded.


Press ESC to quit this menu.




Let's now talk about the MISC menu :

-------------
MISCELLANEOUS
-------------

This menu has various options, about the software and your song.

OPTIMIZE = Optimize the song. If you feel a bit cramped, try this. Warning,
as all the data is crushed, the software might slow down a bit.
OPT LEV = Optimization Level. MAX = as soon as a pattern/instrument is created
or modified,  only the needed room is allocated. This state saves every
possible byte of memory, but slows down the software, proportionnally to the
song size. NORMAL = When a pattern/instrument becomes smaller, the memory is
not reorganised. This mode should be enough for 99.99% of the musics.
CLEAR = Clear the Patterns, or the Instruments, or both ! WARNING, this can't
be undone, so be careful !
TRANSP = Defines the transposition level of the WHOLE song. EVERYTHING is
transposed, but your tracks aren't modified. Even the notes you enter with
the keyboard are transposed ! As this 'effect' doesn't modify your song in
any way finally, don't hesitate to use it as many times as you want to choose
the right reference note.
AUTHOR = Allows to sign your music. Saved in the SKS file, but not in the
generated file !
COMMENTS = Alows to write a little commentary of 32 characters. Save remark
as above.
ABOUT = Display some info about STarKos and his author (me !).
SPLS CHAN = Defines the channel where the samples entered in the Special
Tracks are going to be played. This option is only esthetical for the moment,
as no sample can be heard under the editor. However, this value can be
retrieved with the external player : so it's possible to play a tune with
samples according to its author's will.



Press ESC to get out of this menu.







Let's now deal with serious things :

******************
INSTRUMENTS EDITOR
******************

Here's the first really interesting part of this notice.

You're here to create your instruments. The upper-left menu allows you  to  copy
or destroy any instrument.

A STarKos instrument is built on a values list, of 256 lines max  strong.  These
values are detailed just below.

Know that you've 2 possiblity to create your sounds. The  first  one,  the  most
complex but also the most powerful, consists in using the  list  of  lines.  The
second one is graphical, like in the BSC's sountrakker. You can flip from one to
the the other by pressing ENTER.


But for now, let's stick to the first one. In the upper right menu, you can find
this :

NO INSTR : Number of the current instrument, the one that's being edited.

INSTR END : Instrument height. Corresponds in fact to the last line used.

INSTR LOOP : Number of the line where the  instrument  is  going  to  loop  when
having reached its end. INSTR LOOP <= INSTR END.

LOOP? : Boolean telling whether the sound  must  loop  or  not.  INSTR  LOOP  is
useless if LOOP?=0. A sound that doesn't loop doesn't make any sound at the end.

RETRIG? : A tiny but useful boolean that, when set to 1, resets the Register  13
of the PSG at the beginning of the sound, so that you don't  have  to  create  a
line especially for that.

SPEED : Defines the time (a multiple of the Replay  Frequency)  between  playing
two lines of the instrument. '0' means that a line is played every 50Hz (if your
Replay Frequency is 50), 1 = each 100Hz... Very useful to  play  slow  and  long
sounds without having to copy the  lines  several  times.  Save  both  time  and
memory.

CLIPBOARD : You can't access it directly.  The  value  indicates  where  is  the
pointer inside the clipboard. It allows to copy lines of instruments in  memory,
to paste them elsewhere later.


By pressing TAB, you  go  inside  the  instrument  edition  itself.  The  cursor
managment works exactly as  in  the  PATTERNS  LINKER.  RETURN/SPACE  to  define
END/LOOP. Control+SPACE to switch LOOP?. Note that when defining LOOP, LOOP?  is
automatically set to 1.

Let's have a look at these columns :
SND = Tell to the PSG to create a sound wave if set to 1. Set to  0,  you  can't
create any melody with conventional  sounds.  But  you  can  still  create  HARD
envelope and add NOISE.

VOL = Gives the volume, from 0 to &F. The volume is cancelled if a HARD sound is
triggered. Likewise, a non-HARD sound with a volume to 0 cancels all  the  line,
as nothing can be heard.

NOISE = White noise value, from 0 to &1F. Mainly used for drums, percussions and
explosions. Not linked to SND, but needs a volume greater  than  0,  or  a  HARD
sound.

ARP = Arpeggio. A signed value (from -#5F to #F added to the basic noise  (given
by your tracks, or your keyboard). Type 0,3,7 on 3 lines to get a minor chord.

PITCH = Value added to the final frequency. Usually used to create  pitch  bends
or vibratos. Value between -#FFF and #FFF

HARD = Tells if a HARD enveloppe is used.  0  if  no,  1,2,3  or  4  if  yes.  1
corresponds to a sawtooth curve, 3 to its symmetry. 2 to a 'montain' curve, 4 to
its symmetry. Don't forget that the PSG can only manage one  hard  envelope,  so
giving a hard sound to more than one track at the same time generally results in
harsch sounds (but some of you may find something interesting out  of  that  for
sure).

SOUND FRQ = Sound Frequency. In  AUTO  mode  (value  =0),  the  sound  frequency
depends on the key played by your track or your  keyboard.  By  giving  a  value
(from 1 to #FFF), you force the frequency on your own initiative.  This  can  be
used to create special effects or to add effect/drums before  the  rest  of  the
sound.

HARD FRQ = Same thing, but for the HARD envelope (1-#FFFF).  Note  that  if  the
AUTO (=0) mode is no more used, SHIFT becomes useless and is cancelled.

SHIFT = This one is interesting. Give the report between  HARD  FREQ  and  SOUND
FREQ (in Auto mode or not). Follow this nice equation : HARD FRQ = SND FRQ/(2 to
the power of 'SHIFT'). Value from 0 to 7. Generally used  :  4  or  5  for  cool
basses.

INITWAVE = Allows to force the Register 13 to 1. When  this  happens,  the  HARD
envelope is restarted from the beginning. Warning, setting  a  INITWAVE=1  in  a
loop produces a very disgracious sound.

HARDSYNC = An idea from ST Trackers. Allows to perfectly  synchronize  a  normal
enveloppe with a HARD enveloppe (if HARD set to 1, of course). Indeed, when  the
previous formula is used, appears an approximation between the two curves, which
brings a 'mwwwaaaiii' sound so distinctive of hard sounds :). When  HARDSYNC  is
set to 1, the player corrects the sound frequency to get an  EXACT  multiple  of
the HARD freq. No more desync ! The problem is, the approximation  applies  this
time to BOTH curves, which produces some off-key notes. This  effect  is  really
only useful with  low  sounds,  highest  being  completely  wrong  so  much  the
frequency are truncated.

FINETUNE = When HARDSYNC is activated, so is  FINETUNE.  Allows  to  generate  a
shift between the SOUND FREQ and the HARD FREQ. Now  you  can  precisely  master
your 'mwwwaiiii', how lucky you are :). Value between (0 and &FF).



As you can notice, the 'NO POS' column has white (only one when  the  instrument
is empty) and blue values. Only the white ones are included to the  interval  of
the sound to play. To enlarge this interval, increase the END parameter.


Insert/Delete functions exist, through F0 and '.'. They apply on an entire line.
But it's also possible to insert/delete a value in a  single  column  only,  but
pressing CONTROL with F0 and '.'. Be careful, this function doesn't take all the
instrument in account, but only the interval defined by your cursor and the  END
of the instrument, contrary to the 'raw' insertion that shifts  everything  from
the cursor.


WARNING ! As soon as you leave an instrument (by changing  to  another  page  or
instrument), this one is automatically optimized in memory  !  This  means  that
some values will be modified all by themselves, and that the lines not  included
in the playing interval will be destroyed.





****************************
ALTERNATE INSTRUMENTS EDITOR
****************************

As I said above, there's a second sound editor, graphical but less powerful.  It
will however be useful to quickly create simple sounds composed  of  volume  and
noise curves.

Press ENTER to switch between the 2 editors.

Oh, how beautiful it is ! By pressing TAB, you switch between  the  2  graphics.
The first one concerns the volume, the second the noise.

Some explanation :
The columns can be light or dark blue, along with a halftone (or not) :

- Light blue : This column is going to be played, no problem.
- Dark blue : This column won't be played, because it's beyond the END limit.

- Halftone : Won't be played because whether the SND doesn't  equal  1  (so  the
volume has no incidence on the sound), whether HARD is set to  1,  which  cancel
all volume anyway. To clear this halftone, check these two flags with the 'line'
editor (another way, very simple, see below).
- No halftone : No probleme, there's no HARD flag, so the column is going to  be
played, unless it's dark blue.

For simplicity's sake, as soon as you modify a column, SND is automatically  set
to 1 (only if HARD=0), so you don't need the  'line'  editor  to  create  simple
sounds.


Warning : halftone/dark blue columns will be eliminated when optimizing, because
they're of no consequence in the sound !


An advice : Use keyboard shortcuts to set END, LOOPTO and LOOP?  without  having
to go to the upper-right menu.

To finish, note that it's possible to insert columns with F0 and '.',  but  that
corresponds  to  a  column-insertion  in  the  line  editor  !  Thus,  only  the
volume/noise curves are shifted. As before, only the interval  defined  by  your
cursor and END is shifted.





Now you've got a wonderful sound, let's learn how to play it !

***************
PLAYING A SOUND
***************

It is possible to play the current sound in  each  top-left  menu  of  the  main
pages. To do this, you just have to use your keyboard, exactly like in the BSC's
Sountrakker.

 " # $ % & '
Q W E R T Y ...     --> Current octave +1

 S D F G H J
Z X C V B N ...     --> Current octave

It's also possible to play the current sound in the lower part of the instrument
editor, by using the keyboard while pressing CONTROL. Warning, changes  made  on
the sound data while playing it DOESN'T apply on what it heard  !  You  have  to
retrigger it to hear the changes.





Now you're ready to fight among the Follins brothers and Madmax, let's  see  how
to create patterns...

***************
PATTERNS EDITOR
***************

The upper-left has nothing outstanding :
PLAYPATT to play the current pattern.
PLAYSONG to play the song from the current position. Note that if you play  your
song from the position 0, SPEED takes the value of BEG SPD, which is logical.

By pressing TAB you go to the lower part, the pattern edition  itself.  You  can
find the 3 tracks, and the special track, smaller. Here's the description of the
column composing each normal track :

KEY : key and octave to play. Example : C-1, D#4.
INSTR : Instrument to play, from 1 to #ff. Always go with the KEY.
VOL : Volume of the note, from 0 (no sound) to #F (max)
PITCH : Allows to make portamentos up/down. The value is signed,  from  -#7F  to
#7F.

INSTR and KEY are linked : you can't have  one  without  the  other.  VOLUME  is
always associated with a KEY, however you can put it where's  there's  no  note.
PITCH is completely independent, you can put it where you want, KEY or not.


You can place a 'RST', a reset, by pressing CLR. This RST cuts the sound of  the
canal. Warning, what remains on the line will be erased when saving the track in
memory.

You can also put your digidrums in 'normal' tracks by pressing |. The number  of
the sample is defined by the current instrument, from 1  to  &1f.  Warning,  the
rest of the line will be ignored.


The special track allows you to set Speed change, and to put Digidrums (for  the
moment, these one aren't played). Just put a S for  Speed  or  D  for  Digidrum,
followed by the value you want.


Note that a little raster in at the bottom  of  the  screen  shows  you  when  a
digidrum starts IN THIS FRAME. So if you start more than  one  in  a  frame  (by
using a faster than 50hz song), you will still see one raster only !


So, you'll ask, why giving two possibility to set digidrums ? Well, because  the
behaviour is different according to where you put them. A digidrum put in normal
tracks cuts the sound of that channel, as a normal sound would. But  a  digidrum
set in a special track will cut the sound of a channel (designed by SPC CHAN  in
MISC menu) only during the exact duration of the sample. At its end,  the  sound
of the channel if recovered.


Other cool stuff, two little switchs :
- CYCLE allows you to go from an extremity of the  pattern  to  the  other  when
going beyond. The '\' keys switch the switch, and a little logo shows if it's on
or off.
- BEYOND, switched by SHIFT + '\', allows to see what's 'beyond'  the  limit  of
the pattern. Know that if your pattern is #7f height, and that you bring it back
to #1f, what's now hidden is still in memory, and can be seen by activating  the
BEYOND switch. When on, the NO LINE becomes white, indicating that you're  still
in limit of the pattern as you defined it. If they're blue, then  you're  beyond
the limit, and can reach the physical limit of the pattern, #7F.



Let's talk about the clipboards. You've got 2 clipboards only  for  the  pattern
edition. They work exactly like the Soundtrakker's, with one option added.

The first clipboard is used to save a whole track. Note that if you copy ('copy'
in the copy/cut/paste sense) a TRACK, you won't be  able  to  paste  it  into  a
SPECIAL TRACK, and the opposite.
SHIFT+1 = Copy a track in the clipboard
SHIFT+2 = Cut a track in the clipboard
SHIFT+3 = Paste a track

Something new : if you use CONTROL instead of SHIFT while pasting, you'll  paste
notes only, and not emptiness ! So it's like a OR paste mode. Very useful to mix
two tracks into one.



The second clipboard allows you to take notes from a track, one by one, to stack
them up in memory and paste them one by one where you want.
SHIFT+7 = Copy a note in memory
SHIFT+8 = Paste a note in a track
SHIFT+0 = Comes back at the beginning of the clipboard
It's important to notice that if you stack up notes from a track, you  won't  be
able to stack anything from a special track. You'll have to reset the  clipboard
(Shift+0), and insert something from a special track. The contrary is true too.

What's more, coming back at the begining of the clipboard sets a  limit  at  the
last item put in the clipboard recently. This limit can be redefined by  copying
others notes inside the clipboard.

Ok, I think we've talked about everything. Wasn't it great ?







****************
END
****************

Here it is, I guess that's all. Here's my advice : PRINT THE 'KEYS' file on this
disk, it's very useful and has many keys to functions I coded  to  make  STarKos
powerful and nice to use.

I hope this tool will please you because it wasn't easy  to  make,  even  if  it
looks so when over...

Bugs report, remarks, suggestions, here we go :
targhan@cpcscene.com
targhan@netcourrier.com

You can write me here :
Julien Nevo
Le Louya
35290 GAEL
FRANCE







**************************
SOME REMARKS BEFORE ENDING
**************************


Here're some points I want to talk about briefly :

- Contrary to what most people think, it is NOT possible to convert ALL  the  ST
musics to CPC, even if they use conventional sounds. The ST PSG  runs  at  2mhz,
against 1 for the CPC. So, in order get  the  same  sound  frequency,  you  must
divide  all  periods  by  2.  From  this  can  come  an  approximation,   or   a
desynchronisation between the normal and hardware soundwaves.  That  heppens  in
the MEGADIST song included in this kit. As suggested Madram, you  could  correct
that by doubling  the  sound  frequency  (50hz-->100hz)  and  'surrounding'  the
desired values with the 2 nearest values, and switching between them. Good luck.

About the tool in itself :

- STarKos is slower than most trackers, that's because the organisation  is  far
more complex. I allow 255 instruments, 512  tracks,  256  patterns  and  special
tracks... It's more than any trackers on CPC or ST. If I had managed  my  memory
like BSC and PRODATRON did, I would  never  had  enough  memory.  Everything  is
allocated dynamically. It's quite complex to manage and takes a bit  of  machine
time.

- The pattern display is slow. That's not because the code is not optimized, but
because I used the tools I already had ; they're quite powerful, honestly  fast,
but that's not enough for such display. I needed specialized routs.

- But I can't afford that for the moment : I don't have enough memory !  STarKos
is 24000 lines long, for 30KB max of compiled code !

- And last but not least : I MADE STARKOS FOR THE CPC SCENE, SO TELL ME WHAT YOU
THINK ABOUT IT !!!


Ok, that's all, folks ! See you soon !

Targhan
