I'm on a 2012 MBP with similar experiences. Every year I think about finally replacing it, but hold off on it because everything still works fine apart from some increased fan noise and reduced battery capacity (which doesn't concern me too much). If you treat your laptop with care it really does last a long time.
At some point I expect I will stop getting MacOS updates which will force me to upgrade to a newer model.
It's basically a Pi, a buck regulator, a tiny COB USB audio interface and an SSD1306-based 128x32 display. Removed all connectors and replaced them with soldered wires so it packs neatly into a tiny box.
The software is all custom and written in C, using Jack for low latency audio and my own driver for the display (Adafruit makes a Python driver but it eats half of your CPU and is not optimized for i2c bandwidth or high framerates).
I built a guitar stomp box using a Raspberry Pi Zero to trigger samples with a foot switch. Runs on 9 volts and has a very bright OLED display so I can still see what it's doing when I'm playing in a dark venue.
Not really a trick of Vim itself, but when using Vim from the terminal I find ctrl-z very useful to background Vim, type in a few shell commands for git or whatever and then use "fg" to hop back into Vim.
Yes, that works. However, you would be facing the same problems. You can read out the pressure of a touch but the initial pressure is not the strongest since the finger is still in motion. Additionally, 3D touch is not supported on all devices.
Another interesting thing is that there are also private APIs for reading out the estimated finger size of a touch. This can give you even more information to determine the velocity from, as light touches are usually done with the fingertips.
The accuracy is a trade-off between latency and precision. The touch event arrives as soon as you touch the screen, but the actual force of your touch still needs a few milliseconds to actually put the device into motion. Waiting a little bit while collecting measurements gives you quite an accurate indication of the force used, but the increased latency makes it harder to play.
Sliders and knobs will be added in a future version. I wanted to put an MVP on the app store first before adding additional features.
I have been using React Native for a year now on a large project and came to the same conclusion. I find using Redux can quickly lead to over-engineered software.
As goes with every extra dependency: don't use it until you actually need it.
Most music is mixed not to have any useful spectral information below that frequency anyway. And if you want beat then a better thing you can do is look at the half-wave rectified difference between the sums of two FFT frames (with optional lowpass). This results in an onset graph that is the basis for a lot of real-time beat detection algorithms.
Pretty boring if it's just FFT based. I'd love to see music visualizations make use of more sophisticated musical feature detection, like polyphonic note recognition or tempo/rhythm analysis.
I wonder if it's possible to use some kind of translator, like Apple did with Rosetta to run PowerPC code on x86. This is of course not interesting for the Surface but it might be a nice solution for a desktop transition to ARM.