Various small projects

AddCyberMem

This little Amiga tool can convert your CyberVision64 graphics memory into real fast memory for your CPU. V1.0, source included. (4K)

Frodo

Frodo is a nice C64 emulator from Christian Bauer. I've made a quick hack for Frodo V4.1a which enables 16bpp display under X (2K gzipped patch); it's not yet merged into the distribution, even though it is somewhat old by now. Here´s how to apply it: cd [frodo-source] ; gunzip -c [patchfile] | patch -p1 -E.

Linux Kernel

I've done some small contributions to the Linux kernel; I've contributed some bug fixes for the Amiga filesystem (affs) and I'm responsible for the port of the new wonderful gettimeofday() code (which is using the TSC on Pentium-rate chips and which measures your CPU speed with high precision) from a non-official 2.0 kernel patch (Jumbo-9) into Linus' 2.1 kernel tree. I've also written a device driver for the Catweasel floppy controller.

mfcdev

Developer information and hardware specs for the MultiFaceCard 2 and 3 serial/parallel cards from bsc. This package includes autodocs, include files and general hardware info which I have collected during the time I wrote the MFC driver for ProNET. This is perhaps the most comprehensive collection you can find about this card. Also interesting for you might be the Linux/m68k kernel sources, the AmigaOS MFC plip.device and the Motorola web site, which (as opposed to my statement in the archive README) does contain an order form for data sheets and reference material for all their products (including the MC6821 used on the MFC3).

ROMCrack

Old Amiga monitor program reworked. Changes to Gamma Release 0.70 by SCA (24-Mar-1988) V1.1 (9K)

TeeHandler

Output redirection to multiple files via an AmigaDOS handler, similar to what the Unix tee command achieves. V1.0, source included. (6K)

XGGI

An X window system server for the GGI project. I made some improvements in the keyboard handling, implemented basic acceleration, and updated display mode handling. I don't work on this project any more, because I don't want to spend my time digging through the X source tree to understand it. Marcus Sundberg has already taken over maintenance of this project.

Filterkasten

In May 2000, I posted the following to the octal-dev mailing list:
On Tue, 16 May 2000 n_nelson@pacbell.net wrote:

>   Pitch shifting without changing the sampling rate would seem  to re-
>   quire an  identification  of the pitch as  frequency  and  amplitude
>   (Fourier description)  and then changing the frequency in the sampl-
>   ing generate phase (reverse Fourier transform).

I just did a little experiment on my own: I should have thought about
it before, but I simply assumed pitch shifting was really just
literally shifting the frequency domain by an additive constant, which
it is NOT of course, since that way, the harmonics get distorted
(sounds separated by an octave before aren't any longer after this
"shift"). Real pitch shifting is thus a shift of the frequency domain
on a logarithmic scale.

However, I've coded up a pitch shifter using that wrong
assumption. This is really simple, since a shift in the frequency
domain corresponds to a multiplication by a complex exponentional in
the time domain. You have to perform this on the analytical signal
(complex time domain signal without negative frequencies) and then get
the real signal from the shifted analytical signal. The resulting
formula is then:

        y(k) = x(k) * cos(a*k) + x'(k) * sin(a*k),

where x(k) is the input signal, x'(k) is its Hilbert transform
(approximated using an FIR), a is a constant describing the amount of
shifting, and y(k) is the output signal.

Sounds funny. Anyone interested in the code? (Or in a more detailed
derivation?)
People keep asking me for the code ever since, so here it is. Additionally, it implements a simple low/hipass FIR filter. This code can be compiled out-of-the-box on Linux with gtk+-1.2 (gtk+-1.0 probably works, too) and ESD. It takes the current ESD stream and mangles it, i.e.: open up XMMS, use the eSound output driver, play some MP3's, then start up filterkasten and play around!

Michael Krause, mk@soundtracker.org. Back to the index page. Last update on 14-Jun-2002 (added filterkasten).