Corrected go code
This commit is contained in:
parent
2b3f45ea8c
commit
930bf41b5d
52
Pi/main.go
52
Pi/main.go
|
@ -11,34 +11,47 @@ import (
|
|||
"os"
|
||||
"sync"
|
||||
"time"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
var sounds = []*beep.Buffer{
|
||||
mustLoadStream("./mini_grand/mini_grand-001.wav"),
|
||||
mustLoadStream("./mini_grand/mini_grand-003.wav"),
|
||||
mustLoadStream("./mini_grand/mini_grand-005.wav"),
|
||||
mustLoadStream("./mini_grand/mini_grand-006.wav"),
|
||||
mustLoadStream("./mini_grand/mini_grand-008.wav"),
|
||||
mustLoadStream("./mini_grand/mini_grand-010.wav"),
|
||||
mustLoadStream("./mini_grand/mini_grand-012.wav"),
|
||||
mustLoadStream("./mini_grand/mini_grand-013.wav"),
|
||||
mustLoadStream("./default/001.wav"),
|
||||
mustLoadStream("./default/002.wav"),
|
||||
mustLoadStream("./default/003.wav"),
|
||||
mustLoadStream("./default/004.wav"),
|
||||
mustLoadStream("./default/005.wav"),
|
||||
mustLoadStream("./default/006.wav"),
|
||||
mustLoadStream("./default/007.wav"),
|
||||
mustLoadStream("./default/008.wav"),
|
||||
}
|
||||
|
||||
var counter int
|
||||
|
||||
func mustLoadStream(p string) *beep.Buffer {
|
||||
f, err := os.Open(p)
|
||||
counter++
|
||||
log.Println("Loading: /media/usb/00" + fmt.Sprintf("%d", counter) + ".wav")
|
||||
f, err := os.Open("/media/usb/00" + fmt.Sprintf("%d", counter) + ".wav")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
log.Println("Failed: /media/usb/00" + fmt.Sprintf("%d", counter) + ".wav")
|
||||
log.Println("Loading " + p)
|
||||
f, err = os.Open(p)
|
||||
if err != nil {
|
||||
// log.Fatal(err)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
streamer, format, err := wav.Decode(f)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer streamer.Close()
|
||||
|
||||
newFormat := format
|
||||
newFormat.SampleRate = format.SampleRate / 4
|
||||
// newFormat.SampleRate = format.SampleRate / 4
|
||||
// newFormat.SampleRate = format.SampleRate / 2
|
||||
newFormat.SampleRate = format.SampleRate
|
||||
resample := beep.Resample(4, format.SampleRate, newFormat.SampleRate, streamer)
|
||||
|
||||
buffer := beep.NewBuffer(newFormat)
|
||||
|
@ -86,7 +99,10 @@ func (w *soundWorker) Start() {
|
|||
defer w.mtx.Unlock()
|
||||
|
||||
w.isRunning = true
|
||||
w.ctrl.Streamer.(beep.StreamSeeker).Seek(0)
|
||||
// w.ctrl.Streamer.(beep.StreamSeeker).Seek(0)
|
||||
// log.Println("Buffer Start: " + fmt.Sprintf("%d", w.ctrl.Streamer))
|
||||
w.ctrl.Streamer = beep.Seq(w.buffer.Streamer(0, w.buffer.Len()), beep.Silence(-1))
|
||||
// w.ctrl.Streamer = w.buffer.Streamer(0, w.buffer.Len())
|
||||
w.volume.Volume = 1
|
||||
w.ctrl.Paused = false
|
||||
}
|
||||
|
@ -104,6 +120,7 @@ func main() {
|
|||
}
|
||||
|
||||
format := sounds[0].Format()
|
||||
// if err := speaker.Init(format.SampleRate, format.SampleRate.N(time.Second/100)); err != nil {
|
||||
if err := speaker.Init(format.SampleRate, format.SampleRate.N(time.Second/100)); err != nil {
|
||||
return
|
||||
}
|
||||
|
@ -112,13 +129,18 @@ func main() {
|
|||
|
||||
mixer := beep.Mixer{}
|
||||
for _, buffer := range sounds {
|
||||
if buffer == nil {
|
||||
continue
|
||||
}
|
||||
c := &beep.Ctrl{
|
||||
Streamer: buffer.Streamer(0, buffer.Len()),
|
||||
// Streamer: buffer.Streamer(0, buffer.Len()),
|
||||
Streamer: beep.Seq(buffer.Streamer(0, buffer.Len()), beep.Silence(-1)),
|
||||
Paused: true,
|
||||
}
|
||||
|
||||
volume := &effects.Volume{
|
||||
Streamer: c,
|
||||
// Streamer: beep.Seq(c, beep.Silence(-1)),
|
||||
Base: 2,
|
||||
Volume: 1,
|
||||
}
|
||||
|
@ -136,6 +158,7 @@ func main() {
|
|||
|
||||
c := make(chan byte)
|
||||
|
||||
// List das byte von serial ein und prueft die bits
|
||||
go func() {
|
||||
for b := range c {
|
||||
for i, w := range soundWorkers {
|
||||
|
@ -152,6 +175,7 @@ func main() {
|
|||
}
|
||||
}()
|
||||
|
||||
// List das byte ein
|
||||
for {
|
||||
buf := make([]byte, 1)
|
||||
_, err := stream.Read(buf)
|
||||
|
|
Loading…
Reference in New Issue