HackerTrans
TopNewTrendsCommentsPastAskShowJobs

chipweinberger

no profile record

Submissions

Show HN: I made a tiny device for automatically recording digital pianos

jamcorder.com
590 points·by chipweinberger·2 tahun yang lalu·194 comments

comments

chipweinberger
·2 tahun yang lalu·discuss
Yes you can do that.

Buy a standard midi to usb adapter (~$20), then do:

piano -> (usb) -> Jamcorder -> (midi out) -> adapter -> (usb) -> pc

It should give acceptable latency for real-time recording.
chipweinberger
·2 tahun yang lalu·discuss
made improvements. It's now about 12ms constant. Usable for real-time playback.
chipweinberger
·2 tahun yang lalu·discuss
So I took measurments - it's not as great as memory served.

In order to get accurate timestamps, processing midi IN takes priority over OUT.

So OUT can vary in latency between 5ms and 60ms. An unfortunate amount.

Improvements can be made here. I'd recommend a splitter if you need low latency.
chipweinberger
·2 tahun yang lalu·discuss
so glad to hear it! you're the first to report back!

btw check out http://reddit.com/r/jamcorder for ongoing discussions.
chipweinberger
·2 tahun yang lalu·discuss
agreed. We are on the same page with the UX.
chipweinberger
·2 tahun yang lalu·discuss
Wow that is the first hardware product I have heard with this feature.

Up until now I've only known of some DAWs & custom raspberry-pi like solutions.

Though the Fantom X6, you have to push 'record' afterwards. Still cool, though!

Thanks for sharing!
chipweinberger
·2 tahun yang lalu·discuss
yes sysex is recorded too!

thanks for your thoughts, I'll add midi out playback :)

and yes, head deep in midi knowledge by now but that is a good point about hanging notes.
chipweinberger
·2 tahun yang lalu·discuss
I will!
chipweinberger
·2 tahun yang lalu·discuss
Thats for V2!
chipweinberger
·2 tahun yang lalu·discuss
Correct, it has midi thru. I call it 'midi out', since it's technically flexible how it could be used, pending firmware updates.

All midi messages are captured, on all 16 channels.
chipweinberger
·2 tahun yang lalu·discuss
Very custom. By now there is are good USB-MIDI examples and Espressif USB support has come a long way in the past couple years.

modern ESP-IDF: https://github.com/espressif/esp-idf/pull/12566

versus 3 years ago: https://github.com/chipweinberger/xesp-usbh
chipweinberger
·2 tahun yang lalu·discuss
send me an email I'll add you to a list. [email protected]
chipweinberger
·2 tahun yang lalu·discuss
Appreciate your thoughts.

> I am not sure if it will work in 10 years.

This was a big concern of mine too. That's why as much of Jamcorder as possible is open standards.

There is also a local web interface, http://jamcorder.local, that is fully extensible by the user. And the BLE and Wifi APIs are not locked down. You can implement your own app.

The biggest limiting factor IMO, are Wifi and BLE still going to be in common use in 30 years? That's hard to predict. But the SD card will still be there. Its a tough problem.

I think that's about as good as you can do, short of putting a screen on it.

----

There's even a feature identical UART interface for the device. Surely that will still work in 30 years.
chipweinberger
·2 tahun yang lalu·discuss
I think its well under 1ms, but it's can't remember off-hand.

But definitely not humanly noticeable.
chipweinberger
·2 tahun yang lalu·discuss
The octave is configurable :)

And if you choose, you can make it slightly harder to invoke by requiring an additional 'function' note to be held down.

I haven't felt need for a bookmark button in the app yet, but it did cross my mind.
chipweinberger
·2 tahun yang lalu·discuss
It was a workaround for a crash: https://github.com/espressif/esp-idf/issues/8702

In theory it should be fixable now.
chipweinberger
·2 tahun yang lalu·discuss
for me, started by watching EEVBlog for a decade :)
chipweinberger
·2 tahun yang lalu·discuss
I'm with you. That was the main motivation for also having the local web interface.

i.e. http://jamcorder.local

It also has an open API, that's pretty simple. So you could integrate it into other apps or open source software.
chipweinberger
·2 tahun yang lalu·discuss
noted! It's something I've thought about as well. Will probably add it!
chipweinberger
·2 tahun yang lalu·discuss
yes, exactly. Passthrough is the highest priority thread on the device, preempting anything else.