HN user

naiquevin

221 karma

https://www.naiquev.in/

Posts2
Comments75
View on HN

I’m working on my guitar practice app, Captrice https://www.captrice.io after a brief gap.

The last few months I’ve been reading a lot about neuroscience behind learning and practicing music and I’m fascinated by the subject. It has helped me realise why the app works for me, as well as my own mistakes that held back my progress for many years despite putting in decent efforts.

It was a much needed inspiration to continue working on it with a re-evaluated roadmap.

I recently wrote a blog post about it - https://www.captrice.io/blog/what-makes-captrice-work.html

Automerge 3.0 12 months ago

I’m also interested in this. I have a similar use case, to implement “cross device sync” functionality for a local-only webapp. I tried out automerge but it felt like it’s meant for syncing data when multiple users collaborate, and not data sync for a single user who is expected to use only one device at a time (I could be wrong about this).

I have implemented a POC sync mechanism via central server and I believe it’s simpler as it takes advantage of certain assumptions about the app. I’ve yet to productionize it so I am interested in knowing if my understanding is correct or if there are other existing solutions for this use case.

I've been building a desktop app on the side that addresses the problem of screenshots getting accumulated on disk over a period of time. It provides an alternate workflow for capturing screenshots, where the app let's the user select tags before taking the screenshot. Tags can be associated with actions such as "move to trash after 1 day", "delete after 7 days" or "store in /specific/location".

I have got the main functionality working and I've been using it myself in a crude way (using sqlite client directly for data entry etc.) for about a week. It was not meant to be a serious project to begin with - I just wanted to build something to evaluate Tauri for desktop apps. I am still not 100% convinced if such a tool is worth building, so the code hasn't been published anywhere. Do you care enough about "screenshots management and cleanup" to use something like this?

Gerrit uses a “Change-Id” trailer with a unique value. When you “fix up” a commit, the commit SHA changes but the change id remains the same. That’s how it can identify different commits with the same change id as patchsets of the same change.

This is based on what I remember (haven’t used gerrit in a while), so it may not be accurate.

I used gerrit in my previous job and miss using it. Would definitely prefer it over GitHub which is more popular (and convenient of course, can’t deny that).

Agree about recording and listening to it. I also do it sometimes. My concern about implementing the record/playback functionality is that it may introduce a bunch of complexity considering it's a web app (permissions to record mic, browser compatibility etc, limits on local storage etc.).

If any one's looking for the answer to why it's not recommended to edit library imports - when you import collections from the library, you can receive updates whenever the collection author publishes a new version. These updates might include new exercises or improvements to existing ones. However, if you've made your own modifications to the collection, these personal changes will be overwritten when you update to the newer version.

It's mentioned on the faqs page - https://www.captrice.io/user-guide/faqs.html. Missed updating the link. Will push a fix shortly.

I haven’t tried using it for bass guitar but I believe it should just work? I assume you want tabs for bass guitar. Alphatab, the tablature editor supports bass guitar and other stringed instruments too. I guess it even supports notation for drums/percussion.

For that matter, I think the app should work for practicing any instrument that can be practiced with a metronome if you ignore tablature (which is only for reference anyway).

For now I want focus on guitar as that’s my primary use case but I’d love to extend it for other instruments in future.

when I practice for more than an hour every day

this creates horrible calluses on my fingers

I think both are good problems to have :-). Consistently practicing for more than an hour every day is quite difficult unless you are professionally into it. If you are able to manage it then that's commendable. And once the calluses are formed, it doesn't hurt as much. A downside of skipping practice for a week, besides the practice itself, is that the calluses go away.

Captrice works in a browser on an android phone. But honestly, it's designed to be used on a desktop/laptop with a keyboard as there are some handy keybindings/shortcuts for easily controlling the metronome while playing the instrument.

If you are specifically looking for an android app, I've only found one that comes closest - Instrumentive[1]. It allows tracking time for the entire practice session besides uploaded recording of the session. Whereas my use case is to track the duration of practice at every tempo. Trying to play for extended duration seems to work well for me in terms of building endurance and muscle memory.

[1] https://instrumentive.com/

Firstly, the tab for that exercise is long enough to need a scroll bar, and so I don't understand how one is supposed to play along with that tab to a metronome.

I agree, this app is not great for learning a piece of music but it works well for practicing an already learnt piece. This is how I have been using it for myself.

As I mentioned in another comment, the tab and the video are mainly for reference i.e. to answer the question what to practice. Earlier, it only allowed either a tab or a video. At some point I added support for both (because why not!) Looks like that's causing some confusion.

I like your idea of playing along with a synthesized sound in the learning phase, although I haven't tried it myself. I believe alphatab (the lib used for tablature) does support midi playback which could make it function like guitar pro. Need to see how much complexity it introduces (mainly related to getting both the metronome and the midi to play together, never tried it). Perhaps there could be two separate modes to keep things simple - a learning mode without metronome and a practice mode (same as current). Won't promise anything but will at least do a POC.

Thanks for the detailed feedback.

PS: The link you shared wouldn't work for anyone else, as it only exists on your device thanks to the local-only-ness. Have some thinking to do to make this more intuitive.

Captrice allows you to export an exercise collection. You get a json file that can be shared with others or copied to another device where it can be imported back into the app.

AlphaTab is the star here

Absolutely! High quality stuff. I wasn't aware of the person behind the project. Thanks for mentioning it.

Total noob as in yet to buy your first guitar? I’d highly recommend taking offline lessons from a local guitar teacher, at least for a few months. Some things are difficult to unlearn and relearn later on. This app can be used to practice the lessons the teacher would give you.

Thanks for the feedback. I know the UI is not as intuitive as I'd like it to be for first time users. Multiple early users have told me that they expected it to either listen to them play or play back some audio. I am planning to record a small videos soon to clarify this.

IMO the app would be cooler if it was simply the metronome app on a page. And if you want to track which song you are working on, then just add the ability to label a session. Could have a different mode for people who want it over videos, but usually when I'm practicing, I know the tab and am not watching a video while I practice.

The tab is mainly for (1) future reference, specially if you are creating your own exercises (2) sharing them with others. Sometimes I come up with short exercises myself that cover a specific technique or some picking pattern I am struggling with. Overtime I tend to forget those. In an earlier version, you could either add a tab or embed a video. But then I thought why not both! Feedback taken though, it should be fairly easy to make the tab/video section collapsible. Ability to label sessions in also on the roadmap.

I am working on a guitar practice app[1]. It's a metronome that captures speed and duration as you practice. This data can then be visualized. It's designed to be used on a desktop/laptop as there are keyboard shortcuts for easily controlling the metronome while playing the instrument, but otherwise it works quite well in mobile browsers too.

It started as a personal project a few months back. Since then, I have been using it myself, alongside building the functionality I need. Lately I have been working on polishing it up in order to put it out there for others.

Based on my usage so far, I've come to realize some good second order effects too -

1. having a list of exercises helps me quickly pick something meaningful to practice rather than noodling for most of the time.

2. At the end of a practice session, the total duration is just 15-20 mins yet it feels like quality practice. So now, even if I have just 20-30 mins of free time, I am motivated to squeeze in a quick practice session. Turns out, this is a game changer (at least for myself).

Feature wise, I'm quite happy with the current state of it although I have some ideas for premium features (if it generates enough interest). In the coming weeks, I am planning to switch gears a bit and focus more on marketing/promotion. I also need to play more, because ironically, my practice time has reduced in the last few weeks in the pursuit of "launching" it! Also, I've set a goal to publish one new exercise in the library every week until the end of this year.

[1] https://www.captrice.io

Composable SQL 1 year ago

I've implemented a CLI tool[1] that tries to address similar problems with SQL as mentioned in the article: testing, business logic and re-usability. The approach is different though - you write SQL and pgTAP tests using jinja templates and the tool generates

1. SQL queries that can be used by the application code using libs such as yesql, hugsql etc. and,

2. pgTAP tests, ensuring that they test the exact same SQL queries that are actually run by your application

I haven't used it in a /real/ production setting though, so I'd still call it an experiment. But I have been using it in a personal project with a handful of users (friends and family). Most of the business logic is implemented in SQL so the queries are fairly intricate (CTEs, sub queries, multiple joins). Occasionally, I push some features/improvements/tweaks and I am able to do so with high confidence, which I believe is mainly thanks to pgTAP tests. I am quite happy with it so far although that's just my experience. Haven't tried it on a large project with many contributors.

[1] https://github.com/naiquevin/tapestry

Looks really good. I've felt the need for such an app on more than one occasions. But I'll have to wait for the iOS version I guess (based on the other comment).

Aside: Following your github link led me to discover another one of your music related projects, harmony-explorer which seems quite similar to something I've wanted to build for myself.