Welcome

One of my main hobbies is computer programming. In particular, music software development. I have coded in a variety of different languages, including BASIC (with a little VB), Pascal/Delphi, Euphoria and C/C++.

To date, my most notable achievement has been in the form of Midget, a small MIDI music tracker application. This has been enhanced and the design revised many times, and the end result is an interesting little program which you can use to compose music. Incidentally, a lot of my older tracks were composed entirely using Midget.

My recent projects have been more ambitious. Because of this, there is nothing to show for them at this time. I have been refining my own coding skills and learning about good design and coding practises, to ensure the quality of my software is as good as it can be.

Latest News RSS feed

Filter Graphs, Kernel Streaming, DSPSaturday, April 19, 2008

I've been experimenting a lot with filter graphs and ways of implementing a DSP framework in a C++ environment, recently. I've spent a lot of time in the past deciding between C/C++ and finally concluded that code which is easier to maintain and potentially could perform faster, outweighs the benefits of making everything as modular as possible.

Consideration had been given to making something which could compile/generate raw machine code from a filter graph, but this would be inefficient compared to the kind of optimisations which can be performed by most C/C++ compilers today.

So instead, I have decided to create a small library of common DSP routines which can be easily re-used for different applications, and wrap a filter graph framework around this. Ultimately this could be able to let you preview graph arrangements before generating C++ code (which would then be optimised further and thus be more efficient).

I've also picked up Kernel Streaming for ReactOS again, and am finding it somewhat easier to understand now. The concepts are similar to that of regular filter graphs, but made more complex by the fact it operates in Windows kernel-mode, so uses a whole load of functions which I'm not overly-familiar with!

Comment on this article

Latest Releases