Proposal: Poor Man's Unitary Project

From Audacity Wiki
Revision as of 08:55, 19 June 2019 by PeterSampson (talk | contribs) ({{Proposal_Header|This page is a proposal to ... provide simple way of creating a single container for a project by placing the AUP file in the data folder |}})
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Proposal pages help us get from feature requests into actual plans. This page is a proposal to ... provide simple way of creating a single container for a project by placing the AUP file in the data folder
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

There is a proposal, Proposal Unitary Project, to deal with this properly - but that is a lot of work which we keep putting off. And it is far from risk-free and would involve a lot of QA soak-testing.

This proposal is a simple way of possibly mitigating some of the problems without major structural data changes.

  • One of the key advantages this proposal has over the Proposal Unitary Project is that it involves almost no disruption or change to the Audacity data structure - a data structure which we know works and has effectively been soak-tested through many releases of Audacity.

On the Forum we see many users who fail to grasp the fact that an Audacity project consists of the two parts .aup and data folder. Consequently they discard one or either of them when backing them up, moving them, or sending them to others. "Why is my project now hundreds of little files?" is a common cry for help that we see often on the Forum - alternatively we see folk with just a .aup file thinking it is the whole project and no data file remaining.

This is quite reasonable, how many other apps do we know where the data structure for a file or project has multiple parts readily exposed to the user?

The problem for us, as Audacity, is that we risk "reputational damage" by allowing users to corrupt and damage their projects - they talk on social media and compare notes.

Windows

Part of the problem on Windows is that because we are using the basic Windows OS open we are stuck with what Microsoft provides. The default setting is not just Audacity projects but "all files" so the user can be supplied with quite a mish-mash to choose from (especially if their filing system is not organized with a good taxonomy).

Even if they think to apply the "Audacity projects" filter (as in the example below) we can observe that first comes a list of folders and then a list of .aup files with each .aup file essentially separated from its related data folder. Plus with the data folder coming first it's all too easy to click on that for the open, it fails of course, and then drill down until you do get something that will open i.e. the individual .au files.

Open Audacity Project dialog - project filtered.png

Mac

On Mac there is also an "Audacity projects" filter. And on Mac the data folder and the .aup are listed adjacent to each other, but there is still the risk of the user going first to open the data folder (or its contents as it is listed first). We do still get plenty of Mac users who complain about "Why is my project now a lot of little 'au files?".

Mac File-Open dialog.png

Proposed Feature

Use the Project data folder to be the container for the whole project, moving the .aup file into that folder at the top level.

Steve 9Jun19: An alternative "poor man's" version could be to pack the project in a container (such as ZIP or tarball) with our own file extension, such as ".aupz". This also suffers from not being a complete solution, and is more complex but probably more effective than just putting the AUP file into the data folder. A side benefit is that we could offer a choice of lossless compression (for reduced size) or uncompressed archiving (for speed).

Developer/QA Backing

  • Peter

Use Cases

  • user tries opening the data folder and not the .aup: File > Open > my-project_data
  • user moves either one of .aup or data folder not realizing they are co-dependent and must co-reside
  • user deletes data folder believing it to be only temporary data
  • user deletes .aup file believing only the data folder is needed

Details

  • Move the .aup file to be inside the data folder, at the top level.

    That way the user would have just one thing to archive or send to their friends - or move about.

    • Remove the "_data" suffix for project folders.
  • When a user opens an old project that has an .aup outside the folder, Audacity will immediately move it to inside the folder and work with it from there.
    • Thus old projects would be openable in 2.3.4 and beyond, as a functional part of the app. But 2.3.4 and onwards projects would not be readily openable in 2.3.3 or earlier - but in extremis the user could be instructed how to move the .aup file out of the folder and alongside it.
    • But remember in the transition from 1.2.6 to 1.3.0 with the database structure change the transition of project files was definitely a one-way trip with no going back.
  • On so doing, Audacity flashes up an information dialog telling the user that it is moving the .aup to inside the project data folder.

    That dialog to have the usual checkbox "Don't show this message again".

  • It would be very useful to have a "?" help button to link to the Manual's (revised) page on project structure.

    If we do it silently I can foresee many postings on the Forum from confused users saying: "I can't find my .aup file" - and that would not be desirable at all.

  • If we continue to use the operating system tools for opening files, we will need to expect the user to drill into the data folder to open the .aup file
    • If instead we wrote our own bespoke file openers we could let them issue the open command for the folder, or the .aup if they drill down, and open the project.


Sure we will write about it in Release Notes and in the Manual - but how many folk bother to RTFM (precious few, as we well know).



GUI Examples

May not be required

Previous Feature Requests relating to this proposal

  • Smaller-sized and/or more unified project storage: (29 votes)
    • See this proposal: Proposal Unitary Project
    • Single file, compressed audio (lossy or not) (18 votes) Uncompressed data not essential for sending to others if they are not editing it. The dual concept of the _data folder and .aup file is confusing and too interdependent.
      • Option to zip project on save: Reduces size losslessly and minimises recipient confusion (5 votes)
      • Must be a lossless option, single file more important than compression (5 votes)
          Audacity 2.x now has ability to save a compressed project, one OGG file per track, but still with a separate .aup file.
    • Each track as one file (3 votes) This is how commercial multitrack apps like Logic, Cubase, Pro Tools etc usually handles multitrack audio.
    • Keep .aup file and _data folder together in one folder. (4 votes)