(8. August and 13. September 2000)

*** HiFiPad 1.0 by Jakob Stille (jakobstille@hotmail.com) ***

This is my first complete assembler program for the TI-82. It is a music application that lets you make and play tunes in two channels (using two speakers that you connect to the linkport; I'm sure you know how to do (I prefer connecting to a stereo amplifier)).

Oops, I said complete. That's not really true, because there are many improvements I know that could be made, but I don't have the energy/time to make it complete with multipattern/partition handling and so on. Although, I want to let people see my work and either learn something themselves or teach me a lesson (and I would love to hear what you think).


*** Included files ***

- ReadMe.txt (this document)

- HiFiPad.82p (clean version of the program: no tune in it)

- HiFiPadS.82p (slow-playing version)

- HiFiPadF.82p (fast-playing version)

- Demo1.82p (the program with an included tune)

- Demo2.82p (same as above, but another tune. Do you recognize it?)

Note: The demofiles are Swedish versions. Except for the language, can you find the technical difference(s)?

*** How to use ***

When the program is run you will be taken to the title screen. Press any key to move on. Three columns will appear:

- One that with hexadecimal numbers helps you navigate in the tune (from $00 to $3F; 64 steps).

- Two that tell what tone is placed at that location in the tune; one for each channel (left/right).

There will also be eight lines:

- The one in the top that contains the words Left and Right (now I realize this one is pretty unnecessary, but it softens the interface and makes it easy to understand).

- Seven that contain the tune's notation information.

One line is highlighted (the two note cells in it is graphically inverted). This is the active line. You will also notice an arrow (in fact just the tip of one = a triangle) that points at one of the two cells of the active line; this is the active cell.

To change the active line/cell, use this keys:

 [up] Makes the line/cell above the currently active cell active. 
 [down] Makes the line/cell below the currently active cell active.
 [left] Makes the left cell of the active line active.
 [right] Makes the right cell of the active line active.

To change the content of the active cell, use these keys:

 [+] Raise the tone in the active cell by one semi tone. If there is no tone in it, the *default tone* will be put in it.

 [-] Lower the tone in the active cell by one semi tone. If there is no tone in it, the *default tone* will be put in it.

 [0] Deletes the content of the active cell = sets the content to "-"

 [,] Puts an end-of-tune-sign, "E", into the active cell. Should only be placed in the Left column, otherwise strange, evil things will happen. OBSERVE: Do not put the "E" into the Right column. This can cause your calc to strangle (or hang) itself. The "E" is useful when your tune doesn't use all 64 lines; because when commanded to play, the program plays from line $00 to $3F, unless it encounters an "E" on the way. When making a full-lenght tune, the "E" can be used to listen to the progress so far and be spared from the extra time consumed by playing the last blank lines.

The *default tone* is by default (in the clean version of the program) C4, but as soon as you have raised/lowered a tone in any cell, the *default tone* will change into this tone. This is useful when wanting to place one tone at more than one location (occurs pretty often).

To play, use this key:

 [GRAPH] Yes, it really does it...

And finally, when you are tired of the HiFiPad, use this key:

 [MODE] Takes you back to ASH (the only TI-OS I have used).


*** Known bugs ***

- When line $00 is displayed, but is not placed at the top, the notation information in the cells of this line and any below it will be corrupt (actually, these cells now display the contents of the memory cells after the song data, though translated into notes). It is still possible to change the contents of these cells, but the changes cannot be seen until line $00 has been scrolled to a non-bugged position.

- I repeat: The "E" must not be put in a cell in the Right column!


*** Known limitations ***

- Only one tune per program; so if you want more than one tune in your calc at a time, you need another copy of the program. This is bad, cause just the song data takes 128 bytes of space, while the whole program takes about 1400 bytes.

- Only 64 steps = short tunes. Well, this could easily be changed, but the best solution would be the possibility to link together and/or repeat different patterns of 64 steps to make looong tunes. Actually, that's maybe not that difficult either...

- Only one length of the tones. Disturbing, isn't it? To make a tone sound longer, you can have it repeated, although it sounds hacky and still doesn't give all possibilities that otherwise would be able.

- Only one "instrument". Im sorry, but the square wave sound is the easiest to produce. I haven't got any education in sound and music theoretics... so I don't know how to do...

- The HiFiPad plays out of tune! I know. It was hard to tune; I haven't got absolute pitch, and, the big reason, there are hardware limitations I cannot override.

- Only two channels. I'm at least proud to present two instead of one, but, yeah, sure, more channels would not be bad... I just don't know how . Somebody else can figure that out.

- Only x tones available. Tones of higher pitch would be really out of tune (I have tried); tones of lower pitch would be possible to produce, but I don't care about that. If you do, tell me so.

- Only one speed. Could be changed easily in fact; if the users really want to, I'll fix this.


*** The last words ***

I have to give my thanks to some persons whose existence were essential for me:

- Jimmy Mrdell; without his online school I still wouldn't know anything about assembler.

- Andrew Von Dollen, maker of "Alien Version 1.2 with Sound!", the first program with sound I encountered.

- Andreas Ess, the man behind Playwav, a program from which I learnt that sound doesn't have to be hard to produce.

- Probably some more, but I can't remember. Sorry about that...


It was more than a year ago I completed this program and, well, since I assembled anything at all, so I don't have all ASM-stuff clear in my head. But, never-the-less, I still have some interest in the business (actually, assembler will be a part of a course I take part in for the moment) so I appreciate every hint or tip you want to share whith me.

I don't include the source code. Why? To see if there is any actual interest. If anybody is interested in it, contact me and you'll have it.

Even if you don't want the source code, and just use the program for fun, give me your thoughts about it!


Best Regards

Jakob Stille
Sweden

jakobstille@hotmail.com