@database "ProM1.guide" @author "Calogero Calì" @remark $VER: ProM1 Guide 1.0 (Aug.08.1999) @remark "Created with GoldED 4.7.2 (10.6.97)" @node MAIN "Welcome" @{b}@{FG shine}ProM1 1.1@{FG text}@{ub} @{b}The editor for Korg M1/M1R. @{ub} Copyright © 1999 Calogero Calì. All rights reserved. @{" Introduction " link INTRO} @{" Requirements " link REQUIREMENTS} @{" Installation " link INSTALL} @{" Useful hints " link INFO} @{" Usage " link USAGE} @{" Copyright " link COPYRIGHT} @{" Author " link AUTHOR} @{" Disclaimer " link DISCLAIMER} @{" Credits " link CREDITS} @{" ATO " link ATO} @endnode @node INTRO "Introduction" Introduction ************ ProM1 is a MIDI editor for the legendary Korg M1 synthesizer and for its equivalent expander version M1R. The program acts upon any parameter that can be transmitted through system exclusive messages, and is obviously ineffective for some functions for which MIDI access was not provided in any way. Features: - Uses camd.library to assure multitasking of 'regular' MIDI applications, that is all those applications which share serial.device. - Can independently control up to 16 synths. - MUI interface. @endnode @node REQUIREMENTS "Requirements" Requirements ************ Kickstart V39 (OS 3.x) or above. 68020 or better CPU. @{" MagicUserInterface " Link MUI} V3.6 or above. @{B}MUI Custom Class@{UB} @{B}Version@{UB} @{B}Copyright@{UB} @{B}Availability@{UB} - Icon.mcc 1.1 Russell Leighton Aminet dev/mui/MCCIcon_1_1.lha - Lamp.mcc 11.1 Maik Schreiber Aminet dev/mui/MCC_Lamp.lha - NList.mcc 19.97 Gilles Masson Aminet dev/mui/MCC_NList0_89.lha - NListview.mcc 19.62 Gilles Masson Aminet dev/mui/MCC_NList0_89.lha - Pkb.mcc 14.6 Calogero Calì Aminet dev/mui/MCC_Pkb14_6.lha - TransferAnim.mcc 1.02 Linus McCabe Aminet dev/mui/MCC_TransferAn.lha @{B}Libraries:@{UB} - camd.library 37.14 Aminet mus/edit/camd.lha - A MIDI interface - A Korg M1 :) @endnode @NODE INSTALL "Installation" Installation ************ Installing ProM1 is very easy: just copy the ProM1 directory anywhere you like! Before the synthesizer can be detected by ProM1, a full duplex MIDI connection must be made as follows: Synthesizer MIDI Interface MidiIn <------> MidiOut MidiOut <------> MidiIn Then some parameters must be set on the synth as follows: MODE Page Param. Value GLOBAL F5-1 MIDI GLOBAL CLK: INT (*) CH= 1 (**) GLOBAL F5-2 MIDI FILTERING PROG: ENA EXCL: ENA GLOBAL F6-1 PROGRAM MEMORY PROTECT Internal: OFF Card: OFF ----------------------------------------------------------------- (*) CLK:INT is only needed if you want to monitor the execution of sequences. (**) CH=1 is only needed if you want the synth to be detected right after starting ProM1. @ENDNODE @node INFO "Useful hints" Useful hints ************ ProM1 keeps a heavy data exchange with the synth for almost each task it is required to execute. Nevertheless, in some cases it doesn't do every possible check and assumes that the user is operating properly. Most of the time, some 'mistakes' will be paid with the freezing of the program, therefore it is recommended to: - avoid removing cards from the synth if they're currently loaded in ProM1; - avoid changing the INTERNAL/CARD synth configuration. This does not mean, for instance, that a card cannot be removed during a session with ProM1, but that after a risky change the configuration of ProM1 needs to be updated by selecting the "Restore All" entry from the "Synth" menu. @endnode @NODE USAGE "Usage" Usage ***** Working with ProM1 is very intuitive for anyone who has a minimum experience with the M1. That's why this guide will not explain the meaning of the several synth parameters, but will be limited instead to illustrating all aspects not directly covered by the original documentation provided in the user manual along with the synth. As soon as ProM1 is run, it searches for a synth with a channel set on Global=1 (Common CH). If it is found, ProM1 then executes a dump of the synth data, otherwise it loads the default data. If the selected global channel is different from 1, you can inform ProM1 and download the data from the synth later. The choice of this automated procedure has been made necessary because it could be required managing several synths at the same time (running obviously as many ProM1 sessions). ---------------------------------------------------------------------------- @{b}Menus@{ub} @{" Synth menu " link MENU_S} @{" File menu " link MENU_F} @{" Dump menu " link MENU_D} @{" Preferences menu " link MENU_P} ---------------------------------------------------------------------------- @{b}Pages@{ub} @{FG shine}Programs@{FG text} no notable details... @{FG shine}Combinations@{FG text} no notable details... @{" Drums " link PAGE_P} @{" Global " link PAGE_G} @{" Sequences " link PAGE_S} ---------------------------------------------------------------------------- @ENDNODE @node MENU_S "Synth menu" Synth menu ********** @{b}Check@{ub} It displays the synth status and shows whether the ProM1 configuration is reflecting the current synth configuration or not. The leds indicate (the colours depend on the preferences set for the Lamp MUI class): Error = Non-aligned configuration. Ok = Aligned configuration. @{b}Monitor@{ub} Shows/Hides a four led group whose function is to monitor respectively: * * * * - SysEx messages reception (Rx) - SysEx messages transmission (Tx) - realtime messages (Active Sensing) ( ) ( ) @{b}Panic@{ub} Sends an All Notes Off message. It can be useful when for some reason some notes hang and keep playing even though you have released the relevant keys, but it can't do anything under certain circumstances: for example when a note keeps playing after you've changed a critical parameter like the pitch envelope release time; in situations like the latter, the only solution is selecting another program. @{b}Rx Data Card@{ub} Executes a data dump from the program card. @{b}Rx PCM Card@{ub} Executes a data dump from the PCM card, reading the additional multisound or drumsound list. I have noticed that when the synth is requested to display the multisound list stored inside the PCM card it sometimes behaves strangely. If the card contains a single multisound, like the MEMORY CARD MSC-05 PIANO for instance, the synth does not react in a correct way and enters a sort of loop from which it cannot exit anymore. The result is the freezing of the synth which, as a consequence, jams ProM1 too. To avoid the unpleasant event, occurring everytime this function is invoked, you will need to confirm the presence of such card. If someone ever finds the same anomaly when using different cards he should inform me, so that I can update the program. @{b}Restore all@{ub} Executes a total re-alignment of the data with respect to the current synth configuration. Very important when removing/replacing memory cards or when the INTERNAL/CARD setting has been changed. @endnode @node MENU_F "File menu" File menu ********* The six entries in this menu change depending on the page currently active in ProM1, but they essentially carry out identical tasks. ---------------------------------------------------------------------------- @{b}xxx: Load...@{ub} @{FG shine}xxx = Program@{FG text} (SysEx data file) Loads a Program in the edit buffer and compares it with the one stored in the synth. The colour of the led on the left of the "Store" button will indicate: Ok = the two Programs are identical Warning = the two Programs are different @{FG shine}xxx = Combi@{FG text} (SysEx data file) The same as above, but affects a combination. @{FG shine}xxx = DrumKit@{FG text} Replaces the current (1...4) DrumKit data with those loaded from the chosen file, then transmits the changes to the synth. You'd better pay attention to this entry because the DrumKit is not buffered, so any change made to the current DrumKit is unrecoverable. @{FG shine}xxx = Global@{FG text} The same as above, but affects global settings. These data are not buffered, too. @{FG shine}xxx = Sequences@{FG text} see @{" Sequences " link PAGE_S} page ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- @{b}xxx: Save...@{ub} @{FG shine}xxx = Program@{FG text} (SysEx data file) Saves the current Program in a file @{FG shine}xxx = Combi@{FG text} (SysEx data file) Saves the current Combination in a file @{FG shine}xxx = DrumKit@{FG text} Saves the current DrumKit in a file @{FG shine}xxx = Global@{FG text} Saves the current Global in a file @{FG shine}xxx = Sequences@{FG text} see @{" Sequences " link PAGE_S} page ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- @{b}xxx bank: Load...@{ub} (SysEx data file) @{FG shine}xxx = Program@{FG text} Replaces all the programs in the current bank with those loaded from the chosen file. 'Current bank' means the bank to which the current program belongs, i.e.: - Current program = I00...I99 -> Current bank = INTERNAL - Current program = C00...C99 -> Current bank = CARD Since the current bank can contain a different number of programs from the bank of the selected file, the following rule is used: Current bank File Result 100 progs. 50 progs. -> 0...49 from file, 50...99 unaffected 50 progs. 100 progs. -> 0...49 from file @{u}IMPORTANT NOTE@{uu} Since the replacement of the programs is not automatically notified to the synth, you will need to dump the whole bank to the M1 afterwards. @{FG shine}xxx = Combi@{FG text} The same as above, but affects combinations. ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- @{b}xxx bank: Save...@{ub} (SysEx data file) @{FG shine}xxx = Program@{FG text} Saves in a file all the programs from the current bank. @{FG shine}xxx = Combi@{FG text} The same as above, but affects combinations. ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- @{b}All data: Load...@{ub} (SysEx data file) If the current bank is INTERNAL: - Replaces all the data (Programs/Combi/Global/Seq) with those from the loaded file. If the current bank is CARD: - Replaces all the data (Programs/Combi/Seq) with those from the loaded file. @{u}IMPORTANT NOTE@{uu} Since the data substitution is not automatically notified to the synth, you will need to dump the whole bank data to the M1 afterwards. ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- @{b}All data: Save...@{ub} (SysEx data file) Saves in a file all the data (Programs/Combi/Global/Seq) from the current bank. @{u}IMPORTANT NOTE@{uu} If the current bank is CARD, this kind of save operation will only be possible with a "small data" type program card (50Prog/50Combi/4200Seq). ---------------------------------------------------------------------------- @endnode @node MENU_D "Dump menu" Dump menu ********* The six entries in this menu change depending on the page currently active in ProM1, but they essentially carry out identical tasks. ---------------------------------------------------------------------------- @{b}xxx: To synth@{ub} @{FG shine}xxx = Program@{FG text} Sends the current program data to the synth in order to store them. @{FG shine}xxx = Combi@{FG text} Sends the current combination data to the synth in order to store them. @{FG shine}xxx = Global@{FG text} Sends the global data to the synth in order to store them. This entry will probably be the least used because, since there is not any command available to change a single global parameter on the synth, all parameters will be sent each time a single one is modified. This simply means that, as an example, if the "Master Tune" parameter is modified in the "Global" page of ProM1, then a SysEx message will be sent containing, together with the new "Master Tune" value, all the other global parameter values as well, including the DrumKits configuration... and this is exactly the same thing this menu entry does. @{FG shine}xxx = Sequences@{FG text} see @{" Sequences " link PAGE_S} page ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- @{b}xxx: From synth@{ub} @{FG shine}xxx = Program@{FG text} Replaces the data of the current program with those from the program currently stored on the synth. @{FG shine}xxx = Combi@{FG text} Replaces the data of the current combination with those from the combination currently stored on the synth. @{FG shine}xxx = Global@{FG text} Replaces the data of the "Drums" and "Global" pages in ProM1 with the global data loaded from the synth. @{FG shine}xxx = Sequences@{FG text} see @{" Sequences " link PAGE_S} page ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- @{b}xxx bank: To synth@{ub} @{FG shine}xxx = Program@{FG text} Replaces all the synth programs with the ones from the current bank. @{FG shine}xxx = Combi@{FG text} Replaces all the synth combinations with the ones from the current Bank. ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- @{b}xxx bank: From synth@{ub} @{FG shine}xxx = Program@{FG text} Replaces all the current bank programs with those loaded from the synth. @{FG shine}xxx = Combi@{FG text} Replaces all the current bank combinations with those loaded from the synth. ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- @{b}All data: To synth@{ub} Replaces all the synth data with those from the current bank. @{u}IMPORTANT NOTE@{uu} If the current bank is CARD, this kind of update will only be possible with a "small data" type program card (50Progs/50Combis/4200Seq). ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- @{b}All data: From synth@{ub} Replaces all the current bank data with those dumped from the synth. -------------------------------------------------------------------------------- @endnode @node MENU_P "Preferences menu" Preferences menu **************** This menu only contains the @{b}Fast envelope redraw@{ub} item; it controls the behaviour of the graphic envelope generator displays. When this option is not active, the standard double buffered redraw method is used; when the option is active a simpler method is used, which provides a faster redraw but might cause an annoying flickering on some systems. You can choose the method you prefer. @endnode @node PAGE_P "Drums page" Drums page ********** In this page, on the right below the keyboard, there is a button with a led on it. The led status shows the currently active mode: 1) View (led off) 2) Edit (led on) The fundamental difference between the two modes is represented by the function which is activated by pressing and then releasing a key on the displayed keyboard. To better understand this you can open the @{FG shine}Index list@{FG text} by clicking on the relevant gadget. "View" mode displays the group of notes (pilot note + derived notes) to which the instrument has been assigned. At the same time the index list highlights the related index element (0...29). "Edit" mode lets you change the pilot note for the current index. An example should dispel any doubts you'll probably have at this point. Let's activate the View mode. Having a quick look at the original configuration of DrumKit1, we notice that index @{FG shine}7 @{FG text}relates to the @{FG shine}Side Stick@{FG text} instrument and pilot note @{FG shine}C2@{FG text}. Let's suppose we want to change the pilot note of this index from C2 to E0. 1- select index 7 from the index list or click on the C2 key on the displayed keyboard 2- switch to edit mode 3- click on the E0 key on the displayed keyboard and to get back to the old pilot note... (still in edit mode) 4- click on C2. @{u}IMPORTANT NOTE@{uu} Changing the pilot note of an index is only possible if the same index has an instrument assigned to it. So, for an index which reads @{FG shine}NO ASSIGN@{FG text}, you have to @{b}FIRST@{ub} assign an instrument, and @{b}THEN@{ub} change the pilot note. @endnode MDV @node PAGE_G "Global data Page" Global data Page **************** The only needed comment about this page regards the Common Ch parameter. ProM1, in order to detect the synth, requires the channel set by this parameter to be the same as the respective one on the synthesizer. Please read the section about the @{"installation" link INSTALL}. @endnode @node PAGE_S "Sequences Page" Sequences Page ************** ProM1 has not been conceived to create or edit the synth internal sequences; thus, in this page, they can only be monitored or handled globally. @{FG shine}Monitoring@{FG text} - Be sure to have set the synth clock to "internal". - Start or stop the sequence @{FG shine}using the synth@{FG text}. - Stop the sequence before selecting another page on ProM1. @{FG shine}Handling the Sequences@{FG text} In this page we find again the 'current bank' term, and particularly when selecting a sequence from the list we have: I0...I9 -> Current bank = INTERNAL C0...C9 -> Current bank = CARD The only accepted type of card is the "small data" one. @{b}MENU@{ub} @{FG shine}File@{FG text} Sequences: Load... (SysEx data file) Replaces all sequences in the current bank with those loaded from file. The substitution is not extended to the synth by default, so a dump is needed afterwards. Sequences: Save... (SysEx data file) Saves all sequences in the current bank to a file. @{FG shine}Dump@{FG text} Sequences: To synth Dumps all sequences in the current bank into the synth INTERNAL bank. Sequences: From synth Replaces all sequences in the current bank with the ones from the respective synth bank. @{u}IMPORTANT NOTE@{uu} Although the original synth documentation reads the opposite, the synth does not allow a dump of all the sequences directly into the card. If you want to transfer the synth sequences from the INTERNAL bank to the card, you will have to use the proper function provided in the synth GLOBAL page. @endnode @NODE COPYRIGHT "Copyright" Copyright ********* @{b}ProM1@{ub} is Copyright © 1999 @{" Calogero Calì " link AUTHOR}. You can freely distribute it as long as all of its files are included in their original form without additions, deletions or modifications of any kind, and only a nominal fee is charged for its distribution to cover media and expedition costs. ProM1 is @{FG shine}GiftWare@{FG text}. It means that if you like it and use it to edit your synth data you should send me a gift that will do as a payment for the usefulness of the program. This way you will support further developements of ProM1. I hope you will find it useful and interesting! @ENDNODE @NODE AUTHOR "Author" Author ****** Send any comments, bug reports, criticism and ideas to: @{i}Email:@{ui} cdouble@tin.it @{i}Snailmail:@{ui} Calogero Calì via Dalmazia, 27 92023 Campobello di Licata (AG) ITALY @ENDNODE @NODE MUI "MagicUserInterface" This application uses MUI - MagicUserInterface (c) Copyright 1993-97 by Stefan Stuntz MUI is a system to generate and maintain graphical user interfaces. With the aid of a preferences program, the user of an application has the ability to customize the outfit according to his personal taste. MUI is distributed as shareware. To obtain a complete package containing lots of examples and more information about registration please look for a file called "muiXXusr.lha" (XX means the latest version number) on your local bulletin boards or on public domain disks. If you want to register directly, feel free to send DM 30.- or US$ 20.- to Stefan Stuntz Eduard-Spranger-Straße 7 80935 München GERMANY Support and online registration is available at http://www.sasg.com/ @ENDNODE @node DISCLAIMER "Disclaimer" Disclaimer ********** THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. @endnode @node CREDITS "Credits" @{FG Highlight}Thanks to:@{FG Text} - Stefan Stuntz for @{" MagicUserInterface " Link MUI} - Russell Leighton for Icon.mcc - Maik Schreiber for Lamp.mcc - Gilles Masson for NList.mcc - Linus McCabe for TransferAnim.mcc - the @{" ATO " link ATO} members. @endnode @node ATO "ATO" This software was translated with the help of ATO, the Amiga Translators' Organization. ATO is a non-profit organization that translates for the Amiga community. The following members were involved: English: Translator: Massimo Mascia Proofreader: Marco De Vitis Amiga Translators' Organization - http://ato.vapor.com/ato/ mail: ato-info@ato.vapor.com @endnode