Talk:Saving while recording

Jan Kolar chats: (Feel free to edit/remove/move. Thanks)

Please be careful with the following issues: 1. slow drives: Many users will want to save their half a giga recording to a removable media - USB-stick, CD, external HDD, (or network). This fills up OS disk buffers (cache) completely for ten or twenty minutes. I doubt there is any priority concept used for filling of buffers. BTW I think (and I experience it in XP) this can cause that portions of any program including Audacity's recording code to be swapped out. (Should be made non-pagable.) 2. Windows(XP) has two settings for removable media (safe=with writing not (much) buffered and the buffered one) and both have to be tested. 3. same drive: saving to a different partition far away on the same disk dicreases efficiency - I observe this typically when directory operations are involved (perhaps they enforce some kind of sync, in XP).

Besides lowering the priority, the other task could 1. repeatedly check OS disk buffers and/or 2. frequently check the recording buffer, and take an action. Also when reaching 40% of buffers, the recording thread would stop the other one temporarily or permanently (and cross fingers) and/or (when on 70% ?) make a note to warn the user "that was risky, never do this again while recording". Also there could be indicator of % and max% of buffer used (like when burning CD but with oposite emotions) or after saving, the user could be informed summarily in a dialogue.

BTW I experienced several seconds of frozen indicator bars with 1.2.6 in Vista on a new computer because of some anonymous massive disk operations (before I commanded to switch off all whatevers). The recording was OK, I guess because it just fitted within the 5 second buffers of Audacity.

I think the question can be raised separately for three categories (and perhaps separately for each OS ?)
 * 1. block files operations (this can behave nicely on several levels (simultaneously?) from the top abstraction down to IO)
 * 2. other file Audacity's operations (export wav?)
 * 3. external dll with file operations (LAME, plugins)