Digitális hangminták
Gaga
sound_file
delay.c
Ugrás a fájl dokumentációjához.
1
7
#include <stdio.h>
8
#include "
binary_streams.h
"
9
11
typedef
float
sample_t
;
12
13
enum
14
{
15
SAMPLE_RATE
= 44100,
16
N
=
SAMPLE_RATE
17
};
18
25
int
main
(
int
argc,
char
**argv)
26
{
27
// delay time
28
double
T = .2;
29
// delay attenuation
30
double
alpha = .5;
31
if
(argc >= 3)
32
{
33
sscanf(argv[1],
"%lf"
, &T);
34
sscanf(argv[2],
"%lf"
, &alpha);
35
}
36
37
int
K =
SAMPLE_RATE
* T;
38
sample_t
circ_buffer[
N
][2] = {0};
39
40
// reopen streams as binary
41
binary_streams
();
42
43
int
cnt = 0;
44
sample_t
samples[2];
45
while
(fread(samples,
sizeof
(
sample_t
), 2, stdin) == 2)
46
{
47
int
c;
48
for
(c = 0; c < 2; ++c)
49
{
50
circ_buffer[cnt][c] *= alpha;
// attenuate past
51
circ_buffer[cnt][c] += samples[c];
// add present
52
}
53
54
// write present + past
55
fwrite(circ_buffer[cnt],
sizeof
(
sample_t
), 2, stdout);
56
57
cnt++;
// circular indexing
58
cnt %= K;
59
}
60
61
return
0;
62
}
binary_streams.h
open standard streams in binary mode
sample_t
float sample_t
type of a single sample
Definition:
amplify.c:11
main
int main(int argc, char **argv)
the plugin main function
Definition:
delay.c:25
sample_t
float sample_t
type of a single sample
Definition:
delay.c:11
SAMPLE_RATE
@ SAMPLE_RATE
the sampe rate in Hz
Definition:
delay.c:15
binary_streams
#define binary_streams()
reopen standard streams as binary
Definition:
binary_streams.h:17
N
@ N
size of the delay line in samples
Definition:
delay.c:16
Projekt: Digitális hangminták Készült: Hétfő December 7 2020 23:31:11 Készítette:
1.8.17