Transfering songs alot, compression possible?

Started by Michael_Rybak, July 23, 2006, 21:23:32

Previous topic - Next topic

Michael_Rybak

Hello!

I've tried searching this forum, as well as the wiki, but found nothing.

I'd like to try writing my own plugins for the OpenMPT; namely, I need to automatically process a large number of *.it files, and replace all non-midi samples with midi ones, and add some automatic comments to the comment field - this is for backuping large number of songs in small space (say, storing at gmail).

So, what I'm asking about is where I can read at least anything about writing plugins. Thanks.


Edit by Mod: Title changed. Was: Plugin API

LPChip

The plugins that are being used in OpenMPT are not to perform tasks, but to change/create sound. These are VST plugins.

What you're looking for can't be done with something like a plugin.
"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

Michael_Rybak

QuoteWhat you're looking for can't be done with something like a plugin.

But is there any internal way? Scripts? I mean, a way that wouldn't involve some other application sending mouse-click and key-down messages to OpenMPT? Or maybe there's a better place to ask about this?

MisterX

I think that the proper word that you are looking for is "macro", not "plugin".

In this case, I think you'd want something like:

http://www.newsoftwares.net/macrobuddy/

Hope this helps!

[EDIT]  I should try not doing three things at once and maybe I could read and comprehend all of the posts... My apologies. ;)

Perhaps the developers may be able to add macro functionality to the OpenMPT program?
-Mister X aka Kim-
StudioKraft
===========================
I am happy to be born when I was - at least I caught the tail end of freedom.

LPChip

Its not possible to do this directly from whitin OpenMPT. OpenMPT doesn't support scripts. I think your best bet is by using macro programs.

But I think its better to ask your initial question than to try getting an answer to a possible solution.

What is the reasoning for this? Cus as I understand, you want to change samples to their midi equilavent. This is not a process that can even be done automatically. A sample can have any content, even ones that are not in a standard midi library.

Next, if you replace the samples from a midi library, you will still load the samples from the library into the song, which can result in an even bigger song than you already had. (unless you have really big samples)

Next, this will sound alot different, which would be rather pointless, as it can screw up the entire song.

It might be better to render the songs to mp3 instead as it can generate smaller files under certain conditions.

Btw: did you know, that zipping your song, and then rename to .itz can still be loaded by many players, including MODPlug Player and MODPlug Tracker? (it = itz, xm = xmz, s3m = smz, mod = mdz).

MODPlug will always find out what type of song it really is. So if you zip an it song to mdz, it also works.
"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

Michael_Rybak

2 MisterX
Quote
In this case, I think you'd want something like:

http://www.newsoftwares.net/macrobuddy/

Thanks, I'll take a look!

2 LPChip
QuoteCus as I understand, you want to change samples to their midi equilavent. This is not a process that can even be done automatically
You see, I was thinking of this as of being purposed for personal use only, so I'd simply manually map all non-midi samples I have to particular midi ones. The list would be available from UI (not necessarily embedded in OpenMPT), for viewing and changing.

QuoteNext, if you replace the samples from a midi library, you will still load the samples from the library into the song, which can result in an even bigger song than you already had. (unless you have really big samples)

My non-midi samples are up to 5 MB, and a song that uses 3-4 instruments is usually 8-16 MB. The same song with midi samples will hardly weight 300K.

QuoteIt might be better to render the songs to mp3 instead as it can generate smaller files under certain conditions.

I'm thinking of 33.6 dial-up modem speed, so mp3's are too large :)

QuoteNext, this will sound alot different, which would be rather pointless, as it can screw up the entire song.

I think I should explain myself in detail. What I need is a simple way to transfer songs fairly often, without sending the samples used.

There are 2 reasons for this, actually.
My friends and I gather weekly to play some music together, and before every rehersal we want to exchange new materials (if any) to get prepared. Most often this is sheet music (pdf, usually <200K) and *.it files.

There are 5 of us. We have the same trackers, with same samples, stored in same files, same folders. And 3 of us have dial-up connection.

So, the tool I need would allow to replace the samples with predefined midi equivalents, and convert it back afterwards. That is why I'm not even going to listen how exactly it sounds in midi :)

Apart from this, I'd like to use the same approach to make regular backups (this is where I need to process multiple files). I'd use gmail to store a backup in a single zip file (I'd have to use my 100MBps connection at work, but even that wouldn't be possible if 100 songs took 10GB)

For both reasons a more sophisticated tool would do - it_to_txt_and_back converter (with samples mapped to their IDs instead of midi equivalents), but writing it would require getting deeper into it format (which I'm likely to start doing, actually).

I'd appreciate any suggestions on the problem.

[EDIT] Forgot to thank you for the tip on opening zipped files.

speed-goddamn-focus

Perhaps IT Projects are for you? It only keeps references to the samples in the song, and not the actual samples.

LPChip

Yeah. ITP!!!!

I have the feeling that you have no clue what ITP files are, so let me explain you what they do.

ITP Files (or IT Project) Allows you to save links to samples instead of saving the actual sample data. Each time you open the song, it will open the other song to load the samples. This way you can work on a song that is huge, but it will only save changes to the instrument (if you embed instrument data) and the pattern data.

Its recommended in this case to keep the song with the samples in the same directory as the ITP file, so your buddies won't have issues loading in the itp file. Once you've completed the itp song, you can save it back to an IT file to get the samples in it. (or render to mp3 :P)

Note: The song should load fine if the samples can't be found, but you'll just don't hear anything. This way, you can allow them to put in their own samples, but if you share the song each time, you'll have to remap the samples each time. Sharing the samples once is the best opinion.
"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

Michael_Rybak

Thanks a lot, speed-goddamn-focus, LPChip!

This is more than I could expect. The thing is, I'm using a pretty old version of Modplug tracker, which has no ITP. I should have downloaded latest OpenMPT and look around *before* asking.

Thank you, you've been really helpful!

rewbs

OpenMPT isn't anywhere close to providing this kind of scripting API. :)
ITP sounds like the way to go. But if you do want to write your own tool to convert sample data within tracks to<->from IDs, it shouldn't be too hard: you don't need full "it to text", you just need to get the sample data offsets from the header and work from there.

Michael_Rybak

Thanks. When (if) I write anything, I'll post a note to keep the topic complete.