home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GEMini Atari
/
GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso
/
files
/
music
/
psslib
/
psslib.doc
< prev
next >
Wrap
Text File
|
1991-08-29
|
12KB
|
227 lines
YAMAHA PATCH EDITOR/LIBRARIAN FOR THE PSS SERIES
VERSION 1.0
copyright 1991 by Mike Silverstein
Well, here goes! About 2 and a half years ago I purchased a Yamaha PSS-480
keyboard synthesizer to accompany my new Atari 1040 ST. I was amazed at the
MIDI capability of this synthesizer which, at the time, cost me a mere 150
bucks. Six months later, I purchased a modem, joined GEnie, and searched for
anything that would support this synth in both the Atari ST and MIDI
Roundtables. I found an excellent PD program which would allow you to send a
bulk dump from the synth to the program and it would successfully capture all
the System Exclusive Data (SYSEX) to disk which includes all the voice banks,
memory/chord banks, and custom drummer (somewhere around 13K of MIDI data.
It was at this point where I became very intrigued in SYSEX stuff and I began
searching for other SYSEX programs, but I could only find demos of
'Universal' programs like Dr. T's XOR, Hybrid Arts GenEdit, etc. I even
purchased PixelPro's Superlibrarian which claimed to let you write your own
library routines through a 'simple' interface. If you ask me, this was 200
dollars worth of nothing but pain and turmoil. You see, these commercial
universal SYSEX programs are geared towards more expensive synths. And even
so, what you pay for, you only use about 10% because your setup probably uses
no more than a couple of synths and a drum machine. None of these programs
support this 'KMART' type of synth (i.e. profiles) and you would have to go
through a lot of nonsense to attempt to write your own profile. Well, 7
months ago, I joined an IEMUG board and found a European import which
supported the Yamaha PSS series called PSSED. It works in LOW rez only and
has a real nice graphic interface. Unfortunately, you can't Quit from it and
the librarian feature doesn't seem to work. The only thing I'm able to do is
receive the five disk banks and save them all as a set. Well, now I was
REALLY intrigued. I'm not sure if these features didn't work because it's
from Europe and the ST's there are different or what. No way was I able to
contact the author so I finally realized that it's time to say, "The heck
with it!" I'll write my own." Thus, PSSLIB was born (but much inspired by
PSSED).
I was amazed to learn that (only thru software) there's 3 times more
parameters you can edit when building patches. And having the ST
accompanying you for MIDI work is practically a must have! After reading
this doc, I hope you enjoy this program as much as I had writing it and using
it!
ARCHIVE CONTENTS
You should have the following files in the same directory:
PSSLIB.PRG - the PSS Patch Editor/Librarian program
PATCHES.LZH - system archive file used to store and load all work
PSSKEY.PRG - key program to unlock the 'Save' feature
PSSLIB.DOC - this file
OLDMIDI.PRG
NEWMIDI.PRG - external programs used for increasing/restoring the system MIDI
buffer size
LHA.TTP
WHATS.NEW
LHA.MAN
README.1ST - LZH utility + support files
FEATURES
This program was mostly written in GFA BASIC 3.07. The program is completely
GEM driven and includes online help for basic definitions and patch editing
concepts.
Runs in both medium and high resolution on any ST/STe/TT.
There are 2 view modes - displaying the buffer in its 'English form' where
everything you edit is summed up in 1 screen display. The other is viewing
the buffer in hexadecimal form which is what is sent thru the MIDI ports.
MIDI Receive Capability - you can receive any sound stored within the 5
banks. This can be used for obtaining any of the 100 built-in voices and
modifying it with your own additions.
Keyboard Equivalents for every GEM menu drop-down with the exception of
Editing all patch parameters.
LZH Archive storage and retrieval support. This saves a lot of disk storage
space since each patch need only be 64 bytes. Since TOS (like DOS) makes a
file a minimum of 1024 bytes, this was a logical approach. You can also add
comments to your patch when saving which will also be saved within the
archive.
OTHER CONSIDERATIONS
I'm not really gonna go into a 'how to run this program' deal. That's what
the online help is for. I am going to point out that if you just have a
floppy drive only, the program will run a lot slower so may I suggest a
150-200K RAM disk??
I chose GFA BASIC because it was simple and straight forward. The only thing
I had a hard time with was dealing with the MIDI overrun error when receiving
a memory bulk dump from the synth. The structuring used in C handles this
approach pretty easily so I used Steve Johns MIDI Programming Tips (START
Magazine July, 1990) do deal with this matter. Yamaha was nice enough to put
the 5 bank patch stuff at the beginning so I made the buffer 512 bytes which
is enough and speeds up the MIDI interrupt service routine.
I hope to have provided as much error checking as possible. If support files
are missing, there should be enough alert boxes that handles each situation.
In the case of receiving MIDI data, once the program is waiting for MIDI data,
that's it! If you don't do the bulk dump, you'll have to reboot.
The purpose of turning off and on some Menu Items was more experimentation on
my part. Logically, when you start the program, you wouldn't want to save
anything, just like you wouldn't want to load anything after you've just
edited because you haven't heard it yet. However, you can always choose
'View' if you always want to be able to select somthing. I hope this is not
an annoyance but more of an aid.
All of the key equivalents override the toggling of menu items, that is, you
can do anything with keys (some have alert boxes to start you off). I've
done this because I'm a firm believer that it is an absolute necessity to have
key equivalents if you're forced to use the keyboard within a program. I
originally wanted the program to be 100 % mouse driven. However, since I
decided to go with archiving files, this does force you to use the keyboard.
This was a tradeoff but I felt it more necessary to go with archives to save
as much disk space possible (I'm kind of a miser in that respect). Perhaps,
I will figure out how to send all files within an archive to my own buffer,
thus, allowing you to choose the mouse when loading or deleting.
The MIDI specs in the Yamaha PSS manual can be pretty confusing. However, it
didn't take long to figure out how to convert the decimal parameters to binary
nibbles (that's 4 bits or half a byte) and vise versa. GFA's powerful bit
manipulation instructions were a big aid in this effort. In fact, I can't
recall another BASIC language on any platform that allows bit testing, bit
shifting, etc. It's the next best thing to C but a whole lot easier to
program!
QUIRKS AND BUGS
I only own a color system but I handled monochrome via an emulator. I'm not
sure if some displays may come up messy but I did the best I could. I'm
pretty convinced the program is totally runnable in high rez.
The program will automatically quit when selecting a patch that doesn't exit
within the PATCHES.LZH archive (during loading or deleting). This is due
to a result code from Roger's LHA. I'm not sure why GFA will auto exit since
I'm just doing an EXEC call and one would think that you would return from
the point where you made the EXEC. No biggy, you shouldn't lose any edited
work from this situation.
So far, I have found just 2 programs that conflict with PSSLIB. Neodesk 3
will cause the program to bomb (bus error) when either Loading or Saving to
the system archive file. It occurs when LHA 'communicates' with the 64 byte
buffer I've allocated which holds all MIDI data parameters. Don't know why
this occurs and I will eventually find out from Gribnif. Codekeys from
Codehead Software, when installed, interferes with MIDI reception in that
there are usually checksum errors encountered when attempting to receive a
bank from the Yamaha instrument. Hey! It's nice to see those error checking
routines doing their thing! And if you look closely at what was received,
1 or 2 MIDI parameters hold the wrong value.
When you choose 'Build Patch', bear in mind that certain parameters are stuck
with some of the Envelope parameters (i.e. Course detune goes with am enable,
decay 1 rate). Don't know why Yamaha implemented it like that - there's
plenty of 'don't cares' which could have avoided this. At any rate, the idea
of 'building' is mainly to learn how a patch sound is formed.
When using both mouse buttons to exit Help or Editing Parameters, you don't
necessarily have to press them both simulataneously, but rather press 1, then
the other easily. Occasionally, the GEM pull-down items will get 'stuck'.
In this situation, just press either button and they will reappear.
FINAL NOTES
I hope you use this program to your enjoyment. Your Yamaha synth is nothing
fancy and that is why this program is not fancy, but it gets the job done. I
have included a handful of patches in the archive to get you started with.
The only thing left is your creativity. You will find through
experimentation and trial and error that this synth is capable of producing
some pretty nifty sounds. Some of the more 'eerie' ones sound pretty neat
through your stereo system.
A special thanks goes to Roger Burrows for his LHA archiving utility. Please
support him by registering LHA130.
Another special thanks goes to Steve Johns of Johnson Software for his
interesting MIDI Programming Tips in START Magazine.
Future revisions may include the replacement of the verbose archive with my
own buffer that holds all the archive file contents allowing you to use the
mouse to select a patch. I am also planning a short Desk Accessory that
will load patches from the archive file and allow you to send to any bank.
In this way, the librarian feature may be used from inside your favorite
MIDI sequencer. (of course, it must also be GEM compatible).
And finally, to my darling wife Carrie and 2 yr. old daughter Brittany, who
have put up with me these past months while undergoing this 'MIDI obsession.'
This DEMO version allows you to do everything except saving your edited work
to the system archive file. The key program will unlock this feature and
allow you to save your work. I will give you the code as soon as I receive
the required shareware fee. This is done as an incentive! Support
shareware programs! Registered users will get full support as well as the
GFA source code (with additional postage/handling fees).
This program is shareware and copyrighted! Please feel free to distribute it
so long as all support documentation is included (that means all of the LHA
documentation as well). For full support and encouragement to enhance this
software as well as a complete GFA BASIC source code listing, I would
appreciate a $7 shareware fee or a $10 Gift of Time on GEnie. In addition,
to get the source code, please send a blank disk with a self-addressed
stamped envelope (meaning you pay all postage and handling) to:
Mike Silverstein
555 Rosewood Ave. #306
Camarillo, CA 93010
Don't forget to download the freeware program: YAMV_ED Voice and Style
Selector. This program lets you select any voice or rhythm via color menu
displays. It also remembers what you've selected and auto-switches each
voice and rhythm in 'pseudo' real time when playing the Yamaha synthesizer.
Search for PSS on GEnie to get the file (it's in the ST Library as well as
the MIDI library.)
Enjoy!
Mike Silverstein