Wednesday, January 26, 2011
Aphorism: A short, pointed sentence expressing a wise or clever observation or a general truth.
1. The nicest thing about the future is that it always starts tomorrow.
2. Money will buy a fine dog, but only kindness will make him wag his tail.
3. If you don’t have a sense of humor, you probably don’t have any sense at all.
4. Seat belts are not as confining as wheelchairs.
Tuesday, January 25, 2011
Tuesday, January 18, 2011
Digital audio has been around a very long time so there’s bound to be a plethora of audio formats out there. Here are some of the more common ones, what differentiates them, and what to use them for.
Before we talk about everyday audio formats, it’s important you understand the basics, and that means understanding PCM. After that, we’ll tackle compressed formats.
PCM Audio: Where It All StartsPulse-Code Modulation was created back in 1937 and is the closest approximation of analog audio. That is, an analog waveform is approximated in regular intervals. PCM is characterized by two properties: sample rate and bit depth. Sample rate measures how often (in times per second) the amplitude of the waveform is taken, and the bit depth measures the possible digital values. In terms of audio formats, this is pretty much the foundation.
True sound, in the real world, is continuous. In the digital world, it’s not. Somehow this is more confusing with audio than with video, so let’s look at video as a point of comparison. What we interpret to be “motion” or think of as “fluid” and constantly-moving is, in actuality, a series of still pictures. In that same way, the amplitude of sound waves in a digital format isn’t “fluid” or constantly changing. It’s changing based on certain criteria at pre-defined intervals.
Image from Wikipedia
I know there’s a lot here that may not be second-nature unless you’re an engineer, physicist, or an audiophile, so let’s pare it down further with an analogy.
Let’s say that the water flowing from an open faucet is your “analog” audio source. The temperature of the water we can compare to the amplitude of an audio wave; it’s a property that needs to be measured so you can enjoy it properly. Sampling is the number of times per second you dip your finger into the flowing water. The more often you dip your finger into it, the more “continuous” the temperature changes become. If you stick your finger into the running water 44,100 times per second, it’s almost like keeping your finger under there the whole time, right? That’s the basic idea behind sampling.
Bit depth is a little trickier. Instead of using your finger, let’s say you used a really crapper thermometer. It basically said “Hot” for anything above room temperature and “Cold” for anything below. Regardless of how many times you dipped it into the water, it wouldn’t really give you much useful information. Now, if instead of just 2 options, let’s say the thermometer had 16 possible values which you could use to gauge the water temperature. More useful, right? Bit depth works the same way, in that higher values allow more dynamic changes in sound amplitude to be accurately portrayed.
As previously mentioned, PCM is the foundation for digital audio, along with its variants. PCM attempts to model a waveform, in as much of its uncompressed glory as possible. It’s special, it’s ready to be stuck in a digital signal processor, and it’s more or less universally playable. Most other formats manipulate audio via algorithms, so they need to be decoded while playing. PCM audio is considered “lossless,” it is uncompressed, and therefore, takes up a lot of hard drive space.
The Uncompressed Bunch: WAV, AIFF
Image by codepo8
Both WAV and AIFF are lossless audio container formats based on PCM, with some minor changes in data storage. PCM audio, for most people, comes in these formats, depending on whether you use Windows or OS X, and they can be converted to and from each other without degradation of quality. They are both also considered “lossless,” are uncompressed, and a stereo (2-channel) PCM audio file, sampled at 44.1 kHz (or 44100 times per second) at 16 bits (“CD quality”) amounts to roughly 10 MB per minute. If you’re recording at home for the purposes of mixing, this is what you want to use because it’s full quality.
Image by CyboRoZ
Lossless Formats: FLAC, ALAC, APEThe Free Lossless Audio Codec, Apple Lossless Audio Codec, and Monkey’s Audio are all formats which compress audio, much in the same fashion that anything is compressed in digital world: using algorithms. The difference between zipped files and FLAC files is that FLAC is designed specifically for audio, and so has better compression rates without any loss of data. Typically, you’re seeing about half the size of WAVs. That is, a FLAC file for stereo audio at “CD quality” runs roughly 5 MB per minute.
The up-side is that if you want to do audio manipulation, you can convert back to a WAV without any loss of quality. If you’re an audiophile and listen to a lot of music with dynamic ranges, these formats are for you. If you’ve got a great set of speakers, cans, or earbuds, these formats will bring out the tones to showcase them.
Lossy Formats: MP3, AAC, WMA, Vorbis
Image by patrick h lauke
Most of the formats you see in day-to-day use are “lossy”; some degree of audio quality is sacrificed in exchange for a significant gain in file size. An average “CD quality” MP3 runs about 1 MB per minute. Big difference compared to PCM, no? This is called compression, but unlike with lossless formats, you can’t really get that quality back once you strip it in lossy formats. Different lossy formats use different algorithms to store data, and so they typically vary in file size for comparable quality. Lossy formats also use bitrate to refer to audio quality, which usually looks like “192 kbit/s” or “192 kbps.” Higher numbers means that more data is being pumped out, so there’s more preservation of detail. Here are some details for the more popular formats.
- MP3: MPEG 1 Audio Layer 3, the most common lossy audio codec today. Despite a heap of patent issues, it’s still incredibly popular. Who doesn’t have MP3s lying around?
- Vorbis: A free and open-source lossy format used more often in PC games such as Unreal Tournament 3. FOSS fans, such as many Linux users, are bound to see plenty of this format.
- AAC: Advanced Audio Coding, a standardized format now used with MPEG4 video. It’s heavily supported because of its compatibility with DRM (e.g. Apple’s FairPlay), its improvements over mp3, and because no license is needed in order to stream or distribute content in this format. Apple fans will probably have plenty in AAC.
- WMA: Windows Media Audio, Microsoft’s lossy audio format. It was developed and used to avoid licensing issues with the MP3 format, but because of major improvements and DRM compatibility, as well as a lossless implementation, it’s still around. It was really popular before iTunes became champion of DRMed music.
Isn’t Audio Quality Subjective?
Absolutely, it is. Ultimately, it’s your ears that are consuming most of this stuff, but that’s more reason to think of quality seriously. When I first started creating my digital music collection, I couldn’t really tell the difference between 128kbit MP3s and audio CDs. To my ears, there was no noticeable difference. Over time, however, I noticed that 256 kbit sounded much better, and after I got a really nice (and expensive!) set of headphones, I went back to audio CDs full time! It also depends on the genre of music.
Image by jonchoo
There are a LOT of variables here, folks, make no mistake about that. It took a while before I settled on using FLAC for some music and 320kbps MP3 for the rest. The point I’m trying to make is that you should experiment to see what works best for you and your music, but be aware that as your tastes change, your perceptions, your equipment, and the importance of quality will, too.
And all of this stuff get even trickier when you’re not just talking about music, but about voice tracks, sound effects, white and brown noise, etc. There’s a whole world of sound out there, so don’t get discouraged! By learning what you can and listening for yourself, you can use this info to your advantage in your future audio projects. I’ll leave you with some of the best advice I’ve ever gotten: “do what just plain sounds good.
RSS Feed Creator – A program which can read in text from other sources and put it in RSS or Atom news format for syndication.
Chat Application (IRC or MSN Style) – Create a chat application that can carry on simple chat rooms like on Internet Relay Chat or a more direct chatting style like MSN. For added complexity, create your own protocol to facilitate this chatting.
P2P File Sharing App – Create a program like LimeWire, FrostWire, Bearshare, or a torrent style application.
Port Scanner – Enter an IP address and a port range where the program will then attempt to find open ports on the given computer by connecting to each of them. On any successful connections mark the port as open.
Mail Checker (POP3 / IMAP) – The user enters various account information include web server and IP, protocol type (POP3 or IMAP) and the application will check for email on several accounts at a given interval.
Packet Sniffer – A utility program that will read packets coming in and out of the machine along with related information like destination and payload size.
Remote Login – Create a remote desktop style application which can see and control the remote computer (given you have permissions). It may require the use of your own private network and a second computer to test with.
Site Checker with Time Scheduling – An application that attempts to connect to a website or server every so many minutes or a given time and check if it is up. If it is down, it will notify you by email or by posting a notice on screen.
Web Bot – An automated program which carries out tasks on the web including checking websites, page scraping, and summarization of data or web posting.
Chat Application (remoting style) – Create a chat application which allows you to connect directly to another computer by their IP through the use of remoting and allow your “server” application handle multiple incoming connections.
CAPTCHA Maker – Ever see those images with letters a numbers when you signup for a service and then asks you to enter what you see? It keeps web bots from automatically signing up and spamming. Try creating one yourself for online forms. If you use PHP, take a look at the image functions of GD.
Traffic Light Application – See if you can make your own street light application and then put it into an intersection scenario. Don’t let any cars run the lights and crash into one another!
MP3 to Wav Converter – MP3 is essentially compressed wav format. See if you can translate it back into wav so that some other sound editing programs can work with the wav file itself. Keep in mind that 1 MB of MP3 is relative 10MB wav.
Find Way Out of Maze – Develop an algorithm that allows a mouse to navigate through any maze given enough time.
Guitar Hero Clone – Create your own version of guitar hero where you can incorporate your own music and allow the user to press keys for the various colored notes. Judge their accuracy.
Friday, January 14, 2011
So, I started work this week. And by “work,” I mean “the job I’m doing to pay my school tuition, but that I by no means enjoy in the slightest.” And I’m apparently not alone at all in employment dispassion. I have a friend who’s been steadily searching for a job for the last eleven months. Still others are waiting tables and letting their bachelor’s degrees gather dust. And some are beyond depressed at being grossly underemployed in jobs where their creativity is left to stagnate and their work is rote, rudimentary, and unvarying from day to day.
The situation is pretty universally bad. In fact, I’d say that less than ten percent of my friends are actually content with their employment situations, and for the rest of us, working is a daily exercise in learning to cope.
Luckily, we’re learning. And learning well. And it’s making us better and more focused on Getting Excited and Making Stuff. I’m terribly lucky to be close to some of the most driven and creative people ever, and I’m picking up some of their habits to help me get through work every day. Here’s a bit of what I’ve learned:
- Remember why you’re there.
Maybe your benefits rock. Maybe your tuition will be reimbursed, or your meals are free. Or maybe your pay scale leaves a ton to be desired, but you’re learning a new programming language or adding a handful of amazing projects to your portfolio. Or maybe you’re just glad to pay rent without much strain. Whatever it is that brought you to that job in the first place, keep it in mind whenever you start telling yourself how much you dislike it.
- Don’t let work be your absolute foremost priority.
Yes, I know. You have a habit of eating, and you don’t want to stop doing it, and your job is what allows you to continue eating. I understand. But if you hate your, it doesn’t make any sense to allow it to take up the biggest chunk of your time, effort, and headspace. Don’t bring it home with you. Don’t allow your job to eat into whatever you’re doing, thinking, or consuming outside your obligatory forty hours a week. Remember that your job is a means to an end [see above], not the end itself.
- Find a way to do what you want to do outside of work hours.
Even if it’s not paid or prestigious, stay in the habit of being creative. It can be so easy to let your piano gather dust every night, or not to open the novel you’re working on for weeks on end, or put off finishing that poster design project, but don’t do it. Because if you do, before long you’re going to be lying when you call yourself a designer or a musician or a writer.
- Seize control of wasted time during the workday, and use it to do what you want.
This is my favorite thing ever. Between answering phones and writing up reports at warp speed, I’m sketching fashion figures in the margins of my TPS Reports and knitting under my desk, wandering the neighborhood during my lunch hour to shoot pictures of the awesome architecture for which Cincinnati is best known, and writing out blog posts in longhand. One of my best friends spends his downtime at a web design firm learning the rudiments of 3-D modeling so he can use them in his video installation projects and writing letters to galleries where he hopes to have shows. Do this. Do this every day.
- Give yourself a deadline for moving on, and make it happen.
This means being an adult about your finances and making sure that you have savings to weather whatever downtime you might have between gigs. It means staying in and working on your portfolio at night instead of going out with your coworkers. It means not getting sidetracked by any guilt-based or fear-based reasons you might want to stay just a little bit longer. It means promoting yourself and your creative work and taking your career seriously, not just being a dilettante with a tedious habit you half-ass your way through. Stop making excuses and just do it. Because if your job is unfulfilling, you’re never going to grow to like it. So why don’t you do something you love instead?
Do you guys like your jobs? If not, how are you handling it?