Server Upgrades

August 1st, 2008

Okay, so the server got upgraded–again.  It’s running on a 3.2 GHz with 2 GB RAM now–up from 2.4 GHz and 512 MB.  It has 1.5 TB of RAID 0 storage and quite a bit of space for other data.

Unfortunately one of the RAID drives is either in the process of failing or the wire is broken–it’s caused some problems that I’ve been unable to pinpoint so far.  We’ll see what happens.

Realtime FFT

July 1st, 2008

I’ve been working on an old project (first mention, last update) of mine, a realtime fast-fourier transform on audio input.  A spectograph, in other words.  You can look at some of the ancient screenshots (1, 2) (which were in fact made shortly after that post–well over a year ago) to see what it used to look like, but I’ve made lots of improvements.  I might post new screenshots tomorrow.

The last I posted, in August of 2007, RealtimeFFT had been recoded in C++ using RtAudio, FFTW, and Allegro.  Speeds were around 30 fps (but would sometimes jump to 100 fps due to the use of an apparently-buggy Allegro preview version) when I began working on it again a few days ago.  I’ve expanded on its speed in this configuration by doing several things.

One of these improvements is multithreading.  rtfft now uses multiple threads to calculate its FFTs.  This allows the four separate FFTs to be performed simultaneously on a four-core processor like the Q9450.

I also fixed a major bug in the way audio was read from the stream.  Previously, a chunk of audio was sometimes skipped or, even worse, zeroed.  I don’t know quite why this was happening; I gave up trying to debug the horribly ugly code I’d written and basically just rewrote the audio input side of the program.

The color scheme has gotten a major, major update.  It looks pretty now, unlike the red-orange colors you see linked above.  In addition, the output looks much more solid and less fuzzy.

I’m now using four FFTs–two for each stereo channel–and multiplying and adding the results from them to give a much more accurate graphical representation.  Previously I wasn’t even using stereo data.

I finally realized that having Allegro blit a backbuffer to the screen was exceedingly slow in some cases.  I switched versions of Allegro from the apparently-bugged preview release I had been using (interestingly resulted in a speed increase of almost 50 percent in itself), and then began using AllegroGL.  Frame rates reach about 225 fps even with all the added FFT calculations.  Removing some of these added calculations (by performing only one channel of the stereo FFTs, for instance) causes the speed to increase to 300 fps.  I’ve seen it hit 450 when not scrolling the screen.

I’m now in the process of analyzing the code to see what else can be done to improve speeds.  Using an extremely fast set of timer functions that I wrote today (something less than 0.0000012 milliseconds per call, but as that’s too small to matter I stopped trying to measure it), I’ve determined that most of the time is spent blitting the image to create the scroll–something that I assume can be done much, much faster using OpenGL acceleration and by making the backbuffers be video bitmaps instead of system-RAM bitmaps.  Speaking of OpenGL acceleration, I have yet to test whether it is faster for OpenGL to draw the bitmap as a texture, or to have AllegroGL blit the bitmap to screen.

In any case, as far as I can tell I have only reached approximately half of the data-limiting rate.  44100 samples per second, 2 channels * 2 bytes per sample is 176,400 bytes per second, and I’m reading them off the buffer in chunks of 256.  That’s supposedly a data rate of 690 frames per second(!).

Also, the latency has decreased.  Previously, in the 30 fps version, a sound emitted through the speakers would show up on the display anywhere between 60 and 200 milliseconds later, depending on when the frame happened to be drawn.  Now the delays are much smaller–it looks to be around 20-50 milliseconds but I haven’t measured it.

Tomorrow I’m pulling off some more challenges–I’m going to switch to 32-bit samples, better utilize hardware OpenGL acceleration and threads, and possibly switch to Portaudio, which may or may not be faster.  There’s always the possiblity of using DirectSound directly, but I’d like to keep as much cross-platform compatibility as possible.  Also tomorrow is some testing to make sure it’s displaying frequencies absolutely correctly–I’m a bit suspiscious of its algorithm for deciding where a particular pixel will be drawn.  FFT results corresponding to frequencies between pixels may not be drawn at all, now that I think about it….


Onboard Audio

June 16th, 2008

I must confess that I’ve never used motherboard on-board audio, except on my laptop.

Well, today I got fed up with my Audigy 2 ZS not playing all channels properly.  So, I took it out to see what the motherboard’s audio was capable of.

So far, the audio sounds strangely more crisp, with a lot higher stereo separation.  Not to mention that the front audio ports are actually compatible with the mobo header, and that surround sound actually works.  I haven’t tested anything that uses EAX effects, but I’m confident I won’t mind too much as long as I have working real 3D positional surround sound.

Of course, the audio differences could also be because we just rearranged this entire room.

Overclockability-ness

June 11th, 2008

Okay, well, I said I’d write more about overclocking the Q9450, but I didn’t get around to it until now.  Of course, I’ve also just finished stress-testing my latest settings.

The 2.664 GHz processor is at 3.600 GHz at the moment (FSB from 333 to 450, about 35% increase), with a voltage of 1.25v.  The default voltage for this chip, as determined by my motherboard, was about 1.185v, so I’ve only increased it by about 0.07 volts, or a little over 5%.  This amount of overvoltage is, in my opinion, very unlikely to cause any damage to any hardware, and so far it is handling the FSB speed with absolutely no errors.

Cores average 36 or so idle, jumping to 58 when stress-testing prime95 64-bit with four threads 8k FFTs.

I haven’t had any problems with my RAM.  It’s 1333 MHz DDR3, but I’m running it at something like 1438 MHz (I don’t know the exact figure, I’m not at that computer right now).  At one point I had it going 1600 with no problems, without even ramping up the voltage.  DRAM voltage is at 1.5 right now, while the RAM is rated to 1.7.  At this point I’m happy with the 2.5x increase in RAM speed over my old box.

Speaking of comparisons to the old box, the processor on this one is not only higher-clocked (3.6 GHz compared to 3.2), but having four times as many cores would give me a theoretical 4.5x processing speed increase between the boxes.  I haven’t actually benched it, but from various activities it does appear to be much, much faster, especially in multi-threaded applications such as Supreme Commander.

Anyway, that’s all on that for now.  I’ll write more about this box later.


Upgrades

May 28th, 2008

My dad points out that I haven’t updated this site in quite a long time.  No particular reason for that, really, I guess, except that during the end of March and all of April, I attended rehearsals almost every evening for the theatrical production of Little Shop of Horrors at my high school.  I hung and focused lights and programmed the lighting console.  It was amazing fun, but mildly stressful, and it seemed like it lasted forever.  The performances were the first three evenings this May (the 1st, 2nd, and 3rd) and I ran lights.  That took up a lot of my time, but it was definitely worth it.

Anyway, the main point of my writing today (tonight) is because I’ve ordered parts to build a new computer.  My old single-core 3.2 GHz processor seems mildly out-dated, so I ordered a brand-new 64-bit quad-core 2.66 GHz processor to be overclocked to a yet-to-be-determined speed somewhere between 3.0 and 3.6 GHz.  Assuming I clock it to 3.2 GHz, it has the theoretical capacity to be at least four times as fast, especially considering the newer advanced instruction sets and 64-bit capabilities.

To support the overclocked processor I chose a nice DDR3 motherboard from Gigabyte.  Since my current RAM is DDR2, that meant I had to get DDR3 RAM–so I got 4 GB of that.  I ordered two fast 250 GB drives for SATA RAID 0, which should increase my read/write speed somewhat over my current, un-”fast”, much smaller SATA drive.   To cool the processor, I got a Zalman 9700 and AS-5 grease.

I chose an 850W power supply, which should provide more-than-adequate power should I ever need to upgrade anything (at the moment, I am not using SLI, but I am using a 9800 GTX that I recently purchased).  All of this will be housed in an Antec 900 case.

My biggest issue at the moment is the ambient room temperature.  According to recorded data from various forum sites and message boards, an ambient room temperature increase of about 1 degree C results in a CPU core temp increase of about 1.5 degrees C.  The room that currently houses are computers is inadequately cooled and is located such that it absorbs light from the roof and attic on both sides of the house (meaning, both in the morning and the afternoon).  The rest of the house averages about 22 degrees C, while that particular room has not dipped below 25.6 degrees in weeks and averages 27 degrees.  In the past week alone, it has reached 32 degrees C.  So with an ambient room temperature 5-10 degrees above what it could be, that will affect my CPU temps by as much as 7.5-15 degrees Celsius–the difference between a “safe” 60 degrees and a dangerous 75 degrees.

I’m considering various ways of cooling the room further, including the use of window air conditioners, changing light bulbs, removing excess items which store heat, etc.  I guess if nothing else works I can always pack bags of ice around my case and replace the ice as it melts….

We’ll see what happens.  I won’t be getting most of the parts until next Monday, so I’ll probably write more then.

Spring Break

March 19th, 2008

So, it is Spring Break for me.  A week and a day off of school.

Anyway, I levelled my character on World of Warcraft to 60, almost 61, in the last couple of weeks.  I believe I’m at 60.85 at the moment, with about 6 days played time.  I don’t know if that’s good or not but I don’t really care, because I need to hit 70.

Also, I’ve read two and a half books so far.  They were good books.

But mostly I’m just pointing out that I’m not dead, even though I haven’t written anything in a while.


Intelligent World of Warcraft Installation

February 28th, 2008

I finally decided to format my computer (something that had needed to be done since long before February 3rd).  I really wanted to install Mac OS X–but of course, I have a PC, not an Apple, and I would’ve had to create a hackintosh and deal with all the strange issues that would have popped up.  And because I wanted to play WoW, an emulator on Linux was not an option.

So I’m currently going through the process of installing WoW for the nth time.  It takes forever without a 4-disk RAID 0 array, which I’m eventually going to get.  (I’m getting tired of waiting for Intel’s new processors so I can upgrade)

And I was thinking how much faster it would be to just download the graphics and world for the starting areas at first; and while you’re playing the game, expand the download to the entire world.  It’s not quite a practical idea, and I’m not sure how much install/download space it would actually save (well, all of it would be downloaded/installed, just an ‘initial’ install would be first).

Whatever.

D300

February 20th, 2008

So, my D300 did arrive after one day, using ground shipping.  I think that’s pretty cool.

RitzCamera.com got a 5-star rating from me on Amazon.com’s seller ratings.   I honestly think it’s one of the best purchasing experiences I’ve had.

Anyway, I’ll post some pictures taken with my D300 in a couple days; I’m too busy playing with it at the moment, and I only found the time to write this because I’m on my laptop and I don’t have my camera around.

I will say this, however.  The wireless feature of the SB-600 is one of the most amazing things I’ve seen in a long while.  I doubt that I’ll ever fully exhaust the possibilities with that.


Overnight Ground Shipping?

February 18th, 2008

The tracking information that was unavailable from Ritz earlier today showed up on their website a bit later.  However, they did not give me a tracking number.  I used Ritz’s live order support chat to ask for my tracking number which they very quickly and gladly provided to me.

So I went to FedEx and plugged in the number they gave.  I chose free ground shipping with this package, and the tracking information at FedEx states that it was shipped today and is due to arrive tomorrow.

This is interesting.  I’m getting overnight shipping, by ground service.

Apparently Ritz’s warehouse is actually that close to where I live.

So far the service has been excellent and I will gladly consider and recommend Ritz for any future purchases I have.

The one issue I have questions about is FedEx’s Indirect Signature Requirement.  I know I will not be home any time that they choose to deliver (unless it is after 3:30), so it’s only a question of whether they will actually have a neighbor sign for it, or just hold the package.  I’m considering leaving a note authorizing both UPS and FedEx (who are both due to deliver packages tomorrow) to leave their packages with no signature.

We’ll see.  I probably won’t leave a note, and if they don’t deliver it I’ll use their door tag to indicate that they can leave it.

Strange

February 18th, 2008

According to Ritz, my D300 has been shipped, but they cannot track my package at this time.

Ritz won't track my package! :(

I don’t guess I mind that much, because as long as the package has been shipped, it’ll arrive in 3-5 days, which is when I had estimated anyway (Thursday or Friday).  What I’m worried about is if the package never did actually ship; if they can’t give me a tracking number I don’t know for sure if it did.  So I guess we’ll see.