3
3
require_once 'WavFile.php ' ;
4
4
require_once 'WavMaker.php ' ;
5
5
6
- siusecase ();
7
- //maryHad();
8
- //noiseTest();
9
- //sineTest();
10
- //squareTest();
11
- //sineWave();
6
+ maryHad ();
7
+ noiseTest ();
8
+ sineTest ();
9
+ squareTest ();
10
+ sineWave ();
12
11
mergeWavs ();
12
+ appendWavs ();
13
13
14
- function siusecase ()
15
- {
16
- $ audio_path = dirname (__FILE__ ) . '/audio ' ;
17
-
18
- $ wav = new WavMaker (1 , 11025 , 16 );
19
-
20
- $ letters = array ('p ' , 'k ' , 'l ' , '2 ' , '5 ' , 'm ' );
21
- $ wavs = array ();
22
- foreach ($ letters as $ letter ) {
23
- $ letter = strtoupper ($ letter );
24
-
25
- if (!isset ($ wavs [$ letter ])) {
26
- try {
27
- $ l = new WavFile ($ audio_path . '/ ' . $ letter . '.wav ' );
28
- $ wavs [$ letter ] = $ l ;
29
- } catch (Exception $ ex ) {
30
- // failed to open file...handle
31
- die ("Error with character ' $ letter': " . $ ex ->getMessage ());
32
- }
33
- }
34
-
35
- $ wav ->appendWav ($ wavs [$ letter ]);
36
- }
37
-
38
- $ wav ->save (dirname (__FILE__ ) . '/wavs/siout.wav ' );
39
-
40
- $ sound = new WavFile (dirname (__FILE__ ) . '/wavs/mary.wav ' );
41
-
42
- $ wav ->mergeWav ($ sound );
43
-
44
- $ wav ->save (dirname (__FILE__ ) . '/wavs/siout-merged.wav ' );
45
-
46
- die ('Saved captcha ' );
47
- }
48
14
49
15
function mergeWavs ()
50
16
{
51
17
$ wav1 = new WavFile (dirname (__FILE__ ) . '/wavs/spin.wav ' );
52
18
$ wav2 = new WavFile (dirname (__FILE__ ) . '/wavs/sinetest-2-44100-8.wav ' );
53
-
19
+
54
20
$ wav1 ->mergeWav ($ wav2 );
55
-
56
- $ fp = fopen (dirname (__FILE__ ) . '/wavs/merged.wav ' , 'w+b ' );
57
- fwrite ($ fp , $ wav1 ->makeHeader ());
58
- fwrite ($ fp , $ wav1 ->getDataSubchunk ());
59
-
60
- fclose ($ fp );
61
-
62
- die ('Merge completed ' );
21
+
22
+ $ wav1 ->save (dirname (__FILE__ ) . '/wavs/merged.wav ' );
23
+
24
+ echo "mergeWavs() completed. \n" ;
63
25
}
64
26
65
27
function maryHad ()
66
28
{
67
29
$ wav = new WavMaker (1 , 11025 , 16 );
68
-
30
+
69
31
$ wav ->generateSineWav (493.883 , 0.4 ); // b
70
32
$ wav ->generateSineWav (440 , 0.4 ); // a
71
33
$ wav ->generateSineWav (391.995 , 0.4 ); // g
@@ -74,14 +36,14 @@ function maryHad()
74
36
$ wav ->generateSineWav (493.883 , 0.4 ); // b
75
37
$ wav ->generateSineWav (493.883 , 0.8 ); // b
76
38
$ wav ->generateSineWav (440 , 0.4 ); // a
77
- $ wav ->generateSilence (0.05 );
39
+ $ wav ->insertSilence (0.05 );
78
40
$ wav ->generateSineWav (440 , 0.4 ); // a
79
- $ wav ->generateSilence (0.05 );
41
+ $ wav ->insertSilence (0.05 );
80
42
$ wav ->generateSineWav (440 , 0.8 ); // a
81
43
$ wav ->generateSineWav (493.883 , 0.4 ); // b
82
44
$ wav ->generateSineWav (587.330 , 0.4 ); // d
83
45
$ wav ->generateSineWav (587.330 ); // d
84
- $ wav ->generateSilence (2 ); // long pause
46
+ $ wav ->insertSilence (2 ); // long pause
85
47
$ wav ->generateSineWav (493.883 , 0.4 ); // b
86
48
$ wav ->generateSineWav (440 , 0.4 ); // a
87
49
$ wav ->generateSineWav (391.995 , 0.4 ); // g
@@ -90,82 +52,99 @@ function maryHad()
90
52
$ wav ->generateSineWav (493.883 , 0.4 ); // b
91
53
$ wav ->generateSineWav (493.883 , 0.8 ); // b
92
54
$ wav ->generateSineWav (440 , 0.4 ); // a
93
- $ wav ->generateSilence (0.05 );
55
+ $ wav ->insertSilence (0.05 );
94
56
$ wav ->generateSineWav (440 , 0.4 ); // a
95
- $ wav ->generateSilence (0.05 );
57
+ $ wav ->insertSilence (0.05 );
96
58
$ wav ->generateSineWav (440 , 0.8 ); // a
97
59
$ wav ->generateSineWav (493.883 , 0.4 ); // b
98
60
$ wav ->generateSineWav (587.330 , 0.4 ); // d
99
61
$ wav ->generateSineWav (587.330 ); // d
100
-
62
+
101
63
$ wav ->save (dirname (__FILE__ ) . '/wavs/mary.wav ' );
102
-
103
- die ( ' Mary had a little lamb ' ) ;
64
+
65
+ echo " maryHad() completed. \n" ;
104
66
}
105
67
106
68
function sineTest ()
107
69
{
108
70
// generate 3 second sine waves in multiple bit and sample rates
109
71
$ sps = array (8000 , 11025 , 22050 , 44100 );
110
72
$ bps = array (8 , 16 , 24 );
111
-
73
+
112
74
foreach ($ sps as $ samplesPerSec ) {
113
75
foreach ($ bps as $ bitsPerSample ) {
114
76
$ wav = new WavMaker (2 , $ samplesPerSec , $ bitsPerSample );
115
77
$ wav ->generateSineWav (329.628 , 3 );
116
-
78
+
117
79
$ wav ->save (dirname (__FILE__ ) . '/wavs/sinetest-2- ' . $ samplesPerSec . '- ' . $ bitsPerSample . '.wav ' );
118
80
}
119
81
}
120
-
121
- die ( ' Sine test completed' ) ;
82
+
83
+ echo " sineTest() completed. \n" ;
122
84
}
123
85
124
86
function squareTest ()
125
87
{
126
88
$ sps = array (8000 , 11025 , 22050 , 44100 );
127
89
$ bps = array (8 , 16 , 24 );
128
-
90
+
129
91
foreach ($ sps as $ samplesPerSec ) {
130
92
foreach ($ bps as $ bitsPerSample ) {
131
93
$ wav = new WavMaker (1 , $ samplesPerSec , $ bitsPerSample );
132
94
$ wav ->generateSquareWave (130.813 , 3 );
133
-
95
+
134
96
$ wav ->save (dirname (__FILE__ ) . '/wavs/squaretest-1- ' . $ samplesPerSec . '- ' . $ bitsPerSample . '.wav ' );
135
97
}
136
98
}
137
-
138
- die ( ' Square test completed' ) ;
99
+
100
+ echo " squareTest completed. \n" ;
139
101
}
140
102
141
103
function noiseTest ()
142
104
{
143
105
$ sps = array (8000 , 44100 );
144
106
$ bps = array (8 , 16 );
145
-
107
+
146
108
foreach ($ sps as $ samplesPerSec ) {
147
109
foreach ($ bps as $ bitsPerSample ) {
148
110
$ wav = new WavMaker (1 , $ samplesPerSec , $ bitsPerSample );
149
111
$ wav ->generateNoise (3 );
150
-
112
+
151
113
$ wav ->save (dirname (__FILE__ ) . '/wavs/noise-1- ' . $ samplesPerSec . '- ' . $ bitsPerSample . '.wav ' );
152
114
}
153
115
}
154
-
155
- die ( ' Noise test completed' ) ;
116
+
117
+ echo " noiseTest() completed. \n" ;
156
118
}
157
119
158
120
function sineWave ()
159
121
{
160
122
$ wav = new WavMaker (1 , 44100 , 16 ); // 2 channel, 44100 samples/sec, 16 bits/sample
161
123
$ wav ->generateSineWav (659.255 , 3 ); // E5 for 2 seconds
162
-
163
-
164
- $ fp = fopen (dirname (__FILE__ ) . '/wavs/sine.wav ' , 'w+b ' );
165
- fwrite ($ fp , $ wav ->makeHeader ());
166
- fwrite ($ fp , $ wav ->getDataSubchunk ());
167
-
168
- fclose ($ fp );
169
-
170
- die ('Sine wav completed ' );
124
+
125
+ $ wav ->save (dirname (__FILE__ ) . '/wavs/sine.wav ' );
126
+
127
+ echo "sineWave() completed \n" ;
128
+ }
129
+
130
+ function appendWavs ()
131
+ {
132
+ $ numChannels = 1 ;
133
+ $ sampleRate = 11025 ;
134
+ $ bpSample = 24 ;
135
+
136
+ $ wav = new WavFile ($ numChannels , $ sampleRate , $ bpSample );
137
+ $ sineWave = new WavMaker ($ numChannels , $ sampleRate , $ bpSample );
138
+ $ sqreWave = new WavMaker ($ numChannels , $ sampleRate , $ bpSample );
139
+
140
+ $ sineWave ->generateSineWav (880 , 2.5 );
141
+ $ sqreWave ->generateSquareWave (880 , 2.5 );
142
+
143
+ $ wav ->appendWav ($ sineWave );
144
+ $ wav ->insertSilence ();
145
+ $ wav ->appendWav ($ sqreWave );
146
+
147
+ $ wav ->save (dirname (__FILE__ ) . '/wavs/appended.wav ' );
148
+
149
+ echo "appendWavs() completed. \n" ;
171
150
}
0 commit comments