Older blog entries for magnusjonsson (starting at number 3)

This is a late update on Gsharp, but better late than never. I have stopped contributing to Gsharp because I think there are now more pressing issues with it than adding more microtonal support. Here is what I got done:

  • A MIDI back-end that uses pitch bend messages to produce microtones.
  • Support for regular temperaments based on size of octave and size of fifth (and size of quartertone)
  • Access to this functionality from the GUI through CLIM commands.

Additionally Christophe Rhodes added quartertone glyphs which work well with my midi playback. This proves that the infrastructure support for microtones is now there. All that is lacking is the glyphs. But for now I think Gsharp has more important things that need to be worked on so I am stepping back until Gsharp has matured a little more.

I am now looking forward to delving into some Haskell hacking! I am hoping to get better at Haskell by hacking on the GHC compiler itself. Why? Because learning Haskell for the past few years I have come to think Haskell is the most interesting thing going on in CS right now. I vainly hope that in the near future (I will get my bachelor's degree in CS this spring if everything goes right) I will be able to work with Haskell or do research on/with it.

I have got basic microtonal support working in gsharp, but it is not connected to the GUI yet. In the process I discovered a handful of bugs in the midi package and I have submitted them to the maintainers. It turned out that Christophe Rhodes (one of the gsharp devs) is the main maintainer of it. Once the midi package has been updated and if other gsharp devs are okay with my code I will commit it to CVS.

It has been a pleasure to work in common lisp. I could hotswap code without restarting the application, test things in the REPL, and the full numeric tower simplified my code in an unexpected manner. I had originally planned to have one class for equal temperaments and one class for linear temperaments for precision reasons, but the rational number support and the numeric tower made the equal temperament class superfluous!

I'm continuing to dig into the Gsharp code, especially the buffer classes and the midi back-end. I found a little bug in the midi library used by Gsharp and emailed the university group that maintains it about whom to submit the bug-fix to.

I also found a small redundancy in the Gsharp code and I expect I will find more things as I wade through the code, so I am going to request write access to the Gsharp CVS repository once the common-lisp.net mail server starts working again. It appears to have been down for the past few days and for this reason I haven't been able to join the Gsharp mailing lists either.

I'm posting my first blog entry! Here's why:

I want to add some microtonal support to GSharp and I talked about it with one of its developers, Christophe Rhodes (Xof on #lisp on freenode.org). He was very positive and helpful and suggested that I blog about my progress. So here I am.

I intend to first add support for simple temperaments in the midi back-end. By simple, I mean temperaments for which no accidentals beyond sharps and flats are needed.

If that goes well I may start adding some sagittal accidentals to support more temperaments.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!