Archive for the 'Uncategorized' Category

SMUGMath is an open-source library (MIT License) that is designed for working with large vector data sets. Applications lie in signal processing and statistics, among many others.

The project is located on bitbucket at this URL: http://bitbucket.org/liscio/smugmath.

As of this writing, there is only a cursory feature set. The SMUGRealVector and SMUGComplexVector classes are defined, along with a handful of useful operations on either type. There are also some unit tests included, which should help explain the various operations, and allow further tests to be easily written.

SMUGMath’s strength lies in its flexibility. You can easily add highly-tuned numerical operations by creating categories on either class, using Apple’s Accelerate framework, OpenCL, Grand Central Dispach, or any combination of them, to suit your application.

In the coming weeks, SMUGMath will gain more core functionality relating to signal processing, and some documentation to highlight effective use of the framework. Follow the project on BitBucket to watch these developments as they happen.

If you’re anything like me, and you rely on Octave in your work, then not having a working copy can be very frustrating.

I stumbled on, not one, but two issues plaguing Octave in Snow Leopard.

First, it appears that installing Octave via macports is busted. Actually, you’ll get stuck while building gcc45. There’s already an open macports bug for this (see the huge list of open issues), so it’ll probably get solved soon. I don’t normally install Octave via macports, but when I got stuck installing packages I tried to install via this route.

Second, when you try installing packages from octave forge from within the pre-made Octave binary, the build fails with some messages about mismatched architectures. This is because GCC is defaulting to build x86_64, but Octave is built as i386 for the time being.

I typically prefer to use the pre-made binaries. It’s the quickest route to getting Octave up and running on your system, and installing packages is quite painless. So, I decided to hack around until I could determine a quick solution to the problem. Here’s my solution:

  1. Open /Applications/Octave.app/Contents/Resources/bin/mkoctfile /usr/local/bin/mkoctfile
  2. Change CFLAGS, FFLAGS, CPPFLAGS, CXXFLAGS, and LDFLAGS so that they all contain -arch i386. I put it at the beginning, so it looks like this:
  3. CFLAGS="-arch i386 -I${ROOT}/include[...]
    FFLAGS="-arch i386 -I${ROOT}/include[...]
    CPPFLAGS="-arch i386 -I${ROOT}/include[...]
    CXXFLAGS="-arch i386 -I${ROOT}/include[...]
    LDFLAGS="-arch i386 -L${ROOT}/lib[...]

I hope this helps someone. I’m pretty sure it’s not the correct way to solve the problem, but I just don’t have the time right now to figure out the proper solution, submit a patch, etc.

Update 20090924—Changed location of mkoctfile. On my main machine, it’s apparent that I still have some holdovers from when I was messing around with the macports version of Octave. While setting up my laptop with the Octave.app package, I found out where mkoctfile was supposed to live. Apologies for the error.

I’m happy to report that TapeDeck 1.2 is finally available. The main addition in this release is the ability to choose your recording and playback devices independently of the global System Preferences, which a lot of folks were asking for.

I also made a handful of small bug fixes, which will make TapeDeck even nicer to use. For you die-hard TapeDeck users, I’m sure you’ll appreciate all that’s improved. Here are the release notes:

New features:

  • You can now choose TapeDeck’s record and playback devices in the preferences.
  • Tapes may be deleted, copied to iTunes, etc. by right-clicking them in the tape box.
  • Right-clicking on the tape box header will allow you to reveal the tape library in the Finder.

Bugfixes:

  • When Marker Felt is disabled on the system (but, why?!), you can now edit tape labels. Also, it looks far less horrible.
  • When recording is paused, the ‘Pause’ status menu item reflects this.
  • QuickTime progress window now displays centered over the main TapeDeck window.
  • Sped up launch time when the tape library contains very large M4A files.
  • Sound is no longer played when fast-forwarding or rewinding tapes. (Cueing and reviewing is still audible, as it should be).
  • You can no longer choose stereo recording when a mono device is being used to record. This should eliminate “left channel only” recordings from being accidentally captured in the future.

Go to the TapeDeck site and download the update now!

Today I’m extremely happy to announce the availability of Capo 1.1. This new release adds the two most-requested features—exporting, and effects.

The exporting feature was very important to add, as it was the most requested. I heard from drummers, pianists, and other musicians who couldn’t move their instruments any closer to their computers, and vice versa. They wanted to get the slowed music and loops onto their iPods, and practice in a way that was more convenient to them.

Other musicians came looking for effects to help them isolate parts of the music they were trying to learn. For instance, some jazz learning material comes with the full band in one channel, and the band without a guitarist in the other channel. Capo now lets you slide the MONO effect all the way to one side, and hear just the part that you want, so you can easily switch between learning and playing along on these tracks.

In addition, users can make EQ changes to isolate only a section of the spectrum. For instance, isolating only the bass frequencies makes it easier to hear a bass line among many more instruments occupying higher frequencies.

And, finally, budding vocalists can use Capo to reduce the original voice in songs so that they can sing in place of their favorite artists, and create karaoke versions of their favorite tracks to put onto their iPod using the export feature. The vocal reduction range can be modified as the song is playing, so you can dial in the ideal setting for reducing the vocals in a particular song.

This release took a lot of work to complete, and I’m very proud of how it all turned out. In addition to launching the product update, I am also formally introducing the Capo Podcast series to the world. I’m aiming to produce a high-quality video series aimed at helping people to learn the ins and outs of learning music by ear, as well as some Capo-specific tips and tricks.

If you haven’t already, check out the new product site and download Capo 1.1.

I just finished posting my second podcast episode, which I filmed and edited today: Check out the HD video on YouTube.

I don’t expect that I’ll be sustaining this rate of taping and posting, but since I’ve already prepared material for a few episodes, and I’m trying to find my way around all this new equipment, I might have a handful ready shortly, with a little break until the next batch.

If you have any questions about the videos, send me an email and I’ll try to address them via email or in a future video.