
It is now possible to play sounds by directly accessing the midi CONTROLER. To support this capability, The following new tasks have been added to the Ultra-SiMPLE system library:
Name: Openmidi
Type: Task
Operation: Opens the midi controler.
_____________________________________________________________________________
Name: Playnote (Int voice, Int note, Int dur)
Type: Task
Operation: Plays the specified musical note at maximum volume.
Enter with: voice - the voice to be used for the note.
1 = Acoustic Grand Piano
2 = Bright Acoustic Piano
3 = Electric Grand Piano
4 = Honky-tonk Piano
5 = Electric Piano 1
6 = Electric Piano 2
7 = Harpsichord
(etc.)
note - the note to be played.
(60 = Middle C, 0 = silence)
dur - the duration of the note (in milliseconds).
(If the 'note' parameter is greater than 0,
the note will stop playing abruptly after
the specified duration. If the 'note' para-
meter is less than 0, the note will be sus-
tained until the next non-silent note is en-
countered.)
_____________________________________________________________________________
Name: Closemidi
Type: Task
Operation: Closes the midi controler.
_____________________________________________________________________________
Example:
The following program will play a "do-re-mi" sequence of notes (in the key
of C) on a Harpsichord, with each note lasting for one second:
open midi
play note (7, 60, 1000)
play note (7, 62, 1000)
play note (7, 64, 1000)
close midi
_____________________________________________________________________________
For more "exotic" applications (such as playing chords), the following tasks
are also available:
_____________________________________________________________________________
Name: Startmidi (Int chan, Int voice, Int note, Int vol)
Type: Task
Operation: Starts playing the specified musical note.
Enter with: chan - the midi channel (0-15) in which
the note is to be played.
voice - the voice to be used for the note:
1 = Acoustic Grand Piano
2 = Bright Acoustic Piano
3 = Electric Grand Piano
4 = Honky-tonk Piano
5 = Electric Piano 1
6 = Electric Piano 2
7 = Harpsichord
(etc.)
note - the note to be played.
(60 = Middle C, 0 = silence)
vol - the volume (0-127) to be used for the note.
_____________________________________________________________________________
Name: Stopmidi
Type: Task
Operation: Stops playing all midi sounds.
_____________________________________________________________________________
Example:
The following program will use channels 0, 1, and 2 to play a quiet 3-note
Grand Piano chord (in the key of C) for two seconds:
open midi
start midi (0, 1, 60, 32)
start midi (1, 1, 64, 32)
start midi (2, 1, 67, 32)
delay (2000)
stop midi
close midi
Color #6 in Ultra-SiMPLE did not display correctly. (It contained too much green.) This bug has now been fixed.
When running a SiMPLE program in a window, the mouse cursor would sometimes be erroneously shown as an hour glass. This bug has now been fixed.
NEW: Each of the 16 "Standard Colors" can now be expressed either by a number in the range 0 - 15 (just as before), or by its name:
| Number | Name |
| 0 | Black |
| 1 | Dark Blue |
| 2 | Dark Green |
| 3 | Dark Aqua |
| 4 | Dark Red |
| 5 | Dark Violet |
| 6 | Dark Yellow (or Brown) |
| 7 | Gray |
| 8 | Dark Gray |
| 9 | Blue |
| 10 | Green |
| 11 | Aqua |
| 12 | Red |
| 13 | Violet |
| 14 | Yellow |
| 15 | White |
Notice that the first letter of each word in the color's name must be upper case.
Example:
solid color (Dark Red)
solid circle (300, 200, 100)
NEW: Each of the "Special" keys on the keyboard ("Esc", "Tab", "Backspace", etc.) can now be expressed either by a number (just as before), or by its name:
| Number | Name |
| 8 | Backspace |
| 9 | Tab |
| 13 | Enter |
| 27 | Esc |
| 274 | Alt |
| 315 - 324 | F1 - F10 |
| 327 | Home |
| 328 | Up Arrow |
| 329 | Page Up |
| 331 | Left Arrow |
| 333 | Right Arrow |
| 335 | End |
| 336 | Down Arrow |
| 337 | Page Down |
| 338 | Insert |
| 339 | Delete |
| 389 - 390 | F11 - F12 |
Notice that the first letter of each word in the key's name must be upper case.
Example:
wait quitkey (Esc)
The RGB values of the 16 "Standard Colors" in Ultra-SiMPLE have been slightly adjusted so as to exactly match the RGB values of the corresponding colors in Pro-SiMPLE.
A somewhat major bug was discovered in both the "Messagebox" task and in the "Querybox" function. If these modules were to be invoked in an Ultra-SiMPLE program that used the on-screen graphics buttons, a conflict could occur. These problems have now been fixed.
Some bugs in SiMPLE's translator were discovered and fixed.
The numerical values of the "voices" in Ultra-SiMPLE's midi tasks were off by one. (E.g., a "Church Organ" was 19 instead of the 20 that it should have been.) All of the midi voices have now been corrected.
The functionality of Ultra-SiMPLE's virtual screens has been made more robust.
A new function has been added to the Ultra-SiMPLE system library:
Name: Verifyfolder (Text path)
Type: Int function
Operation: Does the folder (specified by path) exist and,
if so, is it writable? (If "path" is a null string,
the folder being specified is the current device's
root directory.)
Returns: 0: The folder was not found
1: The folder was found but it is not writable
2: The folder was found and it is writable
The previous version of SiMPLE (10.2.25) incorrectly displayed the version number as 10.2.23.
The previous version had incorrectly set the initial display mode for the Ultra-SiMPLE. (It would display all output onto the user's desktop.) This has now been corrected.
None of Ultra-SiMPLE's "keyin" functions ("Keyintext", "Keyinint", etc.) were working correctly. Those problems have now been fixed.
When expressing the names of colors, the first letter of a color's name MUST be an upper case letter. But, if the color's name consists of two words (such as "Dark" and "Blue"), the second word can now be either upper or lower case (e.g., "Dark Blue" or "Darkblue")
When expressing the names of keys on the keyboard, the first letter of a key's name MUST be an upper case letter. But, if the key's name consists of two words (such as "Left" and "Arrow"), the second word can now be either upper or lower case (e.g., "Left Arrow" or "Leftarrow")
The tasks in the "@toys" library are now available as appendable modules in the Global Append Library. [When implemented from the Global Append Library, the "@toys" handle is no longer needed. Furthermore, modules in the Global Append Library can accept the names of colors and keyboard keys (e.g., "Red", "Uparrow". etc.) as calling parameters.]
Several unnecessary files were removed from the system, and some of the built-in documentation was cleaned up.
The "toys" module in Ultra-SiMPLE's Global Append Library had an error. This bug has now been fixed.
Some of the keyboard names ("Leftarrow, "Uparrow". etc.) were not being recognized. This bug has now been fixed.
[2010 April 4: The calling parameters of all the "readkey" and "waitkey" tasks (i.e., "waitkey(key)", "readquitkey(key)", etc.) can now be passed as either the numerical value of the key or as the text character for the key. (For example, you can now specify either 'waitkey(97)' or 'waitkey("a")' if you want to wait for the "a" key to be pressed.]
[2010 April 13: A problem with Ultra-SiMPLE's "explode" task (in the Global Append Library) has now been fixed. In addition, the "explode" tasks (in both the Ultra-SiMPLE and Pro-SiMPLE Global Append Libraries) now provide the option of either leaving the explosion's debris or clearing it away.]
[2010 April 22: The following tasks/functions have been added to the Ultra-SiMPLE and Pro-SiMPLE system libraries:
_____________________________________________________________________________
Name: Getpath (Text path)
Type: Text function
Operation: Returns the base path of the "path" parameter.
(The base path is the path minus the file mame.)
_____________________________________________________________________________
Name: Getname (Text path)
Type: Text function
Operation: Returns the raw name of the file in the "path"
parameter. (The raw name is the name minus the
extension.)
_____________________________________________________________________________
Name: Getext (Text path)
Type: Text function
Operation: Returns the extension of the file in the "path"
parameter. (If the file has no extension, a null
string is returned.)
_____________________________________________________________________________
The following task has been added to the Ultra-SiMPLE system library:
_____________________________________________________________________________
Name: Renamefile (Text src, Text dst)
Type: Task
Operation: Renames the file (specified by "src") to a new
file (specified by "dst"). If "src" and "dst" are
in different folders, the file is moved to "dst".
Name: Getpath ( )
_____________________________________________________________________________
A new example program, "Magnify.txt", has been added to the "SiMPLE Samples" folder.
A "System" task (similar to the one in the Pro-SiMPLE system library) has now been added to the Ultra-SiMPLE system library.]
When using "Drag & Drop" mode, the program's executable (".EXE") file will not have the same name as the source (".TXT") file, unless the source listing's name is no more than eight characters in length.
The "explode" task had been accidentally removed from Pro-SiMPLE's "@toys" library. It has now been restored.
A problem in declaring a single comment line was discovered. If a pair of forward slash characters (//) was immediately followed by an asterisk character (*), the slash and asterisk characters (/*) were interpreted as indicating the beginning of a comment block, and the pair of forward slash characters were not interpreted as indicating the beginning of a comment line. This bug has now been fixed.
An error was discovered in Ultra-SiMPLE's "Movemouse" task. The error has now been fixed.
A new example program, "Eruption.txt", has been added to the "SiMPLE Samples" folder.
The "MAKESTIK" program in Ultra-SiMPLE's STICKERS project (in command-line mode) had an error. This problem has now been fixed.
The word "Orange" is now recognized as a color.
The word "Pink" is now recognized as a color.
The word "Space" is now recognized as indicating the space bar.
The concept of "Pre-compiled Libraries" is being phased out. Therefore the pre-compiled "@toys" library is no longer being supported. Instead, all of the former "@toys" modules are now supported only as Append modules (in the Global Append "toys" library).
The "copter" and "smiley" tasks have now been incorporated into the Global Append "toys" library, so they no longer need to be separately appended.
The special keys on the keyboard can now be referenced either by number, by name, or as a text string. For example, all of these instructions will wait for the "Esc" key to be pressed: waitkey (27), waitkey (Esc), waitkey ("Esc")
Double-clicking the "Drop SiMPLE Listing Here" icon now displays the revision number near the top of the window.