VOGONS


First post, by DanDare

User metadata
Rank Newbie
Rank
Newbie

I work on Kurzweil K2000 emulator, now it is on very alpha stage:

[!] TMP68301 Emulated not perfectly - timers, interrupt arbitration, serial ports
implemented with some black magic, but bulit-in K2000 sequencer runs without
time gliches during recording or playback modes.


[+] CALVIN: Address pointers, samples looping, RAM mapping, noise channel, interpolation - almost done,
however, I can't see anymore undiscovered IO accesing to it's registers (except
in initialization phase), so it works, maybe not so neat

[!] HOBBES: The hidden place, For now only envelope and panning control are completly implemented
Envelope and pan values for each voice has calculated by 68301 in real time.
Some (many of them) DSP Fuctions, works but quite roughly - I have not reference sounding
hardware, only follow by 'Kurzweil Muzician guide' handbook. Initialy I suggest, that each
HOBBES (Machine has 2 HOBBES) individualy controls 2 of 4 channels, but actualy,
they share the work, and connected between each other by pipeline bus:
CALVIN===>HOBBES1===>HOBBES2===>DAC. For example, writing to 0xA register
of first HOBBES changes an envelope, but writing to the same address of second changes
filter parameters. Another question, how to find flawless method for DSP datapath
selection. K2000 have 31 different algothithms (ways how signal will be pass beetween
DSP 'blocks'). but HOBBES haven't (exactly ?) dedicaded registers for swiching thees modes,
by other side some combinations of registers values is determinated whith concrete mode

Hobbes1 VOICEn+4h, Hobbes1 VOICEn+20h, Hobbes2 VOICEn+4h, Hobbes2 VOICEn+20h, used for mode selection

For Example Hobbes1 VOICEn+4h Register (values for ALG1),
╔════════════════════╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╗
║ MODE NAME │ 15│ 14│ 13│ 12│ 11│ 10│ 9 │ 8 │ 7 │ 6 │ 5 │ 4 │ 3 │ 2 │ 1 │ 0 ║
║ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ║
╟────────────────────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───║
║ NONE │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 1 │ D │ C │ 1 │ B │ A │ 0 │ 0 ║
║ HI FRQ STIMULATOR │ 0 │ 1 │ 1 │ 1 │ 1 │ 1 │ 0 │ 0 │ 1 │ D │ C │ 1 │ B │ A │ 0 │ 0 ║
║ PARAMETRIC EQ │ 0 │ 1 │ 1 │ 0 │ 0 │ 1 │ 0 │ 0 │ 1 │ D │ C │ 1 │ B │ A │ 0 │ 0 ║
║ STEEP RESONANT BASS│ 0 │ 1 │ 1 │ 0 │ 0 │ 1 │ 0 │ 0 │ 1 │ D │ C │ 1 │ B │ A │ 0 │ 0 ║
║ 4P LOPASS W SEP │ 0 │ 1 │ 0 │ 0 │ 0 │ 1 │ 0 │ 0 │ 1 │ D │ C │ 1 │ B │ A │ 0 │ 0 ║
║ 4P HIPASS W SEP │ 0 │ 1 │ 0 │ 0 │ 0 │ 1 │ 0 │ 0 │ 1 │ D │ C │ 1 │ B │ A │ 0 │ 0 ║
║ TWIN PEAKS BANDPASS│ 0 │ 0 │ 0 │ 0 │ 1 │ 1 │ 0 │ 0 │ 1 │ D │ C │ 1 │ B │ A │ 0 │ 0 ║
║ DOUBLE NOTCH W SEP │ 0 │ 0 │ 0 │ 0 │ 1 │ 1 │ 0 │ 0 │ 1 │ D │ C │ 1 │ B │ A │ 0 │ 0 ║
╚════════════════════════════════════════════════════════════════════╧═══╧═══╧═══╧═══╝

I have'nt any idea what bits AB and CD does, they rolls from 00 to 10, after each writing
in some modes they stuck at 11, so I use it values for ALG detection in the emulator.
Also no idea for bits 0..14 of Hobbes2 VOICEn+18h Register (bit15 set: panning off)

[+] UDP72064: waits for the disk

[-] 53╤80: not now

[*] M37450: Sends to 60831 by MIDI (routed to serial channel 1) messages about keypad buttons and keys
states. I not use it in the emulator, device controlled by serial chanell 0 (External MIDI)
because software responds to SysEx messages

[-] DSP256 far beyond

[-] Mixing Amplifier

Reply 1 of 4, by DanDare

User metadata
Rank Newbie
Rank
Newbie

Some sound samples

Reply 2 of 4, by moturimi1

User metadata
Rank Member
Rank
Member

Great to finally see a project on this great device. I have a K2000R at home. Let me know if I can help to some extent. Anyhow, you should know I have no knoledge of programming.

Reply 3 of 4, by DanDare

User metadata
Rank Newbie
Rank
Newbie
moturimi1 wrote on 2026-09-21, 18:01:

Great to finally see a project on this great device. I have a K2000R at home. Let me know if I can help to some extent. Anyhow, you should know I have no knoledge of programming.

Thanks!

Some of presets sounds quite good, but othes gives a wired sound, far from original.
So it would be helpfull, if you can play some notes and chords on preset 'crank it up',
but whith disabled master FX, and turning off, one by one DSP blocks, in every layer,
especialy, I have a troubles with waveshapers, so play whith and without it.
Also (but only if it does not spend a lot of your time), would be good to record,
how 'asteroid song' (MIDI from Thyrian game, easyly finds in Internet) sounds on real
hardware (I use GM bank from kurzweil.com), 2 floppy disk version for K2000 without
additional daughterboards

Reply 4 of 4, by DanDare

User metadata
Rank Newbie
Rank
Newbie

I found several Kurzweil GM MIDI files on the TurtleBeach Pinnacle driver CD. Some of them sounds
pretty good on emulated K2000 with GM set. However it'is many errors in VAST effects chains
still present, resulting dull effects like on the beginning of the recording. Surpised, that all
system has very wide dynamic range (in some cases > 90dB). HOBBES input and output gain controlled
by the same 16bit register, one per voice (1/400dB steps) So I dont know exectly the input gain level.
In this recording, I set 8% to the input and 92 to the output - not so good, the Piano decay are lost.

It would be wonderful to find Kurzweil native non-GM demo song files like 'Keith Revenge' etc.