Good Vibrations in Stereo

October 19, 2012 under Audio Theory, DSP, Recording, Spatialization

Derry Fitzgerald at the Audio Research Group, Dublin Institute of Technology appeared on the John Murray Show on RTE Radio to talk about up-mixing ‘Good Vibrations’  into Stereo.

We marked 50 years since the Beatles’s first single ‘Love Me Do’ last week, also in 1962 a new band called the Beach Boys were starting out on the other side of the Atlantic, hits included Good Virbations, Surfin USA, I Get Around, Help Me Rhonda & Californian Girls. In studio with John this morning is Derry Fitzgerald, who has created a remix of Good Vibrations, which features on the band’s Smiley Smile album.

The technique used to extract the various musical parts is discussed in his paper “UPMIXING FROM MONO – A SOURCE SEPARATION APPROACH”.

You can listen to the interview here.

MUSA – Automated Music Harmonizer

September 17, 2012 under Software

Here is a neat video example of an automated harmonizer, creating a 4-voice harmony to accompany the soprano voice.

 

This project is a musical harmonizer that uses an Expert System and a Machine Learning Instance Based System.

The input is a musicXML file that contains the soprano voice. The system generates a full 4 voices harmony and modifies them using examples of a dataset from 400 music scores.

 

Are You Satisfied - Incredibox.com

Incredibox

August 27, 2012 under Software

Incredibox is a fun beatbox web app with a neat drag and drop interface you can use to create your own compositions using a toolbox of preset sounds.

Between creation and entertainment, Incredibox invites you to become the conductor of a group of human beatbox. The application allows everyone to express its musicality through a fun and easy to use interface, and to share original compositions to friends!

Incredibox is an original idea created by the graphic design & mixed media studio So Far So Good. The first version of the site, launched in august 2009, was rewarded, upon its release, with a FWA (Favourite Website Awards), a reference in web innovation.

You can choose from a number of presets including beats, effects, melodies and voices and arrange them into your composition, which you can record and share. The interface features some lackadaisical looking characters who perform the chosen preset when  you drag it from the toolbar onto their character.

The composition workspace

It’s a fun application, good for a brief diversion. You can also listen to some previously recorded compositions that have been shared by others.

Why the World - Incredibox.com

Arduino for Music

August 13, 2012 under DSP, Hardware, Software, Tools

I recently picked up an Arduino Uno starter kit and am looking forward to getting to play around with some musical applications.

Arduino is an open source embedded platform which is ideal for beginners and hobbyists as it is cheap and relatively easy to use hardware and software.

Arduino can sense the environment by receiving input from a variety of sensors and can affect its surroundings by controlling lights, motors, and other actuators. The microcontroller on the board is programmed using the Arduino programming language (based on Wiring) and the Arduino development environment (based on Processing). Arduino projects can be stand-alone or they can communicate with software running on a computer (e.g. Flash, Processing, MaxMSP).

As it’s relatively lightweight, Arduino isn’t appropriate for most realtime musical processing or DSP programming (although it is possible), however as an interface or physical switch it is ideal (The Line 6 Tonecore DSP Development Kit looks like it may be a good candidate for more advanced realtime processing for making your own stompboxes). The microcontroller is the Atmel ATMega358 and is programmed using the Arduino Programming language, which is a variation of the C programming language – the most common programming language for embedded systems worldwide (I highly recommend “Programming  Embedded Systems” by Michael Barr and Anthony Massa for a more in-depth introduction to embedded programming using C)

From the FAQ:

Can I program the Arduino board in C?

In fact, you already are; the Arduino language is merely a set of C/C++ functions that can be called from your code. Your sketch undergoes minor changes (e.g. automatic generation of function prototypes) and then is passed directly to a C/C++ compiler (avr-g++). All standard C and C++ constructs supported by avr-g++ should work in Arduino. For more details, see the page on the Arduino build process.

The Arduino Blog has some interesting applications and projects from the community. It can be browsed by category and the music tag has some nice projects featured, such as a Theremin, a Chess Sequencer, and – my favorite -  “Moppy” – a musical floppy controller!

 

Digital Room Equalization

July 7, 2012 under DSP

Those of us that have set up a PA system for a gig (or watched on as another engineer did the same) are probably familiar with the principle of equalizing the room. The basic principle is to use a graphic equalizer to adjust the output of the PA to counteract the notches and boosts in the various frequencies due to the size and shape of the room.

 

 

Of course we can also accomplish this in digital audio, however the process is not quite as straightforward as we might expect. One of the main issues with using a digital system, which creates a filter to invert the impulse response is that such a system will only be valid for the specific measurement point. Move even a few millimeters and the ‘corrected’ audio may sound worse. A more balanced approach is therefore required, which will sound ‘better’ at more locations in the room, despite being less correct at the measurement point. Michael Gerzon’s 1991 paper discusses in detail  digital room correction.

Algorithmic Composition Helpers

May 30, 2012 under Software, Tools

This seems to be a good week for LISP-based algorithmic composition software.

Slippery Chicken comes from Michael Edwards and Sean Reed of the University of Edinburgh.

An open-source, specialised algorithmic composition programme written in the general programming language Common Lisp and its object-oriented extension, CLOS, “slippery chicken” has been in development since 2000. By specialised as opposed to generalised, it is meant that the software was originally tailor-made to encapsulate the author’s personal composition techniques and to suit his own compositional needs and goals. As the software has developed however, many general-purpose algorithmic composition tools have been programmed that should be useful to a range of composers. The system does not produce music of any particular aesthetic strain; for example, although not programmed to generate tonal music the system is quite capable of producing it. Furthermore, the software’s release as open-source, object-oriented Common Lisp code encourages further development and extensions on the part of the user.

Visiting Stanford this week was Mika Kuuskankare to present PWGL.

PWGL is a free cross-platform visual language based on Common Lisp, CLOS and OpenGL, specialized in computer aided composition and sound synthesis. It is programmed using the Lispworks programming environment.

PWGL integrates several programming paradigms (functional, object-oriented, constraint-based) with high-level visual representation of data and it can be used to solve a wide range of musical problems. PWGL is based on many concepts and ideas that were originally developed for PatchWork (Laurson, Rueda, Duthen, Assayag, Agon) and thus credit should be given to numerous programmers, composers and researchers that were involved in this project. PWGL is developed at Sibelius Academy in Finland by a research team consisting of Mikael Laurson, Mika Kuuskankare, and Vesa Norilo. Recently the team has been augmented by Kilian Sprotte.

What to Consider to Improve Your Sound at Home

May 28, 2012 under Miscellaneous

I was recently asked where the biggest improvements can be made in sound quality at home (assuming you’re listening to high quality audio sources in the first place). My answer was – speakers, room and DACs. If you already have better than cheap computer speakers, treating the room may be the most important step in this chain, but generally modest improvements in the speakers will probably yield the highest return in sound quality.

Most people aren’t aware of how much their room shapes the sound that they’re listening to, but improvements in quality can be made relatively cheaply.

Digital to Analog Converters are probably the next step to consider in improvements to audio quality. The DAC converts all those 1′s and 0′s into an audio signal to send to your speakers. A cheap computer soundcard may add some noise to the final output, whereas an External DAC will probably provide a noticeable improvement.

(Bonus: How a 1-Bit aka Delta-Sigma Modulation DAC works)

 

comments: 0 »

Going ‘under the hood’ of FIR filters

May 6, 2012 under DSP

Here’s a useful article from EETimes.com on FIR filter design which uses some basic factorization to demonstrate how the filter works . The article’s author Kendall Castor-Perry takes us through a worked example of a 50Hz/60Hz hum (the bane of studio musician’s everywhere) rejection filter. You can also find Part 2 here.

comments: 0 » tags: , , ,

Autocorrelation for Tempo Estimation

April 26, 2012 under Audio Theory, DSP, Tools

Automatic tempo estimation is a useful tool for musicians for the purposes of transcription and also for audio researchers as we can use the tempo of a piece of music to inform other types of analysis such as pitch detection or chord detection. Since musically significant events such as chord changes tend to occur on the beat, knowing when the beats occur should provide greater accuracy in detection algorithms.

An incredibly useful tool in tempo estimation is the autocorrelation function. In signal processing cross-correlation is a method to estimate how similar two signals are. It is defined (in the discrete case) as

cross-correlation definition

f* is the complex conjugate of f. In practice, cross-correlation is very similar to convolution since we are working with audio signals, f will always be real and therefore f* = f.

Auto-correlation therefore is a cross-correlation of a signal with itself at a given lag or delay. By carrying out the auto-correlation of a signal we can identify at what lag the signal is most similar to itself. For most periodic music with a strong beat, the highest correlation will occur on the beat and we can therefore perform a quick calculation to convert the lag index (number of samples delayed) of the greatest correlation to a bpm value. This value is simply the reciprocal of the lag index divided by the sampling frequency with the result multiplied by 60 i.e.

Tempo = Fs x 60 / Lag_index

As an illustration I did an autocorrelation of a couple of seconds of an audio track – I used “Molly’s Chambers” again – which you can see below.

Autocorrelation Function of Audio SampleThe highest correlation will naturally occur at index 0 since we are cross-correlating identical signals they will line up perfectly. We look for a strong correlation away from the origin, in this case we have a good candidate at approximately index 36560. Plugging this value into the formula gives us a bpm of 72.37. According to BPMdatabase.com, “Mollys Chambers” has a tempo of 146 which seems about right to me. So our crude example gave us a result which is just about half the actual tempo of the song without any pre-processing carried out on the audio.

In reality there is a lot of pre-processing being done to the signal before the auto-correlation is carried out. Typical processing includes running the audio through a filter-bank and processing the sub-bands seperately (this helps to isolate the bass drum or the high hats), envelope tracking to smooth the signal, down-sampling to reduce the computational load and other more advanced filtering to create a detection function that will show a stronger correlation on the beat.

(Unrelated to everything above but I still tend to  think of this comic everytime I hear the word correlation)

XKCD.com - Correlation

“It Gives Me The Feeling of Love…”

April 10, 2012 under Miscellaneous

Wonderful video of a long term nursing home resident (Henry suffers from an unspecified degenerative condition) who opens up when he hears his favourite music. While some research suggests a calming effect of music to increase autobiographical recall in Alzheimer’s patients, what we see in the video is probably more closely related to the reminiscence bump, an interesting phenomena which says that the brain is optimized for storing memories from when we’re young (peaking between 16-20 years old).

 

 

(via Kottke.org)