subz3ro, coder from Slovakia. Tuesday, 19th December 2017, 11:52|
@marton: It's not currently possible to build x64 binary out of sourcecode, as it contains quite much of inline x86 assembler code. However, it's being rewritten in pure Pascal for SDL version line, so it will finally fix the stack alignment problem with new Linux distros, and be portable over every platform allowing FPC compiler and SDL library :-) Just be patient, I don't have as much time as I would like to do it quickly.
marton, newbie from czechia. Tuesday, 12th December 2017, 18:04
If you have FB account, and you are not yet subscribed to AT2 User Group, I'd highly recommend to do so for latest news about AT2 (link to it is in section Contact & Links).
subz3ro, coder from Slovakia. Sunday, 17th September 2017, 12:41
Is there any guideline for compiling under Linux? I'm not the best at this and never have done any pascal compiling... I'm on 64 bit, that's why I'm asking.
thanks in advance
@Chakatoy: No offense man, but I think you should maybe slightly improve your knowledge about reducing fractions:
chakotay, another visitor from US. Saturday, 16th September 2017, 23:16
(140 BPM x 4 / 60) x 6
you reduce to
140 BPM x 4 / 10
and result is precisely 56 :-)
Anyway, you should know that this is (as I said earlier) pure mathematics. AT2 replay routine works with tempo in Hz, so (with speed factor 6) it does 56 times per second a 6 frame cycle before advancing to next row. This is repeated 4 times per one beat then...... as you can see, there is no division :-))) What we're playing here is just numbers and units representation.
O.K I will try it and get back to you.
subz3ro, coder from Slovakia. Saturday, 16th September 2017, 20:21
My idea is that there would be an accumulative rounding error based on the fact that
(140 BPM x 4 / 60) x 6 = 55.999999 ... not 56
Like you said, basically slight drift in timing over time.
Sorry I'm not trying to be annoying
@Chakotay: Look, apparently this our discussion leads to nowhere... I'm giving you here again calculation formula you requested at the very beginning.
Chakotay, musician from US. Friday, 15th September 2017, 22:04
(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. The fact is that I haven't tried it, as I'm not using audio mastering software which requires speed to be exclusively in BPM with AT2. As you do need this, please go ahead and try it out, there is no other way to find out if it works. I think it's no big deal to write perhaps just one looping pattern that will be playing for 2 or more minutes to check out behavior in your software. I would also kindly ask you to get back here and give feedback whether it works or not, if you decide to do this (even though if you say it's like that with other trackers using TEMPO and SPEED configuration, we can't expect it to be anyway else). Good luck and thanks.
I guess its close, but not exact, because adlib tracker deals with whole number Hz but 140BPM would require divisions of 1 Hz, like 2.33333333Hz, or 9.33333333Hz.
subz3ro, coder from Slovakia. Thursday, 14th September 2017, 11:47
70 BPM is equal to 1.1666666667 Hz
140 BPM is equal to 2.3333333333 Hz
280 BPM is equal to 4.6666666667 Hz
560 BPM is equal to 9.3333333333 Hz
Maybe its possible to get exact BPM for 60BPM, 120BPM, 240BPM? Whole number Hz, without dividing up 1 Hz?
60 BPM is equal to 1 Hz
120 BPM is equal to 2 Hz
240 BPM is equal to 4 Hz
480 BPM is equal to 8 Hz
960 BPM is equal to 16 Hz
Chakotay, another visitor from US. Thursday, 14th September 2017, 3:25
"Beats Per Minute...A rate of 60 bpm means that one beat will occur every second."
If this is so, I don't see any reason for 140 BPM not being treated correctly with tempo 56 Hz and speed factor 6 though ;)
subz3ro, coder from Slovakia. Tuesday, 12th September 2017, 16:03
Adlib Tracker is awesome but the subtle out-of-sync effect you mentioned will give me alignment problems in my sampler - sequencer. Its like that with famitracker, nanoloop, LSDJ, Pulsar, NTRQ as well.
Beats Per Minute...A rate of 60 bpm means that one beat will occur every second.
AdlibTracker2 as a VSTi would be so cool.
Sorry to trouble you.
@Chakotay_Maquis: I've put the complete calculation formulas there. As you can see, with SPEED setting of 6, it's exactly 140 BPM played at 56 Hz without any loss of information during calculation of values. Of course with some other SPEED settings (like with 2 in second example here), this may not be true, as TEMPO parameter in AT2 has no floating point precision. However, if these 140 BPM in other software is treated at 597.333338 Hz, as you say, then of course you will have some subtle out-of-sync effect with long playing tracks anyway (and in any case).
Chakotay_Maquis, musician from US. Tuesday, 12th September 2017, 0:59
As of using AT2, this is really up to you mate... no worries about criticism or need to apologize ;) AT2 was designed and developed mainly and particularly for DOS operating system, which has no good support for high precision timers... therefore there is no floating point precision in AT2 (except 18.2 Hz workaround for compatibility reasons with HSC format) ;) Actually, it would be possible to implement high precision timer for SDL version line, but this would need significant effort to manage it correct way, so compatibility between DOS and SDL version would stay intact. Currently I don't feel like I'm going this way, but maybe later, when I have again motivation and time for doing such major changes in AT2 :-)
Thanks for your time and your help. I really appreciate it.
subz3ro, coder from Slovakia. Sunday, 10th September 2017, 1:50
I'm really sorry I have one last question so I can decide whether I will use adlibtracker2 or not.
It seems like, using those formulas a perfect 140BPM pattern is not quite possible in AdlibTracker2.
A perfect 140BPM is 597.333338 Hz (http://www.convertalot.com/hertz_converter.html).
For the first formula I got 55.999999Hz, not quite 56Hz.
For the second formula I got 18.666666Hz, not quite 19Hz.
I am I right in thinking that adlibtracker2 can get very close to a perfect 140BPM, but not to exactly 140BPM?
If it cant do exactly 140BPM, what exact BPMs are possible (with no decimal places)?
Sorry I'm not criticizing adlibtracker, I love it. I just need to know how to get exact BPM values out of it if I'm going to put the time into getting good with it.
@Chakotay_Maquis: Ok, to avoid further confusion, here are 2 examples of calculation for TEMPO and SPEED values to reach 140 BPM with 4 rows per beat advance - one for using of slower and one for using of faster song effects...
Chakotay_Maquis, musician from US. Monday, 4th September 2017, 2:29
(for using slow effects):
(140 BPM x 4 / 60) x 6 = 56 Hz
i.e. SPEED value = 6 and TEMPO value = 56
(for using fast effects):
(140 BPM x 4 / 60) x 2 = 19 Hz
i.e. SPEED value = 2 and TEMPO value = 19
Calculation formula being used:
[(Tempo desired in BPM x Rows per beat) / 60] x Frames per row = Tempo in Hz
P.S. Please keep in mind that SPEED value is hexadecimal while TEMPO value is decimal in AT2 (I know it may be a little bit confusing, but there are reasons for it to be like that ;)
What SPEED / TEMPO setting should I use in AdlibTrackerII to get patterns playing at EXACTLY 140BPM?
BitPusher, musician from USA. Friday, 28th July 2017, 9:39
I need to get rendered samples of AdlibTrackerII patterns looping at exactly 140BPM so I can use them in Renoise and add more layers with other synths and sampled instruments.
I love the 4operator adlib FM sound.
Well thank you sir. I just hope it helps somebody.
subz3ro, coder from Slovakia. Thursday, 27th July 2017, 16:07
@BitPusher: I will put your ZIP to Special program packages section with credit to you. Thanks :o)
BitPusher, musician from USA. Wednesday, 26th July 2017, 22:39
Subz3ro, I don't exactly know how to do that :(
subz3ro, coder from Slovakia. Tuesday, 25th July 2017, 14:41
I have however put the pre-compiled binary for DOSbox-X, the latest release of AT2, and a very simple readme into a zip file and put them on my web server. I have also linked both the file and your website at
As for this little zip package, it is here:
It is simple and works as of MacOS Sierra 10.12.6
Simply unzip, and follow the directions in my readme. I have given explanations for both those who do and those who do not know anything about DOSbox.
@BitPusher: That's some really cool news, though. Would you be able to prepare some pre-configured (standalone) MaxOS X package with AT2 for beginner users, which I will put to download section? I think many Apple-only users would appreciate it.
BitPusher, musician from USA. Tuesday, 25th July 2017, 10:25
I have awesome news Mac users: This can work in DosBox after all.
subz3ro, coder from Slovakia. Thursday, 20th July 2017, 15:51
Not the original DosBox, but an SVN build I downloaded found in the DosBox WIKI called DOSBOX-X. I am running MacOS Sierra 10.12.5 and right out of the gate, I was able to load up the most recent build of Adlib Tracker II and it works just fine. I hope this little discovery helps some other Mac users out there. I'm excited because I didn't want to have to buy a copy of Windows just to use that OS' version of DosBox.
Now comes the fun part, learning how to work in AT2 :)
@BitPusher: Original? :-) Is there already somebody else in addition, who I don't know of? :-)
BitPusher, musician from USA. Wednesday, 19th July 2017, 17:52
As for the screen... this is fatal crash of Free Pascal runtime routine, not really possible to tell what's going on there, as this is probably not even coming to particular AT2 code yet. Do you have all necessary memory management (e.g. HIMEM, EMM386 under MS-DOS) installed and correctly configured? If so, does this (Page Fault with CR2 register dump) happen to both MS-DOS and FreeDOS? If so, we are probably running out of possibilities for this particular DOS version on your current setup. Last thing you can try (if you really insist on using DOS) is to go along with the older version (it's placed in special packages - version 2.3.52), this one has been compiled with different Pascal compiler and is using different DOS extender, so there is possibility it might work. Of course, you will miss few new features and latest optimizations, but at least it's something to start with. But as you've mentioned sound is not working on your setup under DOS, I think the best option for you is using SDL version for Windows. The OPL3 emulation used is really decent one, it can give you time to look around for different setup to run DOS version, or perhaps stick with it :-)
A response from the original coder himself, thank you subz3ro.
subz3ro, coder from Slovakia. Monday, 17th July 2017, 16:47
I got the same message running the exe directly as well as with the /debug flag, but that said, I uploaded a screen capture here:
What do you think?
@BitPusher: Hello and welcome :) First of all, run AT2 with command line option /debug so we can see where it actually crashes (as you say) during startup. You might eventually have to pause the screen during startup process to see the information flow (in case the program ends with crash screen).
BitPusher, musician from USA. Sunday, 16th July 2017, 9:12
subz3ro, coder from Slovakia. Monday, 5th June 2017, 15:39
I'm Queue, otherwise known as BitPusher from BitPusher2600.net
I have made chiptunes with the Atari 2600, and the Nintendo Gameboy, as well as assorted bass music for car audio purposes.
Right now, I'm obsessed with reliving some old memories with good old DOS but the truth is, I've been pretty much all Apple since that's what I had as a child. Having been born in the 80's though, I've been around :)
Anyway, I have two possible environments to work with and no matter what, I can't get AT2 to run, can anyone help?
#1: Mac desktop or MacBook, I have Dosbox well configured. I have been able to run pretty much anything I've thrown at it just fine, but AT2 (the latest release) crashes at boot. It also seems that the specialized version of Dosbox offered in the downloads section is only for Windows.
#2: I happen to have an old 2.20ghz Pentium 4 HP tower laying around, but no copy of Windows. I have successfully (and natively) been able to install and run both FreeDOS as well as actual MS-DOS 6.22 which is surprising since this machine has USB peripherals and SATA drives. That aside, the integrated Intel sound chip won't work in either case no way no how. Also, AT2 crashes on boot there as well.
While I want to begin learning AT2, I am not wanting to blow $100 on a copy of an operating system (Windows 10) I would otherwise have zero use for. So, any other suggestions for me guys? Thank you so much for your time.
iron hedgely, another visitor from senkaku. Saturday, 3rd June 2017, 19:30
Yeah, it is a bit confusing in DiodeMA's formula, I thought you will probably ask this question :) FRAMES PER ROW = SPEED value in the tracker; it's actually a diminishing factor 1 to 255 (FF) for TEMPO (which corresponds to actual name in formula, i.e. how many times per second [Hz] you are advancing song).
It's useful for pattern effects like tone portamento, note retrigger or such... so you know how many time frames out of tempo you have available for the effect.
ROWS PER BEAT in formula means how many pattern rows are necessary for reaching the one with actual beat command, like in, if you consider having beat in every row, you can discard this value from calculation formula (Btw, you can start with turning on line marking with Alt+M in the tracker and then change the marking setup with Alt+L, and this will for sure give you idea what's going on here :)
Framerate in SDL version has nothing to do with sound, it's actually refresh rate of the screen.
Hope that helps.
Thanks. It sounds like everything I aim to do with adlib tracker II will be possible.
subz3ro, coder from Slovakia. Thursday, 1st June 2017, 11:15
Sorry to bug you with this but I have one more question...
diode milliamp facebook post gives these formulas for calculating true BPM:
How to calculate tempo in a tracker:
[(Tempo desired in bpm x Rows per beat)/60] x frames per row = Tempo in Hz
If you start with Tempo in hz:
[(Tempo in Hz x 60) / rows per beat ] / frames per row = Tempo in BPM
By "frames" does he mean ticks, or frames as in "framerate". If framerate, then is the framerate in the emulation of adlib tracker II 60Hz? If it is 60 frames per row, the equation doesnt work for me.
So if the BPM I want is 140 (597.333338Hz)
[(597.333338Hz) x 60 = 35840.00028
/ 4 rows per beat = 8960.00007
/ 60 frames per row = 149.3333345?
Iron hedgeley, musician from senkaku. Wednesday, 31st May 2017, 1:49
1) yes (it's also written next to download link, btw)
2) I'm not sure if I understand your question, but you are giving BPM nowhere directly (if you are asking this), it's as with "others", in particular, 2 values - song tempo and speed; it's quite trivial to calculate BPM from them, though... description is here: https://www.facebook.com/diodemilliamp/posts/10102922797332740
3) "as great" is very relative, but OPL3 emulation in latest SDL version is (dare I say) the best available :-) and in my opinion, very very (...) close to hardware OPL3; you will have to check it yourself anyway (it will cost you nothing more than a little bit of time for download and try)
Can Adlib tracker II render patterns / tracks / songs to .wav when using the emulated OPL3 version?
subz3ro, coder from Slovakia. Friday, 5th May 2017, 12:32
Is the speed true BPM (so that I can use those rendered .wavs in a multi-software project), or is the Speed of the track based on framerate like aome of the others? (famitracker etc).
Is the emulated OPL3 as great sounding as the hardware one?
@Dmitry: Hi. This GitHub mirror was a relict from the times we had project sources running on Google Code and it was about going down (I just deleted it so there is no more confusion). For time and effort reasons, I've decided not to continue delegated site for source code, so the only place where to download the recent source code is in the Downloads section here on home page.
Dmitry, coder from Russia. Thursday, 4th May 2017, 15:11
subz3ro, coder from Slovakia. Wednesday, 12th April 2017, 16:53
It would be nice to add a link to your github mirror:
I've noted you haven't updated it since 2015... :( Could you give it a try?
@geomodular: Vitaj :) ... and don't forget to join our user group on Facebook (link is here on page in Contact & Links section)
geomodular, musician from Slovakia. Friday, 31st March 2017, 22:25
@Mephitus: It works! Thank you very much. Now I have to figure it out how to silence my computer because it is loud like vacuum cleaner. :)
geomodular, musician from Slovakia. Friday, 31st March 2017, 13:05
@Mephitus: Yeah, sorry I gave you no configuration at all. I have SB AWE32 CT3900 plugged in and I am running FreeDOS 1.2. Audio seems to work - I tested it using programs provided with SB audio drivers. I'll try your advice and report soon. Thanks!
Mephitus, listener from USA. Friday, 31st March 2017, 6:41
@geomodular --- make sure you are indeed using an opl3 ... if you are open adtrack2.ini and scroll down to 'adlib hardware' ... change the line "opl_latency=0" to "opl_latency=1" and try again... some chips still need the delay..
geomodular, musician from Slovakia. Thursday, 30th March 2017, 13:20
Hey! Very nice software here. I recently discovered this gem and I have built retro pc just to try it on a real thing! Unfortunately it does not work :(. The program seems to work fine but when I play something there's just some random stuff/noise. Can you help me troubleshoot this?
subz3ro, coder from Slovakia. Tuesday, 14th February 2017, 21:33
@european: Sorry but I don't see any particular reason for certificates on this page. It's all read-only data, only one input sent from your computer to the site is actually messages you write here and are stored in SQL database on hosting server. Site evidently doesn't contain any hints of vulnerability or hidden code, which could harm your computer's safety. I'm not against security, but keeping this site online already costs few more bucks (for site hosting and domain registration) which all go on us (me and Encore), as software is completely free of charge. Such change would require additional "work budget" for keeping site online with the need of certificate updates..... in my opinion (for any browser out there), it's still better for the site to be HTTP than HTTPS with expired certificate :-) I value your interest here, but let's focus back on the FM topic. Thanks for understanding.
european, another visitor from europe. Sunday, 12th February 2017, 2:28
for security and privacy
subz3ro, coder from Slovakia. Saturday, 11th February 2017, 12:52
you can use let's encrypt for certificates
@european: ??? For what reason?!
european, another visitor from european. Friday, 10th February 2017, 22:04
enable HTTPS please
subz3ro, coder from Slovakia. Monday, 19th December 2016, 20:35
@keenmaster486: I'm not aware of copyright for most of the songs, except this HSC Player (.hsc files) stuff which was used in some commercial game back then. All the rest should be just demo scene or home composing stuff, of course I cannot confirm you that authors would be down with using their stuff in some commercial (or even non-commercial) game, sure it would be better to get in contact with particular authors first and ask them ;)
keenmaster486, coder from United States. Thursday, 15th December 2016, 6:22
Hey subz3ro - first of all, ATII is awesome, keep up the good work! Secondly, I'm wondering what the policy is for usage of the demo tracks included with the program. I'm trying to start development of a new game for DOS and some of those tracks I'd really love to see included. Thanks! -keenmaster
subz3ro, coder from Slovakia. Thursday, 1st December 2016, 14:54
@theorize: Easy, I definitely value any your interest :) Have fun with the tracker and your further discovering of new stuff ;)
theorize, newbie from USA. Wednesday, 30th November 2016, 22:12
You are correct, I just installed the new version and gave it a whirl, I like the changes :)... and I wasn't asking you to change it I was just wondering why it was done that way, trust me I appreciate every bit of work you've done on AT2 and am extremely happy to have this tool, without it I may not have gotten into OPL3 (or FM in general, which would be a shame). I'm still learning to use the tracker, most of what I've done so far is learning FM synthesis, but I would like to start working on some actual tunes soon. Thanks for the new release, it is appreciated :)
subz3ro, coder from Slovakia. Sunday, 27th November 2016, 11:11
@theorize: I agree that the 4op instruments could be done more elegant way, but in my opinion, improvements made in latest version have already made it quite easy to use and store in file system (at least compared to previous versions) The reason why there are no delegated 4op instruments is simple..... changes in UI necessary to achieve this would be considerably huge and unfortunately I don't have time (nor mood) for that anymore :( In addition, current implementation exactly makes use of 4op concept such as-is designed by engineer who did it for Yamaha and OPL3 chip... every modification to it would be just convenience tweak of input for users, nothing else.
theorize, opl3-geek from US. Tuesday, 22nd November 2016, 23:19
Enough of arguing and defense, I have some strange feeling you probably don't know about these latest changes for handling 4op instruments that I'm talking about, do you? :) Here is some hint: just toggle 4op instrument pairs with Shift+O in Instrument Control panel, and see what happens (with editing, saving, loading etc.)
I am curious, why not make individual instruments 4-0p capable, rather than using two 2-Op instruments? This makes it a bit unfriendly if one wants to save 4-Op patches for later use.
passing_by, coder from Molvania. Thursday, 13th October 2016, 21:24
@subz3ro My poking around with HW reads of AdT2 source resulted in no emu rape and lotsa tempo instability, with any significant event in the user interface. So I decide leave that alone.
subz3ro, coder from Slovakia. Sunday, 9th October 2016, 16:05
This make me rethink issue. And with a bit of asking around, I've been suggested to emulate reads and only pass writes to hardware. This works well so far(except for some detection issues).
I think the main issue here is actually inpout32 I/O calls taking waaaaay more time than raw I/O with raw OPLx/clone hardware.
I may also want to look into PortTalk as opposed to inpout32. I've had some positive experiences hex editing dos executables to point all the way up to 0x9400 :P(except for timing, since NTVDM sucks bumarse)
When I feel like programming again, I would like to ask you a thing or two of programming the OPL2/OPL3, via e-mail.
@passing_by: These delays for OPL writes are required for normal function on hardware chip. It's already reduced from 6/36 read cycles as for OPL2 chip to 0/26 read cycles for OPL3 chip, which still seems to do problems occasionally for specific hardware, though, so users have to increase the wait cycles to those OPL2 reference values (with setting option opl_latency=1) in order to troubleshoot horrible playback issues.
passing_by, coder from Molvania. Saturday, 8th October 2016, 21:16
Actually, I never got any feedback regarding OPL-passthrough other than from NeuralNET, who came with this idea and prepared PortTalk package and tutorial for DOSBox-HW version. Perhahps I could add an option opl_latency=2 for OPL-passthrough to skip all the wait cycles for particular use without PortTalk driver (which I assume should be working fine, since NeuralNET didn't report any playback issues). Just send me your modified "adt2opl3.pas" file to my email address, so I can precisely compare what everything have you changed, because as mentioned, I don't have opportunity to thoroughly test such changes on any suitable hardware.
Ohai, I've been mucking around with DOSBox sourcecode and an OPL hardware passthrough patch(by way of inpout32).
subz3ro, coder from Slovakia. Friday, 7th October 2016, 12:40
I noticed that your replayer heavily spams OPL reads during playback.
1. Tune in question is fm63b_rv.a2m
2. Play tune.
3. Reach 4OP section.
4. DosBox shits itself with extreme slowdown due to all the waiting it has to do for the reads.
What I did was comment out read call of inpout32 and simply return value 0. Lo an behold, no more deadly slowdowns.
@Proto Modulator: There is no support for MIDI interface in current version. You can try MidiSynth mode which was part of AT2 ver.2.3.52 (still available for download), but be aware that it uses only very limited functionality out of MPU401.
Proto Modulator, listener from USA. Tuesday, 4th October 2016, 3:41
Hi! I'm wondering how to access midi in Adlib Tracker II.
Jsf, another visitor from Oplvania. Wednesday, 15th June 2016, 18:54
Thanks subz3ro, i have posted the issues to the group, lets see now.
subz3ro, coder from Slovakia. Tuesday, 14th June 2016, 15:03
Long time user btw, we have exchanged some emails long time ago reporting crashes and such :)
@jsf: I personally have too crappy Android phone to check this issue on... however, in my opinion it would be better if you join the AT2 User Group on Facebook and put this information directly there. It will have then slightly better chances to be seen and answered ;) I don't think many people check this Message Board here regularly, though.
jsf, another visitor from Oplvania. Friday, 10th June 2016, 14:29
I am running at2 on an android phone with Magic DosBox. I have tried aDos and DosBox Turbo but none of them work as expected.
|< << Page 2 of 20 >> >|
Here a few issues common in all I have found:
. the sound emulation is very low res, even if with all settings set to max/best resolution
. when editing patterns, it's seems impossible to insert pattern break effect, every time I click D, C is inserted instead. Other effects are inserted fine.
. when in pattern editor if I click Ctrl+E, Instrument Control window opens alright, everything seems to work fine, until I hit ESC and nothing happens. If i press TAB opens instrument editor, hit ESC and go back to Instrument Control, press Shift+TAB go to macros, hit ESC again and go back to Instrument Control, Ctrl+O opens octave window, Ctrl+T transpose, in short I can travel around at2 pretty normally using the respective shortcuts, but Ctrl+P to go back to Pattern Editor... from Instrument Control there's no way to get back to Pattern Editor. ESC works fine in any other window. Could anyone replicate the issue and confirm this please?
Im using Magic Dosbox because it allows the user to create extra shortcuts on screen, one being for opening and closing the keyboard.
here 2 pictures with custom shortcuts