diff options
Diffstat (limited to 'doc/RELEASE.txt')
-rw-r--r-- | doc/RELEASE.txt | 474 |
1 files changed, 474 insertions, 0 deletions
diff --git a/doc/RELEASE.txt b/doc/RELEASE.txt new file mode 100644 index 0000000..ac0d723 --- /dev/null +++ b/doc/RELEASE.txt | |||
@@ -0,0 +1,474 @@ | |||
1 | HD24Connect revision history and roadmap | ||
2 | ======================================== | ||
3 | |||
4 | Implemented features are set in the past tense. A version is complete when all | ||
5 | planned versions are implemented. Until then, sub-versions are used, e.g. | ||
6 | 0.3.1 already may have some (but not all) 0.4 features. | ||
7 | |||
8 | This document ends with suggested features, but is in reverse chronological | ||
9 | order otherwise, and as such starts with features planned for the next | ||
10 | release. | ||
11 | |||
12 | Current status is somewhere in the middle, search for the text | ||
13 | 'CURRENTLY IN PROGRESS' to find out what is being done right now. | ||
14 | |||
15 | Version 1.1.0 => CURRENTLY IN PROGRESS | ||
16 | |||
17 | - Added some unit tests to perform automated, scripted testing | ||
18 | - Added frequency/gain display to mixer | ||
19 | - Performed code cleanup: | ||
20 | - Moved recorder, mixer and HD24->PC file transfers | ||
21 | to their own modules | ||
22 | - permit various interfaces (X, Cocoa, Curses, etc) | ||
23 | - possibly permit recording macros? | ||
24 | - permit multi-window interface (show transport/time/mixer | ||
25 | simultaneously) and allow resizing those windows | ||
26 | - Implement batch transports | ||
27 | - Implement realtime recording | ||
28 | - Auto-detect feedback loops! | ||
29 | - Change to multi-window interface to allow viewing multiple tabs at once | ||
30 | (for example both recorder and mixer at same time) | ||
31 | - Implement MIDI control/control surfaces | ||
32 | - Control other MIDI devices with HD24tools | ||
33 | - Control HD24tools with other MIDI devices | ||
34 | - Implement LADSPA support for mixer FX | ||
35 | - Add default GUI for common effects, allow them | ||
36 | to be controlled through control surfaces. | ||
37 | - Implement keyboardless operation | ||
38 | - Add wave viewer for easier selection of export range | ||
39 | - Add functionality to allow changing song naming convention for export | ||
40 | - Simultaneous dual drive support. Benefits: | ||
41 | * allow copying songs between drives | ||
42 | * copying songs/projects from/to drive images | ||
43 | - Add drive images that are found in drive image dir to | ||
44 | drive image dropdown to make it easier to switch between | ||
45 | real and virtual drives | ||
46 | - Implement functionality to signal falling out of record | ||
47 | mode if needed (when drive is full, etc) | ||
48 | - Create an interesting demo drive image to | ||
49 | allow people to play around with it | ||
50 | (low prio: people can download examples from raw-tracks.com | ||
51 | at a $5 fee) | ||
52 | |||
53 | Version 1.0.0 => Will remain in alpha | ||
54 | |||
55 | - Made source code available to the general public | ||
56 | - Added recovery feature to deal with a specific class of | ||
57 | 'unexpected end of song' error on fragmented drives | ||
58 | - Added block checksum calculation to library | ||
59 | - Implemented saving of changed project name/song name to disk | ||
60 | - Added code for cluster allocation | ||
61 | - Added code for converting orphan clusters to allocation entries | ||
62 | - Compiling framework was changed to allow smoother Mac compiles | ||
63 | - Added mixer tab with save/load mixer settings functionality | ||
64 | - Finished up restructuring of mixer to make it work again | ||
65 | - Added save functionality to allow renaming drive | ||
66 | - Made detection of corrupted drives smoother to prevent need for | ||
67 | http://ringbreak.dnd.utwente.nl/~mrjb/hd24tools/drivenumber.html | ||
68 | - Added Check for 'forbidden characters' in filenames | ||
69 | \ / : * ? " < > | | ||
70 | (HD24 accepts these but can have unpredictable effects on | ||
71 | OS side) | ||
72 | - Added allocating functionality to allow lengthening songs | ||
73 | automatically during transfer | ||
74 | - Altered layout of drive catalog to fit longer song names | ||
75 | and to have a bit larger margin on the left for printing | ||
76 | - Added functionality to allow 1-click toggle between | ||
77 | sample rates of 44.1 <=> 48 kHz and 88.2 <=> 96 kHz | ||
78 | (toggling between lower/higher sample rates is not possible | ||
79 | without conversion as higher sample rates use 2 recording | ||
80 | tracks per channel). | ||
81 | - Added dialog for simpler 'headerless' live recording recovery | ||
82 | - Implemented initial headerless live recovery scheme | ||
83 | - Made headerless live recording recovery read-only | ||
84 | - Added functionality to create empty drive images | ||
85 | - Created dialog for setting song parameters | ||
86 | - Implemented Mixer JACK support | ||
87 | - Implemented framework for smarter library loading. | ||
88 | This should allow Mac (and even Windows) users to have | ||
89 | JACK functionality, and will no longer require Mac | ||
90 | users to startup HD24connect by running an AppleScript. | ||
91 | - ... and made library smart loading even smarter by letting | ||
92 | it look in the program directory first, the PATH dir next, | ||
93 | and all usual library directories next. This should result | ||
94 | in library loading that Just Works in most cases and | ||
95 | will allow JACK support on all platforms. | ||
96 | - Wrote documentation explaining how to build HD24tools | ||
97 | from source (Linux, 64-bit Athlon) | ||
98 | - Added functionality to create projects | ||
99 | - Added functionality to create songs (incl. superblock | ||
100 | song count update) | ||
101 | - Made sure changes in song/drive/project names also reflect | ||
102 | properly in FST 1.00 drives | ||
103 | - Added functionality to automatically pre-record silence | ||
104 | in songs on creating them | ||
105 | - Added functionality to update song usage list after | ||
106 | song creation | ||
107 | - Automatically select song as 'default' after creation | ||
108 | - Implemented reload of drive list/catalog/project list/song list | ||
109 | after major write operations | ||
110 | - User interface settings reloaded as appropriate after writing | ||
111 | to drive | ||
112 | - Added options dialog to allow (among other things) specifying | ||
113 | a filename pattern for file transfers to PC | ||
114 | - Made write-protect checkbox work | ||
115 | - Added drive format functionality | ||
116 | - Added functionality to delete songs | ||
117 | - Added functionality to delete projects | ||
118 | - Made 'bypass' button for mixer work | ||
119 | - Added timeout-style messages to alpha display | ||
120 | - Implemented functionality to display song information | ||
121 | on alpha display | ||
122 | - Implemented functionality for sorting songs inside a project. | ||
123 | This allows easily reordering songs by renaming them. | ||
124 | - Implemented SMPTE timecode striping- for now limited to | ||
125 | 30fps nondrop starting at 00:00:00.00. | ||
126 | May not work on sample rates other than 48kHz. In fact, | ||
127 | it may not work at all. | ||
128 | - Made sure superblock is updated with number of free clusters | ||
129 | after song transfer to HD24 drive/creation of new song | ||
130 | - Implemented write-protect to prevent writing to drives when | ||
131 | working with header files. | ||
132 | - Implemented functionality to reduce number of sectors read | ||
133 | when transferring fewer tracks. The expected performance | ||
134 | win is not very big as the number of drive seeks is about | ||
135 | the same, but the weight of the added logic is minimal. | ||
136 | Perhaps on some systems the difference is noticable. YMMV. | ||
137 | - Implemented .wav writing without libsndfile. If it is missing, | ||
138 | you'll still be able to transfer such files to your computer. | ||
139 | - Made sure write functionality is disabled for drives found | ||
140 | not to be valid HD24 drives (due to corruption, or perhaps | ||
141 | they're simply OS drives which we DEFINITELY don't want to | ||
142 | overwrite) | ||
143 | - Implemented locate point saving | ||
144 | - Implemented (preliminary) transfer-time mixing of tracks | ||
145 | - Made sure song/project are made default after selecting them | ||
146 | - Fixed a non critical bug where closing the program during | ||
147 | playback caused a crash. | ||
148 | |||
149 | TODO: Bugs to fix: | ||
150 | |||
151 | - After quickformat of a drive, catalog and related screens are | ||
152 | not updated. | ||
153 | |||
154 | TO DO: Testing and packaging: | ||
155 | |||
156 | - Fixme: update all of drive info page on refresh | ||
157 | (What's missing?) | ||
158 | - Make sure that 'new folder' button works properly on | ||
159 | all platforms! (Fixed on Windows, TO DO on mac) | ||
160 | - Distribute Mac version as Universal Binary | ||
161 | - Finally get .aif, .sd2 and .dig/.sd to work properly! | ||
162 | - Check all FIXME and TODO comments in code | ||
163 | - Get 16-bit export to work (low priority) | ||
164 | - Documentation | ||
165 | |||
166 | Version 0.9.0 | ||
167 | |||
168 | - Implemented tabbed interface | ||
169 | - Added functionality to export drive images | ||
170 | - Added time stamp to catalog | ||
171 | - Added drive catalog display to drive inforrmation | ||
172 | - Changed default time display to 30 frames per second instead of 1/100 sec | ||
173 | |||
174 | - Added the 'Recorder' with various new features | ||
175 | - Proper solo/mute buttons instead of solo/mute by channel selection | ||
176 | - Track arm buttons | ||
177 | - 24-channel display faithfully emulating what the HD24 would show | ||
178 | - Peak modes: No peak hold, momentary peak hold, continuous peak hold | ||
179 | - Added locate slider to rapidly jump to any point in the song | ||
180 | - Added punch in/out locate points | ||
181 | - Added visual clue to transport controls showing that clicking 'set' | ||
182 | can set locate points | ||
183 | - Added input monitoring (mainly Linux) | ||
184 | - Added dropdown to map stereo inputs to channel pairs in various ways | ||
185 | - Fancy 7-segment LED display | ||
186 | - Equally fancy info display | ||
187 | - Fancy, bigger graphical buttons with LED for transport control | ||
188 | - Fixed a clipping bug in portaudio playback (playback only) | ||
189 | |||
190 | - Added signal detection to track selection in transfer tab | ||
191 | - Added dropdown to allow a flexible custom size limit for exported files | ||
192 | - Added dropdown to stamp songs with a different sample rate | ||
193 | |||
194 | - Added tab for transfer back to HD24 | ||
195 | - Added functionality that permits selecting many files at once | ||
196 | - Added functionality to automatically spread multi-track files | ||
197 | across several HD24 tracks | ||
198 | - Added functionality to automatically mix multi-track files to mono | ||
199 | - Added functionality to allow erasing tracks | ||
200 | - Added functionality to allow moving tracks (including track action) | ||
201 | up or down | ||
202 | - Added functionality to clear filenames from tracks | ||
203 | - Added functionality to overwrite existing audio with audio from a file. | ||
204 | Many file formats are supported (subject to what is supported by | ||
205 | libsndfile). | ||
206 | - SD2 file format support (does this work now?) | ||
207 | - Create new folder from file browse dialog (does this work now?) | ||
208 | |||
209 | |||
210 | Version 0.8.2 | ||
211 | |||
212 | - Hardened the software in some places to be more crash-resistant | ||
213 | in handling corrupt drives | ||
214 | - Some compatibility enhancements | ||
215 | - Fixed a bug in the calculation of the total number of bytes to export, | ||
216 | which caused the auto-split popup not to be displayed in some cases. | ||
217 | |||
218 | Version 0.8.1 | ||
219 | |||
220 | - Fixed bug that caused auto-split popup to always appear for long recordings, | ||
221 | even if only a small fragment was being exported. | ||
222 | |||
223 | Version 0.8.0 | ||
224 | |||
225 | - Printing disk contents on paper and file | ||
226 | - Entirely replaced export engine for faster exports | ||
227 | - Created OS native installers. | ||
228 | - Allow transferring multiple songs at once (song choice 'All Songs') | ||
229 | - Added possibility to export to stereo and multi-track files. | ||
230 | |||
231 | Version 0.7 | ||
232 | |||
233 | - This never-released version adds high samplerate support. | ||
234 | |||
235 | Version 0.6.2 | ||
236 | |||
237 | - Fixed a bug that caused the Windows version to lock up when loading a header file | ||
238 | - Initial release for MacOS/X 10.4 | ||
239 | |||
240 | Version 0.6.1 | ||
241 | |||
242 | - Fixed a bug in the drive name generation in Windows | ||
243 | |||
244 | Version 0.6 | ||
245 | |||
246 | - Initial Macintosh OS/X port. Still flaky due to interesting behavior of packages that HD24connect depends on. | ||
247 | - Relabeled button "Transfer to PC" as "Transfer to Mac" for OS/X version. | ||
248 | - Fixed bug that cleared surface of cancel button during transfers. | ||
249 | - Added warning dialog to improve user friendliness when no HD24 drive is detected on program startup | ||
250 | - Added menu option 'File/Detect HD24 drives' to allow re-scanning for drives after program startup. | ||
251 | - Project directory browser now uses OS native file dialog. | ||
252 | - Added menu option to allow creating header files from within hd24connect | ||
253 | - Removed portaudio dependency (this has no visible impact). | ||
254 | - Added Estimated Time of Arrival in transfers | ||
255 | - Removed dependency on command line options to enable recovery features | ||
256 | - Added application (desktop) icon for Windows | ||
257 | - Allow exporting to more different file formats (currently WAV and AIFF) | ||
258 | - Altered file naming for export | ||
259 | - Cleaned up code that deals with drive name generation | ||
260 | - Version control is now in place, allowing multiple people to work | ||
261 | on the project at the same time (Welcome, Randy!) | ||
262 | |||
263 | Version 0.5 | ||
264 | |||
265 | - Added --force feature to allow using hd24 disks with invalid MBR. | ||
266 | - Added --header feature which allows to use a fixed header file along with | ||
267 | a corrupt disk. This permits us to recover audio without need to modify | ||
268 | data on the corrupted disk. | ||
269 | - Added portaudio playback. For the Windows version this means that audio | ||
270 | preview is now supported, while under Linux the Jack Audio Connection Kit | ||
271 | is no longer required for audio preview. | ||
272 | - Fixed a bug in Linux audio preview. This minor bug affected exactly | ||
273 | 1 user (me). | ||
274 | - Added dialog to allow renaming drives, projects and songs (in memory only) | ||
275 | - Altered project handling to more easily allow in-memory edits of projects | ||
276 | |||
277 | Version 0.4 | ||
278 | |||
279 | - Fixed a minor bug with the file write caching. | ||
280 | - Added a button to allow the user to interrupt a transfer. | ||
281 | - Fixed flakyness in audio playback | ||
282 | - Added dialog to allow manually setting locate points | ||
283 | - Fix bug which causes windows version not to display song names | ||
284 | - Added feature to allow setting loop start/end during playback | ||
285 | - Implemented export to wav (for now, instead of raw) using libsndfile | ||
286 | - Implemented basic loop mode for audio playback. | ||
287 | |||
288 | Version 0.3 | ||
289 | |||
290 | - Added file write caching to speed up export under Windows. | ||
291 | - Added direct playing under Linux (still flaky) | ||
292 | - Altered library to resolve issue with STL string memory leaks | ||
293 | |||
294 | Version 0.2 | ||
295 | |||
296 | - Added support for locate points. | ||
297 | - Added backwards export. | ||
298 | - Initial windows version. | ||
299 | |||
300 | Version 0.1 | ||
301 | |||
302 | - First workable version. | ||
303 | |||
304 | HD24hexview revision history and roadmap | ||
305 | ======================================== | ||
306 | |||
307 | Future | ||
308 | |||
309 | - Verify/Fix any remaining issues with 4 GB limit on Windows | ||
310 | - Correctly determine drive size | ||
311 | - Allow multi-sector paste (from file). | ||
312 | |||
313 | Version 1.4beta | ||
314 | |||
315 | - Replaced code for windows drive size detection. | ||
316 | |||
317 | Version 1.3beta | ||
318 | |||
319 | - Added expert mode as safety switch to prevent accidentally writing to disk. | ||
320 | - In expert mode, added a big fat warning for writing to the default boot | ||
321 | disk (/dev/hda or \\.\PHYSICALDRIVE0) and a (not so big & fat, but still) | ||
322 | warning for writing to other devices. | ||
323 | |||
324 | Version 1.2beta | ||
325 | |||
326 | - Added d-<hex> feature to dump sector <hex> counting from end of disk | ||
327 | This allows dumping the last sector from disk without having to figure | ||
328 | out the number of sectors based on brand and model of the disk. | ||
329 | Unfortunately, this does not work properly yet for Windows devices. | ||
330 | |||
331 | Version 1.1beta | ||
332 | |||
333 | - Fixed a bug in windows version that required output file to already exist | ||
334 | before writing | ||
335 | - Added single-sector checksum (no multi-sector checksum yet) | ||
336 | |||
337 | Version 1.0beta | ||
338 | |||
339 | - Implemented compare | ||
340 | - Implemented write offset | ||
341 | |||
342 | Version 0.3 | ||
343 | |||
344 | - Implemented edit and write back of sectors | ||
345 | - Implemented single-sector paste | ||
346 | - Ported to Windows | ||
347 | - Resolved a 4 GB issue with windows version | ||
348 | - Allowed using files as devices | ||
349 | |||
350 | Version 0.2 | ||
351 | |||
352 | - Implemented support for setting blocks | ||
353 | - Resolved 4 gigabyte limitation for linux | ||
354 | - Implemented scan | ||
355 | - Implemented write to file | ||
356 | |||
357 | Version 0.1 | ||
358 | - Implemented code to autodetect HD24 disks | ||
359 | - Implemented feature to navigate disks with +/-/o | ||
360 | |||
361 | ======================================================== | ||
362 | Version x.x | ||
363 | |||
364 | Spare ideas/suggested future features: | ||
365 | |||
366 | - Allow exporting audio based on a 'guide track'. If a nonempty audio track has been exported, after which the disk has gotten corrupted, this audio track can be used to find back the other tracks without allocation information. | ||
367 | |||
368 | Will not be implemented anytime soon; this scenario is too | ||
369 | rare. Also, should recovery be needed, other ways exist to do so. | ||
370 | |||
371 | - Allow the program to use installed audio encoders to | ||
372 | encode to mp3/flac/etc | ||
373 | |||
374 | - Time line/draggable export locators | ||
375 | |||
376 | Proposed is a graphical display to allow | ||
377 | visually setting locate points for export. | ||
378 | Alternatively, a 'scrub editor' style display would be | ||
379 | workable. | ||
380 | While interesting, it would be rather time consuming | ||
381 | to build such a time line. For now, a draggable slider | ||
382 | is made available to ease the pain a bit. | ||
383 | |||
384 | - Check available drive size before export | ||
385 | |||
386 | I'm not sure if I already implemented this. Obviously, | ||
387 | it is a required feature. | ||
388 | |||
389 | - Allow transferring multiple projects at once | ||
390 | (project choice 'All projects') | ||
391 | |||
392 | Will probably be implemented at some point, but | ||
393 | custom song naming convention is then required first. | ||
394 | |||
395 | - Allow automatic deletion of files when transfer is interrupted | ||
396 | |||
397 | - Normalizing audio as it is being exported | ||
398 | |||
399 | This will require analyzing the entire export range | ||
400 | prior to export (possibly more, if the export is a | ||
401 | single song of an entire live performance; it is likely | ||
402 | that we'd want to normalize the whole performance | ||
403 | equally. | ||
404 | |||
405 | - Allow exporting to different bit depths | ||
406 | - MIDI control (both controlling HD24tools via MIDI or | ||
407 | let HD24tools control HD24 recorder via MIDI). | ||
408 | |||
409 | The benefit of allowing HD24tools control via MIDI | ||
410 | is that frequently requested functionality that the | ||
411 | HD24 does not support is a possibility; for instance, | ||
412 | the HD24 does not allow selecting songs via MIDI, | ||
413 | whereas such implementation in HD24tools would be | ||
414 | a fairly simple matter once it is MIDI enabled. | ||
415 | Someone also mentioned that possibily a recording | ||
416 | log could be kept by HD24tools when connected to | ||
417 | a HD24 via MIDI by simply keeping track of record | ||
418 | events. Unfortunately the HD24 does not send MIDI | ||
419 | for track record enable, even though it supports | ||
420 | track arming via MIDI (the good news is that some | ||
421 | MIDI functionality is supported even though the | ||
422 | HD24 itself does not send out MIDI for those actions). | ||
423 | |||
424 | - Storing metadata on HD24 drives | ||
425 | |||
426 | There are some possibilities for this. One way is | ||
427 | to create a song contaning (for instance) a FAT | ||
428 | file system, and using some unused space in the | ||
429 | song entries to allow entries in that FAT file | ||
430 | system to uniquely point to them; this would allow | ||
431 | storing song-unique info (such as track data, etc) | ||
432 | in that file system. | ||
433 | |||
434 | - Locate points in directory listing | ||
435 | |||
436 | This would make the catalog file a fair bit longer. | ||
437 | As such it would have to be an option that could | ||
438 | be turned on/off. | ||
439 | |||
440 | - Virtual BRC application | ||
441 | |||
442 | This would be limited to whatever MMC supports. | ||
443 | |||
444 | - Copying projects | ||
445 | - Batch transfer | ||
446 | - One click drive backup | ||
447 | |||
448 | These all come down to the same thing: find a | ||
449 | way to not require user intervention while | ||
450 | transferring large amounts of data. | ||
451 | Perhaps a 2-click drive backup (with the possibility | ||
452 | to edit the batch before export) is more useful than | ||
453 | a 1-click backup. | ||
454 | The main benefit (not having to wait actively while | ||
455 | audio is being transferred) is the same. | ||
456 | |||
457 | - Calculate approx. occupied drive space per song, and add | ||
458 | to catalog. | ||
459 | |||
460 | - Display currently selected song/project on other tabs as | ||
461 | well | ||
462 | - current song is now displayed on alpha display. | ||
463 | |||
464 | - Allow different UIs (proposed is command line interface, | ||
465 | non-X interface, Cocoa interface, ...) | ||
466 | |||
467 | - Control surface support, to allow using MIDI-enabled | ||
468 | consoles to control the HD24tools mixer/recorder | ||
469 | |||
470 | - Add Vista tip to manual (regarding admin account for write | ||
471 | support) | ||
472 | Also add this info: | ||
473 | http://tech.groups.yahoo.com/group/hd24/message/12102 | ||
474 | |||