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

0 Members and 1 Guest are viewing this topic.

Offline chickendude

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 817
  • Rating: +90/-1
  • Pro-Riot Squad
    • View Profile
Re: Houston Tracker - 1-bit music editor
« Reply #30 on: April 16, 2013, 12:37:05 pm »
Wow, that was quick! I really need to get some headphones that work with this... Can't wait to see the 83+ version :)

Offline tr1p1ea

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 647
  • Rating: +110/-0
    • View Profile
Re: Houston Tracker - 1-bit music editor
« Reply #31 on: April 16, 2013, 07:51:34 pm »
This project is awesome! I checked out the test songs and its really cool. Then i went and listened to SlayRadio for a few hours for that old school fix :).
"My world is Black & White. But if I blink fast enough, I see it in Grayscale."


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 #32 on: April 19, 2013, 09:51:52 am »
And with some help from chickendude, the TI83+ port is done. Download as always at http://irrlichtproject.de/downloads/houston.zip

HT83+ uses MirageOS, or DoorsCS (any newer shell might actually work). The song size was reduces to 1600 lines, due to the RAM limitations of the 83+. Also, the latest version fixes a small bug in the 83 port.

I'm assuming the 83+ version will also work with TI73. Anyway I have no means of testing the 83/83+ ports on hardware, so I'd appreciate some feedback/test reports on those.

Offline Dapianokid

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 539
  • Rating: +46/-27
  • That one dude
    • View Profile
Re: Houston Tracker - 1-bit music editor
« Reply #33 on: April 19, 2013, 12:17:02 pm »
I'm on it, utz. :)

It's an incompatible type for the 83+ port, though so I guess I'm not.

The only difference I can see is in the documentation (May not be different from other hardware models, like the 82...). The manual says that CLEAR stops playback, but VAR is the button that does it on the 83+.
I'm writing my own tuning table, I play piano by ear like a freak of nature and the tuning set you had annoyed me :P Not only was EVERY note a half step down, but many of them weren't tuned properly at all and I found out that it was easy to fix that. So, I'll post it here in a little while.

Releasing the source may allow some experts optimize your code :)
Also, if you change the hex interface so that each hex number corresponds to a certain note, (e.g. 01=C 02=C# it may make user interface easier.
I have some ideas for a fourth engine, more standardized. :)

I suggest it creates another prog for songs, so we can share
« Last Edit: April 19, 2013, 04:27:03 pm by Dapianokid »
Keep trying.

Offline chickendude

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 817
  • Rating: +90/-1
  • Pro-Riot Squad
    • View Profile
Re: Houston Tracker - 1-bit music editor
« Reply #34 on: April 19, 2013, 09:39:52 pm »
I think most of those are in the works. I dunno about changing the interface, but once the source is released there's nothing stopping us from doing that ourselves. Also, [Clear] worked for me. [Vars] might work, too, just because it's the same value as [Clear]. If [Vars] is stopping it, then other keys in that row ([Math], [Prgm], etc.) should stop the player, too.

Also, since the 82/83 version don't support external files, i think it'd make more sense to wait until the main engine is a little more developed/closer to its final state, that way you don't have to worry so much about keeping track 2 different engines or filling your code with conditional code à la Phoenix :P Anyway, i have a feeling the programs will be written for the 82 then ported to the 83/+ afterwards. But i agree, external files for songs would be nice. As it is, the songs are stored in the program itself, so if you want to share you'll just have to transfer the entire program over.

Offline Dapianokid

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 539
  • Rating: +46/-27
  • That one dude
    • View Profile
Re: Houston Tracker - 1-bit music editor
« Reply #35 on: April 20, 2013, 10:03:55 am »
I think most of those are in the works. I dunno about changing the interface, but once the source is released there's nothing stopping us from doing that ourselves. Also, [Clear] worked for me. [Vars] might work, too, just because it's the same value as [Clear]. If [Vars] is stopping it, then other keys in that row ([Math], [Prgm], etc.) should stop the player, too.

Also, since the 82/83 version don't support external files, i think it'd make more sense to wait until the main engine is a little more developed/closer to its final state, that way you don't have to worry so much about keeping track 2 different engines or filling your code with conditional code à la Phoenix :P Anyway, i have a feeling the programs will be written for the 82 then ported to the 83/+ afterwards. But i agree, external files for songs would be nice. As it is, the songs are stored in the program itself, so if you want to share you'll just have to transfer the entire program over.

Actuall,y you're spot on. Any key in that row stops it for me, and a few other keys I believe.
yeah, chickendude I wrote a quick utility that lets me transfer the SONG as an appvar and then rewrite it in the program's buffer, just experimenting with the program.
There should be an app version..
Quick suggestion: Try to engine 3 capable of playing the squares at the same volume?
Keep trying.

Offline chickendude

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 817
  • Rating: +90/-1
  • Pro-Riot Squad
    • View Profile
Re: Houston Tracker - 1-bit music editor
« Reply #36 on: April 20, 2013, 01:17:50 pm »
Do you think an app version'd be worth it? Once the source gets released, we can work on putting one out, i don't think it would need that much modification and it would open up a lot more RAM for songs.

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 #37 on: April 20, 2013, 01:29:24 pm »
Yup, during playback the port is masked with a 0, since xor a is faster than ld a,N. And timing is critical in these routines. That is also why i can't level out volumes in engine 3 - basically, it precalculates the counters for the next internal loop while it's playing the current one. So the only way to do it would be inserting nop-code, which would pretty much render the frequency range unusable. Even at an increase of 10 t-states, pitches below $80 are already pretty pointless. Besides, it's great to have multiple volume levels, makes simulating echos/reverb much easier.

Regarding simplifying the hex - for reasons I've explained in the OP, that's a definite no from my side. If somebody else wants to implement that, sure, why not.

As far as the pitch issue is concerned - yeah, that table works for engine 1 only, anyway. I thought my collegue had tuned it to exactly 440 Hz, but now I faintly remember that at some point we tried shifting it down a half-tone, as a work-around to massive detuning in the upper octaves.

As for an app/flash using version and/or storing the songs independantly, I very much agree that there should be such a thing. However, I won't be the one doing that since I don't have a clue about these newer hardware features. I'd be curious to see your utility though, dapianokid. And let me hear your ideas for a 4th engine, too - I have ideas for at least 10 more engines, and are actually working on the 4th one, but still I'm curious.

Btw today I realized that the 83+ version actually seems to work on the 84+ as well. Wow, I really know sh*t about these newer calcs.

Offline Dapianokid

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 539
  • Rating: +46/-27
  • That one dude
    • View Profile
Re: Houston Tracker - 1-bit music editor
« Reply #38 on: April 20, 2013, 02:28:22 pm »
utz, I'll be here to test and help out where I can.
Yeah, I understand why you won't simplify the hex.
If you don't implement it yourself, I'll write the stuff required to have songs as external variables. :)
My pitch table is almost done and it's really accurate.
The 4th engine... or engine X I guess :P :
Channel 0: Drum sounds of course, with a repeat toggle (for patterns!)
Channels 1-3: tones.
Channel 4: more information on pattern creation, like repeating X times or going back to the Xth sections.
Keep trying.

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Houston Tracker - 1-bit music editor
« Reply #39 on: April 21, 2013, 10:58:04 pm »
@utz Yeah the thing is that the TI-84 Plus uses a 2.5x faster processor than the TI-82 and TI-83 Plus, so inevitably your songs will play this much faster, not twice slower as you initially thought. Of course there is the issue of lower RAM, though, especially on the TI-84 Plus Color model (which has 21 KB of RAM), so for those calcs the ability to play music directly from the Flash would be a good feature addition :)

The TI-83 Plus hardware is different from the TI-82, but there are many similarities, such as the CPU being Z80-based or literally a Z80. In ASM the difference is how ROM Calls are called and of course some memory addresses changed.

As for the TI-84 Plus, most ASM programs for the TI-83 Plus run fine on it, unless you use OS/ROM 2.53MP or higher, in which case there can be minor compatibility issues. The difference is that the calc also has crystal timers, more archive and a faster CPU.

The TI-84 Plus C Silver Edition is almost identical to the TI-84 Plus C Silver Edition, but it has a color screen and some RAM areas changed to different addresses as well.

Usually porting programs to newer calcs isn't super hard, compared to porting a TI-82 program to the TI-89, for example.

Offline chickendude

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 817
  • Rating: +90/-1
  • Pro-Riot Squad
    • View Profile
Re: Houston Tracker - 1-bit music editor
« Reply #40 on: April 21, 2013, 11:34:10 pm »
The TI-84 Plus C Silver Edition is almost identical to the TI-84 Plus C Silver Edition, ...
:P

The 83+SE/84+/SE need to be manually placed into 15MHz mode, so you don't need to worry about the speed change unless you want to use it. I don't know much about the math print OSes, but it seems like just turning off math print seems to work fine for most programs.

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 #41 on: April 22, 2013, 11:46:02 am »
So today I did some optimizing, and managed to shave almost 150 bytes. My goal is to get the core routine down to <4K before I add new stuff, though it seems I might not quite make that target.

@dapianokid: that "pattern" idea of yours is actually pretty neat, though a bit tricky to implement. I wouldn't necessarily create a new engine for it, but I'm thinking about adding it to engine 2 at some point.

@DJ_O yeah the higher processor speed doesn't seem to create any problem so far. As chickendude pointed out, these calcs normally still run in 6 MHz mode.

Of course there is the issue of lower RAM, though, especially on the TI-84 Plus Color model (which has 21 KB of RAM),

OMG whatwheretheythinking. Anyway 21K means that the current 8xp version would still run on the 84+CSE.
But I take it the screen reso was changed as well? That'd be a major problem. I guess I'll leave the 84+CSE port to the experts ;)
« Last Edit: April 22, 2013, 11:47:52 am by utz »

Offline Dapianokid

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 539
  • Rating: +46/-27
  • That one dude
    • View Profile
Re: Houston Tracker - 1-bit music editor
« Reply #42 on: April 22, 2013, 05:01:58 pm »
well, the CSE has color, too, so you would have a problem. But, if you leave it the way it is and simply ass color, it woiuld display fine if it is font-based.
Keep trying.

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 #43 on: May 31, 2013, 08:46:32 am »
Version 0.3 is ready.

New stuff in this version:
- New load/save system with multiple save slots.
- A new drum sound
- A feature to mute channels seperatly. Affects only single row play mode, but also works for copy/paste.
- "Light" versions which don't eat up all the RAM, at the cost of a reduced maximum song length. Well, 1000 rows should still be enough to make some decent music.
- Various internal optimizations.

No internal compression yet. However I obtained a great Z80 LZ77 routine from one of the best ZX Spectrum coders in the world. It's proving a bit hard to adapt atm, but I'm working on it ;)

Download

Offline TIfanx1999

  • ಠ_ಠ ( ͡° ͜ʖ ͡°)
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 6173
  • Rating: +191/-9
    • View Profile
Re: Houston Tracker - 1-bit music editor
« Reply #44 on: May 31, 2013, 10:49:23 am »
Actually, if I remember correctly, I *think* there might be some pre-existing LZ77 routines for the TIcalcs. You may want to do some poking around.
« Last Edit: May 31, 2013, 10:49:42 am by Art_of_camelot »