HowTo: projectM visualization + mp3 = video for YouTube

projectM (or its Windows-only predecessor, Milkdrop) can be used to make interesting visualizations for your music. Want to put your music on YouTube? You need to supply a video to accompany it. A projectM visualization makes an interesting and relatively easy accompaniment — far better than the typical static “picture of a CD cover” that most bands use:

This HowTo tells you what software you need and how to do it on your Mac.

Recording projectM Videos to Disk

  1. Install Jack OS X. Jack is an audio routing program — it allows you to connect the inputs and outputs of different programs together as you like. We’ll be using it to connect iTunes’ output (that is, our song) to projectM’s input (as well as playing it over the speakers.)
  2. Install projectM. There are many different precompiled versions available on the projectM download page. We want the latest build of projectm-jackosx.
  3. Install ScreenFlow or other screen capture software. I personally like the rudimentary video editor included with ScreenFlow for preparing my movies as it saves the trouble of having to run a separate video editor, and is perfectly adequate for the relatively simple editing task at hand. Many people like Screenium, too. Use whatever you prefer.
  4. Start the JackPilot app. This is the audio routing utility included with Jack OS X, where you actually specify which applications’ sound output should be routed to others’ input. Click “Start” to activate Jack. Then click the “Routing” button to bring up the “Connections Manager,” Jack’s routing table.
  5. Change the default sound output to “JackRouter”. Since iTunes doesn’t allow you to specify which audio device to use as its output, you will need to go into System Preferences -> Sound and change the systemwide default sound output to “JackRouter”. When you do this, a new item called iTunes should appear in the “Send Ports” list in JackPilot’s Connections Manager, as illustrated to the right.

    Jack's Connections Manager, showing that iTunes is routed to the system output (i.e. the speakers or headphones.)Connections Manager represents its connection information in a rather counterintuitive way, but it’s fairly straightforward once you understand what’s going on. At any time, there is one “focused” device whose connection information is shown in the GUI. It might be in either the Send or Receive column. The focused device has white text on a blue background. It’s “system” in the Receive column in the screenshot to the right. “System” devices are the built-in microphone and speaker/headphone connections.

    Devices of the opposite polarity that are connected to that device are printed in red text. All connections of the focused device (the one highlighted in blue) are also redundantly shown in the “Connections” column on the far right. In this case, we can see that iTunes, in the Send column, is connected to system. The effect here is that any sound sent (played by) iTunes is routed to the system device, which plays it over the speakers or headphones. If you focus on “iTunes” by clicking it in the Send column, the display reverses; iTunes is highlighted in blue and system is printed in red and displayed in the “Connections” column.

  6. Start projectM. The Mac build is a bit flaky here. Launching it from Finder has never worked well for me. I start it directly from a terminal window with /Applications/projectM-jack.app/Contents/MacOs/projectM-jack. This allows me to see any error messages rather than sending them to the black hole.

    At this point, you should get a visualization window that is visualizing whatever music you’re playing in iTunes. If it doesn’t respond to the music, check your JackPilot Connections Manager to make sure it looks like the screenshot.

  7. Set projectM’s settings as you like. Different visualizations blend better with different types of music. Experiment with the playlist and see what works for your tune. I like to use Ctrl-L, lock to preset, to prevent random switching and switch manually during the performance.

    The projectM user interface is not exactly Mac-friendly. Viewing the hotkey list from the help menu blocks all user input, meaning that you have to close the hotkey list before you can actually use any of the hotkeys. Several hotkeys, such as Ctrl-E (open preset editor) and Ctrl-B (Show/hide menu and status bar) don’t seem to do anything on my computer. For our purposes, the most interesting are:

    • Ctrl-B: disable status bar. Be sure to do this before recording, or you’ll lose screen real estate to a white strip with the names of the presets you play.
    • Ctrl-L: lock/unlock active preset
    • Ctrl-N, Ctrl-P: next/previous preset
    • Ctrl-R: random preset
    • Ctrl-F: fullscreen mode
    • Ctrl-M: Show playlist (called “menu display” in projectM, for some reason)

    Be careful with the playlist. Pressing the third button along the top clears the entire playlist, and it’s really annoying to rebuild it by hand.

  8. When you’re happy with your visualization choices, start a screen capture. I don’t record audio with the screen grab; I add it back in afterwards from the original lossless file. This avoids audio degradation that would occur by re-capturing the analog signal and digitizing it again via Jack.
  9. Edit your video as necessary. You might want to trim the video to only show the active projectM window, if not running in fullscreen mode, and if you didn’t capture audio with the video you’ll want to add audio, of course.
  10. Export and upload to YouTube! They prefer H.264 1280×720 or 640×480 video with MP3 or AAC audio.

Check out my YouTube channel for more of my music and visualizations.

3 Responses to HowTo: projectM visualization + mp3 = video for YouTube

  1. OS X 10.6.6 – 01/13/2011
    JackOSX 0.87 64-32 bits
    projectM-JackOSX-1.2-alpha4-2

    Thank you for the clear instructions. However I have a few issues which made me abandon this project (I wanted to be able to visualize Grooveshark music)

    #1 I use BassJump subwoofer and that is already an output device I need to select. So in theory I have the choice between shitty sound w/ visualizer or great sound w/o visualizer

    #2 The projectM-JackOSX seems very outdated (may 2008) and crashes instantly on OS X 10.6.6.

    Perhaps this info is of some use to someone in the future.

  2. I appears the developer has stop developing most of the version for it. He did recently brought out a IOs and Andriod version. So there may be hope yet.