Open wilckerson opened 2 months ago
@frostburn would you mind reviewing this one? Thanks
The issues are poorly organized. Playing notes by clicking is mentioned here in comment in a TODO list: https://github.com/xenharmonic-devs/scale-workshop/issues/38
The main reason playing hasn't been implemented is the ambiquity of the equave. Shepard tones could solve that issue, but come with their own set of issues.
Let's see what you got here...
Stuff I noticed
CHANGELOG.md
Nice work overall!
Please make an issue about the refactoring if you're not going to do it here.
@wilckerson What's the status of this PR? Just let us know if you don't have time to work on it and I can tidy it up.
@frostburn Sorry for taking so long, I can work on those fixes in the following days. But thank you for offering help =)
@frostburn Sorry for taking so long, I can work on those fixes in the following days. But thank you for offering help =)
No problem. Thanks for keeping us in the loop.
@frostburn I have handled your feedback and you may close this PR. Sorry for taking so long. The only parts that I was not able to implement here were:
Clicking on a lattice node and dragging away enters a buggy mode where the note plays when you hover over the node again. Clicking on the node when in this buggy state makes the note play indefinitely.
The frequencies associated with a node are incorrect when using lattice permutations such as created using Generator sequence and pressing the Lattice button: https://sw3.lumipakkanen.com/scale/_1if4acyL
Cycles and 3D lattice options were added recently? Are you going to add functionality for them too?
Fixing the buggy click and drag behavior probably requires redesigning of the whole event system. My suggestion is to put this lattice stuff on hold and redesign the event system in a separate PR if you're up for it. Adding touch dragging similar to Hexatone addressing #717 would be nice too.
Alright. It sounds good. Let me see what I can do. Thanks
This PR comes from a feature that I miss, which I didn't find an open issue, where the Lattices could play the notes by clicking/touching them. The feature was added to the Lattice node and label, helping with the click region that may become small on mobile phones.
The logic used to handle the click/touch was the same as
VirtualPiano.vue
. I think it could be extracted in a helper function and refactored to all places to use the same underlying implementation. However, it can be done in another PR to avoid this one getting bigger.Thanks.