Re: 1tracker v0.31

In meanwhile, another fresh engine called Squat has been added.

website - 1bit music - other music - youtube - bandcamp - patreon (latest news there)

52 (edited by garvalf 2017-06-20 15:33:56)

Re: 1tracker v0.31

I've tested again with g++-5 instead, and it's the same error.

Btw during compilation, I see I get quite many warnings, like this:

angelscript/angelscript_jit/as_jit.cpp: In member function ‘void SystemCall::call_64conv(asSSystemFunctionInterface*, asCScriptFunction*, assembler::Register*, ObjectPosition)’:
angelscript/angelscript_jit/as_jit.cpp:3906:35: warning: offsetof within non-standard-layout type ‘asCContext’ is undefined [-Winvalid-offsetof]
      eax = as<int>(*arg0+offsetof(asCContext,m_status));

I don't know if it's related or not.

Which g++ version are you using Utz?

Re: 1tracker v0.31

Both AngelScript and GameMusicEmu giving me tons of warnings under MSVC 2008, 2010, 2015, and gcc. Seems it is just the way they has been made. So I guess that shouldn't be the issue.

website - 1bit music - other music - youtube - bandcamp - patreon (latest news there)

Re: 1tracker v0.31

I'm wondering if it's not a problem related to the architecture. I'm using a 64 bit system, maybe it's the cause. I'll try to compile this on a i686 system.

Re: 1tracker v0.31

I've tested on a 3rd computer with 64 bit system, same problem.

On Linux mint 17, 32 bit version, with G++ version 4.8, it compiles well (still with warnings), and I can launch the binary, which work as well, so it's probably a problem with 64 bit. Shiru, have you tried compiling it for windows 64 bit?

The problem is the 32 bit system is from a virtual machine, and if I copy the binary to my 64 bit system, it can't launch because of some 3d drivers which I don't have on my system (and I don't think you can have both).

I see also in the code a few files related to ym2612, AY and such, do you intend to support more chips?

Re: 1tracker v0.31

I have 64-bit PC with Win7, but always compiled into 32 bit, because of compatibility issues - with Windows 32 bit programs runs fine at 64 bit, but not vice versa; performance gain for this program is neglible anyways.

The tracker called 1tracker because it has potential to support lots of platforms sharing the same front end and user interface, which in turn can be remade separately without need to adapt older engines. So that's not a question of 1tracker supporting other chips - it supports everything that GameMusicEmu supports out of the box. It is up to an engine to support some chip. I.e. you can make an engine for AY-3-8910 music, for SN76489 music, etc. At the moment I don't have plans to make engines for other platforms, as I got them all covered with other software, unlike all our countless beeper engines. Maybe sometime later.

website - 1bit music - other music - youtube - bandcamp - patreon (latest news there)

57

Re: 1tracker v0.31

Garvalf, were you able to solve the issue? If not, you could try forcing gcc into 32-bit mode by adding -m32 to CXXFLAGS and LDFLAGS in the makefile.

Re: 1tracker v0.31

oh yes, sorry, I should have reported my tests. I haven't tried 1tracker as much as I wanted. I managed to cross-compile it for 32 bit from my 64bit computer. I still had a problem for launching the binary, but it was a graphical card issue on my system. Several days later I tried the binary on another computer and it worked (as 32 bit on 64 bit system)! I eventually wanted to report it here meanwhile.

Re: 1tracker v0.31

It's strange because on some computers (linux based), 1tracker can work ok, then suddenly it stops responding, for example if I focus on a text editor (no other hungry applications, like firefox or a music tool are running). Then, after 10 seconds, all the notes are coming together. Then it will freeze for some seconds etc. I don't have this responsiveness problem with other applications. The "top" command tells me 1tracker is using 30 % of my CPU, which is quite much, but not that much (firefox can go above that..).
On another computer (same OS, but different hardware), it works fine. There the CPU is not more than 4%, even when playing a tune.

Anyway, I like how 1tracker adapts to the sound engines. I've looked quickly to one engine source code, and even if I don't understand much, it seems to be very cleverly done. Well done and thank you, I believe it must be a huge amount of work to program this!

60 (edited by Shiru 2017-07-19 06:59:20)

Re: 1tracker v0.31

A new version is up. I reworked engine selection, now it caches all engines info into files, because number of the engines got large enough to make scanning time kind of tiresome. A few minor fixes as well. Added Octode 2k15, PWM, and 2k16 flavours, so all Octodes supported now. Also added a very simple SN76489 engine (virtual, VGM export only, no player code at all).

website - 1bit music - other music - youtube - bandcamp - patreon (latest news there)

Re: 1tracker v0.31

Thanks Shiru

Really pleased you've added Octode 2k15 and especially Octode 2k16. That's the next engine I intend to have a try writing for smile smile

62

Re: 1tracker v0.31

Excellent, thanks a lot! Good idea about caching the engine info, it was indeed getting super slow (several seconds on my T60, in fact).

63 (edited by garvalf 2017-07-18 19:46:16)

Re: 1tracker v0.31

That's cool.
And thanks for adding the SN76489 engine. It's possible to use vgmplay (http://www.mjsstuf.x10host.com/pages/vg … gmPlay.htm) to convert the exported vgm to a binary which can be played on real hardware, such as the Megadrive (I've made such an export but I haven't tried on my megadrive yet, but there is no reason why it wouldn't work). See attachment and the quick test, the .bin is the binary for megadrive (works with the dgen emulator).

Post's attachments

1tracker_SN76489.zip 5.5 kb, 1 downloads since 2017-07-18 

You don't have the permssions to download the attachments of this post.

64

Re: 1tracker v0.31

You know what I'd really love to see in 1tracker? The Atari 8-bit SoftSynth engine. Though that's most likely a ton of work - I don't think it has ever been reverse-engineered.

Re: 1tracker v0.31

In general we can have Atari 8-bit and C64 stuff in 1tracker, as Game Music Emu supports both SAP and SID. For better convinience we'd need to make a 6502 assembler in AngelScript, to be able to use source assembly code instead of precompiled binaries, but at first it can be done with just binary (used to be like that before adding Z80Ass).

In particular for this synth, yes, first step would be to reverse it into a compilable 6502 source and data format description. I'm also not sure, maybe it would be easier to just make a new one from scratch, unless it has some unique hard-to-replicate features.

We can have fun and do an AY-3-8910 alternative, too. People were asking if it possible to do something like that for years.

website - 1bit music - other music - youtube - bandcamp - patreon (latest news there)

66

Re: 1tracker v0.31

Agreed, it's probably easier to make a new one from scratch.

Shiru wrote:

We can have fun and do an AY-3-8910 alternative, too. People were asking if it possible to do something like that for years.

Hmm, shouldn't be that difficult to implement on any soundchip, easier than sample/MOD playback imo. I wonder why nobody has done it yet. Seems like Atari SoftSynth is indeed the only program like this on 8-bit machines, and it's from f*cking 1985. The only other one I know is AHX, and that was on Amiga of course. Also Dragon 32 and maybe Thomson TO had something like it on the 6-bit DAC, though far less advanced.

Re: 1tracker v0.31

AY-3-8910 would be cool, indeed, even if there are already good alternatives (Vortex Tracker for example). What is great is we can change engines so it makes trying new sounds easier.

I've almost finished a complete project on 1tracker (a waltz using Utz's pytha engine), and I must say 1tracker made it really easy to create the song. It's great to write the name of the parts we need, since there is no song structure like in conventional trackers. It also helps to prevent to loop too much some parts, because you have to copy them by hand!

Online help is simple, and useful.

I only miss the cursor following song during replay, but we can live without it.

The interface looks great.

Re: 1tracker v0.31

Vortex Tracker II actually needs an alternative (there is few already, but not very popular). The reason is that VT2 basically a Pro Tracker 3 (Zx Spectrum's) clone, limited by its original, slightly expanded format. While it is really good for music in general, there were even better formats on ZX (ASC Sound Master, for one), and there is also specific requirements for music in games that needs it to be as compact as possible, but PT3 format isn't much effective in this regard (a song takes 5K easily). There is no need to replace VTII, but providing alternative to handle specific cases would be nice.

Cursor following song while it is playing would be pretty convinient, but unfortunately it is pretty tricky (not impossible) to implement it due to the multi-engine concept itself. Tracker would need to somehow get actual playing position, but that needs to be reported by each engine, and not all engines actually use rows and speed concept internally (some just store delays between events). Another idea is to just move cursor approximately, depending on play time, but this needs very precise speed-to-time translation, which is again very tricky, because beeper engines tend to have major tempo fluctuations. So yes, at the time being we have to live without it.

website - 1bit music - other music - youtube - bandcamp - patreon (latest news there)

69

Re: 1tracker v0.31

In theory, what would be the options for play position tracking (aside from approximation via playtime, which is not viable I think)? Is there a possible to have GME do a callback at given breakpoints?

Re: 1tracker v0.31

No callbacks there, that's just a basic player library, after all. The only way to get actual play position is to hook up to the emulated RAM in GME, which likely will require to customize its code. Engine scripts then could have a special callback that would watch for specific RAM addresses and translate them into position to display, in a way specific for each engine and engine script.

website - 1bit music - other music - youtube - bandcamp - patreon (latest news there)

Re: 1tracker v0.31

Added wtbeep engine, added loop support to Pytha. No real version update, just these two engines and 0.28 WIP build (don't remember if I changed anything important).

website - 1bit music - other music - youtube - bandcamp - patreon (latest news there)

Re: 1tracker v0.31

cool, thank you Shiru!

Re: 1tracker v0.31

Actually, just thought to promote 0.28 to release. With 28 engines!

It got Quiet mode (for slower engines, you can enter notes without making sounds and related slowdowns), minor fixes, and more engines. Besides wtbeep, there is AntEater, povver, and quattropic now.

If you downloaded WIP build, redownload it, there were changes, including fixes in wtbeep.

website - 1bit music - other music - youtube - bandcamp - patreon (latest news there)

Re: 1tracker v0.31

Added xtone too. Because with beeper engines we always have just one less than enough.

website - 1bit music - other music - youtube - bandcamp - patreon (latest news there)

Re: 1tracker v0.31

New year, new update, v0.29.

Added Squeeker, Squeeker Plus, Vibra, nanobeep, Lyndon Sharp's engine from Super Dragon (Wham with sampled drums), Music Studio, ZX-3.

website - 1bit music - other music - youtube - bandcamp - patreon (latest news there)