-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGES
132 lines (93 loc) · 5.29 KB
/
CHANGES
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
Changes between published versions
0.7 to 0.8
- added option --precision to resample_soxr.
- added --replay-gain option to resample_soxr and volrace.
- fixed possible segfault of resample_soxr in rare
cases of parameter combinations involving RACE.
- added experimental --stripped option for playhrt.
- added --skip option for 'writeloop' with input from a file.
- added --dsync option for 'bufhrt', to force fast writing to hardware.
- added utility 'resample_soxr' for highest quality resampling with
64 bit operations (abilities of reading files as with 'cat64' and
filtering output as with 'volrace' are built into this program).
- added utility 'cat64' to translate audio file or shared memory to
raw 64 bit floating point samples.
- added option --max-bad-reads to 'playhrt' (program stops when given
number of input blocks was too small, the value 4 was hardcoded before)
- added option --force-shm to 'writeloop' (overwrites semaphores left
over from other calls).
- now using 'memclean' in 'writeloop'.
- using additional register/variable for refreshing of memory. Causes
again a surprising improvement of sound in my system.
- various improvements in wording of help texts and verbose messages.
- new options --no-buf-stats and --no-delay-stats and explanation of
"delayed loops" in 'playhrt'.
- added --verbose option to 'shmcat', 'catloop', 'writeloop'
and 'volrace'.
- introduced --sleep=Nus option to 'playhrt', to give input programs
time for startup.
- corrected the arguments of 'shmcat' in two example scripts.
0.6 to 0.7
Comments for users of previous versions: Five main ideas went into this
release, each of these cause audible improvements in my setup:
(1) Use of the mmap interface in ALSA with playhrt. This reduces the
copying of audio data and makes the patch of the ALSA library which
was proposed in previous versions unnecessary. It may be necessary to
use a slightly larger hardware buffer than before for the audio
device (--hw-buffer option).
(2) Optional use of shared memory in various places. Shared memory can be used
to transfer data between different programs. Compared to a transfer via
files this avoids file system overhead, and compared to transfer via pipes
this avoids (difficult to control and understand) buffer management by
the operating system.
(3) Cleaning RAM before writing, and refreshing data in RAM. The content of
RAM also gets refreshed on hardware level. With explicit reading and
rewriting of data in RAM (which look superfluous on the programming
level) we try to represent data "cleaner" in RAM before they are sent
to the next program or to the next computer or to the sound device.
This leads to surprising audible improvements in my setup. Several
variants were tested over longer periods, for ARM computers we
provide assembler code.
(4) From experiments I found that the physical representation of music
files on a hard disk influences the sound quality during playback,
even if the data are heavily processed before playback. This release
contains a script 'improvefile' which uses bufhrt to produce a
bit identical copy of a file on a hard disk. I have tried this for many
music files on my hard disk and made an audible comparison of the two
files, the copied file always sounded "better" and in some cases it
revealed remarkably more details of the music. I have not made
experiments with SSDs.
(5) To make it easier to use this package we provide several example
scripts which are explained on the webpage
http://frank_l.bitbucket.org/stereoutils/player.html
And here is a more detailed list of CHANGES.
- new scripts: 'improvefile' for bit identical but different sounding
files on hard disks; 'play_*' as an example script for playback of
a music files using this package. (Some example files from former releases
were removed).
- new utility functions used by cptoshm, shmcat, bufhrt and playhrt:
refreshmem and memclean are used to rewrite data in RAM, respectively
to clean RAM before overwriting, assembler versions are provided for
ARM and ARM-vfp architectures
- bufhrt: added --shared input option, can be used directly with writeloop
and without a pipe from catloop (so that the operating system has fewer
buffers to maintain)
- all programs: numerous improvements in the documentation and in the
information printed with --verbose flags
- playhrt: new option --mmap which uses the low level mmap driver interface
of ALSA drivers (in contrast to aplay). This mode is now recommended, even
over the version with a patched ALSA library, as was suggested in
version 0.6.
- playhrt: new option --number-channels for use with multi-channel setups
- writeloop: allow input from file via --from-file option
- writeloop and catloop: introduce --shared option for using shared memory
instead of files
- new utilities cptoshm and shmcat: copy data to a shared memory region in
RAM, respectively write these data to stdout
- bufhrt: introduced --interval mode, repeatedly buffers data without
output and then outputs chunks with precise timing and no reading
0.5 to 0.6
- playhrt: now writes data directly after sleep, before loop that checks
the result
- volrace did not work with 32-bit input, is fixed now (reported by
lililinux)