-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
424 lines (298 loc) · 16.7 KB
/
CHANGELOG
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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
changes from version 2.0 to 2.1
- added tamaint script. This script can be used to do minor database
maintenance and the functionality of the taalbumimages and taverify script
will most likely be rolled into this script in the future. Currently, it
only allows you to completely delete an album from the database
- the default poll time for wav files to convert to ogg was increased
significantly
- changed the default number of sectors value (-n) on dagrab to 8. It was
64, in an attempt to speed up ripping. 64 caused some pretty serious
defects on some newer discs on my production machine. If you want to try
speeding up your ripping speed using dagrab, experiment on the command
line by invoking dagrab with different values for -n to find out what
works for you. The default of 8 should be safe for most combinations of
discs and drives.
- fixed warnings output by taripdisc when used with the --infofile option
and there is no cover art images found
- taripdisc now uses the original filename extension when moving the audio
files around. this was causing a problem when mp3 files were imported
with the tapersonalarchive script
- file extensions could be in either case, don't assume, and thus match,
just lowercase
- added an alphabet slider to the albums screen, to make navigating albums
easier and faster
- allow hiding of the mouse cursor again -- somehow this functionality was
removed. change value of $show_mouse_cursor in taclient-touchscreen
changes from version 1.7 to 2.0
- new directory structure, moving all the programs out of client/ and server/
and into the package root. the scripts were also renamed to start with the
prefix "ta" (for _T_hund_A_ural). All perl modules are moved into the lib/
directory.
- client has been completely rewritten to be more modular.
- new client code supports different themes. The interface is still closely
tied to the (theme's) code, so it's not trivial to create a new theme, but
different themes can be created without interfering with the base, original
theme. The only theme currently included is named "Original" and is based
on the original thundaural theme (with some slight enhancements).
- the contents of the startup/ directory have been updated to match the new
directory structure
- added notes about console permissions with X to the startup/README.startup
file
- server detects inaccessiblity of the various devices it interacts with and
will refuse to start up if it they are not accessible, rather than going into
a state where it looks like it's working but doesn't
- fixed default -w option to aumix in the conf file checkdeps generates
- code should be self-contained now -- that is, no longer need to copy things
(like the php libs) to elsewhere in the filesystem to get it to work
- the xscreensaver integration has been disabled/removed until I can work
out a better system to get it integrated properly with jukebox statistics
changes from version 1.6 to version 1.7
- either rerun checkdeps and generate a new .conf file or edit your
conf file and change the line:
cmd ripcdrom:ripdisc.pl --dbfile ${DBFILE} --device ${DEVICEFILE} --storagedir ${STORAGEDIR} ${PROGOPTS}
to
cmd ripcdrom:ripdisc.pl --dbfile ${DBFILE} --cddevice ${DEVICEFILE} --storagedir ${STORAGEDIR} ${PROGOPTS}
note that the --device argument changed to --cddevice. This is because
the ripdisc script now uses the same command line parsing code that
the server script uses.
- 'devices' command was including private entries (those that had a type
that began with an underscore)
- fixed up database creation/upgrade code to work with SQLite3
don't create functions while in a transaction
->prepare now fails on critical errors that used to happen in ->execute
- will now rip to WAV, which is faster, and encode to ogg in the background
if there is at least 700 meg of free space on the filesystem that contains
the storage dir.
- album-images.pl is included in the server directory
- See the file server/ADDING_PERSONAL_ARCHIVE.txt for information on using
the personal-archive-load.pl script and the new features of ripdisc.pl to
populate the thundaural database with tracks you obtained without having
physical media, such as purchasing online. Includes a preconfigured
mode for loading tracks purchased from popular on-line music retailers,
with more to come in the future.
changes from version 1.5.1 to version 1.6
- added copyright notices to files, included GPL in the file COPYING
- server code has been better organized into perl modules
- the server now supports a 'flush <devicename>' command, to remove all queued
songs from that device
- automaticly upgrade the database to version 5. the only change to the
database is to expand the size of tracks.filename. Then we search for file
names that were short and try to find matching entries on the filename and
update the database to be correct
- added new option, --convert, which invokes code to perform optional or
risky updates manually.
- bah, I stupidly wasn't storing the tracknumber in either the filenames
or the vorbis comments. ripdisc.pl now does that, and a new optional
converter can be run (tracknumtags) to rename all the song files and
add the tracknumber tag to them. See the --convert-help option to the
server.pl script for more info. Additional tags are also added, like
RIPPER, CDINDEXID and CDDBID, for the sake of completeness.
Performing the tracknumtags conversion is entirely optional.
- the format of the track filenames has changed to use double colons (::) to
divide the components, rather than using a dash. double colon seems to have
fewer conflicts with actual track content.
- created an abstracted audio file reader to unify the interfaces between
Audio::Mad and Ogg::Vorbis::Decoder. New audio formats can be added in
the future using this interface. The server will now play MP3s (although
this is currently of limited use because Thundaural does not support
MP3s in any other way -- you can put MP3s in the system by editing the
database manually).
- now uses Audio::DSP to play audio data. No longer requires the patched
ogg123 (using ogg123 was a nightmare)
- because of the last two changes above, the server now has much greater
control of audio playback. This allowed me to add a customized pause
between songs, which is four seconds by default. If two songs are from
sequential tracks on the same album, they will play with no pause between
them. This will allow seamless full-album playing.
- changed to use Getopt::Long to parse server command line args
- now all options can be specified in a configuration file rather
than perl code -- /etc/thundaural/server.conf replaces TAProgramLocations.pm
and Settings.pm. Multiple configuration files can be used, and they
can be nested.
- removed --syslog and --stderr options, replaced with --log, which can
take either 'syslog', 'stderr', or a filename to log to
- added --dumpconf option, which displays the configuration to stdout and exits
- fixed problem with LookupMusicBrainzRemote that was causing the performer
field for the entire album to be set to which ever artist was listed
last in the XML
changes from version 1.5 to version 1.5.1
- disabled the edit command, which has not been updated for the
database schema changes.
I missed checking this change in for the 1.5 release.
changes from version 1.4 to version 1.5
- completely new ripdisc.pl script that supports modular album
lookup methods. First it will try MusicBrainz, and failing that
it will try FreeDB. Additional modules can be added easily.
Now requires XML::Ximple perl module (for MusicBrainz). The
new ripper does not support different agressiveness levels,
which were required when using cdparanoia.
cdda2wav is required for cdindexid and cddbid calculation.
- checkdeps script generates a TAProgramLocations.pm perl module
that is used by the server. After running checkdeps, be sure
to move this file into the server directory.
- perfers dagrab over cdda2wav over cdparanoia for audio extraction
Get dagrab from http://vertigo.fme.vutbr.cz/~stibor/dagrab.html
Since we require cdda2wav elsewhere, we'll never actually try to
use cdparaonia -- I know this, and maybe I'll get around to fixing
it. Or maybe not, I'm not too happy with the output of cdparanoia
- don't try to backup an empty database
- don't make it look like we support playing MP3s when we don't.
had references to it in code that did execute, but I never
tested it.
- added checksum command to server (clients should be better able
to manage/reduce bandwidth with intelligent use)
- "coverart ripping" returns the cover art image for the current
ripping process
- client now takes --host and --port options to designate the
server to connect to
- database gets upgraded to version 3:
albums.source to store source of album information
albums.cdindexid column to store musicbrainz CDindex
albums can have more than one image
performers abstracted to another table
support for individual track attributes (for future expansion)
- rank numbering fixed. If the top two tracks have the same
popularity, they'll both be ranked first. The next possible
ranking is third (because there are two tracks before it), and there
is no track ranked second
- new server command 'version', which reports the client/server
protocol version number (currently at 4)
- client verifies it's talking to a compatible server before continuing
- removed printing of the genres in the client, since protocol v4
doesn't support them (they were moved to the trackattributes table)
- verified that ripping speed is correct (vorbis encoding seems to be
the limiter (can't get faster than ~5x on my test machine, but dagrab
will rip to a file at around 12x. Rip to a file and then encode to
vorbis takes roughly the same amount of time as doing it in a
pipeline))
- trying out a new background image from the excellent legacy Propaganda
collection (ich bin ein good looking desktop whore) to hold me over
until the interface gets ravamped. To revert the old brushed-metal-like
one, change the lines that are commented out in the load_images function
in client/interface.pl
- included startup script for the server in the startup/ directory, and for
the client in the client/ directory. See startup/README.startup
or the installation page on the website for instructions on use.
- added --dontfork option to the server, which keeps it from daemonizing
itself (which it does by default now)
- fixed bug that was keeping the albums page from being updated if there
were less than 6 albums in the database and new album was ripped
- other cleanups of both minor and major natures
changes from version 1.3 to version 1.4
- renamed Statistics.pm to Periodic.pm, since it will now handle
things we want to do periodicly
- removed bogus dependency on DBI in the client
- checkdeps script now checks for other SDL libraries needed for
SDL_perl
- server supports random play using the randomize command
- beginnings for the client interface for randomized play
(showing the current status is kind of buggy)
- minor visual changes to the popularity display in the track listing
- server returns response code 202 when a block of binary data is
being sent
- 'coverart <albumid>' command added to server, which dumps the
cover art file to the client.
- client doesn't know about local storage of cover art files anymore
it uses the new coverart command to download them from the server
and locally caches them in /tmp
- server now builds the database if it doesn't exist, no need to
manually create it using the SQLite command line client (which
might not exist if you installed DBI::SQLite)
- server can now automaticly upgrade the database if the database
format changes
- removed dependency on the Microsoft Webfonts Arial and Georgia.
the freely available Bitstream Vera fonts look better
(and can be freely redistributed)
changes from version 1.2 to version 1.3
- bah, tell Data::Dumper to dump hashes sorted, so comparsions
work and we only update when we need to
- Ripping page has been updated to be more user friendly
and use less CPU when updating
- Ripping page shows the ripping speed as a function of the length
of the track, as reported by server/ripdisc.pl
- Added Stats page
- Removed a lot of debugging messages
- Converted to use Sys::Syslog rather than /usr/bin/logger
- added a simple script checkdeps which verifies that you have
everything you need installed
- fixed track listing drawing overflow when different font is used
on the tracks page
- if the server only reports one output, don't give the option
to select output on the tracks page
- some minor layout changes to the tracks page
- restricted font use to two fonts, both of which are in the msfonts
rpm on the website
changes from version 1.1 to version 1.2
- tested the whole thing with the provided empty database to
ensure that you can bootstrap the system to usability by
ripping discs. I had originally imported the data from my
pre-1.0 MySQL database, so I never worked on this codebase
with an empty database. Some of the fixes below are due to
this testing.
- client now actually recovers gracefully from errors from the
server, the abstraction code returns empty values rather than
the error codes.
- client now handles no albums in the database correctly by
showing a message to that effect.
- client handles less than 6 albums in the database correctly,
previously, it would display some blank album covers oddly.
- additional server thread dedicated to updating track rankings
(will be used in the future to update other statistics also).
Also, removed the undocumented 'rankupdate' command that
manually invoked the update function.
- more verification that player and reader thread re-spawning
works when they die (new undocumented server command 'exit
<devicename>' to test this).
- main server threads yields after notifying worker threads to
exit to avoid threads-still-running-on-exit race condition
changes from version 1.0 to version 1.1
- database change: new colum tracks.riperrors which ripdisc.pl will
record how many corrections cdparanoia claims it had to make. In
the future this will be used to help determine if any tracks need
to be re-ripped or replaced. cdparanoia is excellent at error
correction, but sometimes leaves pops and skip noises in the audio.
You'll need to modify the tracks table by hand to add this colum:
in SQLite (which doesn't have alter or rename statements):
create table oldtracks as select * from tracks;
.schema tracks
drop tracks;
CREATE TABLE tracks (
trackid integer,
albumid int(11) NOT NULL default '0',
performer varchar(128) NOT NULL default '',
length int(11) default NULL,
name varchar(128) NOT NULL default '',
albumorder int(11) NOT NULL default '0',
genreid int(11) default NULL,
popularity float default NULL,
rank int(11) default NULL,
filename varchar(128) NOT NULL default '',
riperrors varchar(24) default NULL,
PRIMARY KEY (trackid)
);
insert into tracks select *, NULL from oldtracks;
drop table oldtracks;
- added a --aggressive option to ripdisc.pl, which takes an argument
from 0 to 9. The higher the aggressiveness, the greater tolerance
of error corrections per sector it will be. Based on the agressive
value, it will eventually give up the error correction and just
tell cdparanoia to rip it without any error correction. The default
is maximum agressiveness (9).
The server doesn't support taking an agressiveness argument from the
client and the client doesn't offer the user an option for
aggressiveness (yet).
- more status information is generated for ripping
- the client and server now support aborting a rip in progress.
- a bunch of strange bugs were fixed in the client, mostly related to
odd crashes when using SDL::Timer and how it interacts with perl. I've
gotten rid of using SDL::Timer objects all together. The client is
a lot stabler now.
- I removed some of the larger, unused files from the client/images
directory that were left over from my testing.
- Fixed some bugs with the slider on the albums page, it was being positioned
all the way to the left when it should have been all the way to the right
- Client now uses Data::Dumper to determine if the screen needs to be updated
This cuts down on memory usage, as there appears to be a bug in the TTF
libs I'm using, or SDL::TTFont code such that memory gets leaked everytime
lots of text is drawn to a surface.
$Header: /home/cvs/thundaural/CHANGELOG,v 1.17 2004/06/06 01:18:57 jukebox Exp $