Skip to content

Commit cf8540c

Browse files
author
Ronna Steinberg
committed
almost ready
1 parent 4db0c29 commit cf8540c

34 files changed

Lines changed: 605 additions & 607 deletions

Makefile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
GO_FILES:=$(shell find . -name "*.go")
22

33
wavelet: $(GO_FILES)
4-
go build ./cmd/wavelet
4+
go build .
55

66
.PHONY: test
77
test: $(GO_FILES)
88
go test -v ./...
99

1010
.PHONY: run-server
11-
run-server: wavelet test
12-
./wavelet -port 8080
11+
run-server: go-funk test
12+
./go-funk -port 8080
1313

audio/wav.go

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package audio
2+
3+
import (
4+
"io"
5+
"time"
6+
7+
"github.com/go-audio/audio"
8+
"github.com/go-audio/wav"
9+
)
10+
11+
type WavData struct {
12+
Duration time.Duration
13+
Samples []int
14+
}
15+
16+
// Samples WAV samples and returns, if successful, a slice containing all
17+
// the audio samples.
18+
func NewWavData(r io.ReadSeeker) (data WavData, err error) {
19+
d := wav.NewDecoder(r)
20+
21+
intBuf := make([]int, 256)
22+
buf := audio.IntBuffer{Data: intBuf}
23+
24+
for err == nil {
25+
n, err := d.PCMBuffer(&buf)
26+
if err != nil {
27+
return data, err
28+
}
29+
30+
if n == 0 {
31+
break
32+
}
33+
34+
data.Samples = append(data.Samples, buf.Data...)
35+
}
36+
37+
data.Duration, err = d.Duration()
38+
return
39+
}
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import (
77
"testing"
88
)
99

10-
func TestSamples(t *testing.T) {
11-
path, err := filepath.Abs("../../fixtures/fixture.wav")
10+
func TestNewWavData(t *testing.T) {
11+
path, err := filepath.Abs("../public/rick/fixture.wav")
1212
if err != nil {
1313
t.Fatal(err)
1414
}
@@ -18,16 +18,16 @@ func TestSamples(t *testing.T) {
1818
}
1919
defer file.Close()
2020

21-
samples, err := Samples(file)
21+
data, err := NewWavData(file)
2222
if err != nil {
2323
t.Fatal(err)
2424
}
2525

2626
// the sample count should be close to:
2727
// sample rate * number of channels * duration
2828
want := 44100 * 2 * 213.574649
29-
if distance(len(samples), want) > 44100 {
30-
t.Errorf("invalid number of samples: %v, want %v", len(samples), want)
29+
if distance(len(data.Samples), want) > 44100 {
30+
t.Errorf("invalid number of samples: %v, want %v", len(data.Samples), want)
3131
}
3232
}
3333

cmd/wavelet/gif.go

Lines changed: 0 additions & 93 deletions
This file was deleted.

cmd/wavelet/gif2.go

Lines changed: 0 additions & 96 deletions
This file was deleted.

cmd/wavelet/main.go

Lines changed: 0 additions & 26 deletions
This file was deleted.

cmd/wavelet/points.go

Lines changed: 0 additions & 40 deletions
This file was deleted.

0 commit comments

Comments
 (0)