HN user

adrianh

4,085 karma

Web developer from Chicago, living in Amsterdam. http://www.holovaty.com/

Co-creator of Django: http://www.djangoproject.com/

Working on Soundslice (interactive sheet music/tablature, "the Internet's finest music learning experience"): http://www.soundslice.com/

Founded EveryBlock (neighborhood news and discussion, now defunct)

Made http://www.chicagocrime.org/ (one of the original Google Maps mashups, now defunct)

Listen to my album of 10 original guitar tunes: https://www.holovaty.com/melodic-guitar-music/

And the follow-up EP: https://www.holovaty.com/layer-cake/

Guitar videos: http://youtube.com/adrianholovaty

Posts17
Comments284
View on HN
www.holovaty.com 1y ago

Adding a feature because ChatGPT incorrectly thinks it exists

adrianh
1299pts424
ianbicking.org 3y ago

Infinite AI Array

adrianh
588pts108
www.holovaty.com 3y ago

Thoughts on my first machine learning project

adrianh
3pts0
www.youtube.com 10y ago

Show HN: My first offline web app (interactive sheet music and audio and video)

adrianh
2pts0
www.soundslice.com 10y ago

Show HN: Soundslice Lessons, a marketplace for interactive video music lessons

adrianh
1pts0
www.soundslice.com 12y ago

Show HN: Soundslice v2 – Sheet music + guitar tab + real audio

adrianh
82pts12
bluesky.chicagotribune.com 12y ago

A founder appeals to Chicago to let go of Silicon Valley-sized dreams

adrianh
6pts0
www.holovaty.com 12y ago

Adrian and Jacob retiring as Django BDFLs

adrianh
265pts79
www.holovaty.com 12y ago

Google+ and YouTube tech disaster report

adrianh
24pts12
www.holovaty.com 12y ago

How to redirect domains using Amazon Web Services

adrianh
1pts0
www.holovaty.com 12y ago

Adrian's guide to Chicago for DjangoCon 2013

adrianh
1pts0
www.holovaty.com 13y ago

How to make help microvideos for your website

adrianh
6pts1
www.holovaty.com 13y ago

Using HTML5 prerendering to speed up a multi-page registration process

adrianh
99pts27
www.holovaty.com 13y ago

Why I left Heroku, and notes on my new AWS setup

adrianh
404pts217
www.holovaty.com 13y ago

In defense of <canvas>

adrianh
294pts61
www.soundslice.com 13y ago

Show HN: Soundslice – YouTube + synced guitar tabs + HTML5

adrianh
492pts124
blog.everyblock.com 13y ago

Announcing EveryBlock’s new maps

adrianh
1pts0

Check out Soundslice for exactly this. It's great audio/video playback (with slowdown, looping, etc.), with an integrated tab and sheet music editor. So you can write down what you've figured out, and it remains synced with the original audio.

Soundslice lets you start with a real recording (MP3 or YouTube) and integrates the audio/video playback directly with a tab/notation editor.

So as you play the audio (with slowdown, looping, etc.), you can immediately write down what you figured out, and that written notation stays synced with the original recording. This workflow for transcription is fantastic, because otherwise you're juggling multiple apps (audio playback/slowdown, plus notation software).

Since you asked about MuseScore: MuseScore is purely scoring software, without the ability to sync with real audio. You can also use Soundslice as a pure sheet music editor; the main difference is it's web-based as opposed to being a desktop app like MuseScore. Soundslice also has the philosophy that the music might always be displayed on different devices, so it's engraved on the fly depending on your screen dimensions. (MuseScore sort of assumes the end result will be a fixed-dimension such as paper.)

I'm curious how it works for videos that contain moving tab (as in, the playhead stays in the center while the tab moves behind it). Seems like that sort of tab wouldn't work with this approach...?

Kudos from one of the Soundslice guys — we've been making web-based tab and sheet music stuff since 2012. :)

I took Dave’s “Write a compiler” course several years ago, and it was mind-blowing in the absolute best sense of the term. What a great teacher and person.

Programmers are worse off for his retirement, but (given his career change) Chicago-area high school kids are in for a real treat.

I also make instrumental music, and I have this same problem. What I do is: find a word or phrase that matches the rhythmic phrasing of my main melody. That becomes the working title.

An example is how Paul McCartney’s original title for “Yesterday” was “Scrambled Eggs,” since those words fit naturally over the start of the melody.

I'm a very happy Google Closure Compiler user, especially with the "advanced optimizations" flag. It does a level of code elimination and variable renaming at a level that no other JavaScript tool even approaches. Excellent software.

I think it gets a bad rap because you need to write your code in a certain way to avoid the optimizations breaking things. But if you're a disciplined developer, you'll reap some large benefits.

I've been working on it full-time since 2012, so it's hard for me to reduce 14 years' worth of work to a single "most difficult technical step."

Sorry, I don't mean to be rude or unhelpful, but that's not a question I can provide a meaningful answer to. There have been dozens, probably hundreds, of difficult technical challenges in building Soundslice.

I’ve transcribed hundreds of hours of guitar music over 25+ years, using the method described in this article. It was such a slog that I ended up creating tool to help streamline the process: Soundslice (https://www.soundslice.com/).

It combines audio playback directly with a tab editor, so that you can immediately write down what you’ve figured out and your transcription stays in sync with the original audio. This makes transcribing incredibly fast and (importantly) accurate.

It’s got audio slowdown, precise looping, “synth overlay” (playback of the transcription and original audio at the same time, to spot errors), auto stem separation and a full-featured tab/notation editor with support for hundreds of notations.

When you’re done, you get a very useful artifact: a synced transcription, effectively a bespoke practice environment for that piece of music.

Over the years, Soundslice has expanded into a lot more than a pure transcription tool, but lots of people still use it for its original intended purpose. (It supports any instrument that uses western music notation, not just guitar.) If you’re at all interested in transcribing music, give it a shot.

Hi, I make that site! We don't have any "basic effects like normalization/compression," so I think you may be mistaking us for something else?

Soundslice is oriented around sheet music that's synced with audio. So while we have a few audio-processing features (basic cropping, slowdown and fine-grained pitch correction), that stuff is all secondary to the notation aspect.

This contains a lot of advice about good writing in general. Ironically I’d recommend it to humans as well as AIs.

GPT-5 12 months ago

Interpreting sheet music images is very complex, and I’m not surprised general-purpose LLMs totally fail at it. It’s orders of magnitude harder than text OCR, due to the two-dimensional-ness.

For much better results, use a custom trained model like the one at Soundslice: https://www.soundslice.com/sheet-music-scanner/

I've been using the Django ORM for 20 years, and it has yet to get annoying. What's your definition of "quickly" — perhaps 25 years?

Just a quick plug: check out Soundslice. It's interactive sheet music with a ton of learning tools built in, including easy navigation, looping, tempo changing and transposition.

We've also got a scanning feature that does OCR for sheet music, to get music into our system. Plus there's a full-featured notation editor. A good overview is at https://www.soundslice.com/features/

Hi, I'm one of the creators of Django. For what it's worth, here's what I do for my product Soundslice (https://www.soundslice.com/). I've been working on it full-time for 12 years, so a lot of thought has gone into this.

Soundslice is very complex in its front-end JavaScript. It has an entire sheet-music rendering engine, capable of "responsive" sheet music [1], plus an integrated audio/video player for music practice, a full-fledged sheet music/tab editor [2] and a ton more [3].

In short: we don't use any JS frameworks. It's just vanilla JS — and in this day and age, that is totally fine for building a quality product.

We're disciplined in how the JS logic is structured, trying to find the right abstractions for the concepts of our app, and we use native JS/DOM APIs (which are full-featured these days).

Every web page on our site is served by Django — in other words, there's no single-page-app stuff. I've always found the idea of single-page apps to be "against the grain": it goes against how web browsers are optimized, and it goes against how HTTP/HTML were designed. Plus it adds a ton of complexity that mainly benefits the maintainers of front-end JS frameworks (it gives them power over you).

I think an entire generation of web developers has been misled into assuming JS frameworks are table stakes for building high-quality web apps — and that is 100% wrong.

The time-tested pattern of "serve the initial HTML (with Django or whatever), then add functionality with JavaScript" is solid and helps you build high-quality, maintainable websites.

On a meta note: for years I've sat on the sidelines and rolled my eyes at the frontend JS world, knowing it doesn't affect me or my product. But I've come to realize all web developers — including those who don't choose to use frontend frameworks — do indeed have a vested interest in pushing back against the bullshit. That's because the JS frameworks are making the web crappier, and that affects us all by giving the web a worse reputation. Sites load slower, UI is weird/buggy/non-standard, and the culture perpetuates (meaning it's harder to find developers who know "actual" JS instead of frameworks).

[1] https://www.soundslice.com/help/en/player/basic/100/resizing...

[2] https://www.soundslice.com/notation-editor/

[3] https://www.soundslice.com/features/

I'd call this a California thing — or, more broadly, a behavior by people who want to align themselves culturally with Silicon Valley.

Work with some Chicagoans (or Midwesterners in general) and you'll get a lot less BS.

Obviously this is painting with broad strokes, as different types of people live everywhere.

We do indeed generate vector PDFs, not embedded bitmaps.

Our graphics engine works with Canvas API instructions — like "draw a line from point (A,B) to (C,D)." This API is small enough and low-level enough that it can also generate pristine vector output.

That's in fact one of the features of Skia Canvas (vector output in PDF and SVG).

At Soundslice, we have a custom sheet-music-rendering graphics library in frontend JavaScript/Canvas.

We also need to generate vector PDFs serverside — so we use a node library that speaks the HTML Canvas API and can generate PDFs. This way the result is exactly the same as the rendered sheet music in the web browser. Nice!

The upshot is: this kind of library allows for code reuse in non-browser contexts.