1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
Version 0.1, 2.4.1997:
- the first released version
5.4.1997:
- audio sync added before changing parameters
Version 0.2, 9.4.1997:
- it was useless to start producer as a thread;
it was made that way just for historical reasons.
only consumer is threaded now. this may result
as more robust behaviour.
- there are min and max sizes for block now. i'm
not sure yet what size for a block and the audio
buffer would be good. needs more research.
- fill_buffer function. fills the audio buffer
before use.
Version 0.2.1, 15.4.1997:
- signal() seems to be a bad idea in a threaded
application like this. causes kernel oops in
the sound driver function audio_write (sometimes).
let's have faith on the kernel and remove it.
Version 0.2.2, 17.4.1997 morning:
- the last block was written from very wrong point.
- block counting added. this makes stream ending
simpler and (hopefully) more robust.
- first lines for handling underflow (buffer empty)
situation.
Version 0.3, 17.4.1997 afternoon:
- underflow handling should work now.
- function buffer_usage added. returns buffer usage
in percents. nowhere used yet.
- minimum block size increased to 16k.
Version 0.3.1, 19.4.1997:
- GNU style options.
- option -v (or --version) added.
- buffer usage option -u (or --usage) added.
Version 0.4, 2.5.1997:
- support for RIFF/WAVE (WAV) and Sun audio
(AU) files.
- swap endianness flag -x (or --swap) added.
- verbose mode flag -V (or --verbose) added.
- force raw flag -r (or --raw) added. WAV- or
AU-file headers are ignored if this flag is set.
Version 0.4.1, 3.5.1997:
- sun header gives odd aligned starting point
for sample. temporary fix.
- read_big_endian_long returned wrong value if
sampling rate was 44100. this caused tplay
not to work with that speed when playing sun
audio or wav file. fixed now.
Version 0.4.2, 7.5.1997:
- read_big_endian_long and similar functions:
parameter's type was char* and that was a bug.
changed to byte* (unsigned char *). conversion
should also be saner now.
- force playing -f (or --force) flag added. this
makes tplay to ignore sound driver's results
when changing parameters.
Version 0.4.3, 12.5.1997:
- binary is statically linked to LinuxThreads
version 0.6 now.
- print sun header comment if verbose is requested.
- sun audio file's data stream starting pointer
is read and set from the header.
- to avoid rounding errors when playing 16bit
and/or stereo (au or wav) sample, data section
is moved now to the beginning of buffer before
playing.
Version 0.5, 23.10.1997:
- set_audio_parameters() partly rewritten and
changes to open_audio().
- in some WAV-files, data-portion is not started
with 'data'-magic but 'INFO' instead. some
players don't even check that so tplay prints
just a warning message now if neither of these
magics exists.
Version 0.5.1, 25.10.1997:
- printing of buffer usage changed from producer
to consumer. this makes this silly feature a bit
more informative as it is still active after the
producer has stopped. underflow situation (when
the big buffer needs to be refilled) is also
possible to show now.
Version 0.5.2, 9.5.1998:
- Jerko Golubovic <jerko.golubovic@public.srce.hr>
kindly modified the code to support those soundcards
that may result slightly different sampling rate
than requested. he also provided RPM of tplay.
- added -D (or --device=DEVICE) flag for setting
audio device to be used.
- added feature to -B (or --buffer-size=SIZE) flag.
buffer size can be given in seconds now, too.
Version 0.5.3, 11.5.1998:
- rewrite of playing routine to support multiple
sound samples from command line.
Version 0.5.4, 19.5.1998:
- added -l (or --loop) flag to support looping sound
samples.
- sun port.
Version 0.5.5, 24.5.1998:
- added environment variable TPLAYDEV, which sets the
audio device to be used. decoding of command line
options is moved from main() to another function.
|