FunktrackerGOLD V1.x Release Notes, Installation, and other Info
----------------------------------------------------------------


Hello again,

This release is basically full featured. There were a few things missing
in the BETA 0.0 version that was released a few months ago, but are now in
this version. BPM and 16 bit module support has been added. Micheals and
Brians little hacks are in here, and you can load and save .MOD file as
well. The sample editor has been enhanced some what- you can resample
samples just before loading them (like you can in DOS32 Funktracker), as
well as the ability to play and rename samples (the renaming facility is
handly when you're renaming all those abbreviated 8 character MessyDOS
samples). The .MOD loader/saver is a bit of a hack.. you might need to
tune this code to make conversion better. The problem lyes in the
differences in format. If somebody (who will heaverly use this feature)
can fine tune this code, then send me a patch.. I've also added a "Command
Assistant", so that commands can more easierly be selected and entered. 


I've lost my Internet access and could not find anyone locally to test 
this version... so i had to go it alone testing wise. 

See the "What's New" section for a detailed list of things "debugged" and 
added.


How to Make
-----------

a) Select which Operating System you are running in the Makefile [Linux 
or FreeBSD].

b) Read the options.h file. Follow the options.h file instructions "to the
letter". If you don't understand something, then email me..... Hmm, no you
can't do that,.. i have no email address.. Try asking one of the 0.0 BETA
testers (ie Joey Hess) instead. If you don't get the settings right, then
FunktrackerGOLD will either crash or not work properly.

(NB/ re-making the entire program over and over again with different 
settings may take ages.. so i've taken the initiative of putting the
options.h stuff in the command line (do a 'funkgold -h' for more 
details). So, simply play with the settings at the command line level, 
and when you have a perfect set of options that make FunktrackerGOLD run 
beautifully on your machine, put them in your 'options.h' and recompile 
to make them default.)

c) type in "make clean;make".

d) Run "funkgold" or "funkgold -h" if you want command line help.

e) If you don't like the keyboard configuration, and you think you can
make a keyboard configuration better than mine, change them in the
fickle.h file. Contact me if you want it to be standard (and i'll think
about it).


Happy Tracking!




Future Plans
------------

*V2.x

Version 2.x will generally be preparing for the Xwindows editor. here i
plan to make a playback server. This will make playback mixxing
preemptive, so that an Xeditor will be achievable. I want to upgrade my
old 1.2.13 to the new Linux 2.0.x version first. I'm still experimenting
with prototypes at the moment. Once i upgrade, i'll make a positive 
start on it.


I'll also be trying to find somebody who is willing to write a GUS mixxer
(i haven't had any takers yet).


*V3.x

Version 3.x will be the actual Xwindows implementation (the fun bit!). 
I'll need some graphics designers for this bit to design the nobbles, 
switched, buttons and a logo.




Connact
-------

Due to the fact that I never maintain the same email address for longer 
than a year, there's no point in me giving you one. It's probably best if 
you wrote to me via snail:

Jason Nunn
32 Rothdale Rd
Moil NT 0810
Australia

You can ask some of my long term net friends, they would know my current 
address (if i have one at the time of you reading this file). They are 
either Jim Leonard (trixter@mcs.com) or Christopher Mann 
(r3cgm@ftp.cdrom.com).

My old email accounts were nunn@pandanus.ntu.edu.au in 1992,
dcug@nutmeg.ntu.edu.au in 1993, jsno@amigar.apana.org.au in 1994,
jsno@turtle.apana.org.au in 1995 and jsno@darwin.topend.com.au in 1996. 
Please don't send any email to these addresses. They no longer exist. 


Naming conventions & ftp sites
------------------------------

 Long unix name:

    FunktrackerGOLD-x.y.tgz
                    | |
                    \ \_ Patch level
                     \__ Version Number

ftp://ftp.funet.fi
ftp://sunsite.unc.edu/pub/Linux/Incoming
ftp://tsx-11.mit.edu


 MSDOS name:

    fnkgndxy.tgz
          ||
          \\_ Patch level
           \_ Version Number

ftp://ftp.cdrom.com/pub/demos/music/programs/trackers




FunktrackerGOLD FAQ
-------------------

Q) Why isn't there colour?. Why haven't you implemented use of the function
keys, and pageup, pagedn, delete, insert, home and end keys?

A) When i get ansi_xterm working. I developed this thing in an Xwindows
environment. 



Q) Where's GUS /dev/sequencer support?

A) i don't have a GUS card. Would you like to support it for me?



Q) Where's SunOS or SGI support?

A) No support exists for Sun, SGI yet.



Q) Where's S3M & XM support?


There's no S3M or XM support. I might work on a S3M loader and saver, but 
the S3M fomrat is just too different from the Funktracker format. XM and 
S3M's are roughly the same thing. They have many features that 
Funktracker doesn't have, and Funktracker format has many features that S3M 
and XM doesn't have.



Q) where's MIDI support?

A) Get real!



Q) How come the curses funk editors output breaks up when i start moving
xwindows around?

A) Unix implements preemptive interprocessing. DOS32 Funktracker gave
mixxing the total priority as it was hooked directly into the soundcard IRQ
service routine. Mixxing in curses funk has the normal standard nice(0)
priority. To remedy this, run the editor in CPU hogging mode ;) "nice -20
funkgold". Also try lowing the sampling rate.



Q) ... so I found the pattern editor and hit 'P' and it dumped a core. Well,
I'm open to suggestions...

A) I think this might be due to allocating too many FUNK_DSP_FRAMES in the
options.h file. Lower this number, recompile and try again.



Q) I try to compile, but i get an unresolved external "addnstr"?.

A) Your Ncurses version seems to be older than mine. Get a new version.

...or if you can't get hold of a new ncurses library, then you may like to
add this routine to the funkgold.c file, courtesy of Stephane Dubon
(twinsen@etca.fr): 

From: Stephane DUBON <twinsen@etca.fr>


------------------------THE FUNCTION---------------------
int addnstr(char *str, int n)
/* As it said in my manual (but it's not support ...) , this function should 
   write at most 'n' caracters or all 'str' caracters if 'n' is negative.
   I have bugs with this explanation so i think that the right thing is
   write at least n caracters and if 'n' is negative all 'str' caracters.

   I have supposed that the result of this function is the same that the
   addstr function. If not, had to be changed.
*/
{
  char *ch ; /* The string to be use by addstr */
  int i ;   

  /* Memory allocation for ch */
  if (n < strlen(str))
    ch=(char *)malloc(strlen(str)+1) ;
  else
    ch=(char *)malloc(n+1) ;

  if (n<0) n=strlen(str) ;

  /* Copy of caracters from str to ch */
  if (n<strlen(str))
    strncpy(ch,str,n) ;
  else
    strncpy(ch,str,strlen(str)) ;

  /* Fill all unused caracters with space */
  for(i=strlen(str);i<n;i++)
    ch[i]=' ' ;

  /* End caracters with the '\0' caracter */
  ch[n]='\0' ;

  /* At least, addstr is supported in my version of Ncurses :) */
  return (addstr(ch)) ;
}
---------------------------THE END------------------------




Q) I can't get it working!, all i get is static.

A) I know for a fact that if you have a 486-33 or above, you shouldn't have
any trouble getting it going. The audio quality should sound as-good-as Dual
Module Player (or more accurately) the DOS32 Funktracker. All i can really
suggest is work the settings until you get it going. Try first setting the
sampling rate to 8000hz, precision to 8 bit and stereo setting to mono.
Adjust the fragment and frame settings until you get a clear audio output.

If you are really having problems, put a message in the
comp.sys.ibm.pc.soundcard.music group or something? <shrug>



Q) Can i be a beta tester?

A) Seens that i don't have net access, there's very little point.




Q) Are there any discussion groups for FunktrackerGOLD?

A) Not that I know of. If you do see one, let me know :).. but seriously, at
the moment, this is the central repository so it seems. If you want to tell
the world something or you want to find out something, come here or post
your request to me and i'll answer it on here.

The following are groups to look out for:

comp.unix.bsd.freebsd.announce
comp.os.linux.announce
comp.sys.ibm.pc.demos
comp.sys.ibm.pc.soundcard.music
comp.dsp

Post something into one of these groups and you are bound to get
commentary. These are the groups i announce new releases. 





What's New (FunktrackerGOLD Project LifeCycle)
----------------------------------------------

****************
* 1.0 (Aug 96) *
****************

 - Added module 8 bit <=> 16 bit module converter.
 - Added N track to N tracker converter
 - Added module Optimiser on menu.
 - Added Command assistant (hit shift M in pattern editor screen).
 - Settings in options.h file are now configurable on command line
 - Added 'Set song directory' menu item.
 - Added Micheal Wills adjustable Y screen size code
 - Enhanced sample loader screen so that samples can be resampled,played,
& renamed.
 - added tracking stopwatch.
 - File finder remembers last bar position when re-reading directory.
 - Added MOD saver.
 - Added the BPM capability.
 - 16 bit Module support enabled.
 - added DIGITAL_ECHOING option in the options.h file (for slow machines
that can't keep up).
 - Bug Fix in funkgold.c ("pe_edit_slot_com" subroutine)- slot would clear
when deleting a command. Fixed. Will now delete the command only and not
the whole slot.
 - Added MOD loader.
 - Bug Fix in funktracker.c. Play a song with no samples (sample table with 
NULL ptrs), and it pops a segmentation fault. Fixed.


****************
* 0.1 (May 96) *  (BETA)
****************

 - Brian Nielsen's FreeBSD port.


****************
* 0.0 (May 96) *  (BETA VERSION)
****************

 - Initial curses version developed in Linux 1.2.13, XFree86 3.1.2, gcc
2.6.3 and a brain damaged version of xxgdb. 

 - Full Multi channel support added (DOS32 Funktracker didn't implement
the full specification)

 - funk_type (or LZH_check_sum as it used to be called) now saves "F2**" 
signatures to indicate a slight command set amendment. files saved with
the ".Funk" extension. 

 - frequency adjustment has been ditched. it's obsolete as we have real
echo/reverb processing. 

 - Commands a,b,c,o4,o5 (frequency modifiers) have been revised. Porting
under Funktracker revision 1 was too slow. Amendments make porting much
more faster. Also, the speed parameter of commands a,b & c have been
removed. 

 - amplitudes of vibrato cmds d,e,f have been increased.
 - cmd O0E Fine channel pann Left has replaced Snap to log Porting.
 - cmd O0F Fine channel pann right has replaced Snap to Line Porting.
 - cmd O2 Note delay has replaced Real Frequency Adjust (obsolete)
 - cmd O9 Set channel Echo Feedback Gain has replaced Volume Trough (never used)
 - cmd OB Set channel Echo Delay has replaced Expand Loop (useless cmd)
 - cmd OC Set channel Echo Decay has replaced Collapse Loop (ditto)

 cmd O0D is now not in use. It used to be Invert Funkctrl, which would 
XOR the looping bit, causing looping samples to stop looping.

 - in function "com_null_ctrl", the original Funktracker would run O2
command, and then run CARD_convert_volume instead of CARD_convert_freq. 

 - In function "comi_decode()", the original Funktracker code reset the
note control system whenever a sample only slot had an "i" command in it.
This conflicted with the definition of a "sample only" slot. sample only
slots cannot effect any existing running systems. In the same routine, if 
a RLO was executed, volume porting wouldn't work. Therefore i have modified
the code to comply with the definition. 

 - In function "com_miscrtl", invert funk XOR inverter sets the first byte
of funk_chan[].start to 0. I wouldn't know how it got here. it should be
here. 



                                 ooo0ooo
