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

Closes #162
This commit is contained in:
5684185+vsariola@users.noreply.github.com 2024-10-08 12:31:05 +03:00
parent ad5f7628a5
commit a94703deea
2 changed files with 12 additions and 9 deletions

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

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))