chiark / gitweb /
Merge audio timing fix branch.
[disorder] / CHANGES.html
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2 <html>
3 <head>
4 <title>DisOrder Change History</title>
5 <style type="text/css">
6 body {
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
15 div.section {
16   margin-left:1em
17 }
18
19 h1 {
20   background-color: #e0ffe0;
21   font-family: helvetica,sans-serif;
22   padding: 0.2em
23 }
24
25 h2 {
26   background-color: #e0ffe0;
27   font-family: helvetica,sans-serif;
28   padding: 0.2em
29 }
30
31 h3 {
32   background-color: #f0f0f0;
33   font-family: helvetica,sans-serif;
34   padding: 0.2em
35 }
36
37 h4 {
38   font-family: helvetica,sans-serif
39 }
40
41 table.bugs {
42   width: 100%
43 }
44
45 table.bugs th {
46   text-align: left
47 }
48
49 span.command {
50   font-family: monospace
51 }
52 </style>
53 </head>
54
55 <body>
56 <h1>DisOrder Change History</h1>
57
58 <p>This file documents recent user-visible changes to <a
59  href="http://www.greenend.org.uk/rjk/disorder/">DisOrder</a>.</p>
60
61 <h2>Changes up to version 4.4</h2>
62
63   <div class=section>
64   
65     <h3>Server</h3>
66  
67     <div class=section>
68
69       <p>The <tt>device</tt> configuration option no works under OS X.
70       Devices may
71       be specified either by UID or name.  Fixes <a
72        href="http://code.google.com/p/disorder/issues/detail?id=27">Issue
73       27</a>.</p>
74
75       <p>Gapless play should be more reliable, and playback latency over
76       RTP should be a bit lower.</p>
77       
78       <p>The <tt>command</tt> backend now (optionally) sends silence instead
79       of suspending writes when a pause occurs or no track is playing.</p>
80       
81     </div>
82       
83     <h3>Web Interface</h3>
84  
85     <div class=section>
86
87       <p>Confirmation URLs should be cleaner (and in particular not end
88       with punctuation).  (Please see <a
89       href="README.upgrades">README.upgrades</a> for more about this.)</p>
90       
91     </div>
92       
93     <h3>RTP Player</h3>
94   
95     <div class=section>
96
97       <p>There is a new <tt>--command</tt> option which allows the RTP player
98       to send audio data to a user-chosen command instead of an audio API. See
99       the man page for details.</p>
100       
101       <p>The <tt>--device</tt> option to <tt>disorder-playrtp</tt> now works
102       under OS X (as above).</p>
103         
104     </div>
105       
106     <h3>General</h3>
107
108     <div class=section>
109
110       <p>IPv6 should now work.  Network address specifications
111       (<tt>listen</tt>, <tt>connect</tt> etc) can now be prefixed with
112       <tt>-4</tt> or <tt>-6</tt> to force use
113       of IPv4 or IPv6, though normally this should not be needed.</p>
114
115       <p>Unicode support has been upgraded to <a
116       href="http://www.unicode.org/versions/Unicode5.1.0/">Unicode
117       5.1.0</a>.</p>
118
119       <p>Various elements of the source code have been
120       rationalized.</p>
121       
122     </div>
123     
124     <h3>Bugs fixed</h3>
125   
126     <div class=section>
127
128       <table class=bugs>
129         <tr>
130           <th>ID</th>
131           <th>Description</th>
132         </tr>
133         
134         <tr>
135           <td><a href="http://code.google.com/p/disorder/issues/detail?id=27">#27</a></td>
136           <td>Mac DisOrder uses wrong sound device</td>
137         </tr>
138
139         <tr>
140           <td><a href="http://code.google.com/p/disorder/issues/detail?id=33">#33</a></d>
141           <td>(Some) plugins need -lm.</td>
142         </tr>
143         
144       </table>
145       
146     </div>
147   </div>
148
149 <h2>Changes up to version 4.3</h2>
150
151   <div class=section>
152
153     <h3>Disobedience</h3>
154
155       <div class=section>
156
157         <p>A bug was fixed in the calculation of how much of the track had
158         played.  This would lead to the counter showing incorrect values in
159         various situations.</p>
160
161         <p>Disobedience's icons have been changed to larger, more colorful
162         ones.  The SVG source is included if you want to fiddle with them.</p>
163
164         <p>&ldquo;Select all&rdquo; is now no longer available in the choose
165         tab.  Instead there is a new &ldquo;Select children&rdquo; option which
166         selects the file children of a single subdirectory.</p>
167
168       </div>
169
170     <h3>Server</h3>
171
172       <div class=section>
173
174         <p>The selection bias for newly added tracks was reduced by half.  You
175         can put it back to the old very neophilic value with
176         &ldquo;<tt>new_bias 900000</tt>&rdquo; in the config file.</p>
177
178         <p>It is now possible to &lsquo;adopt&rsquo; randomly picked tracks.
179         Disobedience and the command-line client support this but the web
180         interface does not.</p>
181
182         <p>The default track name parsing was modified to handle filenames
183         generated by iTunes.</p>
184         
185       </div>
186
187     <h3>Miscellaneous</h3>
188
189       <div class=section>
190
191         <p><tt>disorderfm</tt> now preserves directory permissions.</p>
192
193         <p>DisOrder is now licensed under <a
194          href="http://www.gnu.org/licenses/gpl-3.0.html">GPL v3</a>.  The main
195         goal is to prohibit <a
196          href="http://en.wikipedia.org/wiki/Tivoization">Tivoization</a>.</p>
197
198         <p>The build system will now automatically cope with Fink's broken GTK+
199         packages.  There are a number of improvements to the Debian
200         packaging.</p>
201
202         <p>DisOrder now builds on 64-bit Linux systems.</p>
203
204         <p>There are various minor fixes.</p>
205
206       </div>
207
208   <h3>Bugs fixed</h3>
209   
210     <div class=section>
211
212       <table class=bugs>
213         <tr>
214           <th>ID</th>
215           <th>Description</th>
216         </tr>
217         
218         <tr>
219           <td><a href="http://code.google.com/p/disorder/issues/detail?id=24">#24</a></td>
220           <td>Fails to build on ubuntu 8.10</td>
221         </tr>
222         <tr>
223           <td><a href="http://code.google.com/p/disorder/issues/detail?id=26">#26</a></td>
224           <td>Disobedience shows wrong track elapsed time after a pause</td>
225         </tr>
226       </table>
227       
228     </div>
229   </div>
230
231 <h2>Changes up to version 4.2</h2>
232
233 <div class=section>
234
235   <h3>Disobedience</h3>
236   
237     <div class=section>
238
239       <p>The login window now has a 'remote' switch.  If this is turned off
240       then Disobedience will connect to a local server.  Formerly it would
241       always use TCP/IP.</p>
242
243       <p>The Delete and backspace keys will now remove tracks from the queue.
244       Escape will now dismiss the properties, users or login windows and return
245       now works in the login and properties windows.</p>
246       
247     </div>
248
249   <h3>Documentation</h3>
250   
251     <div class=section>
252
253       <p>Track and global preferences are now described in a new
254       <b>disorder_preferences</b>(5) man page.</p>
255       
256     </div>
257
258   <h3>Bugs fixed</h3>
259   
260     <div class=section>
261
262       <table class=bugs>
263         <tr>
264           <th>ID</th>
265           <th>Description</th>
266         </tr>
267         
268         <tr>
269           <td><a href="http://code.google.com/p/disorder/issues/detail?id=21">#21</a></td>
270           <td>CGI should use PATH_INFO more sensibly</td>
271         </tr>
272       </table>
273       
274     </div>
275 </div>
276
277
278 <h2>Changes up to version 4.1.1</h2>
279
280 <div class=section>
281
282   <p>Disobedience's &ldquo;Login&rdquo; window now works when you are logged
283   in.</p>
284   
285 </div>
286
287 <h2>Changes up to version 4.1</h2>
288
289 <div class=section>
290
291   <h3>Disobedience</h3>
292   
293     <div class=section>
294   
295       <p>Disobedience has been largely rewritten:</p>
296
297       <ul>
298         
299         <li>All the tabs now use native GTK+ list/tree widgets, resulting in
300         greater speed in some cases and more consistency with other GTK+
301         applications.</li>
302
303         <li>You can now use type-ahead find in the choose tab.  The initiation
304         of a search is delayed slightly to avoid lots of updates when you're
305         half way through entering search terms.</li>
306
307         <li>The choose tab now shows track lengths.</li>
308     
309         <li>Many buttons are now more reliably made insensitive when they can't
310         be used.</li>
311
312         <li>You can now play tracks off the recent tab.</li>
313         
314       </ul>
315       
316       <p>Disobedience attempts to cope with servers from older versions, up to
317       a point, but this is not well tested and it's best to keep the server
318       fully up to date.</p>
319
320     </div>
321      
322   <h3>Server</h3>
323   
324     <div class=section>
325
326       <p>When a track shares a directory with its alias, the real track name is
327       now returned instead of the alias (the opposite way round to the previous
328       behaviour).</p>
329       
330     </div>
331 </div>
332
333 <h2>Changes up to version 4.0.2</h2>
334
335 <div class=section>
336
337   <p>Corrected web browser linked from Disobedience.</p>
338   
339 </div>
340
341 <h2>Changes up to version 4.0.1</h2>
342
343 <div class=section>
344
345   <p>Libtool and Automake now install the CGI correctly.  As part of this,
346   <tt>cgidir</tt> has been renamed to <tt>cgiexecdir</tt>.  The configure
347   script will report an error if you try to use the old name.</p>
348   
349 </div>
350
351 <h2>Changes up to version 4.0</h2>
352
353 <div class=section>
354
355   <h3>Server</h3>
356
357 <div class=section>
358   
359   <p>The <tt>gap</tt> directive will no longer work.  It could be
360   restored if there is real demand.</p>
361   
362   <h4>Event Scheduling</h4>
363
364 <div class=section>
365
366   <p>It is now possible to schedule events to occur in the future.
367   Currently the supported actions are playing a specific track, and
368   changing a global preference (thus allowing e.g. random play to be
369   turned on or off).  See the <tt>schedule-*</tt>
370   commands described in disorder(1).</p>
371
372 </div>
373
374 <h4>Random Track Choice</h4>
375
376 <div class=section>
377
378   <p>This has been completely rewritten to support new features:</p>
379
380   <ul>
381
382     <li>tracks in the recently-played list or in the queue are no longer
383     eligible for random choice.</li>
384
385     <li>there is a new <tt>weight</tt> track preference allowing for
386     non-uniform track selection.  See disorder(1) for details.</li>
387
388     <li>there is a new configuration item <tt>replay_min</tt> defining
389     the minimum time before a played track can be picked at random.
390     The default is 8 hours (which matches the earlier behaviour).</li>
391
392     <li>recently added tracks are biased up; see <tt>new_bias</tt> and
393     <tt>new_bias_age</tt> in disorder_config(5).</li>
394
395   </ul>
396
397 </div>
398
399 <h4>Web Interface</h4>
400
401 <div class=section>
402
403   <p>This has been largely rewritten.  The most immediate benefits are:</p>
404
405   <ul>
406     
407     <li>the search page is integrated into the choose page, and
408     includes links to parent directories.</li>
409     
410     <li>if you try to do something you have insufficient rights for,
411     instead of getting an error page or nothing happening, you are
412     redirected to the login page.</li>
413
414   </ul>
415
416   <p>Customizers should find their lives easier: the syntax is less onerous, it
417   is possible to define macros to avoid repetition, and the documentation is
418   less monolithic (see disorder.cgi(8) as a starting point).</p>
419
420   <p>Mail is now sent via the system sendmail program, though it remains
421   possible to use TCP to connect to an SMTP server.  See <tt>sendmail</tt> and
422   <tt>smtp_server</tt> in disorder_config(5).</p>
423
424   <p>The web interface is now installed automatically.  If you don't want it,
425   use <tt>./configure --without-cgi</tt>.  If you want it in a non-default
426   location, or no location for it is detected, set <tt>cgidir</tt>
427   and <tt>httpdir</tt> on the <tt>./configure</tt> command line.</p>
428   
429 </div>
430
431 </div>
432
433 <h3>Disobedience</h3>
434
435 <div class=section>
436
437   <p>There is now a new user management window.  From here you can add and
438   remove users or modify their settings.</p>
439
440   <p>Relatedly, the server will only allow remote user management if you set
441   <tt>remote_userman</tt> to <tt>yes</tt>.</p>
442
443 </div>
444
445 <h3>Miscellaneous</h3>
446
447 <div class=section>
448
449   <p><tt>scripts/setup</tt> now honors command line options, and can
450   set up network play as well as the local default sound device.</p>
451
452 </div>
453
454 <h3>Bugs Fixed</h3>
455
456 <div class=section>
457
458   <table class=bugs>
459     <tr>
460       <th>ID</th>
461       <th>Description</th>
462     </tr>
463
464     <tr>
465       <td><a href="http://code.google.com/p/disorder/issues/detail?id=2">#2</a></td>
466       <td>Search results should link to directories</td>
467     </tr>
468
469     <tr>
470       <td><a href="http://code.google.com/p/disorder/issues/detail?id=6">#6</a></td>
471       <td>Schedule tracks for a particular time</td>
472     </tr>
473
474     <tr>
475       <td><a href="http://code.google.com/p/disorder/issues/detail?id=10">#10</a></td>
476       <td>Non-uniform track selection</td>
477     </tr>
478
479     <tr>
480       <td><a href="http://code.google.com/p/disorder/issues/detail?id=11">#11</a></td>
481       <td>Bias random selection to newly added tracks</td>
482     </tr>
483
484     <tr>
485       <td><a href="http://code.google.com/p/disorder/issues/detail?id=13">#13</a></td>
486       <td>Default encoding for debian setup scripts</td>
487     </tr>
488
489     <tr>
490       <td><a href="http://code.google.com/p/disorder/issues/detail?id=16">#16</a></td>
491       <td>Cookie expiry causes user to be silently logged out and not
492       subsequently redirected to login page</td>
493     </tr>
494     
495     <tr>
496       <td><a href="http://code.google.com/p/disorder/issues/detail?id=20">#20</a></td>
497       <td>Broken aliasing rules</td>
498     </tr>
499     
500   </table>
501
502 </div>
503
504 </div>
505
506 <h2>Changes up to version 3.0.2</h2>
507
508 <div class=section>
509
510   <p>Builds <tt>--without-server</tt> should work again.</p>
511
512   <p>The web interface is a bit more liberal in the cookie value
513   syntax it will accept.</p>
514
515   <p>Clients fail more gracefully if no password is available.</p>
516
517 </div>
518
519 <h2>Changes up to version 3.0.1</h2>
520
521 <div class=section>
522   
523   <p>Debian upgrades from 2.0.x should now work better.</p>
524   
525 </div>
526
527 <h2>Changes up to version 3.0</h2>
528
529 <div class=section>
530   
531   <p><b>Important</b>!  See <a
532   href="README.upgrades">README.upgrades</a> when upgrading.</p>
533   
534   <h3>Platforms And Installation</h3>
535   
536 <div class=section>
537   
538   <p>Mac OS X and FreeBSD are somewhat supported.  There is now a bash
539   script in <tt>scripts/setup</tt> which will automate the setup after
540   <tt>make install</tt>.</p>
541   
542 </div>
543
544 <h3>Server</h3>
545
546 <div class=section>
547   
548   <p>Users are now stored in the database rather than a configuration
549   file.</p>
550   
551   <p>The server now has a built-in list of stopwords and players, so
552   only additions to these need be mentioned in the configuration file.</p>
553   
554   <p>The default inter-track gap is now 0s.</p>
555   
556   <p>How sound is played is now controlled via the new <tt>api</tt>
557   configuration command.  This also controls how the volume is set,
558   which now works with ALSA as well as OSS.</p>
559   
560   <p>A bug in the MP3 decoder was fixed (also in 2.0.4).</p>
561   
562 </div>
563
564 <h3>Web Interface</h3>
565
566 <div class=section>
567   
568   <p>The web interface now uses cookies to remember user identity, and
569   allows online registration of new users.  Also it is no longer
570   necessary to manually specify the URL of the web interface (but you
571   can override it if you don't like the value it figures out).</p>
572   
573   <p>It is possible to allow users to register via the web interface.</p>
574   
575   <p>The web interface's browser support has been improved.  It has
576   been tested with Firefox 2, Safari 3, Konqueror 3, Internet Explorer
577   7 and Opera 9.</p>
578   
579 </div>
580
581 <h3>Disobedience</h3>
582
583 <div class=section>
584
585   <p>A bug which would cause a crash if you attempt to rearrange the
586   queue while no track was playing has been fixed.  There is a new
587   'deselect all tracks' option, mirroring 'select all tracks.</p>
588   
589 </div>
590
591 </div>
592
593 <!--
594 Local Variables:
595 fill-column:79
596 indent-tabs-mode:nil
597 End:
598 -->