fix: warn user if sample rate other than 44100 Hz

Closes #129.
This commit is contained in:
5684185+vsariola@users.noreply.github.com 2024-02-17 19:42:07 +02:00
parent 954b306cc8
commit db6c9f6052
2 changed files with 13 additions and 0 deletions

View File

@ -17,6 +17,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Fixed the dropdown for targeting sends making it impossible to choose certain - Fixed the dropdown for targeting sends making it impossible to choose certain
ops. This was done just by reducing the default height of popup menus so they ops. This was done just by reducing the default height of popup menus so they
fit on screen ([#121][i121]) fit on screen ([#121][i121])
- Warn user about sample rate being other than 44100 Hz, as this lead to weird
behaviour. Sointu assumes the samplerate always to be 44100 Hz. ([#129][i129])
## v0.3.0 ## v0.3.0
### Added ### Added
@ -126,4 +128,5 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
[i120]: https://github.com/vsariola/sointu/issues/120 [i120]: https://github.com/vsariola/sointu/issues/120
[i121]: https://github.com/vsariola/sointu/issues/121 [i121]: https://github.com/vsariola/sointu/issues/121
[i122]: https://github.com/vsariola/sointu/issues/122 [i122]: https://github.com/vsariola/sointu/issues/122
[i129]: https://github.com/vsariola/sointu/issues/129
[i130]: https://github.com/vsariola/sointu/issues/130 [i130]: https://github.com/vsariola/sointu/issues/130

View File

@ -5,8 +5,11 @@ package main
import ( import (
"crypto/rand" "crypto/rand"
"encoding/hex" "encoding/hex"
"fmt"
"math"
"os" "os"
"path/filepath" "path/filepath"
"time"
"github.com/vsariola/sointu" "github.com/vsariola/sointu"
"github.com/vsariola/sointu/cmd" "github.com/vsariola/sointu/cmd"
@ -63,6 +66,13 @@ func init() {
model, player := tracker.NewModelPlayer(cmd.MainSynther, recoveryFile) model, player := tracker.NewModelPlayer(cmd.MainSynther, recoveryFile)
t := gioui.NewTracker(model) t := gioui.NewTracker(model)
tracker.Bool{BoolData: (*tracker.InstrEnlarged)(model)}.Set(true) tracker.Bool{BoolData: (*tracker.InstrEnlarged)(model)}.Set(true)
if s := h.GetSampleRate(); math.Abs(float64(h.GetSampleRate()-44100.0)) > 1e-6 {
model.Alerts().AddAlert(tracker.Alert{
Message: fmt.Sprintf("VSTi host sample rate is %.0f Hz; sointu supports 44100 Hz only", s),
Priority: tracker.Error,
Duration: 10 * time.Second,
})
}
go t.Main() go t.Main()
context := VSTIProcessContext{host: h} context := VSTIProcessContext{host: h}
buf := make(sointu.AudioBuffer, 1024) buf := make(sointu.AudioBuffer, 1024)