Author Topic: Houston Tracker - 1-bit music editor  (Read 19235 times)

0 Members and 1 Guest are viewing this topic.

Offline utz

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 161
  • Rating: +28/-0
    • View Profile
    • official hp - music, demos, and more
Houston Tracker - 1-bit music editor
« on: March 01, 2013, 11:08:54 am »
Want to make chiptune music on your calculator? Well, now you can.



Download Houston Tracker 0.3
Includes TI82/83/83+/84+ binaries and offline manual.

Source code new

Website

Sound demo
Sound demo for version 0.2


This is an early beta. Please post bug reports, feature requests and other feedback in this thread, or send me a mail (see the manual for my address).


Features:

- 1-bit PFM and XOR sound(similar to various ZX Spectrum beeper routines)
- 2-4 tone channels + 2 interrupting drum sounds
- (Pseudo-)Stereo sound (channels hardpanned l/r)
- Compact editor+player
- Linear song data, no patterns
- Multiple sound routines


Not done yet:

- Internal compression (working on it)
- Dumping/Loading song data via PC soundcard
- TI85/86/73 ports


The editor is very simple and should be intuitve to use if you're familiar with the concept of trackers. However it uses hexadecimal input instead of note names. Why on earth, you may ask? Well, as you know there are only about 27K of RAM available on the TI82, and there are no fancy flash carts or sd card readers. So I tried to keep the editor as lightweight as possible, and max out space for song data instead. Implementing a note table lookup might easily double the size of the editor Besides, the hex-do has another advantage: you can easily use non-western tuning, make "phat" basslines with detuning, etc... Well, don't worry, the manual includes a pitch-to-hex conversion table. If you feel like making a better one, please do!

Questions? Suggestions? Post them here!

UPDATE May 31st, 3013 - Version 0.3 is released

Some neat new stuff, including the long awaited "light" version. For details, click here.


UPDATE April 16th, 2013 - Version 0.21 is released

Added TI83 support and fixed a critical bug which prevented one of the sound routines from exiting. TI83+ port will probably follow soon.

UPDATE April 15th, 2013 - Version 0.2 is released

Contains loads of new stuff, for details check this post


Download link remains the same, see above.
« Last Edit: August 29, 2013, 04:48:44 pm by utz »

Offline Keoni29

  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2466
  • Rating: +291/-16
    • View Profile
    • My electronics projects at 8times8
Re: Houston Tracker - 1-bit music editor
« Reply #1 on: March 01, 2013, 11:13:01 am »
Very impressive. My chiptune tracker only did 1 channel at the time.

Edit: It really is a pain to make music using a hex editor and converting notes by hand is not something a musician would like to do. I have experience with converting notes to hex values and hex values to frequencies which then had to be converted to hex. Is there a reason why you don't display the hex as musical notes? It could fit on the screen I guess.

Example:
« Last Edit: March 01, 2013, 11:18:16 am by Keoni29 »
If you like my work: why not give me an internet?








Offline blue_bear_94

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 801
  • Rating: +25/-35
  • Touhou Enthusiast / Former Troll / 68k Programmer
    • View Profile
Re: Houston Tracker - 1-bit music editor
« Reply #2 on: March 01, 2013, 08:02:14 pm »
Looks nice! How much space does the program take?
Due to dissatisfaction, I will be inactive on Omnimaga until further notice. (?? THP hasn't been much success and there's also the CE. I might possibly be here for a while.)
If you want to implore me to come back, or otherwise contact me, I can be found on GitHub (bluebear94), Twitter (@melranosF_), Reddit (/u/Fluffy8x), or e-mail (if you know my address). As a last resort, send me a PM on Cemetech (bluebear94) or join Touhou Prono (don't be fooled by the name). I've also enabled notifications for PMs on Omnimaga, but I don't advise using that since I might be banned.
Elvyna (Sunrise) 4 5%
TI-84+SE User (2.30 2.55 MP 2.43)
TI-89 Titanium User (3.10)
Casio Prizm User? (1.02)
Bag  東方ぷろの

Offline chickendude

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 817
  • Rating: +90/-1
  • Pro-Riot Squad
    • View Profile
Re: Houston Tracker - 1-bit music editor
« Reply #3 on: March 01, 2013, 09:23:21 pm »
It's a super cool project, i wish i could test it out or help out in some way. Maybe we could look for optimizations to the hex editor source?

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55942
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Houston Tracker - 1-bit music editor
« Reply #4 on: March 01, 2013, 10:24:18 pm »
I wonder why are all the more advanced calc trackers are only on the 82? Does it just have better hardware for sound or something? O.O

That said this seems very cool. I really hope  I can try this at one point. I have VirtualTI and the calc but I'm unsure if my ROMs runs it (my calc has 16.0).

Does anyone know how to send this to VirtualTI and WabbitEmu? It doesn't appear to support 82b files... (it just says transmission error on all 3 ROMs I tried) ???
« Last Edit: March 02, 2013, 03:24:45 am by DJ_O »
Now active at https://discord.gg/cuZcfcF (CodeWalrus server)

Offline Sorunome

  • Fox Fox Fox Fox Fox Fox Fox!
  • Support Staff
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 7920
  • Rating: +374/-13
  • Derpy Hooves
    • View Profile
    • My website! (You might lose the game)
Re: Houston Tracker - 1-bit music editor
« Reply #5 on: March 01, 2013, 11:30:02 pm »
Wow, that is pretty cool!
I wish I could try it out but I don't have a 82 :P

THE GAME
Also, check out my website
If OmnomIRC is screwed up, blame me!
Click here to give me an internet!

Offline chickendude

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 817
  • Rating: +90/-1
  • Pro-Riot Squad
    • View Profile
Re: Houston Tracker - 1-bit music editor
« Reply #6 on: March 01, 2013, 11:44:12 pm »
I think the readme says 16-19.0 are all fine, but 19.006 isn't supported.

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55942
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Houston Tracker - 1-bit music editor
« Reply #7 on: March 02, 2013, 01:38:43 am »
Cool then, because I got a calc with 16.0 lol. I wonder if displaying both hex and the corresponding note (if applicable for the note in question) would be possible in the future for new musicians who are used to standard music creators?
Now active at https://discord.gg/cuZcfcF (CodeWalrus server)

Offline chickendude

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 817
  • Rating: +90/-1
  • Pro-Riot Squad
    • View Profile
Re: Houston Tracker - 1-bit music editor
« Reply #8 on: March 02, 2013, 02:01:48 am »
If the source gets released, it will most certainly be possible ;) Perhaps there could be two versions, a lightweight hex-input version and a slightly larger note-based version?

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55942
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Houston Tracker - 1-bit music editor
« Reply #9 on: March 02, 2013, 02:34:16 am »
Yeah true. Lightweight could be smaller and for older calc models, while the other would be for those who don't mind about file size. I still think that the note version should have hex too, though. Just a note selector that you can open if you hate manipulating this much hex by hand. We have to remember that it's a tracker, but some stuff for visual people wouldn't hurt (and would attract more users). :)

Another thing is that if this was done for the TI-84 Plus, it could possibly be used inside games, because the processor is 15 MHz instead of 6 and the calc has 480 KB of Flash memory. In fact, TI-Boy SE (Game Boy emulator) allows 3 sound channels at once.

By the way utz are the first two songs the only TI-82 songs on your SoundCloud account or were the others done with this program (and the other 82 program) as well?
« Last Edit: March 02, 2013, 02:38:25 am by DJ_O »
Now active at https://discord.gg/cuZcfcF (CodeWalrus server)

Offline TIfanx1999

  • ಠ_ಠ ( ͡° ͜ʖ ͡°)
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 6173
  • Rating: +191/-9
    • View Profile
Re: Houston Tracker - 1-bit music editor
« Reply #10 on: March 02, 2013, 02:56:12 am »
Ti-boy is actuallly 4 channels, but the timing is not consistent unfortunately.

Offline utz

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 161
  • Rating: +28/-0
    • View Profile
    • official hp - music, demos, and more
Re: Houston Tracker - 1-bit music editor
« Reply #11 on: March 02, 2013, 09:32:25 am »
Thanks y'all for your responses! I'm glad some people here are interested :)

Looks nice! How much space does the program take?

At the moment, the editor+sound routine are about 1.4 KB, plus 10 K for user data. It will be extended to use all available RAM once the multiload/save feature is done.

It's a super cool project, i wish i could test it out or help out in some way. Maybe we could look for optimizations to the hex editor source?

I'll release the source code as soon as loading/saving and copy/paste functions are done. Also if somebody wants to port this to any of the newer models, you're more than welcome to do so.

What I really need at the moment is a working on-calc RLE+LZ77 packer/depacker. It could be quite slow, as long as it's small in size and efficient enough.


I wonder why are all the more advanced calc trackers are only on the 82? Does it just have better hardware for sound or something? O.O

I guess there's a simple reason for this - right now it seems I'm the only one developing 1-bit sound tools for the TI, and TI82 is the only model I own. TI82 isn't perfect, 86 would be the best of course ;)


That said this seems very cool. I really hope  I can try this at one point. I have VirtualTI and the calc but I'm unsure if my ROMs runs it (my calc has 16.0).

Does anyone know how to send this to VirtualTI and WabbitEmu? It doesn't appear to support 82b files... (it just says transmission error on all 3 ROMs I tried) ???

VTI emulates the sound more or less correctly, but has a few problems with display timing. Also you need to switch off sound emulation before turning off VTI or it will go zombie. WabbitEmu's 82 display emulation on the other hand is totally broken as far as I can tell. both in recent and older builds. It'll also do the sound part right, though.

I think the readme says 16-19.0 are all fine, but 19.006 isn't supported.

Yeah I'll make a 19.006 version eventually, but it's not so high on my list of priorities. Personally, I think the 82CS sucks as a development machine - crap link port that wears out easily, and CrAsh 19.006 isn't exactly stable.


As far as the note/hex issue is concerned - this was one of the most difficult questions in relation to this project, and in the end I decided against it for a number of reasons:

- The conversion is rather arbitrary, so neither a linear nor a logarithmic function can be used for conversion. The only possibility would in fact be a lookup table for all 3,5 octaves. Also every 1-bit sound routine uses slightly different values, so in fact I'd need to make a table for every sound routine I implement.

- Atm the plan is to have at least 3-4 engines, with different functionality. Eg, there could be a 2-channel sound routine which uses the additional 2 channels for effect commands (timing, timbre, etc). Having a simple hex editor avoids the need to adapt the display driver to the sound routines each time.

- Since tuning is always a bit problematic with 1-bit routines, it is basically required to have a possibility for manually detuning the note data. So, if I were to make the input so it uses Note name + offset/detune parameter, I couldn't do the direct hex-to-RAM conversion anymore, which is the main secret ingredient for keeping the editor size down. Also, translating back the values is non-deterministic, since on higher octaves notes can be just 1 byte apart.

- Last but not least, if there were note names, how would you go about entering them? Either you type them in manually, which would be far less efficient than the current method. Or I tie notes to different keys, which would only be feasible if you turn the calculator sideways to edit. Plus, it would require a complex lookup considering the octave value must be taken into account.

That being said, someone has already suggested a useful feature that I'll probably try to implement somehow. Basically, it would translate the hex value which is currently highlighted by the cursor back into a note name, plus possible offset.



Concerning a port to later TI models, with or without added functionality, you are more than welcome to give it a try. As I said, I'll release the sources with one of the next updates. There are a couple of potential issues I see with it: The sound routine might need a major rewrite, unless it is somehow possible to slow down the cpu to the speed of a regular 82/83. Also reading song data directly from Flash will most likely be too slow. Well, I know zilch about the new models, so I'll leave it up to you to figure this out ;)

In-game use is not a good idea, because 1-bit routines block interrupts as well as any running keyhandlers, and take up 99% of CPU time, regardless of clock speed. (You could use it for title screens though. In this case these routines might be a better choice though.)
« Last Edit: March 02, 2013, 09:37:01 am by utz »

Offline Keoni29

  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2466
  • Rating: +291/-16
    • View Profile
    • My electronics projects at 8times8
Re: Houston Tracker - 1-bit music editor
« Reply #12 on: March 02, 2013, 09:34:47 am »
1 bit routines are always cpu intensive when you are going for multiple channels.
There really should be a calculator with hardware dedicated to sound. A TI84+ SE S?
« Last Edit: March 02, 2013, 09:34:55 am by Keoni29 »
If you like my work: why not give me an internet?








Offline TIfanx1999

  • ಠ_ಠ ( ͡° ͜ʖ ͡°)
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 6173
  • Rating: +191/-9
    • View Profile
Re: Houston Tracker - 1-bit music editor
« Reply #13 on: March 02, 2013, 09:37:09 am »
Actually Keoni, one of my friends had an old graphing calc that was capable of producing beeps. The built in basic language even had support for it. It was pretty cool. :) His mom has been a math teacher forever, so that's where he got it from.

Offline Keoni29

  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2466
  • Rating: +291/-16
    • View Profile
    • My electronics projects at 8times8
Re: Houston Tracker - 1-bit music editor
« Reply #14 on: March 02, 2013, 10:33:22 am »
A HP calculator? Kraftwerk used one of those in their song "pocket calculator." (I don't know why I haven't covered that song yet with all of my sound peripherals XD)
If you like my work: why not give me an internet?