Its all up and running!

So I recieved my Alesis RA-150 amp Monday evening. It turned out to be pretty big compared to what it looks like in all the pictures online. I got some Monster Quicklock Banana Connectors from Radioshack with some 14 gauge speaker cable. My wires came out to be 5 feet each.

I plugged in the speakers, turned the amp on and played Angel by Massive Attack.

The sound quality is absolute pristine. All the things that people talk about making room in your mix and using volume and panorama to place the instruments around makes much more sense. You can actually see where the sounds are coming from :).

I have the picture of present configuration of my studio to the right. As you can see I badly need monitor stands. The thing with the blue light towards the bottom right is the amp. I am running Logic Pro in case you’re curious.

Rookie Mistake


So yesterday, I received my Alesis Monitor One MK2 monitors. They look super nice and are sturdy and well built. Also they are Passive! I never paid enough attention to the monitor specs (or the specs failed to convey this) but I need an Amplifier to be able to use them. After banging my head on the table for a good amount of time, I went ahead and ordered the Alesis RA-150 Amplifier off Full Compass. Full Compass is located very close to where I live and I believe is the only credible Pro Audio store around Midwest.

So my Amp is expected to arrive on Monday which leaves me with a whole weekend with my speakers which don’t function. Wonderful! :(

Large Hadron Collider

LHC is one of those major milestones in science which make you feel better about the progress being made to find answers to the “real” questions.

I found this post with some amazing pictures of LHC. Check them out.

http://www.boston.com/bigpicture/2008/08/the_large_hadron_collider.html

Monitors … Finally!

So I finally ordered my first ever pair of studio monitors. I ordered the Alesis Monitor One MK2 studio monitors. The reviews over all are pretty good and they actually have a pretty big frame compared to BX5a or KRK Rokit 5. I did have a chance to look at them when I was in NJ last week, but couldn’t spend enough time to figure if they actually sounded good.

I didn’t have too much money to spend on these so hopefully they will turn out to be good. I ordered them on zzounds.com since Musician’s Friend didn’t have them in stock. I can’t wait for them to arrive, which I think is going to happen sometime Wednesday or Thursday this week!

Staging Buffers

Sometimes, I find myself needing a staging memory buffer where I could store data for later retrieval. These kind of buffers essentially need to be FIFOs and should allow unlimited storage with resonably fast data retrieval. These buffers are different from, say, char array buffers since they need to be smart enough to grow based on the requirements.

As one of the scenarios, lets say you have a data processing module in your program that accepts fixed size buffers for processing, however the way you’re accepting data from, lets say, the network is variable sized buffers. The data chunks recieved from over the network may be smaller or larger than the buffer size accepted by the data processing module. In this scenario, you should be able to wait for more data to arrive till your data processor can process it, or in case of access data you should be able to store it somewhere so that it could be retrieved in the next pass.

This is common problem I find myself stuck with whenever I am dealing with data streaming applications. So I wrote a simple class that helps me manage all this. Appending and retrieving operations with this class are O(1) As pointed out by Thomas below, appending and retrieving data is O(n) operation where n is the number of bytes being read in or appended.  Locating the correct block of data which holds the next chunk of data is O(1).

Here’s what the class looks like

class staging_buffer {
private:
	struct __buffer_data { unsigned char *pdata; size_t nlen; size_t offset; };
	std::list<__buffer_data>	__data;
	size_t __held_data_len;
private:
	size_t _internal_min(size_t x, size_t y) {
		return (x < y ? x : y);
	}

public:
	staging_buffer() : __data (), __held_data_len (0) {
	}

	~staging_buffer(void) {
		while (!__data.empty ()) {
			free (__data.front().pdata);
			__data.pop_front ();
		}
		__held_data_len = 0;
	}

	void append (void *pdata, int nlen) {
		__buffer_data bd;
		bd.pdata = (unsigned char *)malloc (nlen); memcpy (bd.pdata, pdata, nlen);
		bd.nlen = nlen;
		bd.offset = 0;

		__held_data_len += bd.nlen;
		__data.push_back (bd);
	}

	size_t  fetch (void *pdata, size_t nlen) {
		size_t nreadbytes = 0;
		while (nreadbytes < nlen && !__data.empty()) {
			__buffer_data& bd = __data.front ();

			size_t bytestocopy = _internal_min (nlen - nreadbytes, bd.nlen - bd.offset);
			std::memcpy ((unsigned char *)pdata + nreadbytes, bd.pdata + bd.offset, bytestocopy);
			if (bytestocopy + bd.offset &gt;= bd.nlen) {
				free (bd.pdata); __data.pop_front  ();
			} else {
				bd.offset += bytestocopy;
			}

			nreadbytes += bytestocopy;
		}
		__held_data_len -= nreadbytes;

		return nreadbytes;
	}

	size_t size () {
		return __held_data_len;
	}
};

Hope you find it useful.

Soundfonts

I am surprised I didn’t encounter (or perhaps realize their importance) these magical things until today.  Not that I have been making music forever, but I just cannot believe how much I had been missing.

Well, essentially, these are sampled sounds put together into a patch/bundle/bank. The sampled sounds within a soundfont can be controlled through MIDI CC making them something that resides halfway between synthesized and sampled sounds.  E-MU came out with these first, and still distributes professional hi-fidelity ones.  More details here.

These soundfonts usually come in a package that represents an instrument.  A Cello soundfont e.g., may have all the Cello notes sampled as individual waveforms put together into a single soundfont.

You can then load these soundfonts into a soundfont capable VST like the freely available SFZ from RGC Audio.

Hammersound has a whole bunch of collected soundfonts which can be downloaded free of charge.  I just downloaded the Cello soundfont which I plan on using in my track I am presently working on.  I just absolutely love Cello for its sad and gloomy timbre :).

Soundfonts are ideal when you need a more natural sound than a synthetic one.

HTH

Google Web Toolkit allows Java

Google Web Toolkit allows programmers to use Java programming language instead of JavaScript(!) to create all those “fancy” looking AJAX based interfaces. Its pretty cool though. I thought, to learn GWT and get any good at it, I need to learn JavaScript, which I totally hate. Instead, you write your programs in Java and then just run it through the google’s compiler which generates all the required HTML and JavaScript code.

Which is a YAY! IMHO. I love Java.

Windows Live Writer – Desktop Blog Publishing

Windows Live WriterI was looking for a desktop blogging software and stumbled across (yes, I stumble a lot) Windows Live Writer.  Its pretty cool in the sense that it works well with Wordpress and actually downloads your blogs style sheets and lets you edit the post in a format as it would appear on your web blog.  WYSIWYG.

It lets you preview and edit your post in several different layouts, drag and drop image support, spell checker and a few basic HTML editing tools.

Its pretty cool, I think I am going to stick with it for a while.

 

Happy Blogging!

Make your own video – Radiohead – House of Cards

Radiohead and people behind their laser camera video which can be watched here, are giving out the captured 3D data to enthusiasts to make their own videos. People can download this data free of charge, along with the source code for Radiohead’s house of cards video from google code repository located here.

I think I will try making a video, but more of a real-time(could change once I actually see the data) executable that animates data in real-time along with the music and generates different patterns and effects every different run. FFT analysis of music modulated with this 3D data with crazy opengl shaders could result in awesome looking results.

Great find Shashank! :)

Oh, and these guys have a nice web-based visualization of this data which is pretty cool IMHO.

Also, once you’re happy with your results you can upload your video to the House of Cards youtube group for everyone to watch.

Sky To Earth – Sound.C

Alright, here’s a new track I finished working on almost 5 months back. I just couldn’t convince myself to actually upload it. I am not at all happy with the mixing I did on this one. I tried to use natural sounds but modify them to an extent so that they are barely recognizable and sound electronic. I haven’t been entirely successful in doing so. When I listen to it now, it just sounds silly :).

More technically, I think the overall level of this track is very low. I used Sound Forge 9.0 to master it, and I am sure it must have sounded right back then. It’s level is considerably low compared to the other tracks on the play list. Also, I think I overused the compressor on certain tracks of this mix. I hear the “bending” of sound at certain points which I don’t particularly like. The melody totally overtakes the sound and tends to stand out. I just uploaded it because I wanted to post a new track, its been ages.

Hope you like it in whatever condition it is.

Its called Sky To Earth because I wanted to use a picture I took as the album art for this track. The picture has God Rays coming down from the sky onto lush green trees. I’d upload it as soon as I find it.

Play it using the player on the sidebar or use the mini player below.