.

User Manual 1.1.1

Abstract, System Requirements, Player Piano, Piano Keyboard, Music Editor, Debugger, Music Notation, To HotSync® Data, To Install, To Uninstall, To Register, Legal Stuff, Bugs/Features, Contact Information, Links, Distribution Files, Notes to CASL Programmers


Abstract

TuneTapper is a Player Piano, a Piano Keyboard, a Music Editor, and a Music Debugger.

User Profile Features Price
Musician: Looking for a way to compose and fine tune melodies Compose your song on a 6 octave keyboard with complete tempo and note length settings. Fine tune your song by playing back all at once, or 1 note at a time, with back step or in-line editing possible at any point. QuickBasic® Play function format is easy to learn. Demo for free, and if you like it, the registered version is $12, and includes some advanced debug features
Gadgeteer: "Look, my Palm™ device can play the Star Trek Theme!" Plays songs formated in QuickBasic® Play function format. This makes the player piano compatible with the large body of songs on the internet, and allows users who may be familar with this notation to leverage their knowledge. Songs can be imported from internet with Palm™ Memo Pad app. 34 songs are provided in distribution file. You'll never pay a cent more than free, and that's ok. If you'd like to have more than 2 songs loaded in at once, consider the $12 registered version.
CASL Programmer: Looking for a way for your new game to play some music sequences Allows you to create songs which can by played by your programs. All source code provided including a 3 kB module for playing TuneTap formatted songs. Happy to provide for free. Please don't charge anyone else for these features.

What's New

Version 1.x provides the following improvements over version 0.3:

Top


System Requirements:

Palm™ Device Requirements

Compatible with all Palm Computing® connected organizers (Palm™ OS1 not personally tested). Program requires CASL runtime 2.65 or higher, and library files MathLib.prc, LFSLib.prc, and CASLMenuLib.prc, included in this distribution.

Memory requirements:

Program file is 42 kB. An additional 56 kB are required, if CASL runtime (42 kB), and library files, LFSLib.prc (9 kB), and CASLMenuLib.prc (1 kB), and slmLib.prc (4 kB) are not already on your Palm™ device, making the total memory requirement 98 kB.

For those interested, TuneTapper is written in CASL. The prc program file is p-code that must be interpreted by the CASL runtime in order to run on your Palm™ device. This is similar to how Visual Basic and Java require a runtime. CASL can also make calls to external libraries. TuneTapper makes use of 3 external libraries.

Windows® Requirements

For HotSync® capability, CASL conduit and related files must be installed. Compatible with any Win32 PC (Windows® 95, Windows® 98, and Windows® NT).

Memory requirements:

Approx. 360 kB.

Mac® Requirements

You may use Mac platform for installing Palm™ device version of program and if necessary CASL runtime and library files onto your Palm™ device. However no Mac version of CASL conduit for HotSync® capability is provided. See Windows requirements for memory requirements.

Top


Player Piano

The program first starts up with the main Player Piano screen. Shown is the song title (blank if no song data), selector list of songs (not shown if no data), and option buttons.  The program is in "Ready" mode. From here you can select songs for playback, switch to the Piano Keyboard screen, or switch to the Music Editor screen.

Since playback and compilation of songs can take more than the maximum 3 minute auto-off Preferences setting, TuneTapper at startup disables the auto-off setting of your Palm™ device. TuneTapper at shutdown returns the auto-off setting to the factory default 2 minutes.

Caution: Be careful not to leave TuneTapper on for extended periods or you'll drain your batteries. Starting another application will return your auto-off setting.

The user options in detail:

Playback Song

[Play] First select a song in the song selection list. The selected song is shown above the selection list.

Tapping Play plays back the selected song.

Status indicator displays "Playing..." while in playback mode, and displays "Ready" when song play is completed.

Real time play back is accomplished by compiling the QB Play text into low level TuneTap text, and then playing the TuneTap text in real time. As there is a compilation delay before play back, a progress bar showing percent compiled is displayed during compilation. TuneTap text allows for more efficient retrieval of each note's pitch, duration, and period until next note, and therefore 100% accurate timing during play back. The compiled TuneTap version of song is stored, and on subsequent plays the song is played directly, without the need to recompile.

Tip: To avoid unnecessary recompilations, whenever possible use the Piano Keyboard for composing songs. When using the Music Editor, use the [Discard] option when you didn't make any changes.

Tip: If you want to avoid the compilation delay before playing a new song, and don't mind a play back delay between notes, use the [x]Debug [Play], [Play] mode.

Tip: If a syntax error is detected, tap the [Edit] button, and the cursor will be auto-positioned at error position (registered version only).

[x] Debug With this checked, play back is in debug mode, and each note's timing and pitch settings are shown as the song is played back. This might help identify where a melody needs further refinement. See Debugger for details.
[Cancel] This button appears while in playback mode, and aborts playback, returning to "Ready" mode.

Switch to Piano Keyboard

[Create] Switches to Piano Keyboard screen and allows you to input new melody. See Piano Keyboard for details.
[Append] First select a song in the song selection list. The selected song is shown above the selection list.

Tapping Append takes you to the Piano Keyboard, and recorded notes will be appended to (added to the end of) the selected song. See Piano Keyboard for details.

Tip: If you're in the habit of using the keyboard append technique to add to songs, you'll see that a full set of settings are added at the start of each append session. If the previous settings are the same, you could delete the redundant settings with Music Editor.

Switch to Music Editor

[New] Switches to Music Editor screen and allows you to input new melody in text form. See Music Editor for details.
[Edit] First select a song in the song selection list. The selected song is shown above the selection list.

Tapping Edit takes you to the Music Editor, with the selected song loaded into the editor. See Music Editor for details.

Tip: If a syntax error was detected while trying to play song, tap the [Edit] button, and the cursor will be auto-positioned at error position (registered version only).

Menu Options

All menu options are global (they're shown with all screen views), however the Song and Help options are only active from the main Player Piano screen.  The Edit options are only active from the Music Editor screen.

Song | Delete First select a song in the song selection list. The selected song is shown above the selection list. Tapping Song | Delete deletes the song from the static database. There's a confirmation message first.
Song | Delete All Deletes the entire song database. There's a confirmation message first. After deleting database, there is an option to:
[Uninstall] Deletes keyboard settings database, and disables program so no new default data is created. The main program must still be deleted with Palm™ memory applet, to complete uninstallation. If you change your mind, you can reenable program by starting any other program, and then restrting TuneTapper. Note this will recreat default databases.
[Reinitialize] Program continues to function, song database is empty, and default settings are used for keyboard.
Help | Help Help screen
Help | About Program version, author, and update information

Top


Piano Keyboard

This screen shows the title of the current song (blank if creating new), the last 24 characters of recorded song (blank if nothing recorded), keys to adjust timing and pitch settings, and a piano keyboard including a pause (rest) key. All settings from previous session are restored.

Display on right side of keyboard is the number of measures played. A measure is considered equivalent to a whole note. For example, 4 * 1/4 notes is a measure. Display is to nearest full 1/16 note. Internally the number of beats is measured in 1/64 notes. For display 3/64 = 0/64, 4/64 = 1/16. This was felt to be reasonable compromise since 1/32 and 1/64 notes are rarely used, and it's easier to read common notes like 1/4 and 1/8 in beats of 1/16, rather than 1/64.

Experimentation/Record Mode

[x] Pen Checking this toggles between Experimentation mode (pen up) and Record mode (pen down). While in Record mode the settings are recorded to the song text, after each note or pause key is tapped. Timing and pitch settings are only recorded when they change from previous note or pause.
[Discard] Returns to main Player Piano screen. All song text is discarded.
[Save] Returns to main Player Piano screen. All song text is stored in static song database. If the song is new, you'll be prompted to enter a unique song title. The title may contain spaces.

Tip: The standard Palm™ edit shortcut strokes will work while the title dialog box is displayed, and therefore you can paste a title into the textbox with paste shortcut, /P

Music Time Settings

[Lnn] Length of note. Legal values are 1, 2, 4, 8, 16, 32, 64, signifying notes of 1/1, 1/2, 1/4, 1/8, 1/16, 1/32, and 1/64. With the Music Editor any value 1-64 may be specified, see description of QB Play notation for details.
[Tnnn] Tempo of music.  Number of 1/4 notes per minute.  Legal values are 45 - 255, in increments of 15.  With the text editor any value 32-255 may be specified, see description of QB Play notation for details.
[1.0,1.5] Note multiplier.  Legal values are 1 and 1.5.  1.5 setting increases the length of note by 3/2.  1.0 setting has no effect on length of note.
[Mc] Mode of play.  Defines the duration the note will be played.  Legal options are Legato (long), Normal, and Staccato (short).  See Translating Time and Pitch settings into Music for details.
[P] Pause (rest).  Specifies a rest of length L should be played. You'll see the displayed song text will be appended with pause token preceeded with any setting changes.

Tip: For readability, a space character is inserted after each measure.

Music Pitch Settings

[On] Allows you to change octave. 0 is lowest octave, C is 131 Hz. 6 is highest octave.  Middle C is at the start of octave 1.

During recording, if the Octave setting changes by +/-1, the relative octave change notation codes are used, ">", and "<".  This allows a songs starting octave to be easily edited, and normally other octave changes will automatically keep their relative settings. See description of QB Play notation for details.

[A-G#] Full single scale piano layout ls displayed (C, C#, D, D#, E, F, F#, G, G#, A, A#, B, C). Tapplng keyboard note will play indicated note for the duration setting, and you'll see the displayed song text will be appended with indicated note token preceeded with any setting changes.

Tip: For readability, a space character is inserted after each measure.

Translating Time and Pitch settings into Music

Period between notes, ms When recording a song, the time between actually tapping the notes is not recorded.  During playback, the time between notes will be defined by the L, T, and [1.0, 1.5] multiplier settings.

Period = Length of note as multiple of 1/4 notes * ms per quarter note * multiplier. In format of settings  = (4 / L) * (1000 * 60 / T) * [1.0, 1.5] multiplier.

Specs: The shortest period possible is 14.7 ms (L=64, T=255, [1.0]). The longest period possible with keyboard is 8,000 ms (L=1, T=45, [1.5]), and with the editor you could have periods of 11,250 ms (L=1, T=32, [1.5]).

Duration of note played, ms When recoding a song, and during playback, the note play duration is defined by the L, T, [1.0, 1.5] multiplier, and M settings.  The length of time you tap a note has no bearing on the note duration played.

Duration = Percentage of Period. When mode = Legato, Duration = 1 * Period, when mode = Normal, Duration = 3/4 * Period, and when mode = Staccato, Duration = 1/2 * Period.

Specs: The shortest note duration possible is 7.4 ms (1/2 * 14.7). The longest note duration possible with keyboard is 8,000 ms, and with the editor you could have a note duration of 11,250 ms (see Period).

Pitch, Hz When recoding a song, and during playback, the note pitch is defined by the O setting and Note tapped.

Over the 12 equally spaced notes in a chromatic scale, the pitch geometrically doubles. The A note of octave 1 with middle C is defined as 440 Hz (exactly). Halfing as we go down in octaves, the A note below octave 0 is 110 Hz.

In general for any note N = 0-12 (C-B) in Octave O = 0-6, the Pitch = 110 * 2 ^ (((O * 12) + N + 3) / 12). The 3 offset is because the A note is N=-3. The start of an octave is note C, N=0.

Specs: The lowest note is C of octave 0, which is 131 Hz. The highest note possible with keyboard is high C of octave 6, which is 8372 Hz. This is a range of 0 through 5 full chromatic octaves plus the C of octave 6, which is 73 notes ((6 * 12)+1). With the editor you can play all notes up to B of ocatve 6, however the Palm speaker seems to cutoff at about F of octave 6, 11,175 Hz.

Top


Music Editor

This screen shows the title of the current song (blank if creating new), and a large textbox containing the entire song represented in QuickBasic® Play function notation.

Edit Mode

[text area] Work with like the Palm™ Memo App. See description of QB Play notation for details on codes and their meanings.

Tip: Text can be entered in upper case or lower case.

Tip: For readability, text created with Piano Keyboard will have a space character inserted after each measure.

[Position] Shown only when no syntax error is known. Tapping will display cursor position at entry, and current cursor position. When entering from Music Debugger, registered version will auto-position cursor at current point in song.

To understand positions, consider the text string, "abcdef". Position 0 is before the a, position 1 is before the b, etc.

Hint: Freeware...repeated hunt and peck...

[Error] Shown only when a syntax was recently detected while trying to play song. Tapping will display error position and message again. Current cursor position also displayed. Registered version will auto-position cursor.

Hint: Freeware...repeated hunt and peck...

[Discard] Returns to main Player Piano screen. All song text changes are discarded.

Tip: To avoid unnecessary recompilations, use the [Discard] option when you didn't make any changes.

[Save] Returns to main Player Piano screen. All song text changes are stored in static song database. If the song is new, you'll be prompted to enter a unique song title. The title may contain spaces.

Tip: The standard Palm™ edit shortcut strokes will work while the title dialog box is displayed, and therefore you can paste a title into the textbox with paste shortcut, /P

Menu Options

Edit | Undo Undoes last edit command.
Edit | Cut  Inserts selected text into clipboard. Good for exporting music text to Palm™ Memo application, or moving music text in song.
Edit | Copy Inserts a copy of selected text into clipboard. Good for exporting music text to Palm™ Memo application, or copying music text, for example a chorus, to another point in song.
Edit | Paste Inserts the clipboard contents into music editor at cursor point. Good for importing music text from Palm™ Memo application, or inserting music text to another point in song.
Edit | Select All Selects all text in Music Editor.
Edit | Keyboard Displays Palm™ keyboard.
Edit | Graffiti Display Palm™ Graffiti® help screen.

Transferring Songs Between Your PC and TuneTapper

Since the Player Piano plays any song in the QB Play function notation, songs downloaded from the internet will play. There is a large body of such songs on the internet.

Should you want to get a song on your PC into your TuneTapper database, first paste the text into a new memo of your Palm™ Desktop program. Second, perform a HotSync so the memo is now on your Palm™ Device. Selected Memo text can be pasted into the Music Editor of TuneTapper. The reverse will allow you to transfer songs to your PC.

Tip: Paste both the title and song text into the Music Editor. Cut the title out of the song text. Tap Save, and you can use paste to enter the title.

The text files, QB_Tunes?.txt, contain 34 songs I've found on the internet. They are included in the zip distribution file. Contents of song files:

A helpful link to start your own search is http://www.qbasicfiles.8m.com/.

If you come with anything new, please send me an email.

Top


Debugger

This screen shows the title of the current song, the next 24 unplayed characters of the recorded song, and displays all QB music settings as each note is played, similar to the Piano Keyboard.

Debug Mode

[Play] Plays back the song until it's done, or you tap [Stop].

This is accomplished by interpreting the stored music text in real time by keeping track of time and octave settings, and playing notes. See QB Play Notation for details. Playback is slowed down by the need to parse each QB token, and continuously update screen.

When song finished, debugger is reset with song at start postion.

Tip: If a syntax error was detected while trying to play song, tap the [Edit] button, and with the registered version, the cursor will be auto-positioned at error position.

[Stop] Pauses play back. Play can be continued at this position in song by tapping [< Step], [Step >] or [Play].

Tip: To reset song play back to start, tap [Done], [Play].

[Step >] Parses and plays a single QB token. Play can be continued at this position in song by tapping [< Step], [Step >] or [Play].

When song finished, debugger is reset with song at start postion.

Tip: If a syntax error was detected while trying to play song, tap the [Edit] button, and with the registered version, the cursor will be auto-positioned at error position.

[< Step] Undoes the last token parse. Play can be continued at this point in song by tapping [Step >] or [Play]. Registered version allows 16 levels of undo; freeware version 2.

Hint: Freeware...1 step forward, 2 steps back...

[Edit] Loads song into Music Editor. With registered version, the cursor is inserted at current play back position of song.

On [Save], Debugger is reset with song at start position.

On [Discard], Debugger is at pre-edit state.

[Done] Returns to main Player Piano screen.

Top


Music Notation

The music notation is how you control the behavior of the Player Piano, and with respect to the play back of single notes, also defines the behavior of the Piano Keyboard.  The notation used by TuneTapper is the same as that used by the QuickBasic® Play function.

The QuickBasic® documentation appears below in new courier font. QuickBasic® is a product of Microsoft Corporation. Some annotation by the author is provided in normal font.

PLAY commandstring$

commandstring$ A string expression that contains one or more of the following PLAY commands:

Octave and tone commands:

Ooctave Sets the current octave (0 - 6).
< or > Moves up or down one octave.

">" = +1, "<" = -1

A - G Plays the specified note in the current octave.
Nnote Plays a specified note (0 - 84) in the seven-octave range (0 is a rest).

The Nnote notation is never used when creating songs with the TuneTapper Piano Keyboard.  It is supported by the Player Piano as follows.  For notes A-G# followed by 0-84, for example G16, the number is interpreted as a note length in a similar way the L notation is. In the case of G16, a G note is played as a 1/16 note.  Numbers from 65-84 are interpreted as 64. The number does not change the current L setting.  Number 0 is interpreted as a pause of length L.

Duration and tempo commands:

Llength Sets the length of each note (1 - 64). L1 is whole note, L2 is a half note, etc.
ML Sets music legato.
MN Sets music normal.
MS Sets music staccato.
Ppause Specifies a pause (1 - 64). P1 is a whole-note pause, P2 is a half-note pause, etc.
Ttempo Sets the tempo in quarter notes per minute (32 - 255).

See Translating Time and Pitch settings into Music for how the Player Piano interprets the ML, MN, and MS settings with regard to note play duration.

Although the Piano Keyboard writes with a subset of the L and T settings, the Player Piano supports all settings.  This means any legal settings entered with Music Editor will play correctly.  Any QBasic formatted song downloaded from the internet or otherwise obtained, will play correctly.

Mode commands:

MF Plays music in foreground.
MB Plays music in background.

MF and MB are ignored by the Player Piano.  All music is played in a timer loop which allows monitoring for user cancel.

Suffix commands:

# or + Turns preceding note into a sharp.
- Turns preceding note into a flat.
. Plays the preceding note 3/2 as long as specified.

The "." suffix is what the [1.0, 1.5] Multiplier setting of the TuneTapper Piano Keyboard changes. The "." suffix is parsed after standard note A-G#, and note form Ann-G#nn, and pause Pnn.

The Piano Keyboard always writes with the "#" suffix format, but the Player Piano supports all suffixes.

Any space characters (ascii 32) in the song string are ignored by Player Piano, and therefore may be added by Music Editor for clarify.  Song strings downloaded from internet containing spaces, will play correctly. The exception is a song cannot have a space as its first character.

If a song contains no time settings before notes are encountered, the notes are played with length=4, tempo=240, and multiplier=1.

All letter codes are interpreted by Player Piano as case-insensitive (g=G, t=T, ect).

Top


To HotSync® Data

You must first have installed and registered the CASL Conduit.

Place Palm™ device in HotSync cradle, and push the HotSync button on cradle. TuneTapper data will be transfered bidirectionally.

Note: If you have more than one Palm™ device registered with your PC, TuneTapper data will always be transferred to the user who performed the last HotSync operation.

Note: You cannot change the bidirectional nature of the TuneTapper HotSync. The CASL Conduit overrides the settings of the 3Com HotSync utility.

The advantage to performing a HotSync on your data is that it's backed up on your PC. Since no PC version of TuneTapper is provided, there's no way to edit data on the PC side for transferring to your Palm™ device. It is not recommended that the TuneTapper db's be edited with a text editor, (although one could).

See Transferring Songs between your PC and TuneTapper.

Top


To Install

No fancy installation program is provided, so the following manual instructions must be followed.

1. Extract zip file contents

1.1. Open tunetapper11.zip Archive

If you're reading this, you've probably already done this. On your desktop system, open the tunetapper03.zip file with your zip file archive program.

Note: Can't read zip files? For Windows users, you can get a copy of WinZip™ (shareware) at WinZip. For Mac user, you can get a copy of ZipIt™ (shareware) at ZipIt.

1.2. Extract files to your desktop system

Use the extract action of your zip archive program, and extract all files to any folder (directory) you choose. It's recommended to use a new folder "TuneTapper".

If you extract to an existing folder, and if you get a File Overwrite confirmation dialog, click Yes only if the "Replace file" is older than the "With file".

Caution: Overwriting an existing CASL system file with an older file could result in a loss of CASL functionality and/or loss of CASL bug fix.

2. Install on Palm™ Device

2.1. Check for prior version of TuneTapper version

Start up your Palm™ device. On the main screen, and with the "All" category selected, do you see the TuneTapper icon?

2.1.a. Delete old song database

Start TuneTapper.

If you want to save any songs, copy them out of the Music Editor and paste them into Palm™ Memo Pad documents.

Use menu command, Song | Delete All to delete existing song database. Select the Uninstall option. Exit program by tapping silkscreened Applications button. (The new version of TuneTapper will install over the old version. It's not necessary to delete old version of program.)

Caution: New database structure is incompatible with old structure. Not deleting old database before loading in new version of program, will result in a soft reset when you start TuneTapper. Should you get into this bind, load the dbMan2.prc file onto your Palm™ device, and use to delete the "ttSongs" database. dbMan2 requires the CASL Runtime on your Palm™ device to run. See steps 2.2 and 2.3 for details.

2.2. Check for prior version of CASL Runtime

On the main screen, and with the "All" category selected, do you see the CASLrt icon (CASL runtime)?

2.3. Install CASL runtime

If you do not yet have the CASL runtime installed, or you have a version older than 2.6.7 (see step 2.1), use standard Palm™ device install Tool and with "Add..." button specify file:

Note: Substitute your [installation drive and folder] for "c:\TuneTapper" if you chose a different drive or folder.

The CASL runtime undergoes periodic updates, and no attempt is made to keep the supplied CASL runtime up to date. For the latest version of the CASL runtime, you can download from http://www.caslsoft.com/download/CASLrt.zip.

2.4. Install library files

With the Palm™ device install Tool and with "Add..." button specify files:

Note: There are no version compatibilty risks, even if library files previously installed.

2.5. Install program file

With "Add..." button specify file:

2.6. Click "Done"

2.7. Perform a HotSync® operation

Afterwords, TuneTapper icon will appear on your Palm™ applications screen.

3. Setup HotSync® operation of TuneTapper data

Optional: You only need to do this step if you want to back up your Palm™ TuneTapper data onto your Win32 machine during normal Palm™ HotSync operations.

3.1. Copy CASL Conduit files to CASL System Folder

If your harddisk does not already have the folder, create a folder with name "c:\Program Files\CASLsoft\CASL2". It is strongly recommended you use exactly this folder name as a central location for all CASL system files, to ease version control.

Copy following files from "c:\TuneTapper\" to "c:\Program Files\CASLsoft\CASL2"

  • caslcn20.dll
  • CondReg.exe
  • RemCond.exe
  • If you get a File Overwrite confirmation dialog, click Yes only if the "Replace file" is older than the "With file". Otherwise, click No.

    Caution: Overwriting an existing CASL system file with an older file could result in a loss of CASL functionality and/or loss of CASL bug fix.

    3.2. Windows System Files

    The following files must be in your c:\Windows\System folder.

  • MFC42.DLL
  • MSVCRT.DLL
  • They are in all likelyhood already on your machine. They are very large (total 1.3 MB) and therefore are not included in zip distribution file. If you need these files you can download from my Palm™Apps page.

    3.3. Register CASL Conduit.

    You need to run the CASL conduit registration utility CondReg.exe with the path to the CASL conduit DLL CASLcn20.dll specified on the command line. Create a Windows Shortcut with the following command line (or enter the following in the Start | Run command line, or at a DOS prompt):

    CondReg.exe "c:\Program Files\CASLsoft\CASL2"

    Note: There is no trailing backslash. If the path name contains spaces, then it will need to be enclosed in quotes.

    This will copy the DLL from the specified location to the PalmPilot install directory, and register the CASL conduit with HotSync. The Palm™ HotSync software must be installed first.

    Top


    To Uninstall

    1. Uninstall on Palm™ Device

    1.1. Delete all songs with program menu command. Select uninstall option. If you don't know how, see Player Piano.

    1.2. Quit program.

    1.3. Use Palm™ Memory application to delete program.

    1.4. If not used by any other programs, use Palm™ Memory application to also delete CASL runtime and CASL external library files.

    2. Remove HotSync® operation of TuneTapper data

    2.1. If you have other CASL programs, you should not perform this step. If you don't have any other CASL programs, you can double click the RemCond.exe icon in "c:\Program Files\CASLsoft\Casl2" folder to remove CASL conduit from windows registry.

    After this, you may delete any and all files in "c:\TuneTapper" folder.

    Top


    To Register

    The $12 registered version provides the following addional features, gives you free updates, and you'll be encouraging me to keep making improvements. Visit http://home.att.net/~dianfrank/pilot_apps.htm for payment methods.

    Feature Freeware version Registered version
    Maximum songs that can be stored

    2

    32

    Debugger, maximum back steps

    2

    16

    Debugger, editor cursor position

    Cursor is always at end of song

    Cursor is placed at current play back position in song

    Player Piano, editor cursor position

    Cursor is always at end of song

    If error, cursor is placed at error position in song, otherwise at end

    Top


    Legal Stuff

    Copyright © October 1999, Frank O'Brien, dianfrank@worldnet.att.net.

    TuneTapper name, program, user manual, and source code are copyrighted by Frank O'Brien.

    Absolutely no warranty is given.

    Palm Computing, HotSync, and the Palm Computing platform logo is a trademark of Palm Computing, Inc., 3Com Corporation or its subsidiaries. CASL is a product of CASLsoft and Feras Information Technologies. Windows and Microsoft are registered trademarks of Microsoft Corporation. Mac is a registered trademark of Apple Computer. Other product and brand names may be trademarks or registered trademarks of their respective owners.

    The following is the hybrid freeware/shareware distribution policy.

    1. Freeware version of program file and related distribution files, may be distributed as freeware. The freeware version of program file is named: TuneTapper11.PRC.

    2. The registered version of program file may only be used by a single registered user. Ownership may be transferred. The registered version of program file is named: TuneTapper11_r.PRC.

    3. CASLsoft allows distribution of the runtime, and conduit files on a royalty free basis. The file set is:

  • CASLrt_Pro.prc CASL PalmPilot Pro Runtime (OS 2+)
  • CASLrt_5K.prc CASL Pilot 1000/5000 Runtime (OS 1)
  • caslcn20.dll CASL Conduit
  • CondReg.exe CASL Conduit HotSync Registration
  • RemCond.exe CASL Conduit HotSync Unregistration
  • 4. LFSLib.prc is a freeware CASL external library file from Luicil Fernandes, (c) 1994-99 by LF's Informatica Ltda., www.sigera.com/Palm, lfslib@singera.com, and may be freely distributed. The external library provides CASL with Clipboard, Palm keyboard, and Graffiti help functions. You're not paying anything for its use; a copy is simply included in this archive for your convenience.

    5. CASLMenuLib.prc is a freeware CASL external library file from Stephen Millman, and may be freely distributed. The external library provides CASL with menu shortcut stroke functions. You're not paying anything for its use; a copy is simply included in this archive for your convenience.

    6. slmLib.prc is a freeware CASL external library file from Stephen Millman, and may be freely distributed. The external library provides CASL with low level control of textbox objects. You're not paying anything for its use; a copy is simply included in this archive for your convenience.

    7. The CSL, CPK, CFF source files and the CIC icon file may be distributed under the following conditions:

    a. There shall be no commercial use of the source code files, except as allowed in item d.

    b. Source code may be modified and distributed. Distributed changes shall be documented with name, type, date, and note in about box. The original author and contact address for registered version must remain in about box.

    c. Modified source code and compiled programs resulting from modified source code can only be distributed at no charge.

    d. The following files are freeware package files. They have no warranty. They may be incorporated into your programs, but any monetary charge for your program may not include functionality provided by these files:

  • Play.cpk
  • QBPlay.cpk
  • ExpMath.cpk
  • ErrorMessage.cpk
  • GetNum.cpk
  • SelectItem.cpk
  • GetText.cpk
  • ProgressBar.cpk
  • Top


    Bugs/Features

    If you see something wrong or you see something that could be improved, let me know. I'm not a musician (I'm more a mathematician), so I'm sure there's some things I've done wrong, or things I could do better. Let me know what you want. I've had a lot of fun creating this program. Basically composing music reminds me of programming. I've created a music editing system which mimicks modern programming tools. For example the compiler, interpretor, and debugger have their roots in the programming world. I'm not sure this works for those used to composing music, but hopefully it's helpful.

    If you'd like to donate any songs you compose, transcribe, or find on the internet, send me an email. I'd be happy to post for download on the TuneTapper web page.

    Updates and any songs sent to me will be posted at http://home.att.net/~dianfrank/pilot_apps.htm.

    Top


    Contact Information

    Frank O'Brien, dianfrank@worldnet.att.net.

    Top


    Links

    If you're interested in music and math, check out Dave Rusin's site. He's amazing. Mathematics and Music.

    An excellent compilation of music theory and Palm apps by Michael Winikoff, including an app of his own which allows keyboard input of notes and timing, assisted by a metronome, (as opposed to TuneTapper which ignores the timing of inputed notes, and looks instead only at QB settings), http://goanna.cs.rmit.edu.au/~winikoff/palm/music/index.html.

    A general coverage of computer music topics, Computer Music Jounal, Published by MIT Press (at Berkley, CA), Douglas Keislar, Editor, http://mitpress.mit.edu/e-journals/Computer-Music-Journal/.

    A web site and mailing list (I haven't joined, but looks interesting) for what appears to be people into Palm devices and MIDI music. Lot's of links, http://www.crudites.org/soundventures/handheld-music/.

    A helpful link to start a search for Quick Basic® Play formatted songs http://www.qbasicfiles.8m.com/.


    Distribution Files

    Contents of tunetapper11.zip (includes Palm™ program, CASL runtimes, CASL libraries, CASL conduit files, documentation, and documentation images).

    CASLCN20 DLL        61,440  10-09-99  6:59a caslcn20.dll
    REMCOND  EXE        24,576  10-09-99  6:59a RemCond.exe
    CONDREG  EXE        24,576  10-09-99  6:59a CondReg.exe
    TTAPANIM GIF         3,554  11-06-99  9:10p ttapanim.gif
    TTDEBUG  GIF         1,441  11-28-99  5:28p ttDebug.gif
    TTEDIT   GIF         1,143  12-02-99 10:51p ttEdit.gif
    TTKEYB~1 GIF         1,875  11-28-99  5:27p ttKeyboard.gif
    TTMAIN   GIF         1,216  11-28-99  5:27p ttMain.gif
    PCP_POS  GIF         1,350  02-19-99  9:44a pcp_pos.gif
    TTANISCR GIF         5,621  12-02-99 10:53p TTAniScr.gif
    TUNETA~1 HTM        79,754  12-03-99  9:54p tunetapper_doc.htm
    LFSLIB   PRC         8,829  07-25-99 12:43p lfslib.prc
    SLMLIB   PRC         3,627  12-28-98  8:55p slmLib.prc
    CASLME~1 PRC           999  04-11-99  8:57p CASLMenuLib.prc
    CASLRT~1 PRC        36,883  05-03-99  9:19a CASLrt_5k.prc
    CASLRT~2 PRC        42,554  05-03-99  9:19a CASLrt_pro.prc
    DBMAN2   PRC         7,071  08-03-99 10:31p dbMan2.PRC
    TUNETA~1 PRC        42,617  12-03-99  9:32p TuneTapper11.PRC
    QB_TUN~1 TXT         3,830  10-16-99  6:50p QB_Tunes2.txt
    QB_TUN~2 TXT         3,557  10-16-99  6:58p QB_Tunes3.txt
    QB_TUN~3 TXT         3,342  10-16-99  6:58p QB_Tunes4.txt
    QB_TUN~4 TXT         2,099  10-16-99  6:56p QB_Tunes5.txt
    QB_TUN~5 TXT         3,460  10-16-99  9:55p QB_Tunes1.txt
    SOURCE~1 ZIP        47,590  12-03-99  9:39p sourcecode_tunetap.zip
            24 file(s)        412,889 bytes

    Contents of sourcecode_tunetap.zip (includes source code):

    TT_DEBUG CFF         4,360  11-28-99  9:58a tt_Debug.cff
    TT_MAIN  CFF         3,115  11-11-99  8:12a tt_Main.cff
    TT_KEY~1 CFF         4,339  11-28-99 10:11a tt_Keyboard.cff
    TT_EDIT  CFF         2,250  12-02-99  7:33a tt_Edit.cff
    TUNETA~1 CIC           150  01-25-98  4:48p TuneTapper.cic
    TUNETA~1 CPJ        13,338  12-03-99  9:35p TuneTapper.cpj
    TT_KEY~1 CPK        13,168  11-28-99  3:58p tt_Keyboard.cpk
    TT_EDIT  CPK         5,934  12-03-99  7:50a tt_Edit.cpk
    TT_MENU  CPK         1,061  11-27-99  2:15p tt_Menu.cpk
    TT_DEBUG CPK        10,280  12-03-99  7:34a tt_Debug.cpk
    TT_PRO~1 CPK         4,164  12-03-99  9:34p tt_ProgramInfo.cpk
    CASLERR2 CPK         2,058  03-22-99  7:39p caslerr2.cpk
    QBPLAY   CPK        29,730  12-03-99  7:54a QBPlay.cpk
    PLAY     CPK         2,788  11-27-99  2:11p Play.cpk
    MSGBOX   CPK         7,191  11-13-99 12:41p MsgBox.cpk
    SLMLIB   CPK         2,184  11-13-99 12:07p slmlib.cpk
    SELECT~1 CPK         5,342  10-16-99  5:35p SelectItem.cpk
    CASLME~1 CPK         1,249  10-16-99 11:52a CASLMenuLib.cpk
    LFSLIB   CPK         1,160  12-02-99  9:08p LFSLib.cpk
    GETTEXT  CPK         4,199  10-15-99 10:34p GetText.cpk
    GETNUM   CPK         5,049  10-10-99  9:22p GetNum.cpk
    ERRORM~1 CPK         1,512  07-13-99 10:24p ErrorMessage.cpk
    PROGRE~1 CPK         2,562  11-13-99  1:41p ProgressBar.cpk
    EXPMATH  CPK         1,574  11-27-99  3:12p ExpMath.cpk
    TT_MAIN  CSL        18,754  12-03-99  9:34p tt_Main.csl
    README   TXT           471  08-02-99  9:02p readme.txt
            26 file(s)        147,982 bytes

    Top


    Notes to CASL Programmers

    Adding songs to your programs

    You could use TuneTapper to create songs for your own program. Your program will need to have a string defined with the TuneTap version of each song. Each song can be played by your program by including the Play.cpk file, and using the py_PlaySong(string song) function.

    See py_Play.cpk file for details on py_PlaySong function.

    The easiest way to get the TuneTap version of each song, is to load the PC version of the "ttSongs.cdb" file into NotePad. Copy the TuneTap data strings you want into your program. The "ttSongs.cdb" file is in your "pilot\[user]\CASL" folder.

    Song database structure

    The following is an example of "ttSongs.cdb" file with 1 song record:

    #CDBID: CASL
    #MAJREV: 2
    #MINREV: 0
    #FLDCNT: 3
    #RECCNT: 1
    #SYNCMODE: MERGE
    #FLDNUM:1 TYPE:S SIZE:0
    #FLDNUM:2 TYPE:S SIZE:0
    #FLDNUM:3 TYPE:S SIZE:0
    0x00765001,0x0000,"Scale","MLT240L4O1CDEF GAB>C","00262,0125012500294,0125012500330,0125012500349,0125012500392,0125012500440,0125012500494,0125012500523,01250125"

    Each song record has 3 fields; the title, the QB text string, and the TuneTap text string. The CASL IDE Reference Manual (and Win Help file) has more information on cdb database structures.

    Top