How you can benefit by using .ITP instead of .IT

Started by LPChip, January 21, 2007, 22:42:44

Previous topic - Next topic

LPChip

This topic will describe how you can benefit from using an ITP over an IT file.

Let me first explain what the difference is.

IT and ITP are the same format, except that an IT will store all the samples inside the song, while an ITP doesn't. An ITP stores a reference to that sample. The big advantage is that when you use samples in more than one song, you only store the samples once, and the ITP files remain small. Downside is that you always need to have the sample song, but thats just a small downside.

Picture a situation where you do want to share patterndata on several occasions but not send the samples each time. This can be archieved by sending 2 files, a zip with the instruments (.ITI files) , and the ITP with the patterns.

You can then change the ITP, send to someone else, he edits the ITP and sends back. The ITP probably is going to be around 50k on each send, while the .ITI files easilly can expand to over 5 MB.

How to setup an .ITP song?
You can choose to convert an existing .IT file to an .ITP or make one from scratch. If you make one from scratch, scroll down to where that part starts.

If you decide to convert an existing .IT file...
Load in the .IT file. In the general tab, press Song Properties, and set the songtype to Impulse Tracker Project (.ITP). This format allows you to embed instrument settings in your song, or keep the settings of the original file.

If you don't check the check to embed the settings, changing them will change the .iti file itself which means that any song that doesn't have the settings embedded will be changed too. Note that you'll need to save the .iti once you made a change or it will be reset on next load.

I would advice to check this setting until you have enough experience to considder otherwise.

Click ok.

Go to the instrument tab, and save each instrument to an .ITI file (assuming that you don't have an .iti file yet). I found it useful to save those .iti files to the same directory labelled after the group project am working with. This allows me to keep it all together.

In the treeview on the left, unvold your song's instrument tab and sample tab. Click each instrument and press delete to delete the instrument. Same for the samples.

Save your song as an .ITP file and close it.

Reopen your song and verify that you have an empty song with just the patterndata in tact.

This is basically the same state as when you make a new file, so I'm going to explain what to do to create a new file first, and then continue from there. So skip down to the 2nd bold text. :)

If you decide to create a new .ITP file...
You can do this 2 ways. Either press new and set it to an .ITP file, or choose File->new->Impulse Tracker Project (.itp)

If you create a new file by clicking on the [new] Icon in the toolbar then do the following: In the general tab, press Song Properties, and set the songtype to Impulse Tracker Project (.ITP).

This format allows you to embed instrument settings in your song, or keep the settings of the original file. (open the song properties for this if you haven't done already to check the setting)

If you don't check the check to embed the settings, changing them will change the .iti file itself which means that any song that doesn't have the settings embedded will be changed too. Note that you'll need to save the .iti once you made a change or it will be reset on next load.

I would advice to check this setting until you have enough experience to considder otherwise.

Click ok.


We're getting there... How to add instruments?
This is the final step. You have an .ITP song ready, and only need to load the instruments.

Drag in an .ITI instrument from the treeview to the instrument tab. OpenMPT will automatically set the path info for you.

Save your song, and thats it.



COOL, but I can't add empty instruments for VSTi usage... :( why?
This was my first reaction too, but it is possible. Make a new instrument, and make sure it has a sample even if that sample is empty. Save this as VSTi Controller.iti or something. Now you can drag in an empty instrument. and attach a vsti to it. Note that for this to work, you NEED to embed the instrument settings to the ITP file (see first section when creating a new/converting existing song).

NIIIIIIIICE, but is there really a big advantage in using the ITP file over an IT if I only use VSTi's?
Now thats a good question. Since ITP only saves sampledataspace and not the instrument section, the only advantage you'll gain is if you make .ITI's for each VSTi you use and not embed its settings, but even then, its probably much easier to just use an .IT. So, if you use samples, go for ITP, if you only use VSTi's, go for IT's.

So I started to make .ITP chiptunes, but I can't load them into any other player...
Don't forget, you can always convert your song back to Impulse Tracker and save as .IT and have the samples in them again for distribution. It would be a bit pointless to save a chiptune as .ITP I guess as the sampledata usually is below 30k anyway but I mentioned this for the example of being able to convert it back to .IT.

What NOT to do?
You are able to manually set a path to an instrument in the treeview. Do NOT set it to an existing .IT file. Although you can set it to any file, choosing another file than .iti or .xi will cause mpt to overwrite your file when you right click save. If you just load in the .IT file, you'll loose your changes on next load.
"Heh, maybe I should've joined the compo only because it would've meant I wouldn't have had to worry about a damn EQ or compressor for a change. " - Atlantis
"yes.. I think in this case it was wishful thinking: MPT is makng my life hard so it must be wrong" - Rewbs

LPChip

I had a chat with Relabsoluness last night, and he explained me what I needed to know to get ITP running. The result can be read in the above post.

If someone can port this to the xwiki, that'd be great. :)
"Heh, maybe I should've joined the compo only because it would've meant I wouldn't have had to worry about a damn EQ or compressor for a change. " - Atlantis
"yes.. I think in this case it was wishful thinking: MPT is makng my life hard so it must be wrong" - Rewbs

Reenen

Happy 2007 everyone!

Do you have any idea if the MikMod library can play ITP files...

I ask, because I am (as I've mentioned before) creating music for a game.  I'll definately be reusing the same samples.  Obviously for a "selection" of music like a game's music.  It is MUCH better to use ITP and ITI files than to use IT files.

But I guess I'll have to head over to the MikMod library people to get this answer.

LPChip

Most definatelly not. ITP is only an MODPlug format, to play it in an external player you'll need to convert back to .IT.
"Heh, maybe I should've joined the compo only because it would've meant I wouldn't have had to worry about a damn EQ or compressor for a change. " - Atlantis
"yes.. I think in this case it was wishful thinking: MPT is makng my life hard so it must be wrong" - Rewbs

residentgrey

if they have the mpt source with the itp stuff in it they can take it an use the system to make a player for games and such.
No two people are not on fire...AWWW!

Web and Graphic Design just for you!
I r GhostMech on there, forever scouting.

Reenen

But why should mods be stagnant?  MikMod is open source?  Why don't they include it in a new release... That's been more than 2 years ago.

LPChip

It is better to make all your songs in 1 song and let mikmod do the playing. Same result, but a technique used for many years.

ITP might be fancy, but the ITP format is aimed for HQ songs that will end up as a streamed version anyway. Besides, if you set a path in the ITP the entire path will be hardcoded. That means, you can't just move the iti's and the song like that. True, that can be fixed, but its not necessary.

Just put it all in one IT and seperate it by a [--] pattern, and use pattern jump commands to do proper looping (Bxx). Only thing you need to do, is in the game say where to instantly loop to.  bass.dll and fmod.dll certainly have this ability, but mikmod probably too.
"Heh, maybe I should've joined the compo only because it would've meant I wouldn't have had to worry about a damn EQ or compressor for a change. " - Atlantis
"yes.. I think in this case it was wishful thinking: MPT is makng my life hard so it must be wrong" - Rewbs

Reenen

Ok, sounds like a decent solution.

We use a scripting language to handle the music though, and the .IT files lie around for all to be seen.

One thing I found that was *REALLY* frustrating after I created a new .ITP file was that I could not save it as a .IT file.  I cannot refert it back.

LPChip

Quote from: "Reenen"Ok, sounds like a decent solution.

We use a scripting language to handle the music though, and the .IT files lie around for all to be seen.

One thing I found that was *REALLY* frustrating after I created a new .ITP file was that I could not save it as a .IT file.  I cannot refert it back.

Yes you can. Go to the General tab, Song properties, and set to Impulse Tracker (.IT)

Then File->Save As... and save as .IT. :)
"Heh, maybe I should've joined the compo only because it would've meant I wouldn't have had to worry about a damn EQ or compressor for a change. " - Atlantis
"yes.. I think in this case it was wishful thinking: MPT is makng my life hard so it must be wrong" - Rewbs

Skaven

Sorry for bumping an ancient topic, but I just recently thought I would really benefit from this feature, because I need to save several (tens) of versions of my song and they all contain the same samples, wasting a lot of disk space.

However, if .itp files are Instrument, not Sample based, there seems to be a problem with what you describe above. My songs usually contain several instruments that all use the same sample. For example, I may have a pad sample that is used in 4 different instruments, each with different volume and filter envelopes.

If I wanted to turn the .IT into an .ITP and save each Instrument to disc, I would get 4 .iti files that all contain the same sample, which doesn't seem optimal. Shouldn't the "Set Path" reference be applied to Samples rather than Instruments?

How do I get around this problem?

LPChip

I've been strugling with this too. Unfortunatelly that isn't possible to do currently. I dunno if it will happen in the future though, but the best thing is to just make the .iti's stored with its sampledata in it. That way you can atleast get that part right.

There's one warning though. I discovered it well after making the first post, and its a reason why I stopped working with the .ITP format.

The .ITP files store the instruments staticly, meaning, if for some reason you want to move your .iti files, you can't, unless you add them again manually. That also makes your song to be anything but portable.

I crashed my XP once and as result my driveletter changed to that harddisk. It costed me too much trouble to fix the instruments, so I decided to abandon that concept until its better implemented. Relative paths would be great, and I agree, relative paths to samples would be even better.
"Heh, maybe I should've joined the compo only because it would've meant I wouldn't have had to worry about a damn EQ or compressor for a change. " - Atlantis
"yes.. I think in this case it was wishful thinking: MPT is makng my life hard so it must be wrong" - Rewbs

Skaven

Indeed.. shall I make it a feature request in the OpenMPT section? :)

Some kind of an utility to help convert an .IT to an .ITP could also be helpful. One that would automatically save all the song's samples to a folder and point the instruments to them.

LPChip

"Heh, maybe I should've joined the compo only because it would've meant I wouldn't have had to worry about a damn EQ or compressor for a change. " - Atlantis
"yes.. I think in this case it was wishful thinking: MPT is makng my life hard so it must be wrong" - Rewbs