Difference between revisions of "Proposal: Earlier Disk Over-run Warnings"

From Audacity Wiki
Jump to: navigation, search
(Generate Menu: This set of commands could be seen as far less critical to trap then the Record and Save commands so sould probably be ignored.)
(Effect Menu: This set of commands could be seen as far less critical to trap then the Record and Save commands so sould probably be ignored.)
Line 404: Line 404:
  
 
=== Effect Menu ===
 
=== Effect Menu ===
 +
This set of commands could be seen as far less critical to trap then the Record and Save commands so sould probably be ignored.
  
 
{| style="text-align: left" class="wikitable sortable"
 
{| style="text-align: left" class="wikitable sortable"
Line 416: Line 417:
 
| Amplify
 
| Amplify
 
| 100%
 
| 100%
| yes
+
| maybe
 
|  
 
|  
 
| no
 
| no
Line 424: Line 425:
 
| Auto Duck
 
| Auto Duck
 
| TBP
 
| TBP
| yes
+
| maybe
 
|  
 
|  
 
| no
 
| no
Line 432: Line 433:
 
| Bass & Treble
 
| Bass & Treble
 
| 107% - used more while working
 
| 107% - used more while working
| yes
+
| maybe
 
|  
 
|  
 
| no
 
| no
Line 440: Line 441:
 
| Change Pitch
 
| Change Pitch
 
| 100%
 
| 100%
| yes
+
| maybe
 
|  
 
|  
 
| no
 
| no
Line 448: Line 449:
 
| Change Speed
 
| Change Speed
 
| varies with % change
 
| varies with % change
| yes
+
| maybe
 
|  
 
|  
 
| no
 
| no
Line 456: Line 457:
 
| Change Tempo
 
| Change Tempo
 
| varies with % change
 
| varies with % change
| yes
+
| maybe
 
|  
 
|  
 
| no
 
| no
Line 464: Line 465:
 
| Click Removal
 
| Click Removal
 
| varies
 
| varies
| yes
+
| maybe
 
|  
 
|  
 
| no
 
| no
Line 472: Line 473:
 
| Compressor
 
| Compressor
 
| 100%
 
| 100%
| yes
+
| maybe
 
|  
 
|  
 
| no
 
| no
Line 480: Line 481:
 
| Echo
 
| Echo
 
| 100%
 
| 100%
| yes
+
| maybe
 
|  
 
|  
 
| no
 
| no
Line 488: Line 489:
 
| Equalization
 
| Equalization
 
| 100%
 
| 100%
| yes
+
| maybe
 
|  
 
|  
 
| no
 
| no
Line 496: Line 497:
 
| Fade In
 
| Fade In
 
| 100%
 
| 100%
| yes
+
| maybe
 
|  
 
|  
 
| no
 
| no
Line 504: Line 505:
 
| Fade Out
 
| Fade Out
 
| 100%
 
| 100%
| yes
+
| maybe
 
|  
 
|  
 
| no
 
| no
Line 512: Line 513:
 
| Invert
 
| Invert
 
| 100%
 
| 100%
| yes
+
| maybe
 
|  
 
|  
 
| no
 
| no
Line 520: Line 521:
 
| Leveller
 
| Leveller
 
| 100%
 
| 100%
| yes
+
| maybe
 
|  
 
|  
 
| no
 
| no
Line 528: Line 529:
 
| Noise Reduction
 
| Noise Reduction
 
| 100%
 
| 100%
| yes
+
| maybe
 
|  
 
|  
 
| no
 
| no
Line 536: Line 537:
 
| Normalize
 
| Normalize
 
| 100%
 
| 100%
| yes
+
| maybe
 
|  
 
|  
 
| no
 
| no
Line 552: Line 553:
 
| Paulstretch
 
| Paulstretch
 
| massive
 
| massive
| yes
+
| maybe
 
|  
 
|  
 
| no
 
| no
Line 560: Line 561:
 
| Phaser
 
| Phaser
 
| 100%
 
| 100%
| yes
+
| maybe
 
|  
 
|  
 
| no
 
| no
Line 568: Line 569:
 
| Repair
 
| Repair
 
| TBP
 
| TBP
| unlikely
+
| maybe
 
|  
 
|  
 
| no
 
| no
Line 576: Line 577:
 
| Repeat
 
| Repeat
 
| 0%
 
| 0%
| almost certainly
+
| maybe
 
|  
 
|  
 
| no
 
| no
Line 584: Line 585:
 
| Reverb
 
| Reverb
 
| 100%
 
| 100%
| yes
+
| maybe
 
|  
 
|  
 
| no
 
| no
Line 592: Line 593:
 
| Reverse
 
| Reverse
 
| 100%
 
| 100%
| probably
+
| maybe
 
|  
 
|  
 
| no
 
| no
Line 600: Line 601:
 
| Sliding Time Scale/Pitch Shift
 
| Sliding Time Scale/Pitch Shift
 
| 100%
 
| 100%
| yes
+
| maybe
 
|  
 
|  
 
| no
 
| no
Line 608: Line 609:
 
| Truncate Silence
 
| Truncate Silence
 
| varies by amount of silence
 
| varies by amount of silence
| possibly
+
| maybe
 
|  
 
|  
 
| no
 
| no
Line 616: Line 617:
 
| Wahwah
 
| Wahwah
 
| 100%
 
| 100%
| yes
+
| maybe
 
|  
 
|  
 
| no
 
| no

Revision as of 13:13, 5 November 2016

Proposal pages help us get from feature requests into actual plans. This page is a proposal to increase Audacity's resiliance to situations where disk over-run causes problems
Proposal pages are used on an ongoing basis by the Audacity development team and are open to edits from visitors to the wiki. They are a good way to get community feedback on a proposal.


  • Note: Proposals for Google Summer of Code projects are significantly different in structure, are submitted via Google's web app and may or may not have a corresponding proposal page.


The Problem

Bug #437 relates to this issue and is where it was originally reported.

  1. Particularly egregious are the Recording functions as when the user runs out of disk space Audacity currently carries on recording but blithely overwrites earlier parts of the recorded project, effectively trashing the user's recording. Worse still the user has no idea that this has taken place until they come to access the recording after "completion".
  2. Export, particulary of uncompressed file formats but not restricted to them, can generate large amounts of audio data with the potential for disk overrun.
  3. Import can easily be asked to import a data set that is too large for the available disk space.
  4. The Generate and Effect plug-ins are capable of generating large amounts of audio data with the potential for disk overrun, this is not handled cleanly.
  5. Copy & Paste and Repeat are also capable of generating large amounts of data.
  6. Even seemingly innocuous commands have the potential to produce sufficient data to overfill the disk.

1 above has given us unwanted bad press on the Wikipedia Audacity page "Limitations" section: https://en.wikipedia.org/wiki/Audacity_%28audio_editor%29#Limitations

Proposed Feature

A suitable headroom buffer to be defined. This should be user-settable but deep in Preferences and with a sensible default of 50-100MB say.

  • For Recording activities:
    1. Check before recording starts that there is more space available than the headroom buffer
    2. While recording takes place check the availble disk space
    3. If and when it reaches the headroom buffer size: Audacity stops with an error message


  • Export
    1. check that the volume of data to be created, based on current settings and exported filetype, will not overfill the disk capacity minus the headroom buffer
    2. if so disallow the emport with a suitable error message


  • Import
    1. check that the volume of data, based on current settings and imported filetype, will not overfill the disk capacity minus the headroom buffer
    2. if so disallow the import with an error message


  • Generators and effects
    1. Check before the plug-in starts that there is more space available than the headroom buffer
    2. check that the volume of data, based on current settings, will not overfill the disk capacity minus the headroom buffer
    3. If we want to be really secure we would need to check as the plug-in progresses that we are not exceeding the headroom (in case the estimate was inaccurate) and if so stop the plug-in gracefully with an error message.


  • Copy & Paste
Neither of these commands aappears to generate any noticeable extra disk occupancy, the assunption is that they are using pointers. However once you manipulate the copied data with an effect then the disk size occupancy does increase - but that should be trapped under Generators and effects above.


  • All other commands - in fact all commands
    1. Before the command is implemented in any way check that we have more available space than the hedroom buffer.
    2. If not then inhibit the command and display an error message


  • Regular checking
    1. It may be beneficial that, while Audacity is idling, it makes periodic checks to see if disk-space is being eroded (by other applications) and if so display a suitable "out of sppace" error message that the user will see on their return to Audacity,

Developer/QA Backing

  • Peter

Use Cases

  • User sets off a recording with insufficient disk space. Audacity appears to the user to continue to work recording properly. But when they reaccess their project they find that the recording is corrupted.
  • User genrerates a tone say with insufficient disk space. It appears to the user that this has been completed successfully. An error only occurs when the user tries to save the project - and that is a pretty opaque un-informative over-technical error message,

Tables for analysis and subsequent tracking

I would suggest that we use these tables to track the progess as part of Bug #437 rather than raising separate Bugzilla entries for each table entry (there are seventy of them).

File Menu

Command  % extra Needs trapping Assigned to Fixed Tested Resolved
New TBP  ??? no no no
Open depends on data size and settings almost certainly no no no
Close TBP  ??? no no no
Save Project may be a lot if Temp files in use Yes - critical no no no
Save Project As as much as the existing project Yes - critical no no no
Save Compressed Copy of Project Project TBP yes - probably critical no no no
Check Dependencies TBP  ??? no no no
Edit Metadata Tags TBP  ??? no no no
Import depends on file size & type almost certainly no no no
Export (various) file size calculable almost certainly no no no
Apply Chain TRICKY almost certainly no no no
Edit Chains TBP probably no no no
Page Setup TBP  ??? no no no
Print TBP  ??? no no no

Edit Menu

Command  % extra Needs trapping Assigned to Fixed Tested Resolved
Cut TBP  ??? no no no
Delete TBP  ??? no no no
Copy none probably not no no no
Paste none probably not no no no
Duplicate calculable almost certainly no no no
Labelled Audio>Copy none probably not no no no

Transport Menu

Command  % extra Needs trapping Assigned to Fixed Tested Resolved
Record open-ended yes - critical Mark Young ongoing unpulled patch yes no
Timer Record open-ended yes - critical Mark Young ongoing setup trap ok warning on setup ok and in 2.1.3
Append Record open-ended yes - critical Mark Young ongoing unpulled patch yes no

Tracks Menu

Command  % extra Needs trapping Assigned to Fixed Tested Resolved
Stereo Track to Mono probably calculable almost certainly no no no
Mix and Render probably calculable almost certainly no no no
Mix and Render to new Track probably calculable almost certainly no no no
Resample probably calculable probably no no no

Generate Menu

This set of commands could be seen as far less critical to trap then the Record and Save commands so sould probably be ignored.

Command  % extra Needs trapping Assigned to Fixed Tested Resolved
Chirp calculable maybe no no no
DTMF Tone calculable maybe no no no
Noise calculable maybe no no no
Silence calculable maybe no no no
Tone calculable maybe no no no
Click Track calculable maybe no no no
Pluck calculable maybe no no no
Risset Drum calculable maybe no no no

Effect Menu

This set of commands could be seen as far less critical to trap then the Record and Save commands so sould probably be ignored.

Command  % extra Needs trapping Assigned to Fixed Tested Resolved
Amplify 100% maybe no no no
Auto Duck TBP maybe no no no
Bass & Treble 107% - used more while working maybe no no no
Change Pitch 100% maybe no no no
Change Speed varies with % change maybe no no no
Change Tempo varies with % change maybe no no no
Click Removal varies maybe no no no
Compressor 100% maybe no no no
Echo 100% maybe no no no
Equalization 100% maybe no no no
Fade In 100% maybe no no no
Fade Out 100% maybe no no no
Invert 100% maybe no no no
Leveller 100% maybe no no no
Noise Reduction 100% maybe no no no
Normalize 100% maybe no no no
Nyquist Prompt  ???  ??? no no no
Paulstretch massive maybe no no no
Phaser 100% maybe no no no
Repair TBP maybe no no no
Repeat 0% maybe no no no
Reverb 100% maybe no no no
Reverse 100% maybe no no no
Sliding Time Scale/Pitch Shift 100% maybe no no no
Truncate Silence varies by amount of silence maybe no no no
Wahwah 100% maybe no no no

Effect Menu below the line

Command  % extra Needs trapping Assigned to Fixed Tested Resolved
Adjustable Fade 100% probably no no no
Clip Fix 100% yes no no no
Crossfade Clips adds length of fade probably no no no
Crossfade Tracks adds length of fade probably no no no
Delay 100% yes no no no
High Pass Filter 100% yes no no no
Limiter 100% yes no no no
Low Pass Filter 100% yes no no no
Notch Filter 100% yes no no no
SC4 100% yes no no no
Spectral edit multi tool 100% probably no no no
Spectral edit parametric EQ 95% probably no no no
Spectral edit shelves 100% probably no no no
Studio Fade Out 100% probably no no no
Tremolo 100% yes no no no
Vocal Reduction and Isolation 100% yes no no no
Vocal Remover 50% yes no no no
Vocoder 50% yes no no no

Analyze Menu

Command  % extra Needs trapping Assigned to Fixed Tested Resolved
Contrast TBP probably no no no
Plot Spectrum TBP probably no no no
Find Clipping TBP probably no no no
Beat Finder TBP probably no no no
Regular Interval Labels TBP almost certainly no no no
Sample Data Export TBP probably no no no
Silence Finder TBP probably no no no
Sound Finder TBP probably no no no

Generate/Effect/Analyze Menus

Command  % extra Needs trapping Assigned to Fixed Tested Resolved
Add / Remove Plug-ins varies almost certainly no no no


Details

TBP


GUI Examples

TBP


Previous Feature Requests relating to this proposal

  • Disk use limit for recording (11 votes)
    • Option to Disable (1 votes)
  • Disk space check before exporting: (16 votes) - including indication of expected size of export, and choice to export partial file or cancel if insufficient space available. Would stop user exporting WAV files over the 2/4 GB limit, MP3s in excess of ringtone limits etc.
      Could only indicate that space was available at time of checking, could never guarantee the file would be completed if other disk events occurred. However Audacity 2.x does now have a warning if WAV/AIFF exports are not completed.