The JV-80 Librarian for Windows

This program is very easy to use, but it's worth the time to read through this help file to make sure you're not missing anything.

Help Topics:

What it does

What you need

Valid sysex files

How to use it

Other topics

For programmers

Contacting the author

Disclaimers


 What it does

The JV-80 Librarian for Windows makes it easy to organize sound banks for a Roland JV-80 or JV-880 synthesizer. It works with bulk dump sysex files, and uses drag-and-drop technology to let you easily copy a patch, performance, or a rhythm note from one sysex file to another. The program also lets you audition any patch or rhythm note, and you can change the names of patches and performances. You can work with up to ten sysex files at a time, and files can be saved for either Internal memory or a data card, and you can specify the JV-80 unit number.

Compile custom patch banks

Many musicians purchase third-party sounds for their synthesizers. It's very rare that you like all of the sounds in the bank, so you probably spend a lot of time copying the sounds you like to data cards. The JV-80 Librarian for Windows lets you do all of this sound organization without even touching the keypad on your synth. You can quickly create one or more banks that contain only your favorite patches, or patches used for a particular style of music or gig.

Organize banks by sound types

Another approach is to organize your sounds by category. For example, you might find it convenient to have a patch bank that consists of your favorite bass sounds, another bank with your best brass, and so on. That way, when you're sequencing, you can quickly audition all the sounds of a particular class and choose the best one. Using only the JV-80, you would need a data card fto do this type of organization, and loading in new patch banks and copying them is time-consuming and tedious.  With the JV-80 Librarian for Windows, it's a snap -- and actually rather fun.

Fast access to up to 640 patches

Many users will find that this program is most useful simply for providing immediate access to up to ten banks of sounds. Loading a sysex file into the JV-80 Librarian software is much faster than loading it into the JV-80. You can then use the auditioning feature to send a desired patch to the temporary patch area. With ten banks loaded in the JV-80 Librarian, you have instant access to 640 patches, and you can see all of the patch names.


 What you need

To run this program, you need a computer that's set up to run Microsoft Windows 3.x. If you're reading this help file, you've already passed that test. The program is designed so you can edit patch banks even if your JV-80 isn't connected to your computer. But if you want to take advantage of the handy auditioning feature, you'll need to be running Windows  3.1 (or Microsoft Windows 3.0 with multimedia extensions), and have a MIDI interface and the appropriate MIDI driver installed. And, obviously, your JV-80 or JV-880 must be connected to the MIDI interface.

Although this program works with any system that can run Windows, it runs much better on systems with faster processors and more memory (so what else is new?).


 Valid sysex files

The JV-80 Librarian for Windows reads and writes JV-80 bulk dump sysex files. The JV-80 generates these files when you press either of the following keypad sequences on your instrument's panel:

*	Write-Bulk-Internal (writes data from the internal memory)

*	Write-Bulk-Card (writes data from the data card)

You must have your JV-80 MIDI'ed to your computer to save these files. These sysex files are exactly 45,350 bytes long, and consist of the data for 64 patches, 16 performances, and 61 rhythm setups (one for each key).

JV-80 sounds purchased from third-party sources (such as Pro-Rec and Sound Source Unlimited) come in this format, and you can use any of a number of utility programs to capture bulk dump sysex data to a computer file and send it back. One such program that runs under Windows is called Sysex-O-Matic, and is available in the MIDI forum library on CompuServe. In addition, most sequencer programs let you capture and send sysex dumps. In Cakewalk, for example, use the View-System Exclusive command (with the Receive option) to capture bulk dump data. Then use the Save option to save the data to a file. You can then load this file into the JV-80 Librarian.


 How to use it

When the program starts up, the single window shows a "generic" bulk dump, filled with the JV-80's Initial Data. This is what you get when you initialize a patch, performance, or a rhythm note on the JV-80. In order to accomplish anything meaningful, you'll need to load in one or more JV-80 bulk dump files. The generic opening window is a good place to copy objects to from other files that you open.

Loading files

You can load additional sysex files into the workspace with the <File-Open> command. You can have up to 10 files (windows) open at a time. The <File-New> command opens another window with Initial Data in it. When you open a file, you have the option of opening it in read-only mode. Using this option will ensure that the original file does not get overwritten (you can always save your changes to a different file name). The file name appears in the window's title bar.

Changing the view

The toolbar buttons (labeled Perf, Patch, and Rhythm) let you change the view.  You can also do this with the <View> command in the menu. Changing the view affects all of the windows.

Current object

Every window has a "current object." This is the object (a patch, a performance, or a rhythm note) that is acted upon when you issue a command. Click on an object to make it current. You can also use the arrow keys to change the current object in a window. The toolbar always displays the current object for the active window, and the current object also appears in reversed colors in the window.

Copying an object

To copy an object from one window to another, simply press the left mouse button and start dragging it. The cursor will change to let you know you're in drag mode. When you get it to the desired location, release the left mouse button to drop it. Remember that dragging copies an object -- it doesn't move it.  You can also use the <Edit-Copy> and <Edit-Paste> commands to copy objects (but this is much more trouble).

Selecting <Edit-Cut> makes a copy of the current object in memory, and replaces it with Initial Data. Note that you can also copy an object to another location within the same window.

Changing the name of an item

You can change the name of a patch or performance using the <Edit-Change Name> command (or click the "N" icon on the toolbar). Patch and performance names can use any normal keyboard characters, including characters that are not available on the JV-80 keypad (but appear just fine in the display). This gives you a lot more flexibility in naming your sounds. For example, try to name a patch "AcP[90% Hot]" using the JV-80 keypad -- can't be done.

Since rhythm objects don't have names, the display shows the waveform that is used in the sound--and you can't change it. The wave number is preceded by either I (for internal wave), E (for a wave in an expansion board), or C (for a wave stored on a PCM card).)

Auditioning a patch

You can audition a patch at any time by selecting the <File-Audition Current Selection> command (or clicking the Audition icon on the toolbar). This sends the data to the JV-80's temporary patch area so you can play it and hear what the patch sounds like.

Auditioning a rhythm setup

You can audition a rhythm note by selecting the <File-Audition Current Selection> command (or clicking the Audition icon in the toolbar). When you select the Audition button in the toolbar when your working in Rhythm view, the current object note is sent to the first position in the temporary rhythm setup area, which corresponds to the first key (C1, or MIDI 36) on the keyboard. It is not sent to key where it will be stored. This make it much easier to hear a sound, since you don't have to figure out where the sound was sent.

User preferences

You can change several of the program's parameters using the <View-Preferences> command (or Ctrl+P):

*	Adjust the colors used in the windows. A handy preview lets you see what you're going to get before you leave.

*	Define the action for your right mouse button (or Enter key). The right mouse button (or Enter key) can be set up so it auditions a patch or rhythm, or changes the name.

*	Specify which view you want at start-up. This can be either Patches, Performances, or Rhythm Setups.

*	Show or hide the toolbar. If you want to maximize the screen display space, turn it off.

*	Turn auto-activate on or off.  When auto-activate is turned on, windows pop to the front whenever you drag an item.

You can save your preferred settings so they are in effect the next time you run the program. The setting are stored in a file named JV80LIB.INI, located in the directory where you installed JV80LIB.EXE.

Saving your work

When you're satisfied with the patches, performances, and rhythm setups, you can save the file using the <File-Save> command.

If you want to save it under a different name, change the Unit Number, or specify data card or internal memory, use the <File-Save As> command. If you try to save a file that was opened with the read-only option, it will automatically bring up the <File-Save As> dialog box.  Make sure you specify the proper unit number and destination (either internal memory, or a data card).

Once the file is saved on your disk, you can use a utility program or sequencer to load the bulk dump sysex file to the JV-80.

The toolbar

The JV-80 Librarian for Windows has a handy toolbar that gives you quick access to a number of commands that you may use frequently. The left part of the toolbar is shown below.

The first three tools involve files:

*	Open a new file with JV-80 Initial Data (equivalent to the <File-New> command).

*	Open an existing JV-80 bulk dump sysex file (equivalent to the <File-Open> command).

*	Save the current file (equivalent to the <File-Save> command).

The next three tools involve "clipboard" operations:

*	Cut the current object and replace it with JV-80 Initial Data (equivalent to the <Edit-Cut> command).

*	Copy the current object (equivalent to the <Edit-Copy> command).

*	Paste the contents of the "clipboard" (equivalent to the <Edit-Paste> command).

The last two tools perform the following:

*	Change the name of the current object (equivalent to the <Edit-Change Name> command). This is not visible in Rhythm view.

*	Audition the current object (equivalent to the <File-Audition Current Selection> command). This is not visible in Performance view.

The toolbar also displays the name of the current object in the active window. At the right of the tools are three buttons that let you quickly change the view (patches, performances, or rhythm setups).


 Other topics

Here are some other things you may be interested in.

About the display

The program was designed so two patch windows would fit nicely on a standard VGA display. Consequently, some things appear somewhat cramped on the screen, and some patch or performance names may not be displayed in their entirety (but they do appear in the toolbar when selected).

You'll probably find that things look much better if you use an 800 X 600 or 1024 X 768 display driver. If your screen gets too cluttered, you can use the minimize button to reduce one or more windows to an icon. Minimized windows are still loaded--they're just out of your way. To restore a minimized window, double-click it.

About auditioning

This program does not let you audition performances, because the sound of a performance that uses internal or data card patches depends on which patches are loaded at the time (the actual patches used in the performance are not stored in the bulk dump file). If you audition a performance that uses patches located in internal memory or a data card, the performance will sound different, depending on which patches are in internal memory and the data card. Because of this, I decided not to implement performance auditioning.

About the JV-80 unit number

When you save a file using the <File-Save As> command, you can specify a JV-80 unit number. This unit number is encoded into the sysex file that is saved by the JV-80 Librarian. If you only have one JV-80 hooked up to your computer, you don't have to worry about this setting. By default, it's unit number 17. To find out what unit number your JV-80 is set for, press the MIDI key on your JV-80, and then page down three times. If you have more than one JV-80 on-line, you may want to use different unit numbers for each one (otherwise, the data will be loaded into them all).

Internal memory vs. data cards

When you save a file, you have an option to save it for the JV-80's internal memory "I" bank, or for a data card ("C" bank).  Data saved for a data card cannot be loaded directly into Internal memory (and vice versa).


 For programmers

To my knowledge, this is the only shareware program developed specifically for the Roland JV-80. If you know of any others, please let me know.

This program was written in Microsoft Visual Basic 2.0 Professional Edition. But to keep the size of the distribution file smaller, I didn't use any of the Professional Edition VBX link libraries. I undertook this project mainly as an exercise to learn Visual Basic programming, and secondarily to give me a tool to manage my growing collection of JV-80 patches.

Visual Basic is an incredibly powerful language, and is very easy to learn. It doesn't directly support reading and writing to the MIDI interface, but there are ways around this using calls to the Windows API (something I'm still trying to figure out).

You might notice that your hard disk is accessed briefly whenever you audition a patch or rhythm setup. The audition procedure doesn't talk to the MIDI interface directly. Rather, it writes a Type 0 standard MIDI file that consists only of sysex messages. It then uses the Windows MCI (media control interface) functions to "play" this file. The result is new data in your Temporary Patch area or Temporary Rhythm Setup area. These files are called ~PATCH.MID and ~RHYTHM.MID. These files remain on your disk when you exit the program. So if you're curious, you can examine them to see how they're structured. Once I figure out how to do real MIDI communications, I'll revise this program so it can do bulk dumps and receives. And maybe some day I'll get around to writing a patch editor.

One more thing: The Edit-Copy, Edit-Cut, and Edit-Paste commands do not actually use the Windows Clipboard. So attempting to copy an object from the JV-80 Librarian and paste it into another application won't work.


 Contacting the author

If you like this program, a $30 donation would be cool.

This is my first attempt at shareware, and I welcome any feedback, comments, questions, suggestions, money, and custom sounds.

You can contact me via:

*	CompuServe: 70363,3014

*	MCI Mail: 329-9078

*	America Online: "Xxyyzz"

*	US Mail: 8578 Villa La Jolla Dr., Suite 327, La Jolla, CA 92037.


 Disclaimers

Like everyone else who writes software, I don't take any responsibility for what I did. In other words, if this program causes trouble for you, you can't make me pay for the damage. As with all computer programs, it's important to use normal common sense. This means that you should  back-up of all of your important data files. If you're modifying sound banks that you've purchased, never work with the original copy.

Although I tested this program thoroughly, it's not inconceivable that there are some bugs remaining. I didn't test it on the rack-mount JV-880, but it should work OK since this instrument is supposed to have a memory architecture identical to the JV-80 keyboard synth. If you find any bugs or have problems with a JV-880, please let me know.

By using this software, you agree to the following fine-print:

In no event will the author of this program or any other person involved in the creation, production, or distribution of the software be liable to you on account of any claim for any damages, including any lost profits, lost savings, or other special, incidental, consequential, or exemplary damages, including but not limited to any damages assessed against or paid by you to any third part, arising out of the use, inability to use, quality or performance of such software and documentation, even if the author has been advised of the possibility of such damages, or for any claim by any other party. Blah-blah-blah.

I hope you enjoy this program as much as I enjoyed writing it.

John Walkenbach
La Jolla, California
April, 1993


Bulk Dump Sysex Files

This program reads and writes JV-80 bulk dump sysex (system exclusive) files. The JV-80 generates these files when you press either of the following key sequences on your instrument's panel:

*	Write-Bulk-Internal (writes data from the internal memory)

*	Write-Bulk-Card (writes data from the data card)


Paying for this

Some shareware programs employ all sorts of techniques that are supposed to make you want to register the program: pop-up messages that urge you to pay up, annoying delays in unregistered copies, crippled features, and so on. I didn't do any of that stuff, and the program you have is fully functional.

If you're really strapped for cash, I'll accept a bank of your best custom JV-80 patches in lieu of the 30 bucks. Make sure they're custom patches (not sounds that you've purchased).

You can, of course, continue to use this program without paying the meager $30 donation. However, your conscience will haunt you forever.