MusicWriter Pro v2.0 and MusicWriter v5.0 Copyright (c) Junichi Steven Sato 1993 1. Table of Contents Copyright Notice 2 Introduction 3 Credits 4 Installing and Uninstalling 5 Program Descriptions 6 MW50 and MWP20 6.1 An Example Using MusicWriter 6.1.1 Help Screens 6.1.1.1 Canceling an Editing Option 6.1.1.2 Editing Note Names 6.1.1.3 Editing Register, Duration, Tempo, Frequency or Seconds 6.1.1.4 The Up and Down Arrow Keys 6.1.1.5 The Left Arrow Key 6.1.1.6 Insert and Delete Functions 6.1.1.7 Rests 6.1.1.8 Turning the Calculator Off 6.1.1.9 Additional Features: MWP20 6.1.2 Playback 6.1.2.1 Cut/Copy/Paste 6.1.2.2 Frequency and Seconds Editing 6.1.2.3 Current Entry View 6.1.2.4 Exiting MusicWriter and Storing the List 6.1.3 Another Example Using MWP20 6.1.4 Editing Lists 6.1.4.1 GC and MPLAY 6.2 MADJ 6.3 MC and Other Compression Options 6.4 MWV and MWPV 6.5 MusicWriter Sample Directories 7 Checksum and Bytes for Samples Directories 7.1 Sample Descriptions 7.2 MWBACH Directory 7.2.1 MWBTVN Directory 7.2.2 MWMSC1 Directory 7.2.3 MWMSC2 Directory 7.2.4 MWMSC3 Directory 7.2.5 MWMSC4 Directory 7.2.6 MWTOCC Directory 7.2.7 Questions and Answers 8 About the Authors 9 Correspondence 10 Features Comparison Table A Key Definitions B MWP20 B.1 MW50 B.2 2. Copyright Notice MUSICWRITER, PLAY Copyright (c) Shimpei Yamashita 1990. WMUSIC (v2.0), EDIT, MADJ (v2.0) Copyright (c) Junichi Steven Sato 1991. WMUSIC (v3.0), PLAY (v2.0) Copyright (c) Junichi Steven Sato 1991. MWRTR, MWPRO, MW, MWP, MWVERSION, MWPVERSION, MWBACH, MWSAMPL Copyright (c) Junichi Steven Sato 1992. MWRTR (v2.0), MWPRO(v2.0), MW50, MWP50, MPLAY (v2.0), GC, MC, MWV (v2.0), MWPV (v2.0), MWBACHMC, MWBACHRF, MWBTVN, MWBTVNMC, MWBTVNRF, MWMSC1, MWMSC1MC, MWMSC1RF, MWMSC2, MWMSC2MC, MWMSC2RF, MWMSC3, MWMSC3MC, MWMSC3RF, MWTOCC, MWTOCCMC, MWTOCCRF Copyright (c) Junichi Steven Sato 1993. All of the programs, directories and libraries listed above are freeware and are not to be bought or sold. The programs, directories, libraries and accompanying documentation may be copied freely and doing so is encouraged, provided that they are not altered in any way. Nobody other than the user may be held responsible for damages of any kind (including loss of memory, unusual battery drainage, broken calculator screens, sudden deafness, loss of precious time, brain damage, that dog barking next door, etc.) resulting from the use and/or misuse of these programs, directories, libraries and/or documentation. Although the authors are not responsible for such damages, it would be greatly appreciated if "bugs" are reported immediately. Please see section 10 for details. 3. Introduction Back in 1990, a program which played music on the HP-28S was developed by Shimpei Yamashita. The program required a list of complex numbers in the form (f,d) where f was the frequency and d was the duration. The program worked well for playing music, but when the program was rewritten for the HP-48SX, easier ways to make music or lists for the program were sought. Yamashita then came up with the "MusicWriter Special," a program which eliminated the need to calculate frequency or use cumbersome tables. Just by simply entering note names, tempo and beats, the MusicWriter Special would translate the data into a list which can be read by the music playing program. Within a year, I introduced two additional versions of the MusicWriter program. MusicWriter version 2.0 brought new features such as a stack-oriented environment, which displayed up to four notes at a time, a "delete" command, which erased the last note entered, and a menu-driven input capability, which made entering note names much easier. I released a second version of the music playing program "PLAY" shortly thereafter. The new version of PLAY reduced very small but noticeable gaps between notes but required a list which was not compatible with those created by the MusicWriter Special or MusicWriter version 2.0. MusicWriter version 3.0 was designed to create lists which were usable by the new PLAY version, but was otherwise exactly the same as version 2.0. In 1992, MusicWriter version 4.0 and MusicWriter Pro version 1.0 were released. Both were designed to be more flexible and easier to use than previous versions. Features such as a seven-note "stack" display and insert and delete functions were added. A cut/copy/paste feature was also added to MusicWriter Pro version 1.0. Unfortunately, because graphics were used heavily for these programs, they were also the largest and slowest versions. You no longer need a HP-49 math coprocessor or a graphics accelerator board with MusicWriter version 5.0 and MusicWriter Pro version 2.0. These two versions are not fast or small, but compared to MusicWriter version 4.0 and MusicWriter Pro version 1.0, respectively, they are faster and smaller. The consequence is that the "stack" display has been reduced to five, and the appearance of the display looks less organized. Several features have been added, however, including a help screen and an off switch. The help screen is provided as a memory refresher and not as a tutorial on how to use the program. Therefore, it is strongly recommended that you read the documentation before using the program. Some potentially dangerous bugs and flaws have also been corrected, and the libraries now include two new programs, GC and MC. If you do not care about writing music for the HP-48 but would like to hear the samples, you are welcome to do so. Install one of the two libraries and download a sample directory. Recall a selection to the stack, decompress using the appropriate program (RFU or MC) and execute MPLAY. For detailed instructions, see section 7. 4. Credits One of the many special thanks goes to Joe Horn, whose Goodies Disks have helped me better understand and gain access to the internals of the HP-48. I would also like to thank Rick Grevelle (most of the programs were developed using his Hackit Library) and Lutz Vieweg (the Redundance Fighter programs are utterly amazing). Finally, I would like to thank Shimpei Yamashita, who started it all with the original MusicWriter Special. 5. Installing and Uninstalling To install the MusicWriter Library, download either the MWRTR20.LIB file for MusicWriter v5.0 or the MWPRO20.LIB file for MusicWriter Pro v2.0 to the calculator in binary form. Recall the contents of the variable to the stack and execute DUP. Check to see if the library object is valid by executing BYTES. The library object for MusicWriter v5.0 should be 3435 bytes with a checksum of # E764h or # 59236d, and the library object for MusicWriter Pro v2.0 should be 6841.5 bytes with a checksum of # 8C4Eh or # 35918d. Do not use the library if the figures do not match. Store the library object in a port by placing a port number such as 0 on the stack and executing STO. Turn the calculator off and then on. The calculator will perform a system halt, and the library will automatically attach itself to the home directory. You may now purge the variable in which the library was stored. If you would like to remove the library, place a tagged object on the stack in the form x: 1151 for MusicWriter v5.0 or x: 1136 for MusicWriter Pro v2.0 where 'x' is the port number in which the library was stored. Execute DUP, then DETACH, then PURGE. When downloading the sample directories, be sure to do it in binary mode. The samples are listed in section 7. 6. Program Descriptions The contents of the MusicWriter libraries are very similar. Both have the following: MPLAY, a music playing program; MADJ, a music adjustment program; MC, a music compression program; GC, a "garbage collection" program. The library with MusicWriter v5.0 has MW50 and MWV in addition to these, and the library with MusicWriter Pro v2.0 has MWP20 and MWPV. 6.1. MW50 and MWP20 These two programs assist in writing music for the HP-48. They create a list of complex numbers in the form (f,d) where f is the frequency in hertz and d is the duration in seconds. (261.4, 1) for example, would represent the note middle C for one second. Since each one of these complex numbers represent a single note, the more notes there are, the larger the list. The program MPLAY uses this list. It "plays" the contents of the list starting at the last complex number. The programs MW50 and MWP20 are designed to help the user write music without the use of frequencies and durations. Of course, the user must have a general knowledge of music (such as note names, beats, and ability to read music). Make sure that the last stack option is enabled and start MusicWriter by executing either MW50 or MWP20 (depending on which one you have). If you have MWP20, you should see three menu options: NEW, EDIT and EXIT. EXIT quits the program. NEW starts a new list with the default values: middle C for 1 second. EDIT allows you to edit a list previously created by a MusicWriter program or created manually by the user. To edit a list, the list must be in stack level 1 before running MWP20. For now, just press NEW. The screen should now be displaying "CS Nt Reg Dur Tmp" or "C Nt Reg Dur Tmp" at the top, "CN 3 1 60" in the middle and "1 of 1 S" at the bottom. The top line is called the Field Bar. This line shows the field names for each column. "C" stands for Current Entry; the note with the arrow in this column is the current note. "S" stands for Selected Entry. This is only available on MusicWriter Pro v2.0 and is used for cut/copy/paste. "Nt" stands for note, "Reg" for register, "Dur" for duration and "Tmp" for tempo. On MusicWriter Pro v2.0, if user flag 56 is set, there will be a "Frq" standing for frequency instead of "Nt" and "Reg" and if user flag 57 is set, there will be a "Sec" standing for seconds instead of "Dur" and "Tmp". If this is what you have, press the minus key for flag 56 and/or the plus key for flag 57 to clear these user flags until the top line displays "CS Nt Reg Dur Tmp". The last line is called the Message/Input Bar. Most of the time, this line will display the entry you are currently working on and the total number of entries. In MusicWriter Pro v2.0, an asterisk followed by a number appears when you select an entry for cut/copy/paste. This line also tells you whether the beep flat -56 is clear or not using a "S" annunciator. If you do not see the "S", clear system flag -56 by pressing the +/- key. Everything in between the Field Bar and the Message/Input Bar is called the Note Display Area. Up to five notes can be displayed in this area - up to two before and/or after the current note. The current note (the one that can be immediately edited) is always in the middle with an arrow pointing at it. Since we just started MusicWriter, there is only one note displayed (this is the default value - middle C for 1 beat at a tempo of 60). "CN" stands for C-natural, register 3 is the register containing middle C, 1 is the duration and 60 is the tempo (beats per minute). A "F" following the note name would make it a flat and a "S" following the note name would make it a sharp. For instance, "BF" would be a B-flat and "FS" would be a F-sharp. A "R" stands for a rest. 6.1.1. An Example Using MusicWriter The example to be used is a birthday song which looks like the following in MusicWriter format: Entry Nt Reg Dur Tmp 1 GN 3 .5 120 2 GN 3 .5 120 3 AN 3 1 120 4 GN 3 1 120 5 CN 4 1 120 6 BN 3 1 120 7 R 3 1 120 8 GN 3 .5 120 9 GN 3 .5 120 10 AN 3 1 120 11 GN 3 1 120 12 DN 4 1 120 13 CN 4 1 120 14 R 4 1 120 15 GN 3 .5 120 16 GN 3 .5 120 17 GN 4 1 120 18 EN 4 1 120 19 CN 4 1 120 20 BN 3 1 120 21 AN 3 1 120 22 FN 4 .5 120 23 FN 4 .5 120 24 EN 4 1 120 25 CN 4 1 120 26 DN 4 1 120 27 CN 4 1 120 6.1.1.1. Help Screens Note that help is almost always available; if you forget a keystroke, or to list all possible keystrokes on a certain screen, just press the HELP menu key. To exit the help screen, press any key. 6.1.1.2. Canceling an Editing Option If you invoke an editing option by mistake, pressing CNCL will always bring you back to the Main Editing Screen (screen 1). 6.1.1.3. Editing Note Names The very first note in the birthday song above is a G-natural. Change the CN to a GN by pressing NOTE (first menu key) and then G (fifth menu key). A "natural" note can be obtained in this manner. If a piece that you are working on has notes that have flats or sharps, use left-shifted note names for flats and right-shifted note names for sharps. 6.1.1.4. Editing Register, Duration, Tempo, Frequency or Seconds Pressing REG, DUR, TMP, FRQ (MWP20, flag 56 set) or SEC (MWP20, flag 57 set) will invoke numeric editing. In this mode, you can use the numeric keypad (0 through 9 and the decimal) to enter values. Use backspace to correct any mistakes. Change the duration of the first note by pressing DUR and entering .5 (press ENTER after putting in the value). Next, change the tempo to 120 by pressing TMP and entering 120. Note that the register (3) is the same so it does not need editing. 6.1.1.5. The Up and Down Arrow Keys The up arrow key moves the current entry pointer up one entry, the left-shifted up arrow key moves the pointer up four entries, and the right-shifted up arrow key moves the pointer to the first entry. Similarly, the down arrow key moves the pointer down one entry, the left-shifted down arrow key moves the pointer down four entries, and the right-shifted down arrow key moves the pointer to the last entry. If the down arrow key is pressed when the pointer is on the last entry, the program adds another entry, copying the values from the entry the pointer was on. Pressing any of these keys or key combinations "beeps" the current entry before the pointer moves. To turn this sound off, press the +/- key to set flag -56. Getting back to the birthday song, press the down arrow key to add an entry. Note that both the first and second entries are the same. Entry 2, therefore, does not require any editing. Press the down arrow key again. Go ahead and change the note and the duration of entry 3. 6.1.1.6. The Left Arrow Key The left arrow key "beeps" the current entry without moving the pointer. Try this on the A-natural that you just put in. This is a convenient way to hear what the note sounds like without having to move the pointer. 6.1.1.7. Insert and Delete Functions Press the down arrow key. The pointer should be on entry 4. For the sake of this demonstration, put in the values for entry 5 instead (C-natural, register 4). INS inserts an entry above the pointer, copying values from the entry above that. Press INS. The pointer should be pointing at the newly inserted entry. Change the AN to a GN. To get to entry 6, press the down arrow twice. The backspace key deletes the current entry. Try it now; press backspace to get rid of entry 6. 6.1.1.8. Rests Press the down arrow and put in the values for entry 6 (B-natural can be found on the second page of the note edit menu). Press the down arrow key. Entry 7 is a rest. Entering rests are as easy as entering a note. Press NOTE, NXT and then R. 6.1.1.9. Turning the Calculator Off The calculator can be turned off in the middle of the program. From the Main Editing Screen, press right-shift OFF. You can resume writing music when you turn the calculator back on. If you are using MW50, try to finish the rest of the birthday song by yourself. After you finish entry 27, do not press the down arrow key. Skip to section 6.1.3. If you are using MWP20, continue with the next section. The following sections deal with advanced features available only on MusicWriter Pro. 6.1.2. Additional Features: MWP20 In addition to the editing features described in section 6.1.1, MWP20 provides cut/copy/paste, frequency and seconds editing and Current Entry View editing. 6.1.2.1. Playback MusicWriter Pro allows you to hear all or parts of the piece being worked on. Let us hear what the birthday example sounds like up to this point. Go to the first entry by pressing the right-shifted up arrow key. Press the right arrow to mark this entry. Note that an asterisk appears in front of the entry and the marked entry number appears right above the menu labels. Pressing the right arrow key will make the marked entry the current entry. Go to the last entry by pressing the right-shifted down arrow key. Make sure the "S" annunciator is on (pressing +/- toggles it on and off) and press BEEP. Everything that is "selected" (all entries between the marked entry and the current entry, inclusive) is played. 6.1.2.2. Cut/Copy/Paste Note that the next four entries (entries 8 through 11) are exactly the same as entries 1 through 4. Press the right-shifted up arrow key followed by the right arrow key. Move down to entry 4 using the down arrow key. At this point, there are three cut/copy/paste options. CUT cuts out the selected entries for pasting. DEL deletes the selected entries (caution: no undo!). What we want to use is the remaining option: COPY. Press COPY. The selected entries are copied on to an imaginary "clipboard" and is now ready for pasting. The PASTE option inserts the entries from the "clipboard" to above the current entry. However, we want the four entries to appear after the last entry so press LAST. Move the pointer to the last entry by pressing the right-shifted down arrow key. 6.1.2.3. Frequency and Seconds Editing Pressing the minus key sets user flag 56 for frequency editing. Press the minus key. Note that notes and registers are replaced by frequencies. This allows the user to edit frequency values. This is useful when trying to obtain notes that cannot be labeled by a note name (a note between G and G-sharp, for example). Press the minus key again to return to normal format. Pressing the plus key sets user flag 57 for seconds editing. Press the plus key. Duration and tempi are replaced by seconds. This allows the user to enter lengths of notes in seconds. Press the plus key again to return to normal format. 6.1.2.4. Current Entry View The Current Entry Viewer (invoked by pressing ENTER) may come in handy for viewing (and editing) detailed information about the current entry. Press ENTER. The top line displays the current entry number and the total number of entries as well as the status of the sound flag (-56). In the center, complete information about the current entry is given. Press ENTER to return to the Main Editing Screen. Try to finish the rest of the birthday song by yourself. After you finish entry 27, do not press the down arrow key. 6.1.3. Exiting MusicWriter and Storing the List If you pressed the down arrow key by mistake after entry 27, press the backspace key to "drop" entry 28. Otherwise, the last note will be played twice. To exit MusicWriter, press STO. The birthday song is translated into a list of complex numbers and is left on level 1 of the stack. Store this list in a variable called 'BIRTHDAY'. Keep in mind that the STO function in MusicWriter is just for exiting the program; the program does not store the list for you. If you would like to hear this example, see section 6.2. 6.1.4. Another Example Using MWP20 The following example deals with MusicWriter Pro. If you are using MW50, you may want to skip this section. Start MusicWriter Pro (MWP20, NEW) and enter the following data exactly as shown: Entry Nt Reg Dur Tmp 1 CN 3 1 120 2 GN 2 .5 120 3 AF 2 1 120 4 GN 2 1 120 5 R 2 1 120 6 BN 2 1 120 7 CN 3 1 120 After you finish, press STO and store the list as 'SHAVE'. Recall the list to the stack and execute MPLAY. It should sound familiar, but there is something wrong with it; there should be another GN between entries 2 and 3! 6.1.4.1. Editing Lists To make the correction, once again recall SHAVE to the stack and execute MWP20. Select EDIT. Note that despite the bar at the top reads "CS Nt Reg Dur Tmp", only frequencies and seconds are shown. When the EDIT option is selected, this always happens. 261.4 hertz is the frequency value for middle-C. The missing G-natural belongs in between the second and third entries. Move to the third entry and press INS. Note that the values from the previous entry, entry 2, are copied into the new entry. Press STO. Resave the list in 'SHAVE'. Recall the list and execute MPLAY. It should sound correct now. 6.2. GC and MPLAY The program MPLAY plays music. It requires in stack level 1 a list containing complex numbers in the form (f,d) where f is the frequency and d is the number of seconds. A frequency of 0 would result in a silence or a rest. The complex numbers must be in reverse order to be played. The beep flag -56 must be clear. A "garbage collection" may occur between notes being played, resulting in an abrupt gap. The program GC forces garbage collection. Use this program right before executing MPLAY. Gaps may occur inevitably if your memory is limited. To play the birthday example, recall BIRTHDAY to the stack, execute GC, then MPLAY. 6.3. MADJ MADJ is a music adjustment program. It requires a list usable by MPLAY in stack level 2 and a real number in level 1. A non-negative number will adjust the duration; a negative number will adjust the frequency. A positive or negative 1 will not affect the list. A zero will change the duration of every note to a zero, but this list will not work with MPLAY. A positive number greater than 1 will make the notes longer; a positive number less than 1 will make the notes shorter. A negative number less than -1 will make the notes higher; a negative number greater than -1 will make the notes lower. Recall the birthday example to the stack, enter .5 and execute MADJ. Execute GC followed by MPLAY. Note that the piece is twice as fast as the original. Once again recall the birthday example to the stack. Enter -2 and run MADJ. Execute GC followed by MPLAY. The same piece is played an octave higher. 6.4. MC and Other Compression Options MC is a music compressor/decompressor. If you write a lot of music, you will notice that memory is an important matter. MC compresses music lists into strings and vice versa. The strings created by MC cannot be used by MPLAY. Another option to consider is Lutz Vieweg's Redundance Fighter (RF) programs. The RF programs can compress music lists like nothing else. In terms of both time and memory, RF is a better choice over MC. The following is a list of pros and cons of each program. Program Pros Cons Compresses to about MC Integrated in music Incredibly slow; 44% library; compressor inefficient and decompressor in in one program RF Fast; better Three separate 78% compression programs 6.5. MWV and MWPV Both MWV and MWPV display the library version number and the copyright notice. MWPV displays the MusicWriter logo. Press any key to return to the stack. These two programs do not affect PICT or PPAR. 7. MusicWriter Sample Directories There are seven different directories, each containing six samples. Each directory comes in three formats: original, MC compressed and RF compressed. Samples compressed with MC and RF must be decompressed with MC or RFU before playing. 7.1. Checksum and Bytes for Sample Directories Download the directories in binary format. Do not use the directories if the figures do not match. Directory Bytes Checksum MWBACH 19051 # C899h or # 51353d MWBACHMC 10880 # 73E4h or # 29668d MWBACHRF 4117 # 2AD7h or # 10967d MWBTVN 8133 # 6EABh or # 28331d MWBTVNMC 4656 # FF78h or # 65400d MWBTVNRF 1943 # DE4Dh or # 56909d MWMSC1 16280 # 9BC5h or # 39877d MWMSC1MC 8554 # 1791h or # 6033d MWMSC1RF 3392 # 7C69h or # 31849d MWMSC2 13986 # BA05h or # 47621d MWMSC2MC 7682 # 77D0h or # 30672d MWMSC2RF 3145 # E760h or # 59232d MWMSC3 9855.5 # E168h or # 57704d MWMSC3MC 5309 # FA5Eh or # 64094d MWMSC3RF 2265 # 43F6h or # 17398d MWMSC4 15875 # E664h or # 58980d MWMSC4MC 9029 # C270h or # 49776d MWMSC4RF 3549 # F94Bh or # 63819d MWTOCC 13048 # 78D5h or # 30933d MWTOCCMC 7865 # A750h or # 42832d MWTOCCRF 2807 # B7D3h or # 47059d 7.2. Sample Descriptions The following is a list of samples and their descriptions. Most of the 42 samples are excerpts from larger works. 7.2.1. MWBACH Directory These samples are works by Johann Sebastian Bach. CANTATA - 4th movement chorale from Cantata 140 GIGUE - Gigue from the second English Suite ITALIAN - 3rd movement of the Italian Concerto JESU - Jesu, Joy of Man's Desiring PART1 - Gigue from the first Partita PART5 - Prelude from the fifth Partita 7.2.2. MWBTVN Directory These samples are works by Ludwig van Beethoven ELISE - Fur Elise FIFTH - 1st movement from the 5th Symphony NINTH - 4th movement from the 9th Symphony RONDO - Rondo a Capriccio, "Rage Over a Lost Penny" SONATA - 3rd movement from a Piano Sonata, Op. 81a TRIO - 1st movement from a Piano Trio, Op. 70, No. 1 7.2.3. MWMSC1 Directory BACH - 1st movement of Bach's D Minor Harpsichord Concerto BEETHOVEN - 3rd movement of Beethoven's 1st Piano Concerto FANTASY - Bach's Chromatic Fantasy and Fugue HAYDN - 3rd movement of Joseph Haydn's D Major Piano Concerto NELSON - Credo from Haydn's Nelson Mass VITALI - Tommaso Vitali's Ciaccona for Violin 7.2.4. MWMSC2 Directory BRAHMS - Johannes Brahms' Hungarian Dance No. 5 CHOPIN - Frederic Chopin's Polonaise in A Major, Op. 40, No. 1 CZERNY - Carl Czerny's Etude in E Major, Op. 740, No. 23 LISZT - 4th movement of Franz Liszt's Piano Concerto in E-Flat Major MOZART - 1st movement of Wolfgang Amadeus Mozart's Piano Sonata in D Major, KV 576 SCHUBERT - Franz Schubert's Impromptu in A-Flat Major 7.2.5. MWMSC3 Directory KATSARIS - Cyprien Katsaris' Le Troubadour et la Princesse ORFF - Fortune Plango Vulnera from Carl Orff's Carmina Burana RACH - Sergei Rachmaninoff's Prelude in G Minor, Op. 23, No. 5 RAVEL - Forlane from Maurice Ravel's Le Tombeau de Couperin SCHUMANN - Robert Schumann's Papillons TCH - 3rd movement of Peter Ilich Tchaikovsky's 6th Symphony 7.2.6. MWMSC4 Directory BARBER - 4th movement of Samuel Barber's Sonata for Piano CASINO - Casino from Koichi Sugiyama's DragonQuest IV Suite COMRADES - Comrades from Sugiyama's DragonQuest IV Suite PROKOFIEV - 1st movement of Sergei Prokofiev's Piano Sonata No. 7 SATO1 - Untitled work composed by J. S. Sato using MusicWriter SATO2 - Untitled work composed by Sato using MusicWriter 7.2.7. MWTOCC Directory These samples are toccatas by Bach B910 - F-Sharp Minor, BWV 910 B911 - C Minor, BWV 911 B913 - D Minor, BWV 913 B914 - E Minor, BWV 914 B915 - G Minor, BWV 915 B916 - G Major, BWV 916 8. Questions and Answers Q: When I try to start MusicWriter, an "Undefined Local Name" error occurs. What am I doing wrong? A: The Last Stack is disabled. Enable Last Stack and restart the program. Q: In the previous versions of MusicWriter and MusicWriter Pro, editing the register when the note was a rest caused the program to error. Has this bug been fixed? A: Yes. In both MW50 and MWP20, if REG is pressed when the note is a rest, the program ignores it. Q: I accidentally deleted selected entries in MWP20. Is there any way I can recover what I deleted? A: No. The "undo" feature is not available on any MusicWriter program. Take extra caution when using features such as CUT and DEL. Q: The ATTN key no longer aborts the program. Why? A: Out of panic, perhaps, some users tend to press the ATTN key when they want out of something that they got into by mistake. Except that they not always want to leave the program. In MW50 and MWP20, the ATTN key is ignored to prevent aborting the program by accident. If you want out of the program, just press STO and DROP the list. Q: Why is STO the exit key rather than ENTER? A: Because ENTER is used to input numeric values (as well as change view in MWP20), it is very possible the user might press ENTER when he or she does not want to exit. Because of this, the STO key is a better choice. Q: Why does MWP20 use user flags 56 and 57 for frequency and seconds edit? A: It is easier to remember because of the logic: system flags -56 and -57 deal with sound. Q: Where did the library ROM ID numbers 1136 and 1151 come from? A: 1136 is the sum of the HP-48 character codes for each of the characters in the string "MUSICWRITER PRO" plus one (since this is the second library version) and 1151 is the sum of the character codes for each of the characters in the string "MusicWriter" plus one. Q: The MPLAY program is not working. What am I doing wrong? A: The beep flag (-56) is probably set. Clear the flag and then run the program. Q: Why are there "gaps" when the calculator is playing? A: The calculator is doing a "garbage collection." To prevent this from happening during play, run GC right before playing music. Depending on the amount of memory you have available and the size of the list, a "garbage collection" may inevitably occur during play. Q: MPLAY was previously known as PLAY. Why did you decide to abolish this tradition? A: The variable PLAY is used so often for games, that a name conflict is possible (since this is a library). Q: Is it possible to compress a list with MC first and then compress the resulting string with RF? A: Yes it is, but it isn't worth it. First, it takes too much time to compress and decompress. Second, RF by itself can achieve close results in a fraction of the time. 9. About the Authors Shimpei Yamashita is a graduate of New Trier High School in Winnetka, Illinois, and is now continuing his education at Stanford University. In addition to majoring in physics and mathematics, he is a talented pianist and flutist. He has travelled to several countries as a flutist with the Stanford Symphony Orchestra. Junichi Steven Sato is a graduate of Lane Technical High School in Chicago and received his bachelor's degree with honor in piano performance from DePaul University in 1995. He has been studying piano and composition for over fifteen years. He is a member of the National Dean's List, Golden Key National Honor Society, and the Pi Kappa Lambda Professional Music Honor Society. His works as a composer and arranger include numerous original compositions, arrangements of music for computer performance, and transcriptions, including a two-piano, chorus and soli version of the Choral Finale to Beethoven's Ninth Symphony. 10. Correspondence Even though MusicWriter is not shareware, a suggested contribution of $15 would be greatly appreciated. Due to time limitations, not all questions will be answered, but please send them anyway. Suggestions, comments, and especially bug reports are also welcome. Please send them to: Junichi Steven Sato c/o MusicWriter 707 West Waveland Avenue, #311 Chicago, IL 60613-4112 (Address may change without notice) or E-Mail at jssato@aol.com In either case, please remember to include your name, complete mailing address, and an E-Mail address (if applicable). A. Features Comparison Table Feature Special 2.0 3.0 4.0 5.0 Pro1.0 Pro2.0 Note edit Y Y Y Y Y Y Y Register edit Y Y Y Y Y Y Y Duration edit Y Y Y Y Y Y Y Tempo edit Y Y Y Y Y Y Y Frequency edit Y Y Seconds edit Y Y Insert entry Y Y Y Y Beep last entry Y Y Delete last entry Y Y Beep current entry Y Y Y Y Delete current entry Y Y Y Y Play selected entries Y Y Del selected entries Y Y Cut/Copy/Paste Y Y Toggle flag -56 Y Y Y Y Off Y Y Edits existing list Y Y Menu driven Y Y Y Y Y Y Help screen Y Y Affects PICT Y Y Library Y Y Y Y System RPL Y Y Y Y Max entries displayed n/a 4 4 7 5 7 5 PLAY compatibility v1.0 v1.0 v2.0 v2.0 v2.0 v2.0 v2.0 MPLAY compatibility n/a n/a v2.0 v2.0 v2.0 v2.0 v2.0 Size (bytes) 1288 2026.5 1714 4783.5* 3435* 6959* 6841.5* Date of release 1990 1991 1991 9/92 9/93 9/92 9/93 * Size reflects entire library; 4.0 and Pro1.0 contain the MusicWriter program plus PLAY v2.0, MADJ v2.0 and MWVERSION v1.0 or MWPVERSION v1.0; 5.0 and Pro2.0 contain the MusicWriter program plus MPLAY v2.0, MADJ v2.0, MC v1.0, GC v1.0 and MWV v2.0 or MWPV v2.0. n/a - not applicable B. Key Definitions This section lists all the available keystrokes in MusicWriter and a brief description of each one. B.1. MWP20 Screen 0: Opening Screen NEW - Starts a new piece EDIT - Edits an existing list in level 1 EXIT - Exits MusicWriter Pro Screen 1: Main Editing Screen (invoked by 0:NEW or 0:EDIT) NOTE - Edits note REG - Edits register FRQ - Edits frequency DUR - Edits duration TMP - Edits tempo SEC - Edits seconds INS - Inserts an entry HELP - Displays help screen Up arrow - Moves up an entry Left-shift up arrow - Moves up four entries Right-shift up arrow - Moves to the first entry Down arrow - Moves down an entry or adds a new entry Left-shift down arrow - Moves down four entries Right-shift down arrow - Moves to the last entry Left arrow - Beeps current entry Right arrow - Marks current entry for cut/copy/paste Backspace - Drops current entry +/- - Toggles flag -56 - - Toggles flag 56 + - Toggles flag 57 ENTER - Changes between current entry view and main entry view OFF - Turns calculator off STO - Creates list and exits MusicWriter Screen 2: Note Editing Screen (invoked by 1:NOTE) C - Enters CN D - Enters DN E - Enters EN F - Enters FN G - Enters GN A - Enters AN B - Enters BN (Note: Left-shift note names give flat; right-shift note names give sharp) R - Enters rest CNCL - Cancels note editing HELP - Displays help screen NXT - Displays next menu page Screen 3: Numeric Editing Screen (invoked by 1:REG, 1:FRQ, 1:DUR, 1:TMP or 1:SEC) CNCL - Cancels numeric editing HELP - Displays help screen 0 - Enters 0 1 - Enters 1 2 - Enters 2 3 - Enters 3 4 - Enters 4 5 - Enters 5 6 - Enters 6 7 - Enters 7 8 - Enters 8 9 - Enters 9 . - Enters decimal point Backspace - Erases last digit or decimal point entered ENTER - Inputs new value Screen 4: Select Entry Screen (invoked by 1:right arrow) BEEP - Plays selected entries CUT - Cuts out selected entries COPY - Copies selected entries DEL - Deletes selected entries CNCL - Cancels cut/copy/paste HELP - Displays help screen Up arrow - Moves up an entry Left-shift up arrow - Moves up four entries Right-shift up arrow - Moves to the first entry Down arrow - Moves down an entry Left-shift down arrow - Moves down four entries Right-shift down arrow - Moves to the last entry Left arrow - Beeps current entry Right arrow - Moves to the marked entry +/- - Toggles flag -56 Screen 5: Paste Screen (invoked by 4:CUT or 4:COPY) PASTE - Pastes selected entries above current entry LAST - Pastes selected entries below last entry CNCL - Cancels cut/copy/paste HELP - Displays help screen Up arrow - Moves up an entry Left-shift up arrow - Moves up four entries Right-shift up arrow - Moves to the first entry Down arrow - Moves down an entry Left-shift down arrow - Moves down four entries Right-shift down arrow - Moves to the last entry Left arrow - Beeps current entry +/- - Toggles flag -56 B.2. MW50 Screen 1: Main Editing Screen NOTE - Edits note REG - Edits register DUR - Edits duration TMP - Edits tempo INS - Inserts an entry HELP - Displays help screen Up arrow - Moves up an entry Left-shift up arrow - Moves up four entries Right-shift up arrow - Moves to the first entry Down arrow - Moves down an entry or adds a new entry Left-shift down arrow - Moves down four entries Right-shift down arrow - Moves to the last entry Left arrow - Beeps current entry Backspace - Drops current entry +/- - Toggles flag -56 OFF - Turns calculator off STO - Creates list and exits MusicWriter Screen 2: Note Editing Screen (invoked by 1:NOTE) C - Enters CN D - Enters DN E - Enters EN F - Enters FN G - Enters GN A - Enters AN B - Enters BN (Note: Left-shift note names give flat; right-shift note names give sharp) R - Enters rest CNCL - Cancels note editing HELP - Displays help screen NXT - Displays next menu page Screen 3: Numeric Editing Screen (invoked by 1:REG, 1:DUR or 1:TMP) CNCL - Cancels numeric editing HELP - Displays help screen 0 - Enters 0 1 - Enters 1 2 - Enters 2 3 - Enters 3 4 - Enters 4 5 - Enters 5 6 - Enters 6 7 - Enters 7 8 - Enters 8 9 - Enters 9 . - Enters decimal point Backspace - Erases last digit or decimal point entered ENTER - Inputs new value