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 >
Text File  |  1991-08-29  |  12KB  |  227 lines

  1.                  YAMAHA PATCH EDITOR/LIBRARIAN FOR THE PSS SERIES
  2.  
  3.                                    VERSION 1.0
  4.  
  5.                          copyright 1991 by Mike Silverstein
  6.  
  7.  
  8. Well, here goes!  About 2 and a half years ago I purchased a Yamaha PSS-480
  9. keyboard synthesizer to accompany my new Atari 1040 ST.  I was amazed at the
  10. MIDI capability of this synthesizer which, at the time, cost me a mere 150
  11. bucks.  Six months later, I purchased a modem, joined GEnie, and searched for
  12. anything that would support this synth in both the Atari ST and MIDI
  13. Roundtables.  I found an excellent PD program which would allow you to send a
  14. bulk dump from the synth to the program and it would successfully capture all
  15. the System Exclusive Data (SYSEX) to disk which includes all the voice banks,
  16. memory/chord banks, and custom drummer (somewhere around 13K of MIDI data. 
  17. It was at this point where I became very intrigued in SYSEX stuff and I began
  18. searching for other SYSEX programs, but I could only find demos of
  19. 'Universal' programs like Dr. T's XOR, Hybrid Arts GenEdit, etc.  I even
  20. purchased PixelPro's Superlibrarian which claimed to let you write your own
  21. library routines through a 'simple' interface.  If you ask me, this was 200
  22. dollars worth of nothing but pain and turmoil.  You see, these commercial
  23. universal SYSEX programs are geared towards more expensive synths.  And even
  24. so, what you pay for, you only use about 10% because your setup probably uses
  25. no more than a couple of synths and a drum machine.  None of these programs
  26. support this 'KMART' type of synth (i.e. profiles) and you would have to go
  27. through a lot of nonsense to attempt to write your own profile.  Well, 7
  28. months ago, I joined an IEMUG board and found a European import which
  29. supported the Yamaha PSS series called PSSED.  It works in LOW rez only and
  30. has a real nice graphic interface.  Unfortunately, you can't Quit from it and
  31. the librarian feature doesn't seem to work.  The only thing I'm able to do is
  32. receive the five disk banks and save them all as a set.  Well, now I was
  33. REALLY intrigued.  I'm not sure if these features didn't work because it's
  34. from Europe and the ST's there are different or what.  No way was I able to
  35. contact the author so I finally realized that it's time to say, "The heck
  36. with it!" I'll write my own."  Thus, PSSLIB was born (but much inspired by
  37. PSSED).
  38.  
  39. I was amazed to learn that (only thru software) there's 3 times more
  40. parameters you can edit when building patches.  And having the ST
  41. accompanying you for MIDI work is practically a must have!  After reading
  42. this doc, I hope you enjoy this program as much as I had writing it and using
  43. it!
  44.  
  45. ARCHIVE  CONTENTS
  46.  
  47. You should have the following files in the same directory:
  48.  
  49. PSSLIB.PRG - the PSS Patch Editor/Librarian program
  50. PATCHES.LZH - system archive file used to store and load all work
  51. PSSKEY.PRG - key program to unlock the 'Save' feature
  52. PSSLIB.DOC - this file
  53.  
  54. OLDMIDI.PRG 
  55. NEWMIDI.PRG - external programs used for increasing/restoring the system MIDI
  56.               buffer size
  57.  
  58. LHA.TTP
  59. WHATS.NEW
  60. LHA.MAN
  61. README.1ST - LZH utility + support files
  62.  
  63.  
  64. FEATURES
  65.  
  66. This program was mostly written in GFA BASIC 3.07.  The program is completely
  67. GEM driven and includes online help for basic definitions and patch editing
  68. concepts.
  69.  
  70. Runs in both medium and high resolution on any ST/STe/TT.
  71.  
  72. There are 2 view modes - displaying the buffer in its 'English form' where
  73. everything you edit is summed up in 1 screen display.  The other is viewing
  74. the buffer in hexadecimal form which is what is sent thru the MIDI ports.
  75.  
  76. MIDI Receive Capability - you can receive any sound stored within the 5
  77. banks.  This can be used for obtaining any of the 100 built-in voices and 
  78. modifying it with your own additions.
  79.  
  80. Keyboard Equivalents for every GEM menu drop-down with the exception of
  81. Editing all patch parameters.  
  82.  
  83. LZH Archive storage and retrieval support. This saves a lot of disk storage
  84. space since each patch need only be 64 bytes. Since TOS (like DOS) makes a
  85. file a minimum of 1024 bytes, this was a logical approach.  You can also add
  86. comments to your patch when saving which will also be saved within the
  87. archive.
  88.  
  89. OTHER CONSIDERATIONS
  90.  
  91. I'm not really gonna go into a 'how to run this program' deal.  That's what
  92. the online help is for.  I am going to point out that if you just have a
  93. floppy drive only, the program will run a lot slower so may I suggest a 
  94. 150-200K RAM disk??
  95.  
  96. I chose GFA BASIC because it was simple and straight forward.  The only thing
  97. I had a hard time with was dealing with the MIDI overrun error when receiving
  98. a memory bulk dump from the synth.  The structuring used in C handles this
  99. approach pretty easily so I used Steve Johns MIDI Programming Tips (START
  100. Magazine July, 1990) do deal with this matter.  Yamaha was nice enough to put
  101. the 5 bank patch stuff at the beginning so I made the buffer 512 bytes which
  102. is enough and speeds up the MIDI interrupt service routine.
  103.  
  104. I hope to have provided as much error checking as possible.  If support files
  105. are missing, there should be enough alert boxes that handles each situation.
  106. In the case of receiving MIDI data, once the program is waiting for MIDI data,
  107. that's it!  If you don't do the bulk dump, you'll have to reboot.
  108.  
  109. The purpose of turning off and on some Menu Items was more experimentation on
  110. my part.  Logically, when you start the program, you wouldn't want to save
  111. anything, just like you wouldn't want to load anything after you've just
  112. edited because you haven't heard it yet.  However, you can always choose
  113. 'View' if you always want to be able to select somthing.  I hope this is not
  114. an annoyance but more of an aid.
  115.  
  116. All of the key equivalents override the toggling of menu items, that is, you
  117. can do anything with keys (some have alert boxes to start you off). I've
  118. done this because I'm a firm believer that it is an absolute necessity to have
  119. key equivalents if you're forced to use the keyboard within a program.  I
  120. originally wanted the program to be 100 % mouse driven.  However, since I 
  121. decided to go with archiving files, this does force you to use the keyboard.
  122. This was a tradeoff but I felt it more necessary to go with archives to save
  123. as much disk space possible (I'm kind of a miser in that respect).  Perhaps,
  124. I will figure out how to send all files within an archive to my own buffer,
  125. thus, allowing you to choose the mouse when loading or deleting.
  126.  
  127. The MIDI specs in the Yamaha PSS manual can be pretty confusing. However, it
  128. didn't take long to figure out how to convert the decimal parameters to binary
  129. nibbles (that's  4 bits or half a byte) and vise versa.  GFA's powerful bit
  130. manipulation instructions were a big aid in this effort.  In fact, I can't
  131. recall another BASIC language on any platform that allows bit testing, bit
  132. shifting, etc.  It's the next best thing to C but a whole lot easier to
  133. program!
  134.  
  135.  
  136. QUIRKS AND BUGS
  137.  
  138. I only own a color system but I handled monochrome via an emulator.  I'm not
  139. sure if some displays may come up messy but I did the best I could.  I'm
  140. pretty convinced the program is totally runnable in high rez.
  141.  
  142. The program will automatically quit when selecting a patch that doesn't exit
  143. within the PATCHES.LZH archive (during loading or deleting).  This is due
  144. to a result code from Roger's LHA.  I'm not sure why GFA will auto exit since
  145. I'm just doing an EXEC call and one would think that you would return from
  146. the point where you made the EXEC.  No biggy,  you shouldn't lose any edited
  147. work from this situation.
  148.  
  149. So far, I have found just 2 programs that conflict with PSSLIB.  Neodesk 3
  150. will cause the program to bomb (bus error) when either Loading or Saving to
  151. the system archive file.  It occurs when LHA 'communicates' with the 64 byte
  152. buffer I've allocated which holds all MIDI data parameters. Don't know why
  153. this occurs and I will eventually find out from Gribnif.  Codekeys from
  154. Codehead Software, when installed, interferes with MIDI reception in that 
  155. there are usually checksum errors encountered when attempting to receive a
  156. bank from the Yamaha instrument.  Hey! It's nice to see those error checking
  157. routines doing their thing! And if you look closely at what was received,
  158. 1 or 2 MIDI parameters hold the wrong value.
  159.  
  160. When you choose 'Build Patch', bear in mind that certain parameters are stuck
  161. with some of the Envelope parameters (i.e. Course detune goes with am enable,
  162. decay 1 rate).  Don't know why Yamaha implemented it like that - there's
  163. plenty of 'don't cares' which could have avoided this.  At any rate, the idea
  164. of 'building' is mainly to learn how a patch sound is formed.
  165.  
  166. When using both mouse buttons to exit Help or Editing Parameters, you don't
  167. necessarily have to press them both simulataneously, but rather press 1, then
  168. the other easily.  Occasionally, the GEM pull-down items will get 'stuck'.
  169. In this situation, just press either button and they will reappear.
  170.  
  171. FINAL NOTES
  172.  
  173. I hope you use this program to your enjoyment.  Your Yamaha synth is nothing
  174. fancy and that is why this program is not fancy, but it gets the job done.  I
  175. have included a handful of patches in the archive to get you started with. 
  176. The only thing left is your creativity.  You will find through
  177. experimentation and trial and error that this synth is capable of producing
  178. some pretty nifty sounds.  Some of the more 'eerie' ones sound pretty neat
  179. through your stereo system.
  180.  
  181. A special thanks goes to Roger Burrows for his LHA archiving utility. Please
  182. support him by registering LHA130.
  183.  
  184. Another special thanks goes to Steve Johns of Johnson Software for his
  185. interesting MIDI Programming Tips in START Magazine.
  186.  
  187. Future revisions may include the replacement of the verbose archive with my
  188. own buffer that holds all the archive file contents allowing you to use the
  189. mouse to select a patch.  I am also planning a short Desk Accessory that 
  190. will load patches from the archive file and allow you to send to any bank.
  191. In this way, the librarian feature may be used from inside your favorite
  192. MIDI sequencer. (of course, it must also be GEM compatible).
  193.  
  194. And finally, to my darling wife Carrie and 2 yr. old daughter Brittany, who 
  195. have put up with me these past months while undergoing this 'MIDI obsession.'
  196.  
  197. This DEMO version allows you to do everything except saving your edited work
  198. to the system archive file.  The key program will unlock this feature and
  199. allow you to save your work.  I will give you the code as soon as I receive 
  200. the required shareware fee.  This is done as an incentive!  Support
  201. shareware programs!  Registered users will get full support as well as the
  202. GFA source code (with additional postage/handling fees).
  203.  
  204.  
  205. This program is shareware and copyrighted!  Please feel free to distribute it
  206. so long as all support documentation is included (that means all of the LHA
  207. documentation as well).  For full support and encouragement to enhance this
  208. software as well as a complete GFA BASIC source code listing, I would
  209. appreciate a $7 shareware fee or a $10 Gift of Time on GEnie.  In addition,
  210. to get the source code, please send a blank disk with a self-addressed
  211. stamped envelope (meaning you pay all postage and handling) to:
  212.  
  213.                              Mike Silverstein
  214.                              555 Rosewood Ave. #306
  215.                              Camarillo, CA 93010
  216.  
  217. Don't forget to download the freeware program: YAMV_ED Voice and Style
  218. Selector.  This program lets you select any voice or rhythm via color menu
  219. displays.  It also remembers what you've selected and auto-switches each
  220. voice and rhythm in 'pseudo' real time when playing the Yamaha synthesizer.
  221. Search for PSS on GEnie to get the file (it's in the ST Library as well as
  222. the MIDI library.)
  223.  
  224. Enjoy!
  225.  
  226. Mike Silverstein
  227.