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 ปีที่แล้ว·194 comments

comments

chipweinberger
·2 ปีที่แล้ว·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 ปีที่แล้ว·discuss
made improvements. It's now about 12ms constant. Usable for real-time playback.
chipweinberger
·2 ปีที่แล้ว·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 ปีที่แล้ว·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 ปีที่แล้ว·discuss
agreed. We are on the same page with the UX.
chipweinberger
·2 ปีที่แล้ว·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 ปีที่แล้ว·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 ปีที่แล้ว·discuss
I will!
chipweinberger
·2 ปีที่แล้ว·discuss
Thats for V2!
chipweinberger
·2 ปีที่แล้ว·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 ปีที่แล้ว·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 ปีที่แล้ว·discuss
send me an email I'll add you to a list. [email protected]
chipweinberger
·2 ปีที่แล้ว·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 ปีที่แล้ว·discuss
I think its well under 1ms, but it's can't remember off-hand.

But definitely not humanly noticeable.
chipweinberger
·2 ปีที่แล้ว·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 ปีที่แล้ว·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 ปีที่แล้ว·discuss
for me, started by watching EEVBlog for a decade :)
chipweinberger
·2 ปีที่แล้ว·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 ปีที่แล้ว·discuss
noted! It's something I've thought about as well. Will probably add it!
chipweinberger
·2 ปีที่แล้ว·discuss
yes, exactly. Passthrough is the highest priority thread on the device, preempting anything else.