@@ -9,6 +9,36 @@ import "github.com/faiface/beep/wav"
9
9
import "github.com/mewkiz/flac"
10
10
import "math"
11
11
12
+ func dumpbuffer (buf [][2 ]float64 , mels int ) (out []uint16 ) {
13
+ stride := len (buf ) / mels
14
+
15
+ var mgc_max , mgc_min = [2 ]float64 {(- 99999999. ), (- 99999999. )}, [2 ]float64 {(9999999. ), (9999999. )}
16
+
17
+ for x := 0 ; x < stride ; x ++ {
18
+ for l := 0 ; l < 2 ; l ++ {
19
+ for y := 0 ; y < mels ; y ++ {
20
+ var w = buf [stride * y + x ][l ]
21
+ if w > mgc_max [l ] {
22
+ mgc_max [l ] = w
23
+ }
24
+ if w < mgc_min [l ] {
25
+ mgc_min [l ] = w
26
+ }
27
+ }
28
+ }
29
+ }
30
+ for y := 0 ; y < mels ; y ++ {
31
+ for x := 0 ; x < stride ; x ++ {
32
+ val0 := (buf [stride * y + x ][0 ] - mgc_min [0 ]) / (mgc_max [0 ] - mgc_min [0 ])
33
+ val1 := (buf [stride * y + x ][1 ] - mgc_min [1 ]) / (mgc_max [1 ] - mgc_min [1 ])
34
+ val := uint16 (int (255 * val0 )) | uint16 (int (255 * val1 ))<< 8
35
+
36
+ out = append (out , val )
37
+ }
38
+ }
39
+ return
40
+ }
41
+
12
42
func dumpimage (name string , buf [][2 ]float64 , mels int , reverse bool ) error {
13
43
f , err := os .Create (name )
14
44
if err != nil {
@@ -19,19 +49,20 @@ func dumpimage(name string, buf [][2]float64, mels int, reverse bool) error {
19
49
20
50
img := image .NewRGBA (image .Rect (0 , 0 , stride , mels ))
21
51
22
- var mgc_max , mgc_min = [2 ]float64 {(- 99999999. ),(- 99999999. )}, [2 ]float64 {(9999999. ),(9999999. )}
52
+ var mgc_max , mgc_min = [2 ]float64 {(- 99999999. ), (- 99999999. )}, [2 ]float64 {(9999999. ), (9999999. )}
23
53
24
54
for x := 0 ; x < stride ; x ++ {
25
55
for l := 0 ; l < 2 ; l ++ {
26
- for y := 0 ; y < mels ; y ++ {
27
- var w = buf [stride * y + x ][l ]
28
- if w > mgc_max [l ] {
29
- mgc_max [l ] = w
30
- }
31
- if w < mgc_min [l ] {
32
- mgc_min [l ] = w
56
+ for y := 0 ; y < mels ; y ++ {
57
+ var w = buf [stride * y + x ][l ]
58
+ if w > mgc_max [l ] {
59
+ mgc_max [l ] = w
60
+ }
61
+ if w < mgc_min [l ] {
62
+ mgc_min [l ] = w
63
+ }
33
64
}
34
- }}
65
+ }
35
66
}
36
67
for x := 0 ; x < stride ; x ++ {
37
68
for y := 0 ; y < mels ; y ++ {
@@ -40,7 +71,7 @@ func dumpimage(name string, buf [][2]float64, mels int, reverse bool) error {
40
71
val1 := (buf [stride * y + x ][1 ] - mgc_min [1 ]) / (mgc_max [1 ] - mgc_min [1 ])
41
72
col .R = uint8 (int (255 * val0 ))
42
73
col .G = uint8 (int (255 * val1 ))
43
- col .B = uint8 (int (255 * (val0 + val1 )* 0.5 ))
74
+ col .B = uint8 (int (255 * (val0 + val1 ) * 0.5 ))
44
75
col .A = uint8 (255 )
45
76
if reverse {
46
77
img .SetRGBA (x , mels - y - 1 , col )
@@ -150,7 +181,7 @@ func domel(filtersize, mels int, spectrum [][2]float64, mel_fmin, mel_fmax float
150
181
inlo , modlo , inhi = 0 , 0 , 0
151
182
}
152
183
var tot [2 ]float64
153
- for l := 0 ; l < 2 ; l ++ {
184
+ for l := 0 ; l < 2 ; l ++ {
154
185
155
186
var total float64
156
187
@@ -210,5 +241,3 @@ func pad(buf []float64, filter int) []float64 {
210
241
}
211
242
return buf
212
243
}
213
-
214
-
0 commit comments