I tried the interpolation thingy with the chorus but it introduced a bit different type of distortion... I'm not that hip with signal processing math stuff so I don't really know which way to approach the problem.
My uneducated guess is that there are some clicks there because of not interpolating the samples (i.e. the chorus wants a sample at 1005.75 in the buffer but it is rounded to 1005 and not interpolated from position between 1005 and 1006) and that the modulation might first take a sample at 1005, then at the next frame it will take sample at 1090, leaving lots of skipped samples between those two positions. With a very narrow pulse width a whole pulse might get lost between the two sampling positions.
One thing that might solve it but is not the optimal solution is to oversample the chorus just like the oscillators are oversampled. That should solve the two types of distortion I know are there. Just move the chorus modulation position at 1/16th of the speed it moves now and do that 16 times per one output sample and divide by 16. That means there always will be some distortion but there should be a sweet spot where it's quiet enough and still not too slow to process.
i went to test this theme i'm working on but trying to load it causes klystrack to stop working. it might have had to do with me making the theme in a folder in my downloads folder instead of in C:/temp
The theme builder might be lagging and missing some file (it generally should load missing files from the Default theme). If you open stderr.txt in the same directory as klystrack.exe you can probably see what goes wrong.
n00bstar, this hangup Doesn't Happen On My Machine(tm). I wonder, do you have MIDI devices?
Aye.. that's basically it, an amplitude click when the panning moves. If you're using all that fancy sixty four bit math now, I'm guessing there's a way to make it more precise. If not, maybe fade in/out the steps?
Yeah, interpolation is the key!
whats new with themes for klystrack? is anybody working on any? anyone willing to share some if they've made one?
I'm secretly wishing a certain someone would finish a certain protracker theme...
It's most likely that the chorus signal separation (you know how chorus works, it multiplies the input) is changed in steps that are too big and thus are audible as clicks. My guess is that the sine table used to modulate the chorus is not accurate enough so there are discrete steps in the sine wave. Will take a look at this.
I'll fix that panning issue today. I guess triggering an instrument should always play in the center unless it has a panning command.
trough wrote:
SO, I guess I will have to try again learning from my C programming book this summer. I would love to be able to help out with this excellent project on the OS X side! Until then I will have to deal with running the nightly builds in Wine. For some reason all of the programs I run in Wine have significantly worse audio quality than they do in real MS Windows.
I think there are some issues currently with OSX (probably related to 64-bitness) so the port is lagging behind.
Have you tried running Virtualbox and Linux? At least on my Windows it's very usable and the sound quality should be as good as it is non-virtualized. There is a klystrack package you can just run and it installs automatically.
What bugs me though is that I had to use 64-bit maths so it won't overflow (therefore distort). Using 64 bits to achieve fake 8-bit sounds, that puts me like 56 bits in debt (plus interest).
Ok now I noticed it. It happens in the oscillator. I fixed the distortion in the final mixing phase, i.e. when you have many channels outputting at max vol (well, it of course still distorts if you have a lot of channels but it's at 25% vol like before).
I did fix the distortion, just by making waves quieter. I had some issues with my build system that caused the compiled klystrack.exe simply to disappear (thanks Avast) so the nightly I had that fixed in was not uploaded. New (fort)nightly tonight.
I do have a 130XE at the moment, the XEGS was sold away. I have hardly touched the XE after I got it years ago. I only coded a little sound toy in BASIC that uses the touch tablet to control sounds. Sounded awful.