Monday, July 14, 2008

About my YM3812 emu ...

well, I've read a lot of stuff about the yamaha chips, and also some patents.
Some patents also contained some schematics ... and while thinking about them, I solved
a small problem with some sounds in my emu.
There has been many stuff about the Hunting Phenomena and how they fixed it (using a 32 step shift register in an averaging circuit) ... this should work like a low-pass. (They seem to use this shift-register-averaging circuit on everything: operator outputs, feedback, phase modulation input)
So I've implemented another (right now integer) leaky-integrator inside the PM path and voila: sounds just like my AWE64^^

Sunday, July 13, 2008

Ok, system runs stable, Win and SuSE are configured again. No data loss.

I've done an emulation of the YM3812 during the last days (melody mode only). This will be used in my Dune2 remake, to play the original .ADL sound files directly from the .PAK archives. (The .ADL is also ready, and I play those old Dune2 ingame tunes over and over again :) (linux, portaudio (and jack))

Some infos about my emulation:
I'm not doing bit-correct YM3812 emulation, but sound-alike emulation. I'm using a 21 bit phase counter, 16 bits fine sine-tables, but YM3812 volume calculation (well, I don't use this strange floating-point implementation, but 12 bits fixed point).
My EG implementation also differs from the one seen in fmopl.c. I don't use those strange step-tables, but a 24 bit EG counter and simple integer-step values -> (4+(0 to 3)) << (rate - 1).
Another major difference to the fmopl.c YM emu is: My emu always runs at the real chip timings. Sound output is done by 'sampling' the emu's output. (In fact: a ring-buffer and linear interpolation). So my emulation always sounds identical, no matter what samplerate you use (fmopl.c sounds different (and strange) depending on the samplerate). Well, a(n) (dis-)advantage of this method is: The cpu consumption doesn't change with samplerate.^^
Finally a 12.7kHz lossy-integrator 24dB low-pass is applied.
I've checked the output of my emu against the recordings of the Dune2 music, done using my old Soundblaster AWE64 Gold: Output is close enough to the original.
(Here's the source, if you want to take a look (still under development) neo_ym3812.cpp neo_ym3812.h )
And now I've got an idea: I'll write a YM3812 VSTi ... a simple one channel version, polyphonic. (My full nine channel emulation uses about 2% to 3% cpu on my 3.2GHz P4, so the VSTi will also have good performance.)
It will contain no anti-aliasing stuff, just pure aliasing-like-hell, retro PM sound.

But first, the final version of CetoneSynth2 will be relased ... and maybe a GUI for CetoneOrg ... but I've still no idea how it should look.

Stay tuned^^

Tuesday, June 17, 2008

Another BSOD ... those Corsair RAMs are strange^^

Well, SPD info was incorrect, BIOS reported a CAS delay of 2.5, my RAMs have 2.0 ... changed that.


I hope that my system runs stable now^^

Sunday, June 15, 2008

Well, system is up and working.

-> memtest revealed a bad RAM stick ...

Below a picture of the cause-of-all-evil:

Below: Neopc beta

I still have a lot of work todo ... but everything's working.

Two strange things: WinXP installation hehaved different (again) and I got two BAD_POOL_CALLER bluescreens ... well, I raised the DIMM voltage ... seemed to help.

Friday, June 13, 2008

Another update:

I tried to recover my HDDs using Knoppix 3.4 & 3.7 no success, Ubuntu 7.04 also.

Then I tried to install a rescue-winxp on an IDE HDD ... no success (maybe all my old IDEs are really out of order, dunno)

Now, what worked:
- reseted all BIOS settings to their fail-safe defaults
- disabled hyper threading
- removed all RAMs, inserted a new one
- disabled my on-chip SATA , enabled on-board SATA
- low-level-format of a SATA HDD which seemed to have errors last time -> now worked
- installed a rescue-xp on this SATA drive

Well, currently I'm copying about 150GiB date to my wife's pc ... looks good.

After that I will low-level format all my SATAs and reinstall everything ... WinXP and openSUSE

... this will take a while^^

linux also crashes

well, two things could cause this: general hardware failure, or just crashed sectors on the hdd ... dunno ...

... will go to sleep now

tomorrow i'll check the bios, reset all config values, boot from a live-cd and check again

_ D A M N _


Thursday, June 12, 2008

Operation NEOPC Rescue update:

  • C# and C++ folders are currently transfered to my wife's pc ... looks good
... damn

I've killed windoze today ... and also messed up my HDD partitions ... 320GiB scrambled NTFS ... at least windoze doesn't like those ...

... luckily my main OS is openSuse right now^^

yet, damn

I will try to recover as much as possible, using my wife's windoze machine (_now_ the 250GiB IDE HDD which I gave her can do its best)

Nevertheless it will take a while until I am able to boot windoze again ... and some more days to re-install all the software.


Hmm ... just the right time, to redesign the partitions and make a clean win/nix install.

PS: I've noticed that I've forgotten to change the CS2 VSTi version number inside the .dll and on the GUI.
Still it _is_ v0.7.
So, a few emails in my inbox (and my wife) made me do a minor (or major) update of CetoneOrg and CetoneSynth2.

Changes in CetoneOrg (12th June 2008):
  • Fixed MSVCRT80.DLL issues (should now run on every Windoze machine)
Changes in CetoneSynth2 v0.7:
  • Fixed MSVCRT80.DLL issues (should now run on every Windoze machine)
  • Added VST parameters for MIDI controllers (Ableton Live 7 now shows 46 automation parameters)

Still more to come ...

Good night and good luck^^