Top
Best
New

Posted by jmpman 1 day ago

Ask HN: Fable hacked my piano, can I release the results?

I have a self playing piano, using a system called PianoDisc Protigy. They have an online store which sells music for their system, from various modern artists along with classics such as Bach and Beethoven. Last night I saw they had released some music from Eric Satre, a 19th century French composer, which I bought. Curious if I could have just used AI to create these files, I began experimenting with Astra and Fable. Feeding the output of one into the other to critique. After an hour of LLM discussion of Rubato and fermata, solenoid response times and proper sustain pedal technique, they settled on their ultimate version of Gymnopedie No 1.

I then asked Fable to compare it to the open source version I'd downloaded from Mutopia, which it promptly ripped apart. No sustain, zero rubato, upside down balance.

Ok, what about the version I'd just bought?

The PianoDisc versions are mp3s encoded with the right channel carrying MIDI to be played on the piano, and the left channel containing any accompanying music to be played through attached speakers (who doesn't want the harmonica on Piano Man?)

I gave the mp3 to Fable, which promptly decoded the format, identifying the right channel carrying MIDI using a 2004.5 Hz square wave.

It then went on to analyze the nuance of pedal lift and melody relative to the chords.

Fable then asked if I wanted it to build an encoder to write my own MIDI files into the right channel of mp3s.

Sounds great, and I instructed it to write the encoder.

What it came back with was a python encoder PLUS a decoder.

In the verbose explanation, it mentioned decoy notes.

Curious, I asked it to explain the decoy notes.

Apparently PianoDisc adds obfuscation into their format which is handled properly by their decoder, but would leave naively extracted MIDI unplayable on other systems.

Fable created an encoder which adds those decoy notes, and a decoder which removes them.

Am I allowed to publish the decoder? The encoder?

182 points | 112 commentspage 5
dbgrman 6 hours ago|
Another option that works quite well is called FAFO. So, I'd say just publish it, and we'll see. Keep us posted!
toilet 5 hours ago||
Erik Satie
worthless-trash 8 hours ago||
You publish it as the organ-guy piano system for a virtual piano that you've lost the code for.

On a serious note: reverse engineering is legal in australia, even for DMCA violations.

rcgy 8 hours ago|
Would love for sources / prior case law around this? I'm Australian and involved in reverse engineering insulin pumps and CGMs, and we are constantly worried about getting our butts DMCA'd.
worthless-trash 7 hours ago||
Don't get me wrong, they absolutely can DMCA you if the hosting is in a foreign country iirc.

I was under the impression thr prescedant was:

Data Access Corporation v Powerflex Services Pty Ltd (1999), alongside specific provisions in the Copyright Act 1968.

The australian DMCA is called the TPM, it's more aimed at Bypassing, decrypt, or circumvent a digital lock or DRM (Digital Rights Management) protecting copyrighted material.

I do not think that phantom notes are encryption or rights management.

If you do your hosting in australia for your code/software, the US companies will probably have a bad time trying to convince the australian courts that access is the same as copyright infringement.

I'm not a lawyer, but i'll be damned if the 'vibe of it' shouldn't be a legal defense.

xyst 4 hours ago||
yea - just publish it
Veai 5 hours ago||
[dead]
sdoering 5 hours ago||
One caution regarding the suggestions to publish this anonymously: this Ask HN post has already linked the project to your existing HN account. Your public comment history contains enough self-disclosed geographic, professional, family, purchase and ownership details that identifying you would likely be fairly straightforward for a motivated investigator.

I won't enumerate those details here.

The AI provider may also have account, payment, IP and conversation records connecting the generated code to you. An unrelated GitHub account and disposable email would therefore provide only superficial pseudonymity, not meaningful anonymity.

If attribution would create a material legal risk, I would assume the project is already attributable. A civil plaintiff could potentially seek records through discovery, and law enforcement could use the appropriate legal process. Getting actual legal advice before publishing seems safer than trying to anonymize it after posting this thread.

tough 15 minutes ago|
I dunno why your post was dead, I vouched.

fwiw you can reach support/dang on the email on the footer if you need help w your personal account/data/on the site

tmpsvc2695f5 1 day ago||
[dead]
xgulfie 9 hours ago||
I'm your lawyer, you should do it
worthless-trash 8 hours ago|
why are you on hn, you are billing in 6 minute increments!
profsummergig 7 hours ago||
Should've asked Fable.
dmarinus 8 hours ago|
my experience with LLMs is that when you get answers to questions you didn't ask that it's repeating something that already exists. In other words, it probably regenerated a tool from which it was trained on.
pjerem 6 hours ago||
Sounds like your experience from LLMs dates back to 2022.
eru 6 hours ago|||
How do you know this? How would you falsify this hypothesis?
maplethorpe 4 hours ago||
You could train an LLM on a dataset that intentionally excludes certain data, and see if it is able to extrapolate outside of its dataset and come up with those excluded items independently.

For example, remove all code from your training data, and then see if the model can code regardless.

eru 4 hours ago||
Thanks for the elaboration. (Though I'm not sure dmarinus would agree with your criterion?)

> For example, remove all code from your training data, and then see if the model can code regardless.

Would you accept this weaker version: make up a new programming language (that's guaranteed not to be in the training set), and see if the model (which has trained on programming in existing languages) can cope?

huflungdung 8 hours ago||
[dead]