1 (edited by utz 2017-09-21 10:32:13)

Topic: bintracker 0.1.1

So the time has come to drop this, I guess...

bintracker is here. It's a new beeper music editor (and in the future, possibly more than just beeper), inspired heavily by both 1tracker and Beepola. At this point, it supports betaphase, PhaserX, PhaseSqueek, and Pytha. Bintracker runs on Windows and Linux. It should be possible to build it on MacOS, but I haven't tested that.

DOWNLOAD (source + win32 .exe)

Bintracker runs libmdal as a backend, so in theory it can support any engine that is supported by MDAL. However, at the moment, bintracker only implements ZX Spectrum 48K support. Also, MDAL/libmdal is still in it's infancy, and will have to undergo some major changes before moving forward.

Bintracker is currently in a very early beta stage, so bugs will be a common occurance. Please report them here, or (preferably) hrough the github issue tracker.

Currently known issues:
- Sound emulation is not very accurate (in fact, emulator will have to be rewritten completely)
- Display may glitch after loading a tune or starting a new one (need help finding out why and when exactly this happens)
- Keyhandler may occasionally destabilize and register accidental keypresses (again, any help on this is appreciated)


Massive thanks go out to Shiru, who got me started by tossing around the idea of having "some sort of an MML compiler for beeper". Also, bintracker would never have been possible without the amazing 1tracker, which will, without a doubt, remain my favourite tracker.

Another big thanks goes to Chris Cowley for all the work he's done to almost single-handedly kicked beeper music into the 21st century with Beepola.

And of course, big thanks to all beeper fans, 1-bit musicians, and especially beeper engine authors!

Update 17/09/21 - v0.1.1 released

Re: bintracker 0.1.1

Great stuff, more the merrier, especially with new ideas on tracker internal architectures and UI design.

One bug report so far - when I closed program, Windows error occured, 'the program was stopped, close it?' (not sure how it is in english, I'm on localized Windows).

3 (edited by utz 2017-09-11 12:47:17)

Re: bintracker 0.1.1

That's an odd one. I assume that on your system, bintracker.exe fails to be registered as non-console app. Which Windows are you on? Does the error also occur when you start bintracker via console?

Edit: nevermind, I've been able to reproduce the issue. Though I have no clue how to fix it atm...

There's also an issue with the exit confirmation on unsaved changes, message box will show a single "OK" button instead of the 3 custom ones it should show. This is a problem with the gfx lib, working on a work-around atm.

4 (edited by Shiru 2017-09-11 17:13:17)

Re: bintracker 0.1.1

I'm on Windows 7 x64.

Tried it few more times, there was no crash, but the app remains in the processes. Maybe this help to locate the issue.

5 (edited by garvalf 2017-09-12 07:25:38)

Re: bintracker 0.1.1

I can't compile it.

I've installed allegro from https://wiki.allegro.cc/index.php?title … buntu_PPAs (so I have allegro 5.2.2)

I think it worked with an alpha version you gave to me, but it's no longer the case. Now I get this on the same computer:

g++ -c -O2 -std=c++11 -ffast-math -no-pie -o bintracker.o bintracker.cpp
In file included from bintracker.cpp:5:0:
gui/gui.h:5:36: fatal error: allegro5/allegro_image.h: No such file or directory

I've been on http://download.gna.org/allegro/allegro/5.2.1 but it doesn't download anything.

Which minimum version of gcc or clang does it need? The latest gcc on my system (linux mint 17.3 LTS) is 4.8 I think. For clang, even with Mint 18, latest version is 3.8
g++ -c -O2 -std=c++11 -ffast-math -no-pie -o bintracker.o bintracker.cpp
g++: error: unrecognized command line option ‘-no-pie’
make: *** [bintracker.o] Erreur 1

clang++ -c -O2 -std=c++11 -ffast-math -no-pie -o bintracker.o bintracker.cpp
clang: error: unknown argument: '-no-pie'


on a newer system, there is the problem with allegro5/allegro_image.h

6 (edited by garvalf 2017-09-12 08:28:43)

Re: bintracker 0.1.1

I've finally installed allegro from git sources, and now it works smile
https://wiki.allegro.cc/index.php?title … nux/Debian

well, compilation works, but when I start bintracker, it says:

./bintracker
FATAL ERROR: Allegro initialization failed.


I'll try the binary on another computer

=> EDIT I've removed all other allegro lib I've had, now I can launch it, but the window screen is flashing!! It can play sounds, though.

Re: bintracker 0.1.1

garvalf: That's very odd, can't wrap my head around it. I just pushed some changes though, could you try to 'git clone https://github.com/utz82/bintracker.git' and compile that again? Btw -no-pie is only needed on new GCC, to force it to produce actual executables.

Shiru: Ok, tried some things. Could you check if this version still creates a zombie on your machine: https://irrlichtproject.de/transfer/bin … .1.0.1.exe

Re: bintracker 0.1.1

my binary didn't work on the other computer (./bintracker: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by ./bintracker) so I had a closer look at the liballegro PPA, and they said:

Now, run these commands to install the development versions of Allegro:

sudo apt-get update
sudo apt-get install liballegro5-dev

actually, this is only the basic lib, but images, sounds etc are in different OTHER packages, so I've installed them. So it could compile a bit. After a while, it got an error (sound_emul/sound_emul.cpp:85:20: error: ‘std::ostringstream’ has no member named ‘swap’    ostringstream().swap(audioBuffer);) but maybe it's because my gcc is 4.8 in this computer. Oh well, I'll try to install gcc 5.4 from source tomorrow then...

Re: bintracker 0.1.1

Wow. I mean 4.8 isn't exactly fresh, but one would expect that they'd be done implementing the C++11 standard at that point.
Ok, if it's just sound_emul.cpp:85 giving you trouble, you can replace that line with

audioBuffer.str("");

10 (edited by garvalf 2017-09-12 20:30:44)

Re: bintracker 0.1.1

yes, that's the problem with LTS, it's supported until april 2019, and they release latest packages for Firefox, Libreoffice, and all that sort of stuff, but for development packages you stay with the old ones. And they made also a stupid decision for the linux mint "KDE" version, you can't upgrade to latest version (18) because they said new KDE 5 version (plasma) is so much different that you have to install a new fresh version of the system, which is a complete PITA.

I've compiled bintracker with your modified line. And now it works on my main computer!! Great, I'll be able to play with it. Thanks a lot!

Re: bintracker 0.1.1

when I started with MDAL, I've started a few projects, made in betaphase. In them I put the SLIDESPD command. It seems it's not supported by bintracker, when loading an old file I get:

FATAL ERROR: In pattern "ptn1": Unknown command "SLIDESPD" found in A=f3, B=d2, MIXA=and, MIXB=and, PHA=0, PHB=4, PSCA1=none, PSCC=none, SLIDESPD=0, DMOD1=off, SPD=

it seems in bintracker it's called SLSPD. The same goes for DMOD1 which is called DMODA now.

After changing this my tunes just load fine smile

12 (edited by garvalf 2017-09-13 08:53:59)

Re: bintracker 0.1.1

I've worked a bit with bintracker. Very pleasant and quite intuitive to use. It reminds me somehow of 1tracker.
Text file format rocks! (I'll tell later why)

I've changed the colors in the settings.ini, now it looks so nice.
I've set the keyboard to FR. Now I have something odd. I won't open an issue because it's maybe a quick fix.

Alt+1...+5 is working fine for changing the octave. Alt+6 is decreasing the length of the song instead of choosing octave 6! Alt+8 is increasing the octave, as expected. Alt+7 does nothing. In english keyboard mode (I've changed my keyboard with setxkbmap us), it's similar, except that alt+6 is working as expected.

So as I said, I saved my file first, then made a new version with more data in it. Then I removed some rows with the alt+6 command. I didn't want to undo, so I just saved my file under a new name, and compared it with the first version with a diff tool to retried the infos from the deleted rows.

Really, text source rules! (something I like too in 1tracker)

For the deletion of some notes, I found it strange that "del" is shifting all values in the column up. Probably some trackers are doing this as well, but I think it's more commun to just delete the value with "del", and shift values up with "backspace" (like in 1tracker or milkytracker). But we can get used to it. Also the problem is sometimes the keyboard responds odd and I get two inputs instead of one. So instead of deleting 1 note I wanted to remove, and stay on the same place, it will delete the note and the next one not supposed to be removed.

For the selection of special commands, I didn't understand how to select the value until I read the manual. Well maybe I'm a bit dumb, but when I began to type, I got a selection list. I tried to select one item with the arrows, but it didn't work. I tried to click, it didn't work. I tried to type the first letter of the command, hoping it would cycle through all the item (on/off), didn't work either. Then I discovered we have to enter the first letters. It's that simple. But maybe using arrows or cycling with only one letter would make it simple for newcomers, just an idea (maybe using mouse it too overkill). After, I noticed for some commands, like up/down, just typing the first letter works so it's good when you're used to the tool smile

Now I'm working more on my tune!

13 (edited by garvalf 2017-09-13 08:50:30)

Re: bintracker 0.1.1

well, I have a new problem, and a new bug...

With the sequence list:

first, I made a pattern. And I wanted to make a variation on it, so I "cloned" the first pattern. But my cloned pattern name (blk1) has just replaced my original pattern (pattern00) in the sequence list, and I can't find a way to select the first pattern (pattern00) which as just disappeared. The arrows around the pattern name are supposed to cycle though pattern already in sequence, so I can't get my pattern00 back. (I solved this easyly by editing the text file of course)

The manual also says "Any patterns not used in the sequence will not be saved in your module file, and will be lost when you exit Bintracker or load another track.".

I find this very dangerous! Deflemask is doing the same and I've already lost some patterns because of this. Is there a reason you can't keep it in the mdal file? It wouldn't cost much space in the source file. I would find this more secure. Yet, when I've loaded my mdal file, all my cloned patterns, which are not used in the sequence, were still present in the file. So I don't understand this warning, maybe it's not implemented yet?

Now for the bug, with the FR keyboard, when I want to enter for example blk1, I type blk shift + 1, and instead I get blkampersand, same for eacute instead of 2 etc.

14 (edited by utz 2017-09-13 11:57:14)

Re: bintracker 0.1.1

Waaah, so many things big_smile Ok, I'll go through them one by one.

garvalf wrote:

I've set the keyboard to FR. Now I have something odd. I won't open an issue because it's maybe a quick fix.

Alt+1...+5 is working fine for changing the octave. Alt+6 is decreasing the length of the song instead of choosing octave 6! Alt+8 is increasing the octave, as expected. Alt+7 does nothing. In english keyboard mode (I've changed my keyboard with setxkbmap us), it's similar, except that alt+6 is working as expected.

Hmm, that's not good. Unfortunately it's not a quick fix, because it looks quite correct in source yikes So I will have to investigate this.
Edit: Ok, found the problem. Now, how to fix it is another question.
Edit2: Alt+6 should be fixed now. Alt+7 I can't reproduce on xkbmap US, is it still broken for you?

garvalf wrote:

For the deletion of some notes, I found it strange that "del" is shifting all values in the column up. Probably some trackers are doing this as well, but I think it's more commun to just delete the value with "del", and shift values up with "backspace" (like in 1tracker or milkytracker). But we can get used to it.

Good point, I'll consider it. There was some reason why I didn't do it like that, but the fact that I can't actually remember the reason means it was probably not a good enough reason in the first place...

garvalf wrote:

Also the problem is sometimes the keyboard responds odd and I get two inputs instead of one. So instead of deleting 1 note I wanted to remove, and stay on the same place, it will delete the note and the next one not supposed to be removed.

Jangler commited some code yesterday which should, in theory, fix this issue. Though it's quite likely the bug is still there. Let me know if this keeps popping up.

garvalf wrote:

For the selection of special commands, I didn't understand how to select the value until I read the manual. Well maybe I'm a bit dumb, but when I began to type, I got a selection list. I tried to select one item with the arrows, but it didn't work. I tried to click, it didn't work. I tried to type the first letter of the command, hoping it would cycle through all the item (on/off), didn't work either. Then I discovered we have to enter the first letters. It's that simple. But maybe using arrows or cycling with only one letter would make it simple for newcomers, just an idea (maybe using mouse it too overkill). After, I noticed for some commands, like up/down, just typing the first letter works so it's good when you're used to the tool smile

I agree, it's somewhat counter-intuitive at the moment. Arrow keys should be possible. Mouse support would be great, but very difficult to implement. Still, it should happen at some point.

garvalf wrote:

well, I have a new problem, and a new bug...

With the sequence list:

first, I made a pattern. And I wanted to make a variation on it, so I "cloned" the first pattern. But my cloned pattern name (blk1) has just replaced my original pattern (pattern00) in the sequence list, and I can't find a way to select the first pattern (pattern00) which as just disappeared. The arrows around the pattern name are supposed to cycle though pattern already in sequence, so I can't get my pattern00 back. (I solved this easyly by editing the text file of course)

This works the same way as the "special" commands. Just type some letter and you'll get the drop-down list.

garvalf wrote:

The manual also says "Any patterns not used in the sequence will not be saved in your module file, and will be lost when you exit Bintracker or load another track.".

I find this very dangerous! Deflemask is doing the same and I've already lost some patterns because of this. Is there a reason you can't keep it in the mdal file? It wouldn't cost much space in the source file. I would find this more secure. Yet, when I've loaded my mdal file, all my cloned patterns, which are not used in the sequence, were still present in the file. So I don't understand this warning, maybe it's not implemented yet?

Hmm, so maybe I didn't implement it like that after all? *head scratch* That'd be great, actually! I'll check if this is really "safe", and adjust the manual accordingly.

garvalf wrote:

Now for the bug, with the FR keyboard, when I want to enter for example blk1, I type blk shift + 1, and instead I get blkampersand, same for eacute instead of 2 etc.

You mean it actually lets you enter a literal &? Dafuq... I mean you're not supposed to use shift for the numbers, but also bintracker should actually not let you enter invalid strings like that.

15 (edited by garvalf 2017-09-14 14:02:41)

Re: bintracker 0.1.1

just for the record, I'm making a song in adlib tracker, and discovered the del key is working like in bintracker. I'm not a big fan of this, but it can make sense. Do as you wish, or make a survey (or an option in the config file)! wink

I've tried my binary (which is working) on my main computer. There are still the flashes. I think it's because of the graphical board, it's ATI and sometimes I have odd things on this computer.

alt+6 is working now. alt+7 does nothing, either in French, EN or DE (with the associated setxkbmap). I'm wondering if it's not the stupid windows manager (kde) which is doing this. Yeah, I've checked it, they have a shortcut (well hidden), with alt+`. But ` should be with altgr, not just alt. Anyway, i've removed it and it works now. On the Mate desktop, there is also another shortcut associated to this key combination!

Jangler commited some code yesterday which should, in theory, fix this issue. Though it's quite likely the bug is still there. Let me know if this keeps popping up.

I've only tested quickly, i looks ok so far but I should check more and better.

I agree, it's somewhat counter-intuitive at the moment. Arrow keys should be possible. Mouse support would be great, but very difficult to implement. Still, it should happen at some point.

yeah, with arrows it would be great. Mouse is not mandatory, as we often use keyboard more on a tracker.

This works the same way as the "special" commands. Just type some letter and you'll get the drop-down list.

ah, yes, thanks.

You mean it actually lets you enter a literal &? Dafuq

yes, with or without shift it's the same: I get the litteral replacement for the symbols, "minus", "amperstand" etc. It's something from allegro I think. It's only on French keyboard.

16

Re: bintracker 0.1.1

I've implemented a fix for the "symbols instead of numbers" problem. If you have some time to test, please let me know if it works!

17 (edited by garvalf 2017-09-16 21:17:16)

Re: bintracker 0.1.1

I've compiled the latest version from github. Now when I enter the field for changing the name, if I type something (number or letter), it just hangs the window, I cannot exit the field. I can still navigate in the menus, but can't exit from there either.

18

Re: bintracker 0.1.1

grrr damnit!
Ok, could you please add the following in line 992 of status.cpp

cout << al_keycode_to_name(keyEv.keyboard.keycode) << endl;

then run bintracker from console, try to enter some letters and numbers, and tell me the output?

Re: bintracker 0.1.1

utz wrote:

grrr damnit!
Ok, could you please add the following in line 992 of status.cpp

cout << al_keycode_to_name(keyEv.keyboard.keycode) << endl;

then run bintracker from console, try to enter some letters and numbers, and tell me the output?

this file only has 766 lines!

20

Re: bintracker 0.1.1

Whoops... I mean input.cpp yikes

Re: bintracker 0.1.1

I've done it, but unfortunately, there is no output!

22

Re: bintracker 0.1.1

Impossibru! Ok, I'll think about something new tomorrow. Thanks for your help, in any case wink

Re: bintracker 0.1.1

hmm, maybe it's something else, because it still hangs if I change language in settings.ini or if I comment your modified code. Maybe it's a problem on this 3rd computer. I'll test it on tuesday on the others. I made the compilation via ssh, using a remote computer.

I've also tried to compile bintracker on this 3rd computer, but I have the problem with audiobuffer. I've changed the part according to your simplified code, but I still get this:

g++ -c -O2 -std=c++11 -ffast-math  -o sound_emul/sound_emul.o sound_emul/sound_emul.cpp 
sound_emul/sound_emul.cpp: In member function ‘void Sound_Emul::update_audio()’:
sound_emul/sound_emul.cpp:86:13: error: ‘audiobuffer’ was not declared in this scope
             audiobuffer.str("");
             ^
make: *** [sound_emul/sound_emul.o] Erreur 1

I don't understand, it's the same allegro 5.2.2 lib on the 2 computers sad

24

Re: bintracker 0.1.1

It should be "audioBuffer", with a camelcase wink

Re: bintracker 0.1.1

ah sh**, I've double checked, I've even compared with the code on my other computer, and didn't notice it was because of this. Thanks. But it's the same, it hangs. Now I must just test with my other computers which were working before.

I have also an other bug, even from the beginning, sometimes the screen is mixed up when I start bintracker:

https://lut.im/LF2ZDHrHSL/9S53pJWapik75sD7.png

when I pass the mouse over a mixed up icon, it displays just below the menu, it's just shifted. It happens at random.