Sorry, I've been away from forums for few months. Thanks for kind and constructive feedback!
@jojomickymack
The intended audience aren't professional musicians, they are already covered with hi-tech equipment and $500 software. I'm making this for enthusiasts wanting to play music while commuting, people with no access to musical instruments and for kids. And for myself, of course.
Yes, this is totally meant to be extended! Just extract GitHub project into '/sdcard/hexpress' and you can change anything you please. For example, it's really simple to add note names on other hexagonal instruments, just pass 'true' to hexpad initialize: hexpad.new(true). The reason I included it only on choir is that it drops the framerate from 100FPS to 50FPS on my phone. Choir is a slow instrument with long attack, so it's hard to notice, but it could add 10ms of delay on other instruments. The performance could be solved by drawing to canvases. One more thing on my TODO list.
I agree about guitar part, it sounds bad. Real guitar is maybe the most expressive instrument and it's very hard to capture it on phone. I'm kind of putting it on ice until I figure out some playing techniques for chords, arpeggios and solos. BTW I made two new instruments with bass sounds, to me they sound better than current guitar. Also, they have wah effect, which is always fun.
Regarding your ideas, for me the hardest part is UI that wouldn't get in the way of playing. I like fullscreen instrument with no distractions.
1. Loading samples would be UI-heavy and something only a small number of people would use, as you have to hunt around for decent quality samples and lay them out across octaves. I think this is easier in Lua than in GUI, as you can automate the process with scripting.
2. and 3. is something I've been spinning in my head for quite some time. I would ultimately like to be able to play something repeatedly until the app can learn it, then it would be repeated in a loop and I could select a different instrument to play over it. This would allow orchestral pieces in layers. A bit hard to implement, though.
@Beelz
I thought long about string order, and in the end implemented the same order you see in guitar tabs. It seems more logical to me. Note that you can pass your custom string tuning to fretboard initalizer, so it's easy to reverse the order.
Drum kit was something that I too wanted, so it's now included in the latest release.
