Older blog entries for pcburns (starting at number 24)

I am wondering what to do about PenguinSound. I need to spend a bit of time bug fixing before releasing it. Time that I don't have. Perhaps I should take a holiday and spend it on PenguinSound. It seems silly to spend a holiday at home in front of the computer. When I finally get a release ready I need to make a few announcements, perhaps to freshmeat.Christian Reiniger seemed happy to announce it on LGDC, though I am unsure if it will be useful to game developers. Despite not getting much attention - (I haven't made any releases yet, although the source is available, so I still have some hope) - I have been quite happy with what I have produced. I am able to create interesting samples by connecting together simple generators, filter existing samples. I need to do a bit more work on my tracker before I am satisfied with my tools, then I'll start learning how to write music. Through this project I have learnt quite a lot about computer music and how to program in c++. I learnt a bit about collaborating with other developers over the internet through my involvement with penguinplay. I am still learning how to use sourceforge. I haven't worked out how to get the commits and adds to show up on the summary page. The summary page makes the project look like it is dead. I'm still working on it, I just don't have much time.

I've installed the latest version of netscape (version 6) It is a great improvement over previous releases. It seems to be much more stable. I tried to use the instant messenger that came with it but was immediately put off it after failing to register any username that could remotely be associated with me.

I've grown to enjoy advogato. Although I haven't kept my diary very up to date - sometimes this is simply due to netscape crashing in the middle of a long diary entry - simply thinking about what to write about seems to buoy my spirits. It gives me a bit of motivation to keep going on with what I am doing. It gets my mind going.

11 Dec 2000 (updated 15 Jan 2001 at 11:21 UTC) »

I went looking for the Metaphorical Programmer but found that he was Blind.

9 Dec 2000 (updated 11 Dec 2000 at 00:58 UTC) »

Went to a retro themed Christmas party for work last night dressed in a white lounge suit . Received a lot of compliments on my costume and requests for disco dancing. I really enjoyed myself. I couldn't help but smile while in that suit, and as a bonus I looked really good in it. I was hoping to go to loveseat but didn't make it there.

Fixed some bugs in the Generators for penguinsound. The source is now in cvs on sourceforge. ChopperRingModulation now works well. I modified the sine generator so that a generator can be used as the frequency. I have also modified the directsound code to support streaming better but that is not yet in cvs.

According To No Plan - broadcast

lo and I found myself lost
looked but nowhere to belong
the status I achieve 
holds nothing I believe
and we drift on
and according to no plan

and I don't know where we are can't say what we're affected by something has us beat leaves us open to defeat and we drift on and according to no plan

the status I achieve holds nothing I believe and we drift on and according to no plan

17 Nov 2000 (updated 17 Nov 2000 at 04:50 UTC) »

I won tickets to the Ju Ju Space Jazz intersound cd launch, which is on tonight (17 Nov).

I spent some time upgrading a few packages on my home computer. I installed kde 2. It looks much more polished than previous versions. One new noticeble feature was the kcrash application which displays a stack trace when a program crashes - although perhaps I should have seen that if everything was running smoothly. I am very impressed with konqueror. I would ditch netscape for konqueror if it could do https and if it didn't crash at startup when I am not running the kde desktop. My backspace key has been playing up for the last few days. I'm not sure what caused the problem but I have my suspicions. It served as a flashback to university and the evil ^H problem that existed on many of the terminals. I haven't worked out how to fix it yet.

I also managed to fix the problems that I was having with tuxracer. I had to be forceful with dpkg to install mesag3-glide2, to provide hardware acceleration on my voodoo2, without removing all the applications that depend on mesa.

Tomorrow will be a busy day. I have an interview scheduled for lunchtime. For my evening entertainment, I'm looking forward to "electronic" at the Manning Bar in Sydney Uni from 8pm. It features 10 different artists including b(if)tek, sub bass snarl and 5000 Fingers of Doctor T for just $10.

I ported the Linux Audio Developers Simple Plugin API to win32, by implementing win32 versions of the functions in dlfcn.h and dirent.h . I have added preliminary support for plugins to penguinsound.

I submitted a registration form for PenguinSound to sourceforge. The project page seems to be there, but I haven't received any email from the sourceforge administrators regarding it.

I bought Intersound - the new album from Ju Ju Space Jazz. It sounds much more mature than past albums. I'm very impressed with track 7 "Secrets", I'm sure I've heard it before. Intersound was released by Creative Vibes who also put out the wonderful "Just Is" compilation.

I went to Object World in Darling Harbour, courtesy of the company I work for. I haven't been to Darling Harbour for a long time and apart from Sega World I was pleased with what I saw, although they could do with a few more trees to provide shade along either side of the the harbour.

The seemed to be a stong contingent of Java programmers present and many of the talks were about Java related technology. Brad Abrams gave a talk on Microsoft's .NET framework. They have developed a Common Language Runtime that enables COM objects to be treated as standard objects in each language. Any .NET class written in any language, can be used as a COM class without any extra work. The compilers for each language emit code in an Intermediate Language - MSIL. The MSIL code can be compiled to native code at run-time or install-time. Brad Abrams emphasised the freedom of the developer to develop in their prefered language. He was met with questions regarding the support of J++ under .NET, and ponderings on paper clips.

After "apt-get"ing tuxracer which required me for some reason to also install the latest version of gcc, g++, libc6 and libstdc++2.10, I could no longer compile anything. All the builds that I tried failed at the linker stage with missing symbols. Wishing for a backout option in apt-get, I thought I tried upgrading some other key library and development packages. I finally got the system back into a working state when I upgraded binutils which contains the gnu linker.

Spent about half an hour writing an entry only to lose it after my linux 2.2.16 box locked up. I have now upgraded to 2.2.17 and so far haven't experienced the same problem. It seemed to occur when I ran out of physical memory.

I received an email from Errol Smith asking for comments on an article about constant power panning that he had drafted for the LGDC. The problem with normal, linear panning is that sounds that have their panning in the center sound quiter than sounds that are set to either left or right. I hadn't been aware of the problem and I'll try and fix up PenguinSound to correct the problem.

Sydney is now half way through the olympics. I went to the athletics stadium on friday and saw Cathy Freeman race in a 400m heat. I also saw the 100m heats and a whole lot of bogon moths flying around. The stadium is an amazing place. The number of people in and around homebush bay is incredible. The is a road that runs straight through the olympic complex for a couple of kilometres. It was like a river of people. The are speakers attached to each light pole. They have been set up to let out ambient crowd noise as you walk past ... it's a bit disconcerting to hear grunts and breathing and coughing and no obvious source for the noise.

I went to Circular Quay see the opening ceremony. We had intended to go to Darling Harbour but were persuaded to head for the Domain were we found nothing happening and then headed down to Circular Quay. The plaza in front of Custom House was packed full of people even more than usual. The were people from all over the place including Sweden, Norway and England. The crowd let out a big boo when they saw the USA olympic team enter the stadium, the same thing happened for the New Zealand team. A big cheer went up for the Mongolian flag bearer wearing a superhero style outfit in blue consisting of underpants and a cape. Alcohol flowed freely amongst the crowd, some of it a bit too freely, scattering the crowd.

I've done a bit of work on PenguinSound. I've been meaning to create a sourceforge project for it but I haven't gotten around to it. I got as far as creating an account for myself, and then spent some time looking at all the audio projects on sourceforge. I found amber and had a bit of a play with it. I also found glame which is trying to do for audio what the gimp did for graphics. I took a bit of a look at the code, and noticed they are using a similar approach to connecting filters together as I have taken with my sample editor.

I have improved my filters. Each filter functor now has a function which returns the frequency response. I should probably fix that to make it possible to display the phase response as well. Most filter dialogs now display the frequency response. However, the frequency response isn't updated for some dialogs if the dialog is opened from another dialog. I have created a resonable filter graph widget, which makes it fairly simple and easy to connect the filters together. I haven't been able to work out the frequency response for some filters. I am not sure how to calculate the frequency response for a wave shaping widget. Wave shaping filters can be used to compress or expand or distort the sound, using a map to transform the input level to a new output level. I'm not sure about the frequency response for a filter that simply scales its input - I guess its just a flat line.

I've also done a bit of work on my tracker. I've stuck all the elements that were previously in separate windows into one big window, and modified the tracker widget so that it updates its position when the module is being played. I also found some bugs in the code for saving samples, and fixed them.

I've fixed up my DirectSound audio output code so that it can now play looped samples. The method was simply to create a non-looping buffer for the part before the loop starts and a looping buffer for the looped part. If the loop was bidirectional I simply doubled the size of the buffer and copied the loop in reverse for the second half of the buffer. I've got semi-functional streaming working for the DirectSound. Once I have streaming working poperly I'll try and write some code to record samples, making it available as a generator, and eventually get everything set up so I can talk into a microphone, filter the input and stream it out in close to realtime.

I have no problems with fltk under windows but I am getting strange bugs with Fl_Gl_Windows under linux. Sometimes they refuse to update as is the case with some of the filter dialogs. Other times they segfault in gl_line_stipple or other gl routines that I don't call, when I close the dialog window. It may have something to do with the way I have coded my dialogs. I coded them so that they could be either modal or non-modal.

Here is the code for the do_modal function.

m_window->set_modal();
m_window->show();
while (m_window->shown()) {Fl::wait();}
return m_modal_ok; 

I have set up the ok and cancel buttons so that they set m_modal_ok appropriately, and then call m_window->hide().

I got a letter from Jenny, and have been spending some time trying to write a letter back.

15 older entries...

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!