An Update on UMG Watermarks

April 2020 Update: Most UMG tracks are now watermark-free on Spotify.  Today, years after first complaining about Spotify sound quality issues, I'm happy to report this problem is fading out. It appears that watermarks are gradually disappearing from the Universal catalog. The following tracks have undergone a marked improvement, first noticed in mid-June 2019: Living […]

How to type emoji in one keystroke on a Mac

It's easy to create keyboard shortcuts on macOS without using 3rd party apps (like Karabiner) or Text Replacement (which doesn't work in Chrome). Here's how to do it. You'll need to edit this Key Binding dict: $ vi ~/Library/KeyBindings/DefaultKeyBinding.dict Here's my DefaultKeyBinding.dict as an example: { /* Remap Home/End to Windows-like behavior */ "\UF729" = […]

Unlock JavaScript Web Audio in Safari and Chrome

Update: This is now necessary for Chrome, too. You might see this message in the console: The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. It can be tricky to deal with Web Audio because browser vendors have measures in place to protect users […]

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 […]

Yamaha DX7 and MIDI in JavaScript

Check the demo or find the source at https://github.com/mmontag/dx7-synth-js. This Yamaha DX7 emulator is my attempt to do something cool with the Web Audio APIs. The synth responds to MIDI input (make sure your device is hooked up before you start your browser) including pitch bend, mod wheel, and aftertouch.  I've added the ability to pan the operators for […]

Thoughts on Rdio UX

Rdio was known for its clean design and elegant user interface. The attention to detail really made a difference in the product and it was one of my favorite parts of working there. Some years ago, I collected ideas for further improving Rdio's web UX in the following document. Many of the points are obsolete and were addressed […]

Watermark Listening Test Results

Over the holidays, I looked at the data from the watermark listening test. My hypothesis was that the watermark added by Universal Music Group is at least as audible as 128 kbps MP3 compression artifacts. The test results support the hypothesis for certain types of music. The most important takeaway is that the UMG watermark is an enormous […]

Enable Mac Volume Control for HDMI and DisplayPort Audio Devices

When you hook up an HDMI TV or DisplayPort monitor with built-in audio device, you might discover that you can't change the volume with the Mac software mixer any more. Volume buttons on your keyboard won't work. You're expected to use the TV remote or volume control on the device. Here's a trick to get […]