Category: Development

Unlocking the Yamaha DSR-2000

I've been trying to reverse engineer the system exclusive voice dump format of the DSR-2000 keyboard. It is powered by the 4-operator Yamaha YM2414 OPZ chip, similar to the DX11, TX81Z, and a few others. The DSR-2000 is probably the most powerful FM keyboard Yamaha produced with the Portasound label (i.e., marketed to non-musicians), and […]

Hotkeys in Chip Player JS

List of super-secret keyboard shortcuts for Chip Player JS: Shortcut Action Media Keys Playback control is fully supported ← (Left Arrow) Seek backward 5 seconds ➔ (Right Arrow) Seek forward 5 seconds ␣ (Space bar) Toggle play/pause - (Minus) Decrease speed 10% = (Equals) Increase speed 10% Shift+- (Underscore) Decrease speed 1% Shift+= (Plus) Increase […]

A Phase-Aligned Oscilloscope for Web Audio

A music synthesizer should produce nice periodic waveforms when a note is played. We should be able to see that regularity when we visualize the sound pressure with an oscilloscope, here demonstrated with the Yamaha DX7 emulator: The Problem We can see the regularity, but hold on. The waveform is jumping around, flickering left and right. It doesn't […]

Generate Mac App Icons Photoshop Action

Creating App Icons in all the required sizes for a Mac app can get pretty tedious. Here is a Photoshop action to simplify the task: Download Mac App Icon actions for Photoshop CS6+ The first thing it does is to paste the clipboard contents into a square document — so it's designed for workflows where […]

Making Sausage: Fixing a Previous Git Commit

Let's say I'm six commits ahead of master on my work branch. I've sent out a review, and find out I need to fix something on the 3rd commit. This is my workflow for fixing up the previous git commit: Get to a clean state on the work branch. (git stash if needed) Make the […]

Shuffle Algorithms for Music

Update, March 7, 2014: Improved shuffling has been rolled out on Spotify. More details at the Spotify Labs post, How to Shuffle Songs. Lots of users complain that Spotify's shuffle algorithms aren't really random. This can best be explained by a cognitive bias called the clustering illusion. Users aren't wrong to complain, though. What people […]

OpenCV 2.1 and 2.3 with Visual Studio 2010 Quick Start

I am using OpenCV 2.1/2.3 with the newer C++ style OpenCV interface. There are a few tricky parts and changes that aren't mentioned in the cheatsheet. Hopefully the OpenCV documentation will continue to improve as it grows.  Anyway, here is a quick start guide that might help beginners out. Camera Capture in OpenCV 2.x #include […]

Speech Gender Conversion

Interesting gender conversion results... Barack Obama obama.wav obama_to_female.wav obama_to_child.wav Sarah Palin palin.wav palin_to_male.wav palin_to_female.wav Katie Couric couric.wav couric_to_male.wav Al Gore algore.wav algore_to_female.wav algore_to_child.wav Hip-Hop turnstiles.wav turnstiles_to_child.wav Details on the project page.