I'm doing some code profiling and it seems the font routines still take most of the CPU. A question: what are the window dimensions you people are using?

Ah ok I didn't even remember 00xy works from the pattern! I'll add something to change the wavetable item in use.

I think after I added the FM the synth has been doing something much more expensive than should be (updating the modulator needed some changes in the common mixing etc. routines), it does use more CPU here as well but not to the point of stuttering.

mix_buffer = 2048

Ok I am back.

Can you check how much CPU does it use when it's choppy/skips? I have only tested on my Ubuntu Virtualbox setup (works as usual but I think I have quite a long mix_buffer setting in there) so there might be all sorts of differences. The GUI is really slow in general, at some point it used resources something like ten times the actual synth uses.

And hello to you also, n00bstar. I think I fixed that arpeggio thing, it might not be in the latest windows nightly. You can of course reset the arpeggio with 1000. Bxx works so that if you want to select a waveform you need to OR the bits for the waveforms, e.g. pulse would be B02 but pulse mixed with triangle (B04) would be 2 OR 4 = B06. If you just enter random Bxx values the description in the status bar will read something like (LP) which is LFSR (pokey) mixed with pulse or (NP) which is noise + pulse.

Sort of! I'm on my vacation and the weather is not too good. smile

Yes.

Thanks. Another way you can thank me is by creating awesome music! smile

Slide to note: the idea is that you first need a note playing. If you then enter another note after the first note and set the (S)LIDE flag for that new note, it will slide with the speed that is specified by the instrument SLIDE param. You also need to set the (L)EGATO flag so that the instrument doesn't retrigger. If you use only legato, then there will be an instant "slide" to the new note. Slide without legato can of course be useful as well.

Finally: https://dl.dropboxusercontent.com/u/119 … 1_i386.deb

Did not check if it actually outputs audio but it should work.

E: Fuck, can't read.

The latest Windows nightly is a few pages back, the Dropbox link (Google stopped hosting project files). I haven't had much time or will to work on this for a few months (yes, I do feel terribly guilty about it so no need to say anything).

Anyways, I'll compile the .deb later today.

New enough to use = anything after about 1.4.0, meaning you can open the songs in later versions. Some very early versions will not save the file so that it can be opened in the latest versions.

Unless you want to play with the (experimental) FM feature, then the latest Linux .deb is "new enough". smile There could also be some little fixes that are not in the .deb so if you have any trouble, then do compile the latest.

\o/

I will post some kind of precompiled framework that eats songs and spits out some kind of standard executable. Should make last minute entries easier.

Ah ok the lib is not up to date. I have to go spend my money at the Record Store Day and after that I shall upload the lib it (before midnight for sure). Probably before noon (in three hours).

Edit: Do you need some specific compile options like for size, no stereo etc.?

Edit II: Here's a quick build of the static lib (I assume this is a executable music entry and you don't probably want DLL's for that). I.e. link in gcc with "-lksndstatic" and also link to winmm, msvcrt, kernel32 and user32.  I compiled for smallest size and of course with no SDL dependencies. Let me know if this doesn't work.

https://dl.dropboxusercontent.com/u/1190319/libksnd.zip

Well, this of course allows for more complex arpeggios. E.g. you can have a major arp that goes 0-4-7-12-16-19 etc. (Tim Follin style multi octave arpeggios!). That would work something like this:

0000
00F0
00F1
110C -- 12 semitones up (join this command with SPACE)
0000 -- this is now 0 + 12 semitones
00F0 -- EXT0 + 12 semitones 
00F1 -- EXT1 + 12 semitones 
000C -- 12 + 12 semitones
00F1 -- we now start go to back down
00F0
0000
120C -- back to the original octave (join this also)
00F1
00F0
FF00 -- loop

If you mean why it's 10xy and not 00xy in the pattern... well I guess I decided to leave it as it is since there are other differences from the "standard" tracker commands.

I assume you tried to use the 00xx command like 0xy would work in pretty much all other trackers. The 00xx command is to be used in instrument programs only:

You need to make the instrument program use the arp notes you set with 10xy. Use the magic arpeggio command 00F0 to use the first (x) note and 00F1 to use the second note (y). These are called external arpeggio notes and in the instrument program they show as EXT0 and EXT1.

That is, in pattern you have 1047 (major chord), and in the instrument program you have 0000, 00F0 and 00F1 - followed by the jump instruction FF00. The result is the "standard" tritone arp cycling from triggered note (arp note 0), then to EXT0 (4) and then to EXT1 (7).

You also only to use the 10xy command need when you change the chord, you do not need that for every row as you do in most other trackers.

Win98 is too old, XP required. The very latest builds don't support Pentium II anymore but it should be enough at least for a simple song. The GUI is very heavy for how simple it actually is so you probably need to keep the window as small as possible.

The first digit of MULT is the carrier mult.