![]() |
![]() |
#1 |
Registered User
Join Date: Apr 2020
Location: Denmark
Posts: 30
|
How to create "modern" effects in oldskool tracker modules
I've been compiling a list of how to create dynamic effects in oldskool trackers, in formats like MOD / XM / S3M / IT
https://www.indiegamemusic.com/EffectsInModules.txt Feedback most welcome! More tricks to add? Gimme! |
![]() |
![]() |
#2 |
Registered User
Join Date: Feb 2018
Location: Poland
Posts: 376
|
I would love if there was real-life examples attached.
Actually it is funny, because I tried this "pair of phase inverted samples" to get some kind of filtering illusion just a couple of days ago but I wasn't to satisfied with the results. And in 4ch. mods it is just a waste of myyy precioussss voicessss... |
![]() |
![]() |
#3 | |
Registered User
Join Date: Apr 2020
Location: Denmark
Posts: 30
|
Yes, I was thinking about that too. I will probably create some examples when the write-up is complete. For now I can link to this 14-bit example, which I did quickly with the sole purpose of testing the 14-bit trick. Try turning on/off channel 3 to hear the difference between the 8-bit and 14-bit bass. (Channel 3 adds the extra 6 bits). https://indiegamemusic.com/diskspace...ck%2014bit.mod Quote:
It's true that you need to "sacrifice" an extra channel as long as you apply the effect - but that's exactly why you do the inversion of the sample. Because that way you can fade-in a sample by applying the filter - and then free up the channel when the fade-in is done. Example here in the beginning of this track: https://indiegamemusic.com/diskspace...Unshackled.mod Notice channel 2 and 3 applies a lowpass filter. Then at pattern 4, the fade-in is complete, so I no longer need to use channel 3 for that. |
|
![]() |
![]() |
#4 |
Registered User
Join Date: Feb 2018
Location: Poland
Posts: 376
|
Thanks for the examples. That's interesting.
But you can achieve very similar effect of this kind of filtering without an inversion - just by x-fading two samples. Nice track btw. |
![]() |
![]() |
#5 | |
Registered User
Join Date: Apr 2020
Location: Denmark
Posts: 30
|
Quote:
Absolutely. The only reason to do the inversion trick, is to free up the channel again. If you do the X-fade variation, you'll constantly need to use 2 channels to player the full sound. Thanks! ![]() |
|
![]() |
![]() |
#6 |
Registered User
Join Date: Feb 2018
Location: Poland
Posts: 376
|
No. Like in your example - you start with filtered sample and fade it out on one channel whilst fading in full sample on another channel. This may sound slightly different but essentially you get the same effect so I wouldn't bother with inverting a sample.
|
![]() |
![]() |
#7 | |
Registered User
Join Date: Apr 2020
Location: Denmark
Posts: 30
|
Quote:
If you wanna do it with an X-fade, that means you'll need a sample with only the lower frequencies, and then another sample with only the higher frequencies. That means you'll need to play both samples - using 2 channels - in order to get the full sound with both the low and high frequencies. Using the inversion trick, you'll only need to use 2 channels as long as you don't want the full sound. As soon as you want the full sound, you only need to use 1 channel. So it really depends what you want of course. Since I wanted to achieve a fade-in in the beginning, where not much else was happening, I could easily use 2 channels for that. Then as the tune really starts, after the synths has faded in, I get an "extra" free channel since I'm done with the filtering now. Do to the same with X-fade, you'd constantly need to use 2 channels through-out the track. |
|
![]() |
![]() |
#8 |
Registered User
Join Date: Feb 2018
Location: Poland
Posts: 376
|
|
![]() |
![]() |
#9 | |
Registered User
Join Date: Apr 2020
Location: Denmark
Posts: 30
|
Quote:
Not sure what you're trying to show here. Looks like you're still using the inversion trick? When you say X-fade, I assumed you meant 2 samples First sample = Lower frequencies Second sample = Higher frequencies Then play these 2 with different volumes to switch between lower and higher frequencies. And that's where I say; doing it like that will then require you to use 2 channels whenever you wanna have both low + high frequencies - unless of course you make a 3rd sample with the full range of frequencies, which I assume we don't wanna do. What you're showing on the video seems to still have 1 times with full frequencies, and 1 with only the high frequencies, which are then being substracted from the full one. It's the same thing I'm doing, except I'm also fading in volume at the same time. |
|
![]() |
![]() |
#10 |
Registered User
Join Date: Feb 2018
Location: Poland
Posts: 376
|
|
![]() |
![]() |
#11 |
Registered User
Join Date: Apr 2020
Location: Denmark
Posts: 30
|
Ah ok, I see it now.
Yes, that'll work too, though it doesn't quite give the same result. I used the inverted highpassed sample to substract to the full one - and then I had the solo highpassed one playing in pattern B - which of course requires a highpassed sample. So again, it depends what you want. If you want only low frequencies using a single channel at some point, then this X-fade approach could be used. |
![]() |
![]() |
#12 |
J.M.D - Bedroom Musician
Join Date: Apr 2014
Location: los angeles,ca
Posts: 3,673
|
I did some 'modern' effects but usually involves have a low-pass or a reversed copy of the sample in RAM, after some bad experiences with a game i thought is better not to rely on non-conventional effect like reverse via number
|
![]() |
![]() |
#13 |
J.M.D - Bedroom Musician
Join Date: Apr 2014
Location: los angeles,ca
Posts: 3,673
|
I sometimes swap positions between channels to add dinamicity - eitnher at half pattern or quarter pattern, like here
[ Show youtube player ] I also use the Axx effect to do a dynamic equalizer effect and use often the 9xx effect to start the sample less sharply or to give continuity when have an interrupted loop [ Show youtube player ] Last edited by saimon69; 25 March 2021 at 23:57. |
![]() |
![]() |
#14 | |
Wipe-Out Enthusiast
Join Date: Nov 2005
Location: .
Age: 43
Posts: 2,545
|
Quote:
I do agree that both the inversion trick and a simple “full” and “heavy filter” same could simply be cross faded; the full filter could be high or low pass depending what you want to achieve. I’d be surprised interested to hear a sound comparison with and without the invert though. For mods though, i would tend to stick to the classic of using multiple samples, which are short, of various filter levels, and simply switch between them Depending on how filtered you want it at the time. This works particularly well for filters which are meant to be like Step-Sequenced or Arpeggiated synths, such as the TB303. You can choose how many levels of filter you want by how many samples you’re willing to use. Also unmentioned here (although I skim read some) is the “timestretch” effect - i think 9xx is the command on OctaMED, and is achieved by retroggering the same sample on every step , but with an increasing start offset. |
|
![]() |
![]() |
#15 | ||
Registered User
Join Date: Apr 2020
Location: Denmark
Posts: 30
|
Quote:
Yea, you gotta pre-listen if it sounds ok with the playerlib the gamedev is using. I've heard scary stories like yours, and thus didn't expect the succesrate I'm seeing. So far I've only been able to find Protracker 3.61 as unsupporting. (I assume Protracker 3.15 too). But all other players I've tested so far has no problem with these effects. Even the built-in playerlib in AMOS handles them well in both speakers. So it could be interesting compiling a list of playerlibs that handles and doesn't handle these effects. In other words; which playerlibs has precise timing, and which doesn't? Quote:
I'd probably do that too if I was only creating a MOD. But my geeky fetish hobby includes making my track available in multiple filetype formats, so gamedevs on many different platforms can use them. I want a high quality WAV in 16-bit stereo for high end platforms - not just a render of the MOD, but its own version. Then I also want MP3/OGG versions of the WAV. And then I want a 16-bit XM, still in stereo. And finally a MOD version to support retro gamedevs. Sometimes I also include a MIDI+soundfont version mostly for Nintendo platforms, although they're getting XM playerlibs too these days. This workflow of course doesn't exclude using multiple samples like you suggest. That's still an option. I just feel I can create more variation with the other approach. And as long as the MOD playerlib can handle it, then all is well. I was thinking about adding two new tags on IGM though: "Requires precise timing" and "Doesn't require precise timing" That way gamedevs using a playerlib they know can't handle it, can filter away tracks that aren't compatible. Also: When I use the 14-bit trick (tagged "Requires precise timing"), I will also make a pure 8-bit version (tagged "Doesn't require precise timing"). The more to chose from, the better. ![]() |
||
![]() |
![]() |
#16 |
Wipe-Out Enthusiast
Join Date: Nov 2005
Location: .
Age: 43
Posts: 2,545
|
Ok. Seems a strange approach to me though, but you can use whatever you want - just want to give an overview of why others might take another approach.
If I’m targetting 16 bit file output though, I would ask myself why would I be restricting myself to a 4 channel mod, I’d be producing a proper DAW versions with real filters and sounds from my synths. Even the Amiga went this way with CDDA tracks on CD32 titles. I tend to avoid this if writing a mod becuase my target is likely to be a disk based amiga program. If I’m trying to work with “the lowest common denominator” - ie it’s a mod but I do an output wav, then I would be choosing to work within the limits - I.e I’d be unlikely to want to sacrifice a channel, and if I’m not using short samples, eg final mod size is probably going to be too large for whatever machine requires the mod in the first place (back in the late 90s I was very guilty of this due to the “everyone should have a hard drive now” mentality) , and as you’ve said, the other technique it’s not even known if it will work with the player routine, so I would personally likely avoid it. It’s interesting to discuss the merits though |
![]() |
![]() |
#17 |
Registered User
Join Date: Apr 2020
Location: Denmark
Posts: 30
|
I don't need to ask myself why I restrict myself to a 4-channel MOD.
![]() First of all it's just a geeky hobby. I simply enjoy the challenge. Especially trying to make a MOD that doesn't sound like a MOD - while keeping filesize down. That's fun and intriguing. CDDA doesn't interest me much, but I do make a WAV that could be used for such platforms - exactly for that reason. Secondly I have a passion for supporting the old platforms. And that's part of the challenge: Make something with a small enough filesize that it's usable on the old platforms. But I also want gamedevs on modern platforms to find my tracks interesting, so I make several versions of my tracks. The MOD version doesn't have to be for Amiga though. It can be any other older platform as well. I've sold quite a few MODs to Atari Jaguar devs for example, many larger than 500 kb, some almost a whole MB - doesn't matter on that platform. Ironically, the MOD format is what I'm selling most of, so that of course also contributes. And I'm not working with "the lowest denominator". That implies that all versions of my track(s) are just conversions of the MOD. That's not the case at all. I tried explaining: The WAV version of my tracks aren't just a rendering of the MOD. They are actual different versions. MP3/OGG are of course just coded from the WAV, but the WAV, XM and MOD version are 3 different versions. Example: https://indiegamemusic.com/viewtrack.php?id=5065 I've made MODs since the early 90s, so it's also a bit nostalgic to me, which only makes it better. And I love how, here in 2021, I can still learn new things about a format I've been working with for 30 years. ![]() |
![]() |
![]() |
#18 |
J.M.D - Bedroom Musician
Join Date: Apr 2014
Location: los angeles,ca
Posts: 3,673
|
So your approach is more towards mere music making - indie games is indeed focalized on that, but on Amigas and other older machines memory counts: a game for an unexpanded A500 that run DOS-friendly might have only like 300k RAM for all assets so music is either with generated waveforms (old cinemaware games) or with chiptune/microsamples to keep it as small as possible.
When i came back to do amiga music i had to almost re-learn to walk [read do stuff in small memory footprints]. Plus good'ol Amiga machines did not have mixing so to make sound effects either is needed some software mixing (takes CPU time) or some channel need to be left free, usually one more rarely two. This work in example is 18k with microsamples and two channels. [ Show youtube player ] |
![]() |
![]() |
#19 |
Registered User
Join Date: Apr 2020
Location: Denmark
Posts: 30
|
I do small MODs too. I do a little of everything really. Also did some GM MIDI when I was hooked on J2ME development. (Old cellphones before Android and iPhone came along).
Here's a recent MOD of mine in only 79,496 bytes, using filters and stereo. https://indiegamemusic.com/4556 And an older one in only 34,190 bytes. https://indiegamemusic.com/84 |
![]() |
![]() |
#20 |
J.M.D - Bedroom Musician
Join Date: Apr 2014
Location: los angeles,ca
Posts: 3,673
|
How is business though? I usually go on with donations or a small percentage in sales
|
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Tracker: "Face The Music" from Maxon | 1988 | request.Music | 8 | 30 May 2024 18:50 |
Is there a place for traditional "Computer Shops" in modern retail? | 005AGIMA | Nostalgia & memories | 34 | 25 March 2022 18:08 |
Reverse the "Create harddisk image file" option | A500Man | support.WinUAE | 12 | 27 July 2017 12:25 |
Modules with popular "sayings" of music and Hollywood | Leandro Jardim | request.Modules | 4 | 26 March 2015 00:24 |
|
|