You might be onto something. There are some places where something might need one extra frame for a GUI element to settle (you can notice this behavior by the scroll bars) but I don't think that is anything more than a visual glitch.

So, basically you want both a "Save" and a "Save as..." operation with the former saving (overwriting) the song silently but would also create a backup? That would work. The backups accumulate right now too, with a simple timestamp appended.

Also, do you by any chance have a song that will crash when you save it (and for some reason didn't crash earlier so that file can exist)?

Edit: Nice! I will add link to that forum on the project page in case people want to post there.

Sorry couldn't hear you because of my rumbling stomach thanks to not having any money for food because of making free software and because of the loudly rustling Bandcamp dollars (Canadian).

https://dl.dropboxusercontent.com/u/119 … -win32.zip

Anyways I fixed an issue related to the new save routine that might cause trouble especially if saving wavetable items. Did the crashing when saving start recently? I don't understand the backup thing: what else is there to backup other than files that would be overwritten by the new file?

"N00bstar - the living proof of how sometimes not even all that sweet, sweet Bandcamp money can make a man happy." (c) 2015

Thanks. smile Can you give a more specific situation when the file browser fails? It seems I am getting swamped in bugs that simply don't happen here.

Hit 1 in the note column to enter a note off. Same goes for the legato/slide/vibrato columns. You can also use a command to release a note (F1 shows a list of all commands).

There's an option for that also, no need to brute force it. The preferences menu has it and you can also hardcode it if you like within the klystrack code (action.c:583).

n00bstar: Can you reproduce that? Even just the offending config file would be nice. Also, I couldn't reproduce the black screen problem at home which makes me suspect it has something to do with the graphics drivers (it happens on this older laptop at work which has a shitty GPU).

mk: Ha! It is *that* bug. The sequence editor (and most of the pattern editor) is not visible due to a bug in the gfx driver. You need to disable rendering to texture, SDL has the bounding rectangle upside down for some reason when rendering to an OpenGL texture. It works correctly if rendering directly on the screen (the only thing you'll lose is some chunky pixels in a few places if you use the larger pixel sizes). I saw a fix posted for that bug but I don't know when they will update the library itself.

Nice! I wonder what causes that pattern insert bug. Could you please try to debug void add_sequence(int channel, int position, int pattern, int offset) (event.c:692), perhaps it doesn't receive parameters correctly. That is, add something like

debug("add_sequence(%d, %d, %d)", channel, position, offset)

in the very beginning of the function and see if the parameters make sense.

Managed to reproduce it. Thanks for that, should help.

n00bstar wrote:

Hmm yeah there's definitely a problem in the disk access routine. I'd say about half the crashes I get are right before/after or during a save. The addition of a disk access call when you check the song statistics is perhaps not the way to go either. For example, if you click on song statistics and select 'no' to the overwrite box, it crashes just about 100% of the time.

The other half of the crashes I get are related to multitasking and mini/maximizing the window. A lot of times the screen goes entirely black if you alt-tab  in and out of the application. The only way to get the graphics back is to minimize and maximize the window a few times....which often makes it crash rather than fix the problem.

Fucking hell. Windows restarted and I thought I managed to click "submit reply" in time. DO THEY EVEN USE THEIR OWN OPERATING SYSTEMS.

Anyways, I noticed there's a bug in the file selector and it keeps looping in the overwrite prompt if you click "no". So you are forced to overwrite (good thing there's that backup now EH EH?) There's definitely something weird in there. I did change the way songs are saved so there might also be something weird happening. Need debug magick to see if the memory allocation is broken. Of course it again works perfectly on all the computers I have access to.

Could you try checking if disabling "render to texture" (prefs menu) helps with the resize crashes? I remember you use quite a large window so that might cause some trouble because the texture needs to be quite large too (and maybe it runs out of memory).

Also, yoyz2k, n00bstar is an asshole but so am I so it's a match made in heaven. Has something to do with the latitudes.

(I do agree users are generally a bit too entitled even for free software, or expect software to do more than they paid for. Funnily enough, the less they pay, the more they expect.)

Here you go: https://dl.dropboxusercontent.com/u/119 … -win32.zip

It saves the backup with the current date and time. You can also disable the backups in the prefs menu. Auto save is a bit trickier but it will be there one day.

Can I use that quote as a reference for the new homepage?

Just posted this: https://github.com/kometbomb/klystron/r … g/1.6-beta

Klystrack moved to GitHub (Google shuts down Google Code this year), the new home page is this: http://kometbomb.github.io/klystrack/ (it's just a placeholder for now, I'll move the wiki there soon and add a binary download section as on the old page)

New stuff in this build: Rob Hubbard SID import (not perfect at all), added that FM envelope fix, fixed not all wavetable items being saved when stripping unused data, About -> Song statistics shows some information about the song etc.

Btw, n00bs. Do you find the envelope timings useful? I compared the values to SID envelope timings and it seems SID has a lot more variety in the fast end of the scale. With a SID you can get 0.5 ms, 1 ms, 3 ms, 5 ms, 10 ms and so on while in klystrack it's like 0 ms, 1 ms, 5 ms, 13 ms, 30 ms ... attack/decay times.

I was thinking maybe I should adjust the values so you get much sharper attacks and decays. I am not sure but I have a feeling a lot of SID tunes get their sharp sound from that alone.

Edit: Notes on the tutorial (which is great once again!):

Absolute arpeggio note is useful if you want to have e.g. a combined drum and bass instrument with the drum part always playing at the same frequency and then the bass part of course following the played note. This might fall in the "was useful in the 80s, not so much anymore" category.

Using 7Cxx (xx = tick where the release happens, just noticed the help box doesn't give any indication of this param) to release the note is useful if you want to release the note on the same row as you trigger it. I think I put it there for the Cave Story format importer to support notes that are half a row long. But of course if you are using quite fast speeds it's not that terrible to actually put the release on the next row. It's kinda the envelope counterpart of ECx.

Ah, the starting point. Well, that I can add.

I can't think of any situation where just adjusting the attack level would create a shape different to what you can create with the simple envelope. if you want to attenuate the peak, just adjust the volume and adjust the sustain level louder to compensate. Like this:

I do of course see the benefits of an FT2 style envelope where you basically draw the envelope shape and set the sustain point.

Re: .hvl. Perhaps, though of course the import usually works correctly for only the pattern data.