Perfect BPM timing in adlib tracker 2???

I did a test on an adlib tracker 2 song from youtube called ‘imadick’ (below) :

I found this song which has speed setting ‘06/50Hz’ in adlib tracker 2 is at exactly 200BPM. - edit - O.k, its seems the composer has added a groove in which speed changes from 06 to 09 rapidly, but the patterns are still exactly 200BPM. -edit -

The creator of AdlibTracker2, who is known as SubZer0, claims that a speed setting of 56Hz at speed 6 will yield patterns playing at exactly 140BPM…

**_"I’m giving you here again calculation formula you requested at the very beginning.

(140 BPM x 4 / 60) x 6 = 56 Hz

In my opinion, with 56 Hz at speed 6, it should match your desired scenario -> 140 Beats Per Minute with beat in every 4th row, from pure mathematical point of view."_**

Based on my test above I am almost convinced that SubZer0’s claims are inncorrect.

Can anyone here give me an example of an adlib tracker 2 file playing at 56Hz, speed 6?

If you know of one on youtube or online somewhere it could help me out a lot.

I need to test that speed setting.

Then I will have proof that 140BPM is impossible in adlib tracker 2.

I suspect you get a better response if you post this in the Adlib Tracker forums :slight_smile:

I suspect you get a better response if you post this in the Adlib Tracker forums :slight_smile:

I think ‘Chakotay_Maquis’ already did → http://www.adlibtracker.net/messageboard.php :slight_smile:

Why not just make the test yourself, it’d take only a few minutes.

why not just measure the software that has unusual bpm mechanism?

render/record sound with sharp transient in quarter notes without groove, let wave editor count the number of samples between same position of transients (take average of multiple hits).

Samplerate*60/AverageNumSamplesPerQuarterNote -> set all other apps to that BPM (if they allow fractional bpm) -> minimal drift. sounds sane?

I guess I am being a bit lazy, it was late when I made that post.

I will download adlibtracker2 again and make a simple pattern to test.

Chakotay_Maquis is me, I’m still on the same problem.

Im quite enthusiastic about adlib tracker2 in general but I want to get a concrete understanding of how the oldschool speed settings translate into BPM before I truly dive in to ‘adlib’ land. Its because I definitey want to sample out. opl3 sounds alone, not so good…but with effects and layered with other things better than just vopm or whatever opl3 vsti. more interesting options

I suppose I would like to know how applying grooves in adlib tracker2 can affect bpm and whether or not the same exact groove settings can be applied in renoise too. It is a mindfuck for me, Im not so mathematical with it.

I only posted about this here in renoise forums because I was reminded of it by the post about reality adlib tracker.

Could I just elaborate here lettuce? :slight_smile:

I’ve read your first post (a number of times). You show a video of adlib tracker playing a mod that you say is running at 200bpm (to me it looks like 100bpm but anyway.) Then you quote subzer0 (the coder of adlib tracker) saying that if you set a adlib tracker pattern at 56Hz with a speed of 6 you will get 140bpm (to me that seems quite valid. Likewise if you were to set 50Hz with a speed of 6 you would yield 125bpm.) Now you say that based on your test above (I assume you are referring to the video, which is mod playing at 100bpm) that subzer0 is incorrect. Unfortunately you don’t explain how you have come to this conclusion in your post (I had to go to that other link in my other post to work out that you were having trouble syncing bpms?) You finish saying that 140bpm is impossible in adlib tracker 2.

Okay, my quick observations…

I downloaded Windows SDL adlib tracker 2. And I ran the tracker program, I did a test pattern at 6 speed/50Hz (125 bpm), and I wrote the audio wave file out, and I loaded the wav into Renoise. I thought, 125 bpm. I found that indeed lettuce it doesn’t sync to 125 bpm. To get close to the bpm rate that Windows SDL adlib had rendered I had to set Renoise to about 122.449 bpm. So I tried 140 bpm in adlib tracker. Speed 6/56Hz. Rendered. Loaded into Renoise. 137.299771167048 (or something around there) bpm.

Because I’m a logical thinking man I thought: what about the DOS version of adlib tracker then? Tried DOSBox with DOS adlib tracker (as I don’t have a native MS-DOS v6.22 environment setup), speed 6/56Hz test pattern, capture wave from DOSBox emulation, load into Renoise. Correct timing of 140 bpm was the result. Likewise with 125 bpm. Still inaccurate results.

Windows SDL version outputs a slightly slower bpm wav file, Adlib tracker under DOSBox (wave capture) seems perfectly fine still inaccurate. That just my observation though lettuce (on my machine.) I’ll let you (and maybe subzer0) draw your own conclusions.

maybe also with xm play (it plays with Adplug / have no experience with bpm/rendering)

http://support.xmplay.com/index.php

http://support.xmplay.com/files_view.php?file_id=12

Could I just elaborate here lettuce? :slight_smile:

I found that indeed lettuce it doesn’t sync to 125 bpm. To get close to the bpm rate that Windows SDL adlib had rendered I had to set Renoise to about 122.449 bpm. So I tried 140 bpm in adlib tracker. Speed 6/56Hz. Rendered. Loaded into Renoise. 137.299771167048 (or something around there)…Tried DOSBox with DOS adlib tracker…speed 6/56Hz test pattern, capture wave from DOSBox emulation, load into Renoise. Correct timing of 140 bpm was the result. Likewise with 125 bpm.

I will do a render and check myself after a while, try to get the elusive perfect 140BPM.

I might try dosbox as well and compare with sdl.

its all quite a headfuck to get normal bpm out of adlibtracker 2…otherwise it looks and sounds awesome in an oldschool ‘day of the tentacle’ kind of way. could sound awesome with just some renoise delay and filter cutoff or something extra.

I’d imagine getting a groove / swing from adlib tracker lined up perfectly with a groove / swing from renoise would be a headache as well.

Could I elaborate even further on this subject lettuce? :slight_smile:

AFAICT obtaining any perfect accurate BPM running either Windows SDL adlib tracker or DOSBox DOS adlib tracker is not really possible. Just that (on my machine) DOSBox adlib tracker gets a bit closer to syncing with Renoise (probably still slide out over time though). Unfortunately I can’t try (which is what I wanted to do in the first place) a pure DOS environment (no DOSBox/Windows/Linux) running adlib tracker, and sample that out. That might be closer still (if not maybe bang on?) to the ‘correct BPM’ in other ‘modern’ DAWs. But I can’t try it as I don’t have that setup.

Some speculation time on my part…

Why is it I can go into Renoise, render out a track at say 140bpm, then load that wav into say Ableton and it will be sample accurate bang on 140bpm between the two programs? Probably because Renoise and Ableton derive their ‘clock’ source in a similar way under the OS (from the audio driver say). Whereas adlib tracker (under DOSBox/Windows/Linux) I assume uses a SDL Timer (more inaccurate). Adlib tracker under pure DOS is probably using the DOS interrupt to derive its ‘tick’ timing. When I wrote my simple 4 channel tracker under DOS I derived my ‘tick’ interrupt from the soundblaster card audio interrupt IIRC.

I think what you have discovered lettuce is timers and clocks in computers, to get them as accurate as possible and with as lower latency as possible when serviced. And yes, I agree, it does give any programmer a headache.

[Edit:] I think (as a final thought) is that the transport in Windows SDL/DOSBox adlib tracker isn’t accurate (I can’t test adlib tracker pure DOS.) Patterns are lasting probably 2-3 milliseconds longer (worse under Windows SDL) than they should. So instead of getting a consistent 140 bpm you get a very fractionally lower bpm (something that you can’t really input into Renoise or Ableton as they are probably only good to 2-3 decimal places of accuracy.)

I would not go through the headache trying to sync apps which were never meant to be synced and are also extra quirky making the task harder than it should be.

I’d rather try using an opl2/3 emulator vst for getting the sound, sequenced from renoise? Or are there vital extra features that would be missed this way?

Like this one: https://bsutherland.github.io/JuceOPLVSTi/

Or this: https://www.kvraudio.com/product/vopm-by-sam

Or this: https://jeff-russ.github.io/AdlibBlaster/

etc…

Haven’t tried it, but it seems they just put the opl emulator from dosbox into a vsti…

@ 4tey : yeah, the clock in those old programs is based on framerate or something. People who are really into chip music in general always try to insist that you can get 100% accurate BPM out of those kinds of software. They dont want to admit the shortcomings of the old software because they are really enjoying making chip music and they want to defend it.

Its a shame though, I remember when adlib tracker 2 came out and I couldnt work out how the fuck to use it on my 486…I wanted to get back into it all these years later, but for me theres not much point if I cant sample into renoise because Im of the opinion that it still sounds a little too basic without some filtering and other effects. Nevermind though, if subzer0 ever updates with true BPM I will definitely use it. I thought, if that happened, adlibtracker2 as a vsti would be way better than vopm and such if it could sync with host DAW…

@Zer0fly : That sounds good, multiple instances of vopm will probably be almost as good adlibtracker2 itself, but not quite…There was a big library of genesis sounds ripped from actual games for vopm so that will be a good starting point to check those out.

Its weird I think out of those programs back in the day fast tracker 2 and Impulse tracker still had accurate BPM…( as far as i remember )…Props to Jefrey Lim for Impulse tracker, still remember watching all the fancy panning you could do…that was some advanced software for the day.

The only way I know of taking this further is to get an old Pentium/486 machine with native DOS environment (not DOSBox) running adlib tracker 2 for DOS with say a soundblaster card. Pattern set at speed 6/56Hz (140BPM). Sample it in. Measure, load the sample into Renoise/Ableton/whatever and see if there is any drift from 140BPM over time. If there is, then Subzer0 has (IMO) done it pretty much correct. That’s how adlib tracker was/is speed wise on its transport. OTOH if you get an accurate 140BPM then the output from adlib tracker under Windows SDL/DOSBox (on my machine anyway) is not so correct to the original DOS version. (I suppose it’s a little bit like running a long play vinyl not at 33.33333333rpm but at 33.16666666rpm without the pitch change :))

[Edit:] If you take an example where someone has (supposedly) sampled a song from adlib tracker (I assume plain DOS) through a soundblaster card:

That tune runs at speed 6 tempo 55Hz. Which I think translates to 137.5 BPM. I’ve taken the sample from that video, put it into Renoise, to me, 137.5 BPM syncs. That’s why I say you would have to try the plain DOS version and compare to the SDL/DOSBox versions.

I just did a test rendering to.wav from the new SDL version of AdlibTracker2.

I rendered at 06/56Hz and loaded the rendered .wav in renoise.

It was at 137.5 BPM, most definitely not exactly 140BPM.

I will do some more tests and report back. I have a feeling an exact 120BPM may be possible.

.wav rendered from SDL at 06/50Hz seems to be at almost exactly or exactly 122.5BPM.

( In case anyone feels like it, in adlibtracker2…F3 to load a song, Ctrl+F to open song settings to change speed, ALT+F11 to toggle .WAV rcording on, F5 to play song / start .wav recording, F7 to stop song / stop .wav recording. )

----more tests----

06/60Hz gives you samples at around 147BPM

06/50Hz gives you samples at exactly 122.5BPM


If anyone can find the right settings for an exact whole number BPM, with no decimal point, please let me know.

Listening to some of these tracks that adlibtracker2 comes with, some of the sound design which is possible with its 4op FM and slide, portamento, vibrato effects…some of those sounds are truly beautiful yo. Id still like to use it…even if its a headfuck with its keyboard only operation and difficult to set real / true BPM.

I have a feeling an exact 120BPM may be possible.

If anyone can find the right settings for an exact whole number BPM, with no decimal point, please let me know.

I can tell you now lettuce the chances are you wont. Not with Windows SDL adlib tracker nor DOSBox adlib tracker. The transport runs slower/faster (Edit: see below) by a fraction. Now try the DOS version under a DOS environment with a soundblaster card.

[Edit:]

Also the other little thing here with the Windows SDL version is this. Subzer0 has put an option (hidden, made things more difficult) in the adtrack2.ini file. In that file you’ll find a line that reads:

sdl_timer_slowdown=2 ; SDL timer slow-down factor in % (0-50)
                        ; DEFAULT: 2% (measured with genuine Yamaha YMF262 chip)
                        ; NOTE: only change the default value if you know
                        ; what you are trying to do and why :-)

It’s set at 2%. If you set that to 0, you’ll probably find that you’ll get closer to the BPM you would calculate mathematically (Renoise BPM), it should get closer to what DOSBox would output (although I still think DOSBox is better, tends to drift less. But there is still drift.) Well that’s slightly ‘better’. But…drift/error and the rate in which you get drift/error from the base BPM over time is still a factor.

I still say you would have to do tests on a DOS machine with a soundblaster/OPL card and see how that measures up with DOSBox/Windows SDL.

[Edit 2:]

Looking a little more closely I tend to favour that all this has nothing to do with framerate/wonky drifting timers etc…

Now talking purely from the Windows SDL version I think you’ll find it is just internal rounding ‘error’. (Now when I say ‘error’ I don’t mean that adlib tracker is bugged, I mean mathematical rounding error when it steps out the sample.) Ticks are slightly longer or shorter due to conversion from floating point to integer with its counters internally.

So if you dial in Speed 6/Tempo 60Hz. You’ll get 147.088757396450 BPM rather than 150 BPM due to the option above (decreasing the timing by 2%, and internal rounding.)

So if you dial in Speed 6/Tempo 50Hz. You’ll get 122.453201970443 BPM rather than 125 BPM.

(You can input those BPM’s into Renoise.)

@ 4tey : yeah, the clock in those old programs is based on framerate or something. People who are really into chip music in general always try to insist that you can get 100% accurate BPM out of those kinds of software. They dont want to admit the shortcomings of the old software because they are really enjoying making chip music and they want to defend it.

Its a shame though, I remember when adlib tracker 2 came out and I couldnt work out how the fuck to use it on my 486…I wanted to get back into it all these years later, but for me theres not much point if I cant sample into renoise because Im of the opinion that it still sounds a little too basic without some filtering and other effects. Nevermind though, if subzer0 ever updates with true BPM I will definitely use it. I thought, if that happened, adlibtracker2 as a vsti would be way better than vopm and such if it could sync with host DAW…

Isn’t it possible to save mod files in adlib tracker and then open them in Renoise? Will something be lost in translation perhaps?

Isn’t it possible to save mod files in adlib tracker and then open them in Renoise?

Nah, different thing, different format :slight_smile:

Thanks for doing all those tests in dosbox. I think it will be too much hassle for me to try to get hold of an old laptop to run it on original soundcard the way it was designed to be used ( toshiba libretto like diode milliampere looks like a good option ).

Listening to the demo songs I think the sound design and sequencing capabilities of AdlibTracker2 are really excellent, so I am generally very enthusiastic about the program itself. It is a shame about the SDL and / or DosBox timing issues though.

As Subzer0 is now actively developing AdlibTracker2 again I think it would be cool if he updated it with true BPM capability and so that it could load as a VSTi and sync with host DAW. As a VSTi it would be way better than VOPM.

Anyways, its still possible to get a perfect 122.5 BPM, which is fine in renoise and matching up grooves should be o.k…just thinking about it because the grooves simply use ticks per line exactly like in renoise.

I should test reality adlib tracker as well…see whats going on with the timing issues over there, because that tracker looks kinda sweet as well and those adlib 4op FM sounds are nice to me somehow, just with a little extra thoug, some delay, some filtering, some reverb and so on.

Also, those kinds of old school tracker programs are really awesome alongside renoise for people who dont have a really powerful computer to run heavy CPU load vsti’s. Look like a nice option for travelling with an old netbook and still doing work on music without carrying around extremely expensive things. Using the old quirky software might yield some interesting quirky results and sound quite original…I bet if people got good on adlibtracker and had skills with it the end listener might even think they are hearing expensive eurorack modular or something??? ( once a few extra effects had been added to the rendered AT2 pattern tracks in renoise ).

I am so looking forward to this…true BPM is coming in the next AdlibTracker2 update!

SubZer0 :

“There will be new version with BPM handling natively featured in tracker soon. Wait for the Christmas :)”