Mod Archive Forums

Community => Project / Coder's Corner => Wanted: Music for Projects => Topic started by: sverx on July 07, 2008, 13:27:37

Title: Searching 4 (or 5) XMs for my beta
Post by: sverx on July 07, 2008, 13:27:37
Hi there,
  I'm going to release, I hope in August, a demo of the features of the XM library (beta!) I'm writing for the NDS, so I need some 4 or 5 XMs that will be "packed" into the demo.
I need some of your best tunes, but there are some things you should consider:
1st: there are max 16 channels so your tunes shouldn't use more than 16 channels.
2nd: there's no "sample interpolation" or "volume ramping" so deactivate them in your tracker and check if they still sound good enough.
3rd: it's a beta so it support only few effects yet (8xx, 9xx, Axy, Cxx, EAx, EBx, EEx, Fxx)
4th: XM file size max 1MB, better if <700 KB anyway.

Said that I have to add that instrument volume envelopes are supported and panning envelopes are not... both 8 & 16 bit samples are ok, both forward/ping-pong loop ok... mmm... well, I guess it's everything.

Of course I will give credit to the author(s) and a little space (for a link?) for each tune. What else? yes, my gratitude, of course :)

Thanks! Ciao!

p.s. ... in the while let's run a survey on what is the most important effect still lacking support... uh? ;)



Title: Re: Searching 4 (or 5) XMs for my beta
Post by: raina on July 07, 2008, 18:44:40
3xx & 4xx for expression, 1xx and 2xx for effect. And the WIP module I was thinking of offering you seems to use EDx for getting drum loop slice timing right.
Title: Re: Searching 4 (or 5) XMs for my beta
Post by: sverx on July 08, 2008, 12:30:18
3xx & 4xx for expression, 1xx and 2xx for effect.

The matter about effects 1xx, 2xx and 3xx is that I didn't find documentation about 'how much' the pitch of the note should be changed... I mean the 'base unit' that -multiplied by the effect value- I have to add/subtract/multiply/divide/dunno to the original/previous value to obtain the new value  ??? ??? ???

And the WIP module I was thinking of offering you seems to use EDx for getting drum loop slice timing right.

mmm... I'm still not supporting EDx, anyway I'll check later if it's possible to quickly add the support for it and I'll let you know.

Thanks!

Title: Re: Searching 4 (or 5) XMs for my beta
Post by: pailes on July 08, 2008, 15:06:46
The matter about effects 1xx, 2xx and 3xx is that I didn't find documentation about 'how much' the pitch of the note should be changed... I mean the 'base unit' that -multiplied by the effect value- I have to add/subtract/multiply/divide/dunno to the original/previous value to obtain the new value  ??? ??? ???

There is plenty of information available. Just use google or your favourite code search engine. Or simply download the MilkyTracker source code ;)
Title: Re: Searching 4 (or 5) XMs for my beta
Post by: sverx on July 08, 2008, 15:43:57
I'm still not supporting EDx, anyway I'll check later if it's possible to quickly add the support for it and I'll let you know.

EDx suppport added, I just hope everything else still works...  ;)

There is plenty of information available.

Well, I've already found some but it's still unclear to me. And reading someone else's code is even harder...  :-\  ... surely anyway I'll dedicate some more time searching about this argument :) Thanks :)

Title: Re: Searching 4 (or 5) XMs for my beta
Post by: sverx on July 08, 2008, 17:29:19
There is plenty of information available.

in the XM format documentation (http://aluigi.altervista.org/mymusic/xm.txt) I've found that it says:

Quote
Period = 10*12*16*4 - Note*16*4 - FineTune/2;

it means that every 16*4 'period unit' there's a semitone, correct?
So a period unit should be considered as 1/64 of a semitone?
It means that effect 108 (when spd=9) will 'Slide Up' the note of a semitone? (8 period units by 8 times...)

Tell me if I'm in the wrong direction...  :(

Title: Re: Searching 4 (or 5) XMs for my beta
Post by: pailes on July 08, 2008, 19:00:52
it means that every 16*4 'period unit' there's a semitone, correct?
So a period unit should be considered as 1/64 of a semitone?
It means that effect 108 (when spd=9) will 'Slide Up' the note of a semitone? (8 period units by 8 times...)

It is actually 4*8 not 8*8... You may ask why 4, that has got something to do with the amiga period range in FT2 being 4 times more precise than original Protracker. And since linear and amiga periods are handled in the same way they're both sliding 4*operand. That goes for all slides except for the x-tra fine slide which is just 1*operand.
Title: Re: Searching 4 (or 5) XMs for my beta
Post by: sverx on July 08, 2008, 19:19:10
It is actually 4*8 not 8*8... You may ask why 4, that has got something to do with the amiga period range in FT2 being 4 times more precise than original Protracker. And since linear and amiga periods are handled in the same way they're both sliding 4*operand. That goes for all slides except for the x-tra fine slide which is just 1*operand.

Thanks, but I've read your sentence some 4 times and I still don't understand what you meant :|
Did you mean that one 'period unit' is 1/32 of a semitone (instead of 1/64)? Or did you mean that -say- if I use effect 105 with spd=6 it won't slide of 25 units? :|

Thanks once more!

Title: Re: Searching 4 (or 5) XMs for my beta
Post by: pailes on July 08, 2008, 19:29:40
The period unit (whatever that is supposed to be) is still 1/64 (at least for the linear case). But the increment/decrement on this unit is always the operand from the command*4.

You should forget about that that unit-thingy... There is periods and there is frequencies... to get the frequency you convert the period into the frequency. To slide the period you add/subtract a value to/from the period and that is always 4*operand-value.

and you should always consider that there is an amiga frequency option...

Title: Re: Searching 4 (or 5) XMs for my beta
Post by: sverx on July 08, 2008, 19:46:55
The period unit (whatever that is supposed to be) is still 1/64 (at least for the linear case). But the increment/decrement on this unit is always the operand from the command*4.

I see. So effect 105 slides period of a value 5*4 for each tick, of course skipping tick #0... it sounds like it is meaningful.

You should forget about that that unit-thingy... There is periods and there is frequencies... to get the frequency you convert the period into the frequency. To slide the period you add/subtract a value to/from the period and that is always 4*operand-value.

I've got to confess that I'm not using periods at all. Actually I calculate the frequency value using the 3pla: note number, relative note for the sample and finetune... with 'simple' math and using some precalculated arrays. So I'm trying to avoid the overhead of having everything expressed in periods and to do the conversion each time. After all, isn't that portamento slide just kind of 'dinamic changes' in the finetune value?  :rolleyes:

and you should always consider that there is an amiga frequency option...

I'm not considering it at all, in fact. And my plans -at least actually- are that I won't support that. After all I'm not really trying to write an XM Player, there are already good ones, even on NDS, of course you know ;)

Thanks!


Title: Re: Searching 4 (or 5) XMs for my beta
Post by: pailes on July 08, 2008, 21:35:13
I see. So effect 105 slides period of a value 5*4 for each tick, of course skipping tick #0... it sounds like it is meaningful.

Correct.

I've got to confess that I'm not using periods at all. Actually I calculate the frequency value using the 3pla: note number, relative note for the sample and finetune... with 'simple' math and using some precalculated arrays. So I'm trying to avoid the overhead of having everything expressed in periods and to do the conversion each time. After all, isn't that portamento slide just kind of 'dinamic changes' in the finetune value?  :rolleyes:

I guess that's what we all try to achieve when doing our first mod player but sooner or later this will bite you in the neck. For amiga periods this will be rather difficult because the scale is logarithmic...

just stick to periods like all players do, you might not yet understand why, but if you don't everything will be much more complicated in the end.

I'm not considering it at all, in fact. And my plans -at least actually- are that I won't support that. After all I'm not really trying to write an XM Player, there are already good ones, even on NDS, of course you know ;)

I see... But actually that's not true, you are already trying pretty hard, at least it seems like that to me :)

But mind you, supporting amiga and linear frequencies is just a matter of having two routines:

int computePeriod(int note, int finetune, PeriodType type /* linear or logarithmic*/);
int computeFrequency(int period, PeriodType type /* linear or logarithmic*/);

The rest is really the same.

Good xm players on the NDS? Which one? Mikmod? :P
Title: Re: Searching 4 (or 5) XMs for my beta
Post by: sverx on July 09, 2008, 11:03:58
I guess that's what we all try to achieve when doing our first mod player but sooner or later this will bite you in the neck. For amiga periods this will be rather difficult because the scale is logarithmic...
just stick to periods like all players do, you might not yet understand why, but if you don't everything will be much more complicated in the end.

Well, I don't know how far I'll be able to go with this project, I'm trying to achieve the first target: release the first beta of the library. Then I'll evaluate the feedbacks from the NDS homebrew community and after that I'll decide if it's worth to go on. Maybe in that case I'll redesign everything starting from periods as you suggest... before it bites me ;)
Ah, by the way, it's actually the second module player routine I'm writing, the first was ten years ago on the PC, almost completely in assembler and it didn't support effects and volumes at all, but was ok for the things we needed...

you are already trying pretty hard, at least it seems like that to me...

As long as I'm having fun doing it...  :rolleyes:

Thanks. :)

... now back IT... anybody willing to sacrifice one of his XM to science? ;)

Title: Re: Searching 4 (or 5) XMs for my beta
Post by: Bad Sector on August 05, 2008, 02:16:04
You may want to check this out (http://www.wotsit.org/download.asp?f=fmod&sc=271192023), its for MOD format but the idea behind periods and such is the same. Also as suggested here (or was it in another file - dunno, i read a lot of mod docs these days while implementing my flash player (http://gimme.badsectoracula.com/flashmodplayer/modplayer.html)), its better to make a "MOD" player first and then move to more advanced formats (and personally i would suggest S3M before trying XM).
Title: Re: Searching 4 (or 5) XMs for my beta
Post by: sverx on August 05, 2008, 18:17:49
Hi there... I'm back. And I see that unfortunatly there are no news :(

Raina: what happened to your WIP module? I still need it...

Bad Sector: the link you posted... it seems it doesn't work. And anyway I'm not really interested to write a Mod/S3M player, I want to play XM instead...

Title: Re: Searching 4 (or 5) XMs for my beta
Post by: raina on August 05, 2008, 18:25:45
Umm.. It's still WIP I'm afraid. Haven't worked on it for a while but I'm quite pleased with how it's sounding. Unfortunately I found I was using other effects too and I don't think I want to strip them out. Maybe I could send you the tune as it is and you could see what the differences are compared to say, MilkyTracker. If your player handles the module acceptably, maybe I could try rush finishing the song.
Title: Re: Searching 4 (or 5) XMs for my beta
Post by: sverx on August 05, 2008, 18:50:44
I see... well, I don't want you to rush finish your work, of course... and I'm not in a hurry. So, for instance, we can try with the unfinished module...

About the effects, well, the thing I can do is sending you a beta program that plays your module (you will need a real Nintendo DS or no$gba emulator) so that you can hear how it plays without stripping away the effects...

I don't know. Let me know what you prefer.
Thanks! Ciao!

Title: Re: Searching 4 (or 5) XMs for my beta
Post by: Bad Sector on August 05, 2008, 20:21:33
Bad Sector: the link you posted... it seems it doesn't work. And anyway I'm not really interested to write a Mod/S3M player, I want to play XM instead...

As you wish :-). However most concepts are the same, so i recommend you to read this doc even if it talks about mod. I uploaded it in my own server (http://gimme.badsectoracula.com/fmod.zip), so this will work.
Title: Re: Searching 4 (or 5) XMs for my beta
Post by: sverx on August 06, 2008, 17:08:54
However most concepts are the same, so i recommend you to read this doc even if it talks about mod.

I surely will. Thanks! :)
Title: Re: Searching 4 (or 5) XMs for my beta
Post by: raina on August 08, 2008, 16:27:04
Ok, the song is now almost finished. It has everything I intend to include but needs a little tweaking still. So, this version will tell us if the song can be used. I'm sending you the WIP.
Title: Re: Searching 4 (or 5) XMs for my beta
Post by: sverx on August 11, 2008, 11:29:13
Ok, the song is now almost finished. It has everything I intend to include but needs a little tweaking still. So, this version will tell us if the song can be used. I'm sending you the WIP.

Received :)

I still would like to use another couple of modules, so this topic is still open for other to join.

Thanks :)

Title: Re: Searching 4 (or 5) XMs for my beta
Post by: sverx on August 14, 2008, 17:15:40
Raina is helping me a lot, but there's still space for everybody else who wants to help my demo with one of his XMs. The features are still:

Quote
1st: there are max 16 channels so your tunes shouldn't use more than 16 channels.
2nd: there's no "sample interpolation" or "volume ramping" so deactivate them in your tracker and check if your XM sound good 'enough'.
3rd: it's a beta so it supports only few effects yet (8xx, 9xx, Axy, Cxx, EAx, EBx, EEx, Fxx) (*)
4th: XM file size max 1MB, better if <700 KB anyway.

Said that I have to add that instrument volume envelopes are supported (and now quite well beta tested  ;D ) and panning envelopes are not... both 8 & 16 bit samples can be used, both the forward and the ping-pong loop are supported.
Multi-sample instruments are also supported.

Of course I will give credit to the author(s) and a little space (for a link? free text?) for each tune. And my gratitude, of course :)

(*) as of today I already added support for EDx effect, a beta support of Pxy and ECx effects (still both untested...) and also a beta support for 4xx and 5xx effects, actually only working as 'volume slide', no portamento and/or vibrato.

Thanks! :)
Ciao!