Universal tracker

This forum is about audio tools, including samplers, sound trackers, sound chip editors, how to do sound effects, etc...
jede
Flying Officer
Posts: 161
Joined: Tue Mar 14, 2006 11:53 am
Location: France

Universal tracker

Post by jede » Fri Nov 10, 2017 11:57 am

Hello,

If someone is interested :)

http://www.julien-nevo.com/arkostracker/

User avatar
ibisum
Wing Commander
Posts: 1089
Joined: Fri Apr 03, 2009 8:56 am

Re: Universal tracker

Post by ibisum » Fri Nov 10, 2017 12:18 pm

Looks pretty cool, sounds cool .. but I don't see anything specifically for the Oric in the release. Is there going to be a player for it, I guess, released on the Oric at some point?

User avatar
iss
Squad Leader
Posts: 842
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: Universal tracker

Post by iss » Fri Nov 10, 2017 1:59 pm

Very nice indeed! I tested Windows and Linux versions.
It supports many input formats and exports them perfectly to YM.
Attached TAP/DSK versions of the same song from youtube video for Oric, using ym2mym+mym_player (of course) ;).
A-Harmless-Grenade-song.zip
(43.07 KiB) Downloaded 187 times

User avatar
Dbug
Site Admin
Posts: 2909
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: Universal tracker

Post by Dbug » Fri Nov 10, 2017 5:55 pm

Ideally, a native 6502 player would be nice to have: The mym format is not particularly compact, and the replayer itself is not specially fast either.
I wanted to port the Vortex tracker replayer... but that was when Twilighte was starting to fade away, kind of killed my motivation.

Targhan
Private
Posts: 5
Joined: Thu Nov 16, 2017 8:59 pm

Re: Universal tracker

Post by Targhan » Thu Nov 16, 2017 11:07 pm

Hi all, this is Targhan/Arkos, the creator of Arkos Tracker.
As the tracker is still in alpha, I didn't want to spread the word about it too quickly, as I am already drowned in feature requests (and bug reports, yup :)) for the CPC users :).

DBug kindly notified about this thread. I don't code in 6502 so I won't code the players by myself. I *could*, but it wouldn't be as efficient as what an experienced coder would do.

However, I have already two Z80 players ready with each their own formats (all documented): AKY and Lightweight. AKY is a very very efficient format CPU wise, yet remains quite interesting memory-wise. It is some kind of clever register dump that use the full knowledge of the song to find patterns and encode only what is necessary. As an example, a complex song of 4-5 minutes, with very few repetitions is encoded in less than 17kb. So a more simpler song could be encoded in much much less.

So I think the AKY format would be the way to go, at first. The other players are more CPU consuming, and also more complex to adapt.

Anyway, don't hesitate to ask for anything you need, I'll try to do what I can :).

User avatar
Chema
Game master
Posts: 2434
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN
Contact:

Re: Universal tracker

Post by Chema » Fri Nov 17, 2017 9:30 am

Hi Targhan!

Thanks for popping up here and for your fantastic tracker. I once had a look a Vortex too, as Dbug did, but never continued with the project. These trackers (yours looks incredible!) produce really good music, but I always found impossible to spend >10 K for the music and player only, and not counting the CPU usage.

However, if the outcome is so good and it is possible to keep memory and CPU usage somewhat lower, it will be a great tool for future productions!

I don't really have time now, but in a near future would love to have a look at an Oric player. Dbug also knows quite a lot about this topic, and could have something better than me. What do you think Dbug? It could be an interesting project!

Targhan
Private
Posts: 5
Joined: Thu Nov 16, 2017 8:59 pm

Re: Universal tracker

Post by Targhan » Fri Nov 17, 2017 9:44 am

So 10kb is too much for an Oric production? What is the average for a music+player in your demos/games?

If only a few kb max, then AKY is indeed not for you. My Lightweight player would be more appropriate (less possibilities in the music (still better than Vortex), but lower memory footprint for both the player and music). It is however more complex to convert from Z80 to 6502.

What would be interesting would be that one of you convert any song from the Arkos Tracker 2 package (look at the .SKS songs) to Lightweight (you can use the command line tool SongToLightweight to compile the song) and see if the output of the binary is tiny enough for you. The Z80 player has a size going from #360 to a kb and a helf, according to the options. I can't do less! :).

User avatar
Dbug
Site Admin
Posts: 2909
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: Universal tracker

Post by Dbug » Fri Nov 17, 2017 6:40 pm

The idea is to first check the memory size/cpu usage of the AKY format compared to MYM.
If it's better, it's a no brainer, they are conceptually identical, and replacing the less efficient by the more efficient is the way to go.

Then I can take a look at having the native player converted to 6502 :)

User avatar
8bit-Dude
Pilot Officer
Posts: 74
Joined: Tue Mar 14, 2017 1:33 pm
Location: Japan

Re: Universal tracker

Post by 8bit-Dude » Tue Apr 30, 2019 1:26 pm

Hey guyz,
It seems that this thread went cold, but I would like to resurrect it and ask if anything has been done about coding a small footprint player for the Oric?
I have been looking around for a cross-platform tracker for 8bit-unity, and Arkos looks like the stuff of dreams!
Cheers,
Tony

User avatar
Dbug
Site Admin
Posts: 2909
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: Universal tracker

Post by Dbug » Tue Apr 30, 2019 2:53 pm

I did start working on the player last year, but I did not really go anywhere - mostly because by Z80 knowledge is inexistant and by lack of time.

If somebody else was willing to make a quick and dirty port, that would be a good start, we can spend a bit of time optimizing it after.

Targhan
Private
Posts: 5
Joined: Thu Nov 16, 2017 8:59 pm

Re: Universal tracker

Post by Targhan » Wed May 01, 2019 11:13 am

That's too bad, but I understand! Maybe another 6502 coder can convert one of the Z80 player? I can of course help about how the player works (plus, their formats are fully documented), but I know nothing of 6502...

User avatar
Dbug
Site Admin
Posts: 2909
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: Universal tracker

Post by Dbug » Wed May 01, 2019 11:43 am

Targhan wrote:
Wed May 01, 2019 11:13 am
That's too bad, but I understand! Maybe another 6502 coder can convert one of the Z80 player? I can of course help about how the player works (plus, their formats are fully documented), but I know nothing of 6502...
Something which really could help (on all platforms), would be to have a fully documented reference player written in C.

User avatar
8bit-Dude
Pilot Officer
Posts: 74
Joined: Tue Mar 14, 2017 1:33 pm
Location: Japan

Re: Universal tracker

Post by 8bit-Dude » Wed May 01, 2019 1:13 pm

Dbug wrote:
Wed May 01, 2019 11:43 am
Something which really could help (on all platforms), would be to have a fully documented reference player written in C.
I second that! a C player would be easy to improve once it has been compiled to 6502 assembly language.
Out of curiosity, just how big is this Z80 player? Does it badly require instructions specific to the Z80?

User avatar
Dbug
Site Admin
Posts: 2909
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: Universal tracker

Post by Dbug » Wed May 01, 2019 2:47 pm

8bit-Dude wrote:
Wed May 01, 2019 1:13 pm
I second that! a C player would be easy to improve once it has been compiled to 6502 assembly language.
Out of curiosity, just how big is this Z80 player? Does it badly require instructions specific to the Z80?
It's not that big, basically you have a simple header that defines how many YM chips there are (that impacts the number of channels/tracks), then there's some list of channels which are basically pointers to "patterns" and durations, when the duration is 0 the pointer points to the looping of the channel.

Each pattern is made of an initial state, and then some state updates ("register blocks") that happen every few frames, states define things like the note frequency, noise channel, enveloppe parameters, etc...

The main difficulty is that everything is bit encoded, kind of hard to reuse code.

I'm not sure where there last official documentation is, but there is some description there (as well as a 68000 player)
https://github.com/ggnkua/Arkos-Tracker ... ter/AKY.md

Targhan
Private
Posts: 5
Joined: Thu Nov 16, 2017 8:59 pm

Re: Universal tracker

Post by Targhan » Wed May 01, 2019 10:33 pm

Warning, the AKY is only one of the players. It is very fast, but the song takes a large memory (it's a "streamed" player). It may fit some needs (a demo), but may not a game (with longer music, and sound effects). The AKG is "generic" but also more complex. The Lightweight is smaller. In the next version of AT2 (due to 2/3 weeks I hope), a "Minimalist" (AKM) is included, even smaller. It may be a nice target for Oric.

As for a C player, this probably won't happen. Sorry, because I don't see the point... The Z80 code of the player is not very complicated, and is *very* well commented. That's the best I can do... Plus I'm here for the support if you need anything!

Side note: the documentation for each format is in the AT2 package.

Post Reply