home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 2 / crawlyvol2.bin / sound / psslib2 / psslib.doc < prev    next >
Text File  |  1994-05-08  |  29KB  |  586 lines

  1.             YAMAHA PATCH EDITOR/LIBRARIAN FOR THE PSS SERIES
  2.  
  3.                              VERSION 2.0
  4.  
  5.             copyright 1991, 1993, 1994  by Mike Silverstein
  6.   
  7.  
  8. Well, here goes!  About 5 years ago I purchased a Yamaha PSS-480
  9. keyboard synthesizer to accompany my new Atari 1040 ST.  I was amazed
  10. at the MIDI capability of this synthesizer which, at the time, cost me
  11. a mere 150 bucks.  Six months later, I purchased a modem, joined
  12. GEnie, and searched for anything that would support this synth in both
  13. the Atari ST and MIDI Roundtables.  I found an excellent PD program
  14. which would allow you to send a bulk dump from the synth to the
  15. program and it would successfully capture all the System Exclusive
  16. Data (SYSEX) to disk which includes all the voice banks, memory/chord
  17. banks, and custom drummer (somewhere around 13K of MIDI data).
  18.  
  19. It was at this point where I became very intrigued in SYSEX stuff and
  20. I began searching for other SYSEX programs, but I could only find
  21. demos of 'Universal' programs like Dr. T's XOR, Hybrid Arts GenEdit,
  22. etc.  I even purchased PixelPro's Superlibrarian which claimed to let
  23. you write your own library routines through a 'simple' interface.  If
  24. you ask me, this was 200 dollars worth of nothing but pain and
  25. turmoil.  You see, these commercial universal SYSEX programs are
  26. geared towards more expensive synths.  And even so, what you pay for,
  27. you only use about 10% because your setup probably uses no more than a
  28. couple of synths and a drum machine.  None of these programs support
  29. this 'KMART' type of synthesizer (i.e.  profiles) and you would have
  30. to go through a lot of nonsense to attempt to write your own profile.
  31.  
  32. Well, I eventually joined an IEMUG board and found a European import
  33. which supported the Yamaha PSS series called PSSED.  It worked in ST
  34. LOW rez only and had a real nice graphic interface.  Unfortunately,
  35. the 'Quit' function and the librarian feature didn't seem to work.
  36. The only possible thing to do was receive the five patch banks and
  37. save them all as a set.  Well, now I was REALLY intrigued.  I'm not
  38. sure if these features didn't work because it's from Europe and the
  39. ST's there are different or what.  No way was I able to contact the
  40. author so I finally realized that it was time to say, "The heck with
  41. it!" I'll write my own."  Thus, PSSLIB was born (but much inspired by
  42. PSSED).
  43.  
  44. I was amazed to learn that (only thru software) there's 3 times more
  45. parameters you can edit when building patches.  And having the ST
  46. accompanying you for MIDI work is practically a must have!  After
  47. reading this doc, I hope you enjoy this program as much as I had
  48. writing it and using it! 
  49.  
  50. The original version of PSSLIB goes back to late 1990/early 1991 when
  51. the Yamaha PortaSounds were more popular.  But even now (1994), I
  52. still enjoy the original AM/FM tone generaration/synthesis sounds vs.
  53. what the newer synths offer via Pulse Code modulation.  Although these
  54. synths are outdated, there are still many in use today and I still
  55. believe that they are good MIDI synthesizers, especially for beginners
  56. to the MIDI arena who don't want a lot of fancy controls/gizmos.
  57.  
  58. =========================================================================
  59.  
  60. NEW IN VERSION 1.1 (DEC 1991)
  61.  
  62. Since 2 years have gone by since the original release, I haven't
  63. really done anything exciting since I've been using my ST on other
  64. ventures.  However, I have added Active Sensing capability and you'll
  65. notice that if your MIDI cables are not hooked up right or your PSS is
  66. turned off, you will not be able to send or receive MIDI data (makes
  67. sense, doesn't it??).  I haven't come across one MIDI program which
  68. uses this feature and since it is in the MIDI spec, why not be the
  69. first person to implement it (GEMwise, that is!).
  70.  
  71. I have also deleted the necessity of the OLDMIDI/NEWMIDI external
  72. files which expanded the system MIDI buffer; this is now done in the
  73. GFA source code.  
  74.  
  75. I have also "channelized" the 5 banks whenever a program change is
  76. performed as opposed to Version 1.0 which just sent all patches on
  77. channel 1.  Now, Bank 4 will be transmitted on Channel 4. This works
  78. for both sending and receiving and adds some MIDI mechanization when
  79. sequencing.  
  80.  
  81. Finally, I have made the LZH archive capability more versatile when
  82. other Accessories or programs are running simultaneously. Thanx to
  83. help from GEnie members in the GFA Basic topic, I have learned how to
  84. be more efficient with memory mangement and have gotten rid of the
  85. RESERVE command when performing an EXEC call to the LHA.TTP program.
  86. I have used the $m command and reserved 50K bytes which handles the
  87. PSSLIB and LHA applications with no problems.  I have also tested this
  88. with a Falcon030 and it runs fine (and no, I don't own one yet -
  89. uggh!)
  90.  
  91. The most important thing is that I have decided to let this program
  92. package be freeware although you are still encouraged to send the
  93. donation.  I have also included the Source Code and all programmers
  94. can feel free to see the internals of the patch editor/librarian
  95. features.  It is heavily commented and very straightforward
  96. programming.  I have also included the source to the PSSKEY and you
  97. can see how the code word was implemented.  Basically, if you modify
  98. the source, you need to use a hex editor (i.e. LookIt from Codehead or
  99. Edhak from Clear Thinking) to find the keyword and then use the 2
  100. decimal offsets and replace them in the PSSKEY source (this is on the
  101. actual executable PSSLIB.PRG - make sure it is unsquished or unpacked
  102. when you perform the search). Oh, BTW, the key word is 'midilation'.
  103.  
  104. ========================================================================
  105.  
  106. NEW IN VERSION 1.5 (FEB 1993)
  107.  
  108. It was discovered that the 50K used in the $m compiler command was
  109. slightly lower than I originally tested.  After receiving SYSEX data,
  110. certain help dialog boxes would not operate and certain file
  111. functions (i.e. save patch) would not work. A GFA Error 8 would occur
  112. which indicates memory is full.  I've increased this size to 100K
  113. which means other programs and DA's will have 50K less memory than
  114. before.  The current version now takes about 220K of memory which is
  115. still better than the original which sucked up everything it could
  116. grab.
  117.  
  118. I have also compiled the PRG with the Interrupts Option flag (I+) set.
  119. This has eliminated some checksum errors involved when receiving MIDI
  120. and assists with the system overhead when many TSR applications are
  121. loaded in the ST AUTO folder.  I used to have these checksum errors
  122. with both Codekeys and Hotwire from Codehead Technologies and this
  123. option appears to eliminate the checksum errors (we're talking maybe 1
  124. bit of 1 byte of data would be incorrect.)
  125.  
  126. ==========================================================================
  127.  
  128. USING CODEHEAD'S MIDI SPY WITH PSSLIB
  129.  
  130. Note for all ST MIDI people:  I have recently purchased the MIDI Spy
  131. / MIDIMAX package from the Codehead's and, I must say, is an excellent
  132. addition to your software collection.  MIDI Spy's SYSEX capabilities
  133. compliment PSSLIB giving you the capability to send all patches to the
  134. PSS in MIDI Spy's MIDIMAX Mode.  I don't have to worry about writing a
  135. separate Desk Accessory since MIDI Spy does this already!  For those
  136. interested, I wrote a very commendable review in the December 1993
  137. issue of ST Informer (hey, I finally made the big time!) so feel free
  138. to read about it there.
  139.  
  140. With MIDI Spy running in the background, you will be able to load
  141. patches and send them to a bank on the synthesizer and MIDI Spy will
  142. capture this (as a Song) in it's internal buffer.  It is a requirement
  143. to have the MIDIMAX button enabled in MIDI Spy's configuration,
  144. otherwise, PSSLIB will not be able to send any data since MIDI Spy
  145. disregards Active Sensing, thus, PSSLIB's MIDI functions will be
  146. disabled.  To conclude, the MIDIMAX button in MIDI Spy may be
  147. considered as 'Communicate with PSSLIB' (or other MIDI programs as
  148. well).  If you don't want to capture ala MIDI Spy but it just happens
  149. to be there, you can always disable the MIDI IN button in MIDI Spy
  150. which will allow the active sensing to turn on.
  151.  
  152. Once SYSEX data is captured to MIDI Spy, you can do all sorts of
  153. things.  Disable the MIDIMAX button and start recording stuff (with
  154. 'Thru' on and the Yamaha PSS in MIDI mode [c.99 - sound source].
  155. Assign the voice/channel via the bank number of what you sent via
  156. PSSLIB.  (i.e. bank 3 would be voice 102, channel 3).  After you've
  157. recorded your song and save it, the SYSEX transmission to send the
  158. patch is embedded in the song file!  This is a convenient way to save
  159. your SYSEX patches as .MID Standard MIDI files to be used with other
  160. ST sequencers (i.e. Omega 2 from Dr. T, Cubase from Steinberg, etc.).
  161.  
  162. It is best to place all your embedded patches at the beginning (as
  163. opposed to within a song).  For some bizarre reason, although the
  164. SYSEX transmission is usually successful, there is a 3-4 second delay
  165. requirement between each SYSEX message so you'll need to embed this
  166. with your sequencer.  The Yamaha's internal processor must need this
  167. time to properly set the tone generator's correctly.
  168.  
  169. I have also noticed that PSSLIB MIDI receive functions do not work
  170. well with MIDI Spy running in the background due to MIDI Spy's
  171. overhead in the system.  You usually will get checksum error's so its
  172. best to not use MIDI Spy with PSSLIB if you plan on receiving patches.
  173. The same thing applies to other programs like MultiTOS, Geneva.  Bear
  174. in mind that I use a standard 8 Mhz 1040 STfm 4 Meg system.  Perhaps the
  175. receive functions work with an accelerated ST/STe/TT or Falcon030.
  176.        
  177. Both MIDI Spy/MIDIMAX may be purchased from Codehead Technologies for
  178. $99.95 or MIDI Spy (alone) for $79.95.  Believe me, they're well
  179. worth the price.  Here's how to order:
  180.  
  181.           CodeHead Technologies
  182.           P.O. Box 74090
  183.           Los Angeles, CA 90004
  184.  
  185.           Voice: (213) 386-5735
  186.           Fax:   (213) 386-5789
  187.           BBS:   (213) 461-2095
  188.  
  189.  
  190. ==========================================================================
  191.  
  192. NEW IN VERSION 2.0  (APRIL 1994)
  193.  
  194. SYSEX FILES
  195.  
  196. I've added a lot of new features to PSSLIB.  The 1st feature is the
  197. ability to IMPORT/EXPORT a SYSEX file.  I've decided to include this
  198. because I've noticed that there are other programs available which
  199. deal with SYSEX stuff and it wasn't too painful to implement this.  I
  200. still promote the internal LZH archive method since patch files are
  201. so small and don't need to be considered 1K in size to the system,
  202. wasting "valuable" disk space.  However, storage is getting cheap
  203. nowadays and I've reasoned that there are practical uses in keeping a
  204. patch as a separate file.  
  205.  
  206. I know of 2 programs which use embedded SYSEX files: The newest
  207. version of Dave Henry's shareware MIDI Music Maker (MMM) and ST MIDIEX
  208. by Harry Wootan of Polk Products (both GFA programs I might add).  I
  209. have added these functions to PSSLIB's online help to learn more about
  210. them.  I have also included several SYSEX (.SYX) in a separate PATCHES
  211. Directory.  The number in the file corresponds to the synth bank
  212. embedded within the file.
  213.  
  214. Note that when you save a patch, one gets saved (with comments) to the
  215. LZH archive and you are given a choice as to export a new .SYX file
  216. with the same name you provided for the patch.  
  217.  
  218. You must also realize that PSSLIB's buffer only represents current
  219. data from the LZH archive only and that import/export bypasses this.
  220. I've made sure that if you use the 'Load Patch' selection and enter a
  221. .SYX file in the file selector, an error message alerts you of your
  222. mistake.  At this point if you View the Buffer as Hex data, you will
  223. see that the box looks funny and some bytes have 3 characters which is
  224. a definite suggestion that the data is bad.  Doing a 'Send Bank'
  225. selection will always cause a transmission error (Hey, this is a good
  226. way to check that your 'ERR' display function is working on your PSS).
  227.  
  228. It is also important to explain the difference between the MIDI data
  229. in PSSLIB's buffer vs. the data in a .SYX patch file.  The buffer
  230. contains 64 bytes which does not include any SYSEX header/trailer
  231. information.  The .SYX file contains 72 bytes which includes the Start
  232. of Sysex (F0 hex), followed by the MIDI Instument ID for Yamaha (43
  233. hex), followed by the Instrument Class (76 hex), followed by the
  234. SYSEX mode (00 hex for patches), followed by the bank number.  The
  235. trailer information includes an embedded checksum and the End of
  236. SYSEX message (F7 hex).  At the time you load an existing patch from
  237. the archive, you are given a choice of 5 banks to send the data.
  238. Therefore, to save (export) to a SYSEX file you must first send it to
  239. the desired bank and then receive from that same bank.  Here's an
  240. example:
  241.  
  242. Let's say you want to have the WIRY2 patch (bank 2/channel 2)to be
  243. used on bank 4/ channel 4 (WIRY4). You would:
  244.  
  245.     a) Load Patch and enter WIRY2 in File Selector
  246.     b) Send to Bank 4
  247.     c) Receive from Bank 4
  248.     d) Save Patch as WIRY4 and export it.
  249.  
  250. If you disregard steps b and c (that is, don't send and receive), the
  251. patch you save/export will include the wrong bank and no embedded
  252. checksum, therefore, you will definitely get a MIDI Transmission
  253. error when using this .SYX file, elsewhere.
  254.  
  255. CUSTOM DRUMMER
  256.  
  257. PSSLIB now supports the programmable CUSTOM DRUMMER which is part of
  258. the Yamaha PortaSound's internal drum machine.  To review how to use
  259. it: make sure the PSS is in MIDI mode [c.00 - keyboard assign mode],
  260. pick 1 of the 100 internal Styles and press the 'Program/End' button
  261. underneath 'Custom Drummer' on the PSS.  You can now edit the style by
  262. Clearing/Accenting/Rolling with the MIDI C1/D1/E1 keys (at the very
  263. left) and selecting the drum note with the MIDI keys (E4 - C5) at the
  264. very right of the keyboard. (Note - this may not be the same for the
  265. PSS-680 but I don't own that so you'll have to consult your manual).
  266. After editing, you can always play it back via the green button 'Play
  267. On/Off'.  To save it to disk, use the Export Drummer selection and it
  268. will be saved as a .SYX file.  Since the Custom Drummer SYSEX Message
  269. is the very last message defined for the PSS, the internal MIDI
  270. receive buffer is temporarily adjusted to 13.8 Kbytes, therefore,
  271. taking a lot more time to receive the data.  They should have put it
  272. after the Patch SYSEX messages at the beginning.
  273.  
  274. You can load the Drummer SYSEX data back via Import .SYX just like
  275. patches (and/or use it with other MIDI compatible programs).  I have
  276. included several modified Styles in a separate DRUMMER directory.  As
  277. long as you're in mode [c.00] and the Custom Drummer 'Play On/Off'
  278. button is enabled, you can cycle thru the various drum creations you
  279. saved since PSSLIB automatically sends MIDI Start/Stop commands when
  280. interfacing to the drum machine.
  281.  
  282. Once again, a reminder: don't use 'Load Patch' for loading SYSEX drum
  283. files (690 bytes).  Sending this data will cause transmission errors.
  284.  
  285. AUDITION MODE
  286.  
  287. As promised, I have implemented an audition mode feature when either
  288. sending data to a bank or importing a .SYX file.  It will always cause
  289. three MIDI notes to play, thus, allowing you to hear your patch
  290. creations to get it to sound the way you like before saving them to
  291. disk.  Initially selecting this mode via the mouse/menu will cause a
  292. new dialog to allow you to enter 4 possible DELAY intervals between
  293. notes.  You would use short delays for patches whose envelope
  294. parameters contain high attack rates, decay rates, and sustain rates.
  295. You would use longer delays for patches with lower envelope values. I
  296. have chosen MIDI notes C1, C3 and C5 so that 3 distinct octaves may
  297. be heard, thus, aiding you in defining LKS/RKS (Level/Rate Key
  298. Scaling) patch parameters.  To disable Audition Mode, you may uncheck
  299. it again.  Once again, I have added this to the on-line help.
  300.  
  301. Because the dialog box may be awkward to some users, I have provided
  302. a keyboard equivalent approach to the audition mode as well.  Note
  303. that a Custom Drummer file is always "auditioned" regardless of the
  304. mode as long as your PSS is in MIDI mode [c.00].
  305.  
  306. OTHER STUFF
  307.  
  308. Other changes to PSSLIB: 
  309.  
  310. - increased the memory allocation to allow for all the new features.
  311.   PSSLIB now consumes about 280K of memory.
  312.  
  313. - Active sensing now uses the AES libraries to pause for the required
  314.   300 milliseconds.  This speeds up all the commands, especially,
  315.   using the mouse/menus.
  316.  
  317. - provided key equivalents to all new features. Selecting 'K' will
  318.   display a summary of all new key commands.
  319.  
  320. - adjusted hi rez help screens for monochrome users.  The text should
  321.   be more readable now.  
  322.  
  323. - PSSLIB will no longer exit if you type in an incorrect patch file
  324.   when loading a patch.  You will get a 'File Doesn't Exist' message
  325.   and the File Selector will allow you to re-enter the correct name.
  326.   Use the Verbose command to find the right name.  This works for
  327.   importing SYSEX files, as well.
  328.  
  329. ==========================================================================
  330.  
  331. ARCHIVE  CONTENTS
  332.  
  333. You should have the following files in the same directory:
  334.  
  335. PSSLIB.PRG - the PSS Patch Editor/Librarian program
  336. PSSLIB.LST - source code in GFA BASIC
  337. PATCHES.LZH - system archive file used to store and load all work
  338. PSSKEY.PRG - key program to unlock the 'Save' feature
  339. PSSKEY.LST - source code in GFA BASIC 
  340. PSSLIB.DOC - this file
  341.  
  342. LHA.TTP
  343. WHATS.NEW
  344. LHA.MAN
  345. README.1ST - LZH utility + support files
  346.  
  347. A sub-directory (PATCHES) containing several .SYX patch files.
  348. A sub-directory (DRUMMER) containing several .SYX drummer files.
  349.  
  350. ==========================================================================
  351.  
  352. FEATURES
  353.  
  354. This program was written in GFA BASIC 3.07.  The program is completely
  355. GEM driven and includes online help for basic definitions and patch
  356. editing concepts.
  357.  
  358. Runs in both medium and high resolution on any STf/STe/Falcon030 (1Meg
  359. minimum). Not sure about TT030.
  360.  
  361. There are 2 view modes - displaying the buffer in its 'English form'
  362. where everything you edit is summed up in 1 screen display.  The other
  363. is viewing the buffer in hexadecimal form which is what is sent thru
  364. the MIDI ports.
  365.  
  366. MIDI Receive Capability - you can receive any sound stored within the
  367. 5 banks.  This can be used for obtaining any of the 100 built-in
  368. voices and modifying it with your own additions.
  369.  
  370. Keyboard Equivalents for every GEM menu drop-down with the exception
  371. of Editing all patch parameters. The mouse is used extensively here.
  372. The left button will increase and the right button will decrease a
  373. patch parameter.  Both Buttons will always bring you back to the GEM
  374. Menus.
  375.  
  376. LZH Archive storage and retrieval support. This saves a lot of disk
  377. storage space since each patch need only be 64 bytes. Since TOS (like
  378. MSDOS) makes a file a minimum of 1024 bytes, this was a logical
  379. approach.  You can also add comments to your patch when saving which
  380. will also be saved within the archive.
  381.  
  382. ==========================================================================
  383.  
  384. OTHER CONSIDERATIONS
  385.  
  386. I'm not really gonna go into a 'how to run this program' deal.  That's
  387. what the online help is for.  I am going to point out that if you just
  388. have a floppy drive only, the program will run a lot slower so may I
  389. suggest a  300K - 400K  RAM disk??
  390.  
  391. I chose GFA BASIC because it was simple and straight forward.  The
  392. only thing I had a hard time with was dealing with the MIDI overrun
  393. error when receiving a memory bulk dump from the synth.  Yamaha was
  394. nice enough to put the 5 bank patch stuff at the beginning so I made
  395. the buffer 512 bytes which is enough and speeds up the MIDI interrupt
  396. service routine.
  397.  
  398. I hope to have provided as much error checking as possible.  If
  399. support files are missing, there should be enough alert boxes that
  400. handles each situation.  In the case of receiving MIDI data, once the
  401. program is waiting for MIDI data, that's it!  If you don't do the bulk
  402. dump, you'll have to reboot.  However, you will not get to this point
  403. unless your MIDI connections are valid and your PSS is powered on.
  404.  
  405. The purpose of turning off and on some Menu Items was more
  406. experimentation on my part.  Logically, when you start the program,
  407. you wouldn't want to save anything, just like you wouldn't want to
  408. load anything after you've just edited because you haven't heard it
  409. yet.  However, you can always choose 'View' if you always want to be
  410. able to select something.  I hope this is not an annoyance but more of
  411. an aid.
  412.  
  413. All of the key equivalents override the toggling of menu items, that
  414. is, you can do anything with keys (some have alert boxes to start you
  415. off).  I've done this because I'm a firm believer that it is an
  416. absolute necessity to have key equivalents if you're forced to use the
  417. keyboard within a program.  I originally wanted the program to be 100
  418. % mouse driven.  However, since I  decided to go with archiving files,
  419. this does force you to use the keyboard.  This was a tradeoff but I
  420. felt it more necessary to go with archives to save as much disk space
  421. possible (I'm kind of a miser in that respect). I may experiment and
  422. see if I can get the patch file into a box graphic to allow 100 %
  423. mouse capability.  But then again....................
  424.  
  425. The MIDI specs in the Yamaha PSS manual can be pretty confusing.
  426. However, it didn't take long to figure out how to convert the decimal
  427. parameters to binary nibbles (that's 4 bits or half a byte) and vice
  428. versa.  GFA's powerful bit manipulation instructions were a big aid in
  429. this effort.  In fact, I can't recall another BASIC language on any
  430. platform that allows bit testing, bit shifting, etc.  It's the next
  431. best thing to C but a whole lot easier to program!
  432.  
  433. Since there is a 50 character limitation when providing comments to
  434. your saved patch, here is a short glossary of SYSEX acronyms which I
  435. use which you can use as a reference:
  436.  
  437. atk - attack rate
  438. dcr - decay rate 
  439. dcl - decay level
  440. mod - modulator
  441. car - carrier
  442. freq - frequency
  443. LKS - Level Key Scaling
  444. RKS - Rate Key Scaling
  445. rr - release rate
  446. ss - sustain rate
  447.  
  448. Feel free to use your own nomenclature to your own preferences when
  449. describing your patch sounds.
  450.  
  451. There has been some confusion concerning the 2 distinct MIDI modes on
  452. the Yamaha Portasound.  You would use Mode [c.00 - Keyboard Assign
  453. Mode] to play the synth by itself, rhythm machine and all.  You select
  454. a voice or bank and it plays - simple.  Mode [c.99 - Sound Source] is
  455. used only with a Program supporting MIDI Echo or MIDI Thru capability,
  456. turning the PSS into a 12 note polyphonic multitimbral keyboard so you
  457. can hear many voices/banks simultaneously (so long as there are no
  458. more than 12 on together).  For all intent purposes, you should use
  459. Mode [c.00] with PSSLIB since we're assigning and playing back one
  460. sound at a time. It is also the only way to deal with the Custom
  461. Drummer and the audition feature will not adjust to the right sound
  462. unless mode [c.00] is used.
  463.  
  464. Note that with the Audition mode turned on, if you don't happen to be
  465. looking at the PSS when sending MIDI data and there is a transmission
  466. error, the sound you'll hear we'll be one of the first five default
  467. voices (00 - 04) depending on the bank that was sent.
  468.  
  469. ==========================================================================
  470.  
  471. QUIRKS AND BUGS
  472.  
  473. I only own a color system but I handled monochrome via an emulator.
  474. I'm not sure if some displays may come up messy but I did the best I
  475. could.  I'm pretty convinced the program is totally runnable in high
  476. rez.
  477.  
  478. Codekeys from Codehead Software, when installed, interferes with MIDI
  479. reception in that there are usually checksum errors encountered when
  480. attempting to receive a bank from the Yamaha instrument.  I was told
  481. they use the same Keyboard/MIDI interrupt coming from the ACIA chip
  482. which was an Atari design flaw.  Hey! It's nice to see those error
  483. checking routines doing their thing! And if you look closely at what
  484. was received, 1 or 2 MIDI parameters hold the wrong value.  This same
  485. concept applies to Geneva/MultiTOS or if there is a lot of system
  486. overhead due to Desk Accessories.  It is for this reason that I
  487. personally prefer Hotwire from the Codeheads as my shell/desktop
  488. since running stuff from Hotwire seems to eliminate these overhead
  489. problems.
  490.  
  491. When you choose 'Build Patch', bear in mind that certain parameters
  492. are stuck with some of the Envelope parameters (i.e. Course detune
  493. goes with am enable, decay 1 rate).  Don't know why Yamaha implemented
  494. it like that - there's plenty of 'don't cares' which could have
  495. avoided this.  At any rate, the idea of 'building' is mainly to learn
  496. how a patch sound is formed.
  497.  
  498. When using both mouse buttons to exit Help or Editing Parameters, you
  499. don't necessarily have to press them both simulataneously, but rather
  500. press 1, then the other easily.  Occasionally, the GEM pull-down items
  501. will get 'stuck'.  In this situation, just press either button and
  502. they will reappear.
  503.  
  504. ==========================================================================
  505.  
  506. FINAL NOTES
  507.  
  508. I hope you use this program to your enjoyment.  Your Yamaha synth is
  509. nothing fancy and that is why this program is not fancy, but it gets
  510. the job done.  I have included a handful of patches in the archive to
  511. get you started with.  The only thing left is your creativity.  You
  512. will find through experimentation and trial and error that this synth
  513. is capable of producing some pretty nifty sounds.  Some of the more
  514. 'eerie' ones sound pretty neat through your stereo system.  My setup
  515. includes a 'Y' stereo adapter cable attached to the Headphone input
  516. of the PSS with an RCA stereo splitter on the other end.  These are
  517. connected to the Left/Right Plugs on my stereo receiver.  Although
  518. only the drums are "stereoized", I can still record to my tape deck to
  519. hear my MIDI creations in the car/on the road! 
  520.  
  521. A special thanks goes to Roger Burrows for his LHA archiving utility.
  522. Please support him by registering LHA130.
  523.  
  524. Another special thanks goes to Steve Johns of Johnson Software for his
  525. interesting MIDI Programming Tips in START Magazine.
  526.  
  527. Still another round of applause goes to several GEnie members in the
  528. GFA topic who have countlessly explained to me the internals of ST
  529. programming and helping me fix bugs.
  530.  
  531. And finally, to my darling wife Carrie and 4 yr. old daughter
  532. Brittany, who  have put up with me these past months while undergoing
  533. this 'MIDI obsession.'
  534.  
  535. Remember to run the PSSKEY program and enter 'midilation' to change
  536. the patch editor from DEMO to Registered mode.  This will allow you to
  537. save your patches with a description, as well as export a .SYX file if
  538. you desire.  I have included the source code for your enjoyment.
  539.  
  540. At this point, I can't think of anything new to add to PSSLIB.  Sure,
  541. I could support the Song Memory SYSEX features which include 5 Melody
  542. Banks and 5 Chord Banks, however, since this represents about 92 % of
  543. the entire SYSEX data, there are other programs around which will do
  544. the job.  STMIDIEX (shareware) has the ability to save any SYSEX
  545. message as a separate file.  YAMA_PSS is a quick utility which saves
  546. an entire bulk dump of all supported PSS SYSEX messages into 1 file.
  547. For now, unless there are severe problems with this new version
  548. (2.0), you can probably expect that this is it!
  549.  
  550. This program is freeware and copyrighted!  Please feel free to
  551. distribute it so long as all support documentation is included (that
  552. means all of the LHA documentation as well).
  553.  
  554. Don't forget to download the freeware program: 
  555.  
  556. YAMV_ED Voice and Style Selector - This program lets you select any
  557. voice or rhythm via color menu displays.  It also remembers what
  558. you've selected and auto-switches each voice and rhythm in 'pseudo'
  559. real time when playing the Yamaha synthesizer.  Search for PSS,PSS480
  560. on GEnie to get the file (it's in the ST Library as well as the MIDI
  561. library.)  
  562.  
  563. For MIDI Spy Owners, I have written a quick & dirty Jukebox creator
  564. utility (MAKEJUKE.ZIP), which uses the Tomshell Command Line
  565. Interpreter to allow for days and days (or another word for unlimited
  566. amounts) of constant music!.
  567.  
  568. Please address all comments and concerns to M.SILVERSTE3 here on GEnie
  569. EMAIL.  You may freely distribute this program on any BBS, however,
  570. everything in the archive should be included.  I encourage everybody
  571. to create their own sounds and upload them as well for others to share
  572. with.
  573.  
  574. If anyone's interested, I have a massive collection of Standard MIDI
  575. files (type 0, 1 track) which consist of some great sounding tunes
  576. ranging from the Beatles to Pink Floyd, Jazz, POP, Hard Rock, Steely
  577. Dan, Oldies, etc, etc.  They are all configured for Yamaha
  578. Portasounds and sound really good.  I do this as a hobby, that is,
  579. download them here from GEnie and rechannel/revoice all of the tracks,
  580. as well as play with the velocities and pitch bends.  Leave EMAIL if
  581. you're interested in getting a floppy full of tunes!
  582.  
  583. Enjoy!
  584.  
  585. Mike Silverstein 05/07/94
  586.