fix(tracker/gioui): pressing a or 1 in hex mode created note off

Closes #162
This commit is contained in:
2024-10-08 12:31:05 +03:00
parent ad5f7628a5
commit a94703deea
2 changed files with 12 additions and 9 deletions
+3
View File
@@ -12,6 +12,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
the command line tools. the command line tools.
### Fixed ### Fixed
- Pressing a or 1 when editing note values in hex mode created a note off line
([#162][i162])
- Warn about plugin sample rate being different from 44100 only after - Warn about plugin sample rate being different from 44100 only after
ProcessFloatFunc has been called, so that host has time to set the sample rate ProcessFloatFunc has been called, so that host has time to set the sample rate
after initialization. after initialization.
@@ -234,3 +236,4 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
[i149]: https://github.com/vsariola/sointu/issues/149 [i149]: https://github.com/vsariola/sointu/issues/149
[i150]: https://github.com/vsariola/sointu/issues/150 [i150]: https://github.com/vsariola/sointu/issues/150
[i158]: https://github.com/vsariola/sointu/issues/158 [i158]: https://github.com/vsariola/sointu/issues/158
[i162]: https://github.com/vsariola/sointu/issues/162
+9 -9
View File
@@ -339,15 +339,6 @@ func noteAsValue(octave, note int) byte {
} }
func (te *NoteEditor) command(gtx C, t *Tracker, e key.Event) { func (te *NoteEditor) command(gtx C, t *Tracker, e key.Event) {
if e.Name == "A" || e.Name == "1" {
t.Model.Notes().Table().Fill(0)
if step := t.Model.Step().Value(); step > 0 {
te.scrollTable.Table.MoveCursor(0, step)
te.scrollTable.Table.SetCursor2(te.scrollTable.Table.Cursor())
}
te.scrollTable.EnsureCursorVisible()
return
}
var n byte var n byte
if t.Model.Notes().Effect(te.scrollTable.Table.Cursor().X) { if t.Model.Notes().Effect(te.scrollTable.Table.Cursor().X) {
if nibbleValue, err := strconv.ParseInt(string(e.Name), 16, 8); err == nil { if nibbleValue, err := strconv.ParseInt(string(e.Name), 16, 8); err == nil {
@@ -356,6 +347,15 @@ func (te *NoteEditor) command(gtx C, t *Tracker, e key.Event) {
goto validNote goto validNote
} }
} else { } else {
if e.Name == "A" || e.Name == "1" {
t.Model.Notes().Table().Fill(0)
if step := t.Model.Step().Value(); step > 0 {
te.scrollTable.Table.MoveCursor(0, step)
te.scrollTable.Table.SetCursor2(te.scrollTable.Table.Cursor())
}
te.scrollTable.EnsureCursorVisible()
return
}
if val, ok := noteMap[e.Name]; ok { if val, ok := noteMap[e.Name]; ok {
n = noteAsValue(t.OctaveNumberInput.Int.Value(), val) n = noteAsValue(t.OctaveNumberInput.Int.Value(), val)
t.Model.Notes().Table().Fill(int(n)) t.Model.Notes().Table().Fill(int(n))