Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

TIC-80

Fantasy computer for making, playing and sharing tiny games. · By Nesbox

Import/export music for Tic 80?

A topic by jackj106 created Aug 30, 2017 Views: 5,956 Replies: 23
Viewing posts 1 to 15

hello, nesbox, so what i was wondering is is there a way to export the data of a song in tic and then import it into another cart?

thanks.

Developer

Hi,

you can use copy/paste or use command `load cart.tic music` to load only music section from the cartridge

https://github.com/nesbox/tic.computer/wiki#available-commands

thanks!

and how can we convert it among formats like .mod, .s3m, .xm, .it, .txt (vortextracker), .mid, etc.? 

Developer

unfortunately, there is no way to convert

(1 edit)

you mean "no way" or "not yet"? and since .tic files stores music information, couldn’t that information be extracted somehow? (since it’s not that difficult, for example, to convert .vgm files into .mod, i wonder how difficult would be doing the same from .tic)

Developer

I mean "not yet", of course, music could be extracted or imported, but you have to implement converter.

(1 edit)


Hi,

Just analyzed tic-80 tracker format and made quick tool ...

http://gigatron3k.free.fr/html5/tic80tracker/

Open module with Openmpt , copy one 3 byte of pattern (only notes) this mean eg "C-5"

copy the entire pattern ; go to http://gigatron3k.free.fr/html5/tic80tracker/

past copied pattern to the empty area ... and normaly you have all data for tic-80 tracker under ;

copy now all text starting with 04 and past it to tic-80 tracker;

- only octave 5 and 6 supported... no instrument number at the moment;

a bit faster than note/note by hand ;

great tool, thanks! :)

btw, i took these notes i guess might be useful (sorry if it doesn’t look clear enough): 

vn I? oi   (v=invertvolume?,o=invertoctave*2+?,n=note+4?,i=instrument)

04 00 60 = C-400F--
14 00 60 = C-400E--
F4 00 60 = C-4000--
04 00 00 = C-100F--
14 00 20 = C-200E--
24 00 40 = C-300D--
34 00 60 = C-400C--
F4 00 E0 = C-8000--
00 00 00 = --------

vvvvnnnn i....... oooiiiii

(1 edit)

you must copy entire pattern channel 0-to 63 "Notes part"  3bytes;  and then the converter working well;

Don't copy 8- 16 or 32 notes... but 64

*** not understand sorry ///

04 and 6 bytes ;

04 mean position 64 on the tracker

if you are in position :

18 this value is 31 ... 0 to 15+(3 in hex)   every 16 notes the second byte is increased by 1;  

04 nv00io  :    note+vol+fx+instnumber+octave;

coded now these scripts (sdlBasic) for extracting music from .tic files, or from those hexdump splits i were using :

https://pastebin.com/wTa8czDA

https://pastebin.com/6RQEqmVu

the results seems accurate up to now

(2 edits)

Nice @nitrofurano;

OMG ... I learned Delphi Pascal in 7 days :)...

this is the online conversion to exe...

Can someone try this new converter...please ?

http://gigatron3k.free.fr/html5/tic80tracker/tictrack.rar

-- Added 5 byte copy ; this mean you can now copy like this  C-2 02  from openmptracker Module;

Note +octave+inst number ;

Tested on windows 7... not other ; I must disable avira ... virus warning to run the exe :(

Regards

thanks! @gigatron! now i need to convert back! :)

talking about Delphi, did you try Lazarus as well? and consider also trying Free Pascal Compiler (specially for command-line based tools)

i didn’t know that some part of .tic specification documentation can be found at https://github.com/nesbox/TIC-80/wiki/RAM  (specially the sound/music part) - i need to try it for confirming

(1 edit)

nitrofurano@  I know Lazarus, but used an old version of Delphi 7 Personal;

Just updated the converter to v 0.0.3

-  No virus detected now;

- Expanded instrument number to 15

- Added variable copy length , you can now copy all numbers of notes. you want..

---- to do volume param = C00 to C64  ; so 64/4 ... to obtain 0 to F in tic-80 tracker

(1 edit)

OK ... this is the lastest version of converter v 0.0.4;

-- volume param is working .. hope this true;

-- you can now copy the entire channel  like so ;


-- octave is transposed by (-12) note down during conversion ;

And thats all ; Maybe there are some issue exist , but i ve relearned Pascal language quickly in 7 days;

This tool help you to make tracker modules fast...  no update after this release ;

http://gigatron3k.free.fr/html5/tic80tracker/tictrack.rar

i’m going to code my own converter, soon i’ll share the sources here around! :)

(i’m about working on 2 formats, create and debug - create would be based somehow on other trackers, like vortextracker, milkytracker, etc., and debug based on .tic)

(1 edit)

Good , then i can stop dev of the converter;  Anyway at last i release the  v 0.0.9 maybe buggy..

-Added random wave generator.. copy past into tic-80 wave panel or past it to lua saved cart at

wave number 0;

- Forgot the palette generator and selection from palette listed here ...

http://gigatron3k.free.fr/html5/tic80tracker/tictrack.rar

Have fun;

you don’t need to stop developing, the coolest part of it is sharing its sources! (it is what i’ll do! :D - i just need to get the code a bit more mature for that, and very sadly i was too tired in these last weeks for that... :( )

(1 edit)

So, updated to V 0.1.4;

- Better conversion now .. but some issue exist on complex modules conversion(fx values); ('C' and 'v' are supported ) 'C' is volume on

protracker and 'v' on fastracker -screamtracker,maybe impulsetracker;

- Palette colors added when generating random colors;

any feedback are welcome ; need beta-testers ....

http://gigatron3k.free.fr/html5/tic80tracker/tictrack.rar

(+1)

@nitrofurano

Hi , this little tool try to convert VortexII tracker text module to Openmpt XM ;

You can just add pattern order table and copy generated xm pattern to openmpt tracker ; 

Will try to convert xm file without samples ...

http://gigatron3k.free.fr/VTXII2XM.rar

thanks! only now i'm seeing this message, shame on me! :D 

(2 edits) (+3)

​Just wanted to mention I made lua-openmpt (https://github.com/konsumer/lua-openmpt/​) which parses many formats of mod-files, if you have libopenmpt and luajit installed on your system. If you are already good with lua, you could use it to make a little script to extract instrument / song data. I have tested it in luajit & love2d, and it works pretty well.

I’m not quite sure how to approach a converter program. I have seen the technique of using specific samples, like from a template in openmpt, then converting that, but I wonder if we could go even further and convert samples into little wave-instruments, to get a base in there. For short things like drums & chiptune looping waves, this might work ok (but would probably need some serious post-conversion tuning.) I think a few other things might translate too, like jump or tremelo effect. If I could manage this method, I think it could also be used in the “load this template, edit it, and convert it” style, but also maybe handle some existing mods (even if they need a bit of tuning, after conversion) sort of like how I edit images in Gimp, then import them, and tune them in TIC-80 sprite-editor.

It seems like many of the links above are dead. Does anyone have some source I could look at of the existing work on this, so I have a good starting point? I’m on Linux, so an EXE isn’t really helpful anyway, but source would be great so I can see how it was done.

thanks, i'll take a look - btw, the link you shared is a 404 page, do you have it hosted somewhere else too?

(+1)

I think something happened with formatting. it’s just on github: https://github.com/konsumer/lua-openmpt