1 | var fs = require('fs');
|
---|
2 | var sys = require('sys');
|
---|
3 |
|
---|
4 | require('./typed-array.js');
|
---|
5 | require('../../mad.js');
|
---|
6 | require('../../id3.js');
|
---|
7 | require('../../layer3.js');
|
---|
8 | require('../../synth.js');
|
---|
9 | require("../../mad.js");
|
---|
10 | require("../../rq_table.js");
|
---|
11 | require("../../imdct_s.js");
|
---|
12 | require("../../huffman.js");
|
---|
13 | require("../../bit.js");
|
---|
14 | require("../../stream.js");
|
---|
15 | require("../../id3.js");
|
---|
16 | require("../../layer3.js");
|
---|
17 | require("../../frame.js");
|
---|
18 | require("../../synth.js");
|
---|
19 |
|
---|
20 | // var data = fs.readFileSync("one_second_of_silence.mp3", "binary");
|
---|
21 | // var data = fs.readFileSync("one_second_beep.mp3", "binary");
|
---|
22 | var data = fs.readFileSync("output.mp3", "binary");
|
---|
23 | // var data = fs.readFileSync("soul-2.mp3", "binary");
|
---|
24 |
|
---|
25 | console.log("Reading a " + Math.round(data.length / 1024) + "KB file");
|
---|
26 |
|
---|
27 | var stream = new Mad.Stream(data);
|
---|
28 |
|
---|
29 | ID3_skipHeader(stream);
|
---|
30 |
|
---|
31 | var STEPS_COUNT = 0;
|
---|
32 |
|
---|
33 | var frame = null;
|
---|
34 |
|
---|
35 | var allmin = 0;
|
---|
36 | var allmax = 0;
|
---|
37 |
|
---|
38 | while (frame = Mad.Frame.decode(stream)) {
|
---|
39 | var synth = new Mad.Synth();
|
---|
40 | synth.frame(frame);
|
---|
41 |
|
---|
42 | var samples = synth.pcm.samples[0];
|
---|
43 |
|
---|
44 | var min = 0.0;
|
---|
45 | var max = 0.0;
|
---|
46 | var mean = 0.0;
|
---|
47 |
|
---|
48 | for (var i = 0; i < samples.length; i++) {
|
---|
49 | var sample = samples[i];
|
---|
50 | mean += (sample / samples.length);
|
---|
51 | if(min > sample) min = sample;
|
---|
52 | if(max < sample) max = sample;
|
---|
53 | }
|
---|
54 |
|
---|
55 | console.log("min = " + min + ", max = " + max + ", mean = " + mean);
|
---|
56 | if(allmin > min) allmin = min;
|
---|
57 | if(allmax < max) allmax = max;
|
---|
58 | }
|
---|
59 |
|
---|
60 | console.log("allmin = " + allmin + ", allmax = " + allmax);
|
---|
61 |
|
---|
62 | console.log("error code: " + stream.error);
|
---|