Hi everyone. I'd like to introduce you to a side project I've been working on for a little while now.
FATpick (https://www.fatpick.com/) is a practice tool for guitar (and bass) that helps you learn to play new songs, improve your skills and stay motivated to keep playing. It's an auto-scrolling tablature viewer, synchronized with backing tracks, that listens as you play along with any guitar, providing immediate feedback on your accuracy and timing.
FATpick will eventually be much more than that - there are a lot of directions to take this in - but even with this more modest scope this M(+)VP release is useful, cohesive and hopefully compelling in and of itself.
A couple of things that might be interesting to HN: (1) So far this has been a bootstrapped, solo effort; but it won't necessarily stay that way. (2) The current Windows and Mac apps are built with Electron; but they won't necessarily stay that way either. I'd be happy to discuss any of that if you are interested.
I spent a while trying to figure out if this was free (not just to download, but to use fully) or would require some kind of paid account. Maybe you could make that clearer?
To clarify: it is totally free to download and use right now and will continue to be for at least several months. Eventually payment will be required, probably in the form of a subscription plan.
If your business model is a subscription plan, you're putting yourself in a market with established competitors that have much higher quality (right now) software and content.
You really oughta do the math, consider how many subscribers you might be able to attain and how much to charge and whether that makes your ends meet.
You've probably already considered the licensing fees of the sheet music and/or background audio. Just getting into a discussion with the copyright holders is going to be an uphill battle when you're not the first mover in the field.
All the best to your project, I might give it a try later.
Please reconsider this. If this is a local app, then I see no reason for adopting a subscription plan.
I am interested, but right now guitar is a hobby I can afford only a couple of times a week. Paying a subscription would have a different impact on, who like me, is an occasional player.
Otherwise I can stick with Guitar Pro for eternity.
I do all my graphics editing with a Fireworks CS4, bought ten years back. I use it rarely, so the one time payment worked wonders. In almost every way I prefer apps that I completely own - especially if it's locally installed. And I'd be willing to pay a higher price upfront if there was such an option.
Note: I am not saying that your annual plan would be overpriced or unaffordable.
Being able to leverage WebAudio was a major factor in the decision to use Electron.
To be honest at first I was thinking of Electron/WebAudio as a prototyping tool that I would only use for a proof-of-concept, but I've been pleasantly surprised by its performance and capabilities. So far I haven't found a compelling reason to change. When you don't need to worry about cross-browser compatibility the modern HTML5 toolset is really pretty powerful.
Awesome, thanks! I’ve seen proof-of-concept pitch detection in webaudio but it’s great to learn it’s production-worthy, not just a demo. I’ll try fatpick (love the name, btw) when I get to a guitar and report back.
Also curious what did you use for painting the tabs. DIY in Canvas? Or vexflow?
Btw there’s a nice talk from Adrian Holovaty on perf challenges with soundslice and its drawing/updating of notation (standard and tabs)
The graphics are directly rendered on an HTML Canvas. It took a little bit of optimization (and a performance-conscious design to begin with) to get there but it seems to consistently get 60 FPS even with all of the graphics, audio streaming and signal processing.
Actually the graphics are the easy part, the bulk of the time in the "inner loop" is in the audio analysis. Not to give away any secret sauce but in my experience naively using `AnalyserNode.getFloatFrequencyData` does not provide adequate performance or even accuracy when under "noisy" conditions. FATpick uses a "proprietary" (custom) pitch detection algorithm, but, other than a few domain-specific insights maybe, there's nothing particularly groundbreaking about it -- it's doing the same kind of things you'll find in academic literature on the topic, just judiciously selected and tuned by endless (and ongoing) lab-testing.
Lol, I've never even seen at VexFlow before, or if I have I've forgotten about it.
But from a quick scan I think FATpick's tablature view is a little different what VexFlow does. FATpick's view is like a "piano-roll" - the x-axis maps directly to time such that the notes scroll from right to left at a constant rate, with the width of each "bubble" directly corresponding to the duration of that note. VexFlow does "traditional" tablature (and stave) notation, like the sheet music most people are familiar with, in which all notes are more-or-less the same width on the score, independent of duration.
That said, adding conventional (stave) notation to the player view (instead of or in addition to tabs) is on the roadmap, and VexFlow seems like it be very useful for that.
I think stave+tab would be ideal. What little guitar I've picked up has actually been stave notation, but I've got a lot of missing chords in my knowledge base- having the tab right there by the notes/chords would help me master new chords...
That's also on the roadmap. Right now FATpick renders chords just like any other set of notes in tablature, which is less than ideal once you have much experience with playing chords at all.
Mostly the opportunity cost relative to other things to spend time on. But you're right. It should just work on Linux too.
There may be some platform-specific quirks to work out, but you are not the first person to ask for this. If you contact me at rod@<the domain above> or via the form on the website I would be happy to hook you up with a Linux build to try out.
If nothing else I could probably offer a not-officially-supported Linux version if enough people are interested in that.
You talk about "community"is there likely to be any messaging between users? This would be great for my nephew (12) but his parents obviously aren't keen on him getting any internet messaging.
At this stage there is no meaningful interaction between users at all, aside from being able to see songs that other users have shared (after a manual curation/moderation step), and even those are anonymous.
Obviously there are some "social" features that are planned. Messaging might be one of them, but it's certainly not at the top of the list.
When the time comes it might make sense to allow users (account holders) to disable that feature, maybe as part of a family plan, but for now I don't want to encourage minors to sign up. In fact it violates the ToS. Not that I have any particular issues with it nor that I expect any problems with inappropriate content, but for liability reasons regardless.
cool stuff - i used to play guitar a lot and used powertab and guitar pro, but in both there is no feedback, this sounds super nice to me, even though admittedly these days I won't get around to testing it for you anymore as i don't have a guitar anymore.
I see you have an import for popular tab formats. not sure whats popular, perhaps others share that sentiment. Would this include things from for example powertab / guitar pro to be imported?
Currently you can import GuitarPro (gp3, gp4, gp5) files directly.
You can use free software like TuxGuitar to easily convert other formats to GuitarPro, but for now that's something you would need to do manually before importing into FATpick.
Actually there is a generated username that you can change from your user profile page that also works, but you should be able to log in using your email address (and password).
FATpick (https://www.fatpick.com/) is a practice tool for guitar (and bass) that helps you learn to play new songs, improve your skills and stay motivated to keep playing. It's an auto-scrolling tablature viewer, synchronized with backing tracks, that listens as you play along with any guitar, providing immediate feedback on your accuracy and timing.
FATpick will eventually be much more than that - there are a lot of directions to take this in - but even with this more modest scope this M(+)VP release is useful, cohesive and hopefully compelling in and of itself.
A couple of things that might be interesting to HN: (1) So far this has been a bootstrapped, solo effort; but it won't necessarily stay that way. (2) The current Windows and Mac apps are built with Electron; but they won't necessarily stay that way either. I'd be happy to discuss any of that if you are interested.
A direct link to the downloads page is here: https://www.fatpick.com/support/downloads#get-fatpick
You can find a brief (and silent) video of the app in action on either of the pages linked above.
I'd love your feedback on any part of this, but I'd especially appreciate it if you can give the app a try.