Jump to content
utz

tiatune - TIA music player with "correct" tuning

Recommended Posts

Wow, after 5 years of being a member of this forum I finally managed to actually code an Atari thingy icon_biggrin.gif Made a little sound routine for the mighty TIA, which fixes the "detune problem". This is achieved by re-implementing the TIA waveforms in software, and controlling playback with 16-bit pitch accuracy. All AUDC waveforms except 2,3 and E are supported, playback rate is approx. 10 KHz. The player takes 100% CPU time so it isn't suitable for use in games or demos, unfortunately.

 

If you've followed last year's Silly Venture VCS music competition, you will have heard the player in action on the entry named "Tunabit", which took 2nd place.

 

Anyway, I'm now releasing the source code, as well as an XM converter that can be used to convert music composed with a specially crafted XM template. Disclaimer: I'm only a beginner-level 65xx coder so please tell me if you spot any bugs/possible optimizations/etc.

 

github

download (includes win32 converter + xm template)

tunabit.bin

  • Like 5

Share this post


Link to post
Share on other sites

Wow, after 5 years of being a member of this forum I finally managed to actually code an Atari thingy icon_biggrin.gif Made a little sound routine for the mighty TIA, which fixes the "detune problem". This is achieved by re-implementing the TIA waveforms in software, and controlling playback with 16-bit pitch accuracy. All AUDC waveforms except 2,3 and E are supported, playback rate is approx. 10 KHz. The player takes 100% CPU time so it isn't suitable for use in games or demos, unfortunately.

 

If you've followed last year's Silly Venture VCS music competition, you will have heard the player in action on the entry named "Tunabit", which took 2nd place.

 

Anyway, I'm now releasing the source code, as well as an XM converter that can be used to convert music composed with a specially crafted XM template. Disclaimer: I'm only a beginner-level 65xx coder so please tell me if you spot any bugs/possible optimizations/etc.

 

github

download (includes win32 converter + xm template)

 

VERY NICE!!

 

is possible to use this with a static image? ie: like a game title before the game starts

 

i`m asking cos the page says

 

 

Limitations

===========

 

- 100% CPU time used, cannot render graphics at the same time as playing music

 

 

and i'm thinking if this means no render at all, static AND rendering an animated player0 for example.

 

cheers!!

Edited by zilog_z80a
  • Like 1

Share this post


Link to post
Share on other sites

Sadly it's not possible to output any gfx with this player, because it does not produce a stable image. I do have plans for a simpler version however. That one will mix 2 simple saw wave channels, have a stable kernal and maybe even leave some time free on each scanline to do some additional ops. However, I don't understand yet how to do a VSYNC without introducing wait states, which would be crucial for pulling this off.

  • Like 1

Share this post


Link to post
Share on other sites

Sadly it's not possible to output any gfx with this player, because it does not produce a stable image. I do have plans for a simpler version however. That one will mix 2 simple saw wave channels, have a stable kernal and maybe even leave some time free on each scanline to do some additional ops. However, I don't understand yet how to do a VSYNC without introducing wait states, which would be crucial for pulling this off.

 

 

ty for your work.

 

Kind regards.

Share this post


Link to post
Share on other sites

I've had some reports that tiatune doesn't work (more specifically, hangs on load) on Flashback Portable. Any ideas that I could try to make it work?

Share this post


Link to post
Share on other sites

I just have heard "RoboTIA" at Revision. Great stuff made with this player!

  • Like 1

Share this post


Link to post
Share on other sites

However, I don't understand yet how to do a VSYNC without introducing wait states, which would be crucial for pulling this off.

There is no (too) big deal with VSYNC. If you are able to sync to scanlines to display a picture, then you will be able to sync to VSYNC too.

 

Let me know if I can help.

  • Like 1

Share this post


Link to post
Share on other sites

Hehe yeah, props to Tronimal for producing such an excellent track with my player (for anybody interested, download it from here: https://demozoo.org/music/185140/ )

 

I'm currently busy with non-Atari things but I'll definately come back to this at some point.

Edited by utz
  • Like 2

Share this post


Link to post
Share on other sites

I'm currently busy with non-Atari things but I'll definately come back to this at some point.

 

Any Party planned? Nordlicht, Evoke or Deadline?

Share this post


Link to post
Share on other sites

Most likely Deadline and/or VCFB, provided those are happening. No clue what to code though. I was going to do something with KC-85/3, but now that a KC-85/4 demo has happened at Revision my motivation for that has been lowered significantly :o

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...