chiark / gitweb /
Consistency check for finished tracks.
[disorder] / CHANGES.html
CommitLineData
b0a578cb
RK
1<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2<html>
3<head>
4<title>DisOrder Change History</title>
5<style type="text/css">
6body {
7 color: black;
8 background-color: white;
9 font-family: times,serif;
10 font-weight: normal;
11 font-size: 12pt;
12 font-variant: normal
13}
14
15div.section {
16 margin-left:1em
17}
18
19h1 {
20 background-color: #e0ffe0;
21 font-family: helvetica,sans-serif;
22 padding: 0.2em
23}
24
25h2 {
26 background-color: #e0ffe0;
27 font-family: helvetica,sans-serif;
28 padding: 0.2em
29}
30
31h3 {
32 background-color: #f0f0f0;
33 font-family: helvetica,sans-serif;
34 padding: 0.2em
35}
36
37h4 {
38 font-family: helvetica,sans-serif
39}
40
41table.bugs {
37e94d5c
RK
42 width: 100%;
43 font-size: 12pt;
44 border-collapse: collapse;
45 border:1px
b0a578cb
RK
46}
47
48table.bugs th {
37e94d5c
RK
49 text-align: left;
50 border: 1px solid black;
51 background-color: black;
52 color: white
53}
54
55table.bugs td {
56 border: 1px solid
b0a578cb
RK
57}
58
59span.command {
60 font-family: monospace
61}
62</style>
63</head>
64
65<body>
66<h1>DisOrder Change History</h1>
67
d8b95785
RK
68<p>This file documents recent user-visible changes to <a
69 href="http://www.greenend.org.uk/rjk/disorder/">DisOrder</a>.</p>
70
5bb003c8
RK
71<h2>Changes up to version 5.1</h2>
72
73<div class=section>
74
75 <h3>Removable Device Support</h3>
76
77 <div class=section>
78
79 <p>The server will now automatically initiate a rescan when a filesystem is
8488cf7d
RK
80 mounted or unmounted. (Use the <tt>mount_rescan</tt> option if you want to
81 suppress this behavior.)</p>
5bb003c8
RK
82
83 <p>The server takes care not to hold audio files open unnecessarily, so
84 that devices can be unmounted even if tracks from them are currently being
85 buffered.</p>
86
87 </div>
88
b1dd58fc
RK
89 <h3>General</h3>
90
91 <div class=section>
92
93 <p>Unicode support has been upgraded to <a
94 href="http://www.unicode.org/versions/Unicode6.0.0/">Unicode
95 6.0.0</a>.</p>
96
97 </div>
98
5bb003c8
RK
99</div>
100
64360021 101<h2>Changes up to version 5.0</h2>
f5fd9a6b
RK
102
103 <div class=section>
104
f207f710
RK
105 <h3>Server</h3>
106
f5fd9a6b
RK
107 <div class=section>
108
fe33cfc0 109 <p>The <tt>device</tt> configuration option now works under OS X.
7cd4dd21 110 Devices may
f207f710 111 be specified either by UID or name. Fixes <a
f5fd9a6b
RK
112 href="http://code.google.com/p/disorder/issues/detail?id=27">Issue
113 27</a>.</p>
f207f710 114
f71fc3ab 115 <p>Gapless play should be more reliable, and playback latency over RTP
6762ac8a 116 should be a bit lower. Note though that all the sound output code has
f71fc3ab 117 been reorganized and in some cases completely rewritten, so it's possible
900fa0b8
RK
118 that bugs may have been (re-)introduced. Decoding of scratches is also
119 initiated ahead of time, giving more reliable playback.</p>
7cd4dd21
RK
120
121 <p>The <tt>command</tt> backend now (optionally) sends silence instead
122 of suspending writes when a pause occurs or no track is playing.</p>
c3feb35b
RK
123
124 <p>If <a href="http://www.mega-nerd.com/SRC/">libsamplerate</a> is
125 available at build time then that will be used instead of invoking
317dc3e8
RK
126 <a href="http://sox.sourceforge.net/">SoX</a>. SoX support will be
127 removed in a future version.</p>
c3feb35b 128
6a213ecb
RK
129 <p>The libao plugin has been removed, because the plugin API is not
130 usable in libao 1.0.0.</p>
86541f5a 131
79ab6bd2
RK
132 <p>Playlists are now supported. These allow a collection of tracks to be
133 prepared offline and played as a unit.</p>
134
7cd4dd21
RK
135 </div>
136
6a7eb118
RK
137 <h3>Disobedience</h3>
138
139 <div class=section>
140
69c456f3
RK
141 <p>Multiple tracks can now be dragged in the queue in a single operation.
142 Furthermore, it is now possible to drag tracks from the
143 &ldquo;Recent&rdquo;, &ldquo;Added&rdquo; and &ldquo;Choose&rdquo; tabs
144 to the queue.</p>
6a7eb118 145
c2f51940
RK
146 <p>Disobedience now supports playlist editing and has a compact mode,
147 available from the <b>Control</b> menu.</p>
79ab6bd2 148
67b1beae
RK
149 <p>Disobedience has a <a href="disobedience/manual/index.html">new
150 manual</a>.</p>
151
6a7eb118
RK
152 </div>
153
7cd4dd21
RK
154 <h3>Web Interface</h3>
155
156 <div class=section>
53710d44 157
7cd4dd21
RK
158 <p>Confirmation URLs should be cleaner (and in particular not end
159 with punctuation). (Please see <a
160 href="README.upgrades">README.upgrades</a> for more about this.)</p>
533272be 161
f207f710
RK
162 </div>
163
164 <h3>RTP Player</h3>
165
166 <div class=section>
167
168 <p>There is a new <tt>--command</tt> option which allows the RTP player
169 to send audio data to a user-chosen command instead of an audio API. See
170 the man page for details.</p>
171
172 <p>The <tt>--device</tt> option to <tt>disorder-playrtp</tt> now works
173 under OS X (as above).</p>
f5fd9a6b
RK
174
175 </div>
7cd4dd21
RK
176
177 <h3>General</h3>
f5fd9a6b 178
7cd4dd21
RK
179 <div class=section>
180
181 <p>IPv6 should now work. Network address specifications
182 (<tt>listen</tt>, <tt>connect</tt> etc) can now be prefixed with
183 <tt>-4</tt> or <tt>-6</tt> to force use
184 of IPv4 or IPv6, though normally this should not be needed.</p>
185
2cb9bc5f
RK
186 <p>Unicode support has been upgraded to <a
187 href="http://www.unicode.org/versions/Unicode5.1.0/">Unicode
188 5.1.0</a>.</p>
189
7cd4dd21
RK
190 <p>Various elements of the source code have been
191 rationalized.</p>
192
193 </div>
194
f5fd9a6b
RK
195 <h3>Bugs fixed</h3>
196
197 <div class=section>
198
199 <table class=bugs>
200 <tr>
201 <th>ID</th>
202 <th>Description</th>
203 </tr>
417ef7de
RK
204
205 <tr>
206 <td><a href="http://code.google.com/p/disorder/issues/detail?id=22">#22</a></td>
207 <td>Background decoders interact badly with server reload</td>
208 </tr>
209
f5fd9a6b
RK
210 <tr>
211 <td><a href="http://code.google.com/p/disorder/issues/detail?id=27">#27</a></td>
212 <td>Mac DisOrder uses wrong sound device</td>
213 </tr>
214
7cd4dd21 215 <tr>
548c9cba
RK
216 <td><a href="http://code.google.com/p/disorder/issues/detail?id=30">#30</a></d>
217 <td>mini disobedience interface</td>
218 </tr>
219
220 <tr>
bbaed9ec
RK
221 <td><a href="http://code.google.com/p/disorder/issues/detail?id=32">#32</a></d>
222 <td>Excessively verbose log chatter on shutdown</td>
223 </tr>
224
225 <tr>
7cd4dd21
RK
226 <td><a href="http://code.google.com/p/disorder/issues/detail?id=33">#33</a></d>
227 <td>(Some) plugins need -lm.</td>
228 </tr>
6762ac8a
RK
229
230 <tr>
231 <td><a href="http://code.google.com/p/disorder/issues/detail?id=39">#39</a></d>
232 <td>Double bind() non-multicast AF_INET</td>
233 </tr>
234
235 <tr>
236 <td><a href="http://code.google.com/p/disorder/issues/detail?id=40">#40</a></d>
237 <td>Missing stub function</td>
238 </tr>
239
240 <tr>
241 <td><a href="http://code.google.com/p/disorder/issues/detail?id=41">#41</a></d>
242 <td>Missing includes for timeval</td>
243 </tr>
244
245 <tr>
246 <td><a href="http://code.google.com/p/disorder/issues/detail?id=42">#42</a></d>
247 <td>syntax error in empeg_host section</td>
248 </tr>
249
250 <tr>
93379b3d
RK
251 <td><a href="http://code.google.com/p/disorder/issues/detail?id=43">#43</a></d>
252 <td>decoder segfault with FLAC 1.2.1</td>
253 </tr>
254
255 <tr>
6762ac8a
RK
256 <td><a href="http://code.google.com/p/disorder/issues/detail?id=44">#44</a></d>
257 <td>gcc 4.3.2-1ubuntu12 SUYB patch</td>
258 </tr>
259
260 <tr>
261 <td><a href="http://code.google.com/p/disorder/issues/detail?id=45">#45</a></d>
262 <td>disobedience doesn't configure its back end</td>
263 </tr>
fa667301
RK
264
265 <tr>
d53ef367
RK
266 <td><a href="http://code.google.com/p/disorder/issues/detail?id=46">#46</a></d>
267 <td>Sort search results in web interface</td>
268 </tr>
269
270 <tr>
fa667301
RK
271 <td><a href="http://code.google.com/p/disorder/issues/detail?id=48">#48</a></d>
272 <td>build-time dependency on <tt>oggdec</tt> removed</td>
273 </tr>
274
e03df0a5
RK
275 <tr>
276 <td><a href="http://code.google.com/p/disorder/issues/detail?id=49">#49</a></d>
277 <td>Disobedience's 'When' column gets out of date</td>
278 </tr>
279
900fa0b8 280 <tr>
de38ab9b
RK
281 <td><a href="http://code.google.com/p/disorder/issues/detail?id=51">#51</a></td>
282 <td>Improved speaker process robustness</td>
283 </tr>
284
285 <tr>
900fa0b8
RK
286 <td>(none)</td>
287 <td>&ldquo;found track in no collection&rdquo; messages for scratches
288 are now suppressed</td>
289 </tr>
290
37e94d5c
RK
291 <tr>
292 <td>(none)</td>
293 <td>Disobedience would sometimes fail to notice when a track
294 started, leading to its display getting out of date.</td>
295 </tr>
296
f5fd9a6b 297 </table>
f5fd9a6b
RK
298 </div>
299 </div>
300
a0e78d96 301<h2>Changes up to version 4.3</h2>
d8b95785
RK
302
303 <div class=section>
304
305 <h3>Disobedience</h3>
306
307 <div class=section>
308
309 <p>A bug was fixed in the calculation of how much of the track had
e02f9807
RK
310 played. This would lead to the counter showing incorrect values in
311 various situations.</p>
d8b95785
RK
312
313 <p>Disobedience's icons have been changed to larger, more colorful
314 ones. The SVG source is included if you want to fiddle with them.</p>
315
a0e78d96
RK
316 <p>&ldquo;Select all&rdquo; is now no longer available in the choose
317 tab. Instead there is a new &ldquo;Select children&rdquo; option which
318 selects the file children of a single subdirectory.</p>
319
d8b95785
RK
320 </div>
321
6151ae7e
RK
322 <h3>Server</h3>
323
324 <div class=section>
325
326 <p>The selection bias for newly added tracks was reduced by half. You
327 can put it back to the old very neophilic value with
328 &ldquo;<tt>new_bias 900000</tt>&rdquo; in the config file.</p>
329
ff45af7c
RK
330 <p>It is now possible to &lsquo;adopt&rsquo; randomly picked tracks.
331 Disobedience and the command-line client support this but the web
332 interface does not.</p>
333
e02f9807
RK
334 <p>The default track name parsing was modified to handle filenames
335 generated by iTunes.</p>
336
6151ae7e
RK
337 </div>
338
10a6c925 339 <h3>Miscellaneous</h3>
d8b95785
RK
340
341 <div class=section>
342
10a6c925
RK
343 <p><tt>disorderfm</tt> now preserves directory permissions.</p>
344
e7eb3a27
RK
345 <p>DisOrder is now licensed under <a
346 href="http://www.gnu.org/licenses/gpl-3.0.html">GPL v3</a>. The main
347 goal is to prohibit <a
348 href="http://en.wikipedia.org/wiki/Tivoization">Tivoization</a>.</p>
349
d8b95785 350 <p>The build system will now automatically cope with Fink's broken GTK+
e02f9807
RK
351 packages. There are a number of improvements to the Debian
352 packaging.</p>
d8b95785 353
74cfbeaa
RK
354 <p>DisOrder now builds on 64-bit Linux systems.</p>
355
e02f9807 356 <p>There are various minor fixes.</p>
d8b95785
RK
357
358 </div>
359
e02f9807
RK
360 <h3>Bugs fixed</h3>
361
362 <div class=section>
363
364 <table class=bugs>
365 <tr>
366 <th>ID</th>
367 <th>Description</th>
368 </tr>
369
370 <tr>
371 <td><a href="http://code.google.com/p/disorder/issues/detail?id=24">#24</a></td>
372 <td>Fails to build on ubuntu 8.10</td>
373 </tr>
374 <tr>
375 <td><a href="http://code.google.com/p/disorder/issues/detail?id=26">#26</a></td>
376 <td>Disobedience shows wrong track elapsed time after a pause</td>
377 </tr>
378 </table>
379
380 </div>
d8b95785 381 </div>
b0a578cb 382
eb2a1fe9
RK
383<h2>Changes up to version 4.2</h2>
384
385<div class=section>
386
387 <h3>Disobedience</h3>
388
389 <div class=section>
390
391 <p>The login window now has a 'remote' switch. If this is turned off
392 then Disobedience will connect to a local server. Formerly it would
393 always use TCP/IP.</p>
394
395 <p>The Delete and backspace keys will now remove tracks from the queue.
396 Escape will now dismiss the properties, users or login windows and return
397 now works in the login and properties windows.</p>
398
399 </div>
400
401 <h3>Documentation</h3>
402
403 <div class=section>
404
405 <p>Track and global preferences are now described in a new
406 <b>disorder_preferences</b>(5) man page.</p>
407
408 </div>
cc5b0a8e
RK
409
410 <h3>Bugs fixed</h3>
411
412 <div class=section>
413
414 <table class=bugs>
415 <tr>
416 <th>ID</th>
417 <th>Description</th>
418 </tr>
419
420 <tr>
421 <td><a href="http://code.google.com/p/disorder/issues/detail?id=21">#21</a></td>
422 <td>CGI should use PATH_INFO more sensibly</td>
423 </tr>
424 </table>
425
426 </div>
eb2a1fe9
RK
427</div>
428
429
68210888
RK
430<h2>Changes up to version 4.1.1</h2>
431
432<div class=section>
433
434 <p>Disobedience's &ldquo;Login&rdquo; window now works when you are logged
435 in.</p>
436
437</div>
438
452ad6ba
RK
439<h2>Changes up to version 4.1</h2>
440
441<div class=section>
442
443 <h3>Disobedience</h3>
444
445 <div class=section>
446
447 <p>Disobedience has been largely rewritten:</p>
448
449 <ul>
450
451 <li>All the tabs now use native GTK+ list/tree widgets, resulting in
452 greater speed in some cases and more consistency with other GTK+
453 applications.</li>
454
455 <li>You can now use type-ahead find in the choose tab. The initiation
456 of a search is delayed slightly to avoid lots of updates when you're
457 half way through entering search terms.</li>
458
459 <li>The choose tab now shows track lengths.</li>
460
461 <li>Many buttons are now more reliably made insensitive when they can't
462 be used.</li>
30f2f8c9
RK
463
464 <li>You can now play tracks off the recent tab.</li>
465
452ad6ba
RK
466 </ul>
467
468 <p>Disobedience attempts to cope with servers from older versions, up to
469 a point, but this is not well tested and it's best to keep the server
470 fully up to date.</p>
471
472 </div>
473
474 <h3>Server</h3>
475
476 <div class=section>
477
478 <p>When a track shares a directory with its alias, the real track name is
479 now returned instead of the alias (the opposite way round to the previous
480 behaviour).</p>
481
482 </div>
483</div>
484
32918782
RK
485<h2>Changes up to version 4.0.2</h2>
486
487<div class=section>
488
489 <p>Corrected web browser linked from Disobedience.</p>
490
491</div>
492
f03d4184
RK
493<h2>Changes up to version 4.0.1</h2>
494
495<div class=section>
496
497 <p>Libtool and Automake now install the CGI correctly. As part of this,
498 <tt>cgidir</tt> has been renamed to <tt>cgiexecdir</tt>. The configure
499 script will report an error if you try to use the old name.</p>
500
501</div>
502
0ba75c7f 503<h2>Changes up to version 4.0</h2>
b0a578cb
RK
504
505<div class=section>
506
507 <h3>Server</h3>
508
509<div class=section>
510
511 <p>The <tt>gap</tt> directive will no longer work. It could be
512 restored if there is real demand.</p>
513
514 <h4>Event Scheduling</h4>
515
516<div class=section>
517
518 <p>It is now possible to schedule events to occur in the future.
519 Currently the supported actions are playing a specific track, and
520 changing a global preference (thus allowing e.g. random play to be
521 turned on or off). See the <tt>schedule-*</tt>
522 commands described in disorder(1).</p>
523
524</div>
525
526<h4>Random Track Choice</h4>
527
528<div class=section>
529
530 <p>This has been completely rewritten to support new features:</p>
531
532 <ul>
533
534 <li>tracks in the recently-played list or in the queue are no longer
535 eligible for random choice.</li>
536
537 <li>there is a new <tt>weight</tt> track preference allowing for
538 non-uniform track selection. See disorder(1) for details.</li>
539
540 <li>there is a new configuration item <tt>replay_min</tt> defining
541 the minimum time before a played track can be picked at random.
542 The default is 8 hours (which matches the earlier behaviour).</li>
543
544 <li>recently added tracks are biased up; see <tt>new_bias</tt> and
545 <tt>new_bias_age</tt> in disorder_config(5).</li>
546
547 </ul>
548
549</div>
550
551<h4>Web Interface</h4>
552
553<div class=section>
554
555 <p>This has been largely rewritten. The most immediate benefits are:</p>
556
557 <ul>
558
559 <li>the search page is integrated into the choose page, and
560 includes links to parent directories.</li>
561
562 <li>if you try to do something you have insufficient rights for,
563 instead of getting an error page or nothing happening, you are
564 redirected to the login page.</li>
565
566 </ul>
567
568 <p>Customizers should find their lives easier: the syntax is less onerous, it
569 is possible to define macros to avoid repetition, and the documentation is
570 less monolithic (see disorder.cgi(8) as a starting point).</p>
571
2eee4b0c
RK
572 <p>Mail is now sent via the system sendmail program, though it remains
573 possible to use TCP to connect to an SMTP server. See <tt>sendmail</tt> and
574 <tt>smtp_server</tt> in disorder_config(5).</p>
4cbafe13 575
64ac73bb
RK
576 <p>The web interface is now installed automatically. If you don't want it,
577 use <tt>./configure --without-cgi</tt>. If you want it in a non-default
578 location, or no location for it is detected, set <tt>cgidir</tt>
579 and <tt>httpdir</tt> on the <tt>./configure</tt> command line.</p>
2eee4b0c 580
b0a578cb
RK
581</div>
582
583</div>
584
585<h3>Disobedience</h3>
586
587<div class=section>
588
589 <p>There is now a new user management window. From here you can add and
590 remove users or modify their settings.</p>
591
592 <p>Relatedly, the server will only allow remote user management if you set
593 <tt>remote_userman</tt> to <tt>yes</tt>.</p>
594
595</div>
596
597<h3>Miscellaneous</h3>
598
599<div class=section>
600
601 <p><tt>scripts/setup</tt> now honors command line options, and can
602 set up network play as well as the local default sound device.</p>
603
604</div>
605
606<h3>Bugs Fixed</h3>
607
608<div class=section>
609
610 <table class=bugs>
611 <tr>
612 <th>ID</th>
613 <th>Description</th>
614 </tr>
615
616 <tr>
617 <td><a href="http://code.google.com/p/disorder/issues/detail?id=2">#2</a></td>
618 <td>Search results should link to directories</td>
619 </tr>
620
621 <tr>
622 <td><a href="http://code.google.com/p/disorder/issues/detail?id=6">#6</a></td>
623 <td>Schedule tracks for a particular time</td>
624 </tr>
625
626 <tr>
627 <td><a href="http://code.google.com/p/disorder/issues/detail?id=10">#10</a></td>
628 <td>Non-uniform track selection</td>
629 </tr>
630
631 <tr>
632 <td><a href="http://code.google.com/p/disorder/issues/detail?id=11">#11</a></td>
633 <td>Bias random selection to newly added tracks</td>
634 </tr>
635
636 <tr>
637 <td><a href="http://code.google.com/p/disorder/issues/detail?id=13">#13</a></td>
638 <td>Default encoding for debian setup scripts</td>
639 </tr>
640
641 <tr>
642 <td><a href="http://code.google.com/p/disorder/issues/detail?id=16">#16</a></td>
643 <td>Cookie expiry causes user to be silently logged out and not
644 subsequently redirected to login page</td>
645 </tr>
646
647 <tr>
648 <td><a href="http://code.google.com/p/disorder/issues/detail?id=20">#20</a></td>
649 <td>Broken aliasing rules</td>
650 </tr>
651
652 </table>
653
654</div>
655
656</div>
657
658<h2>Changes up to version 3.0.2</h2>
659
660<div class=section>
661
662 <p>Builds <tt>--without-server</tt> should work again.</p>
663
664 <p>The web interface is a bit more liberal in the cookie value
665 syntax it will accept.</p>
666
667 <p>Clients fail more gracefully if no password is available.</p>
668
669</div>
670
671<h2>Changes up to version 3.0.1</h2>
672
673<div class=section>
674
675 <p>Debian upgrades from 2.0.x should now work better.</p>
676
677</div>
678
679<h2>Changes up to version 3.0</h2>
680
681<div class=section>
682
683 <p><b>Important</b>! See <a
684 href="README.upgrades">README.upgrades</a> when upgrading.</p>
685
686 <h3>Platforms And Installation</h3>
687
688<div class=section>
689
690 <p>Mac OS X and FreeBSD are somewhat supported. There is now a bash
691 script in <tt>scripts/setup</tt> which will automate the setup after
692 <tt>make install</tt>.</p>
693
694</div>
695
696<h3>Server</h3>
697
698<div class=section>
699
700 <p>Users are now stored in the database rather than a configuration
701 file.</p>
702
703 <p>The server now has a built-in list of stopwords and players, so
704 only additions to these need be mentioned in the configuration file.</p>
705
706 <p>The default inter-track gap is now 0s.</p>
707
708 <p>How sound is played is now controlled via the new <tt>api</tt>
709 configuration command. This also controls how the volume is set,
710 which now works with ALSA as well as OSS.</p>
711
712 <p>A bug in the MP3 decoder was fixed (also in 2.0.4).</p>
713
714</div>
715
716<h3>Web Interface</h3>
717
718<div class=section>
719
720 <p>The web interface now uses cookies to remember user identity, and
721 allows online registration of new users. Also it is no longer
722 necessary to manually specify the URL of the web interface (but you
723 can override it if you don't like the value it figures out).</p>
724
725 <p>It is possible to allow users to register via the web interface.</p>
726
727 <p>The web interface's browser support has been improved. It has
728 been tested with Firefox 2, Safari 3, Konqueror 3, Internet Explorer
729 7 and Opera 9.</p>
730
731</div>
732
733<h3>Disobedience</h3>
734
735<div class=section>
736
737 <p>A bug which would cause a crash if you attempt to rearrange the
738 queue while no track was playing has been fixed. There is a new
739 'deselect all tracks' option, mirroring 'select all tracks.</p>
740
741</div>
742
743</div>
744
745<!--
746Local Variables:
747fill-column:79
4cbafe13 748indent-tabs-mode:nil
b0a578cb
RK
749End:
750-->