home *** CD-ROM | disk | FTP | other *** search
- 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
-