Skip to content

Latest commit

 

History

History
212 lines (161 loc) · 9.79 KB

projects.md

File metadata and controls

212 lines (161 loc) · 9.79 KB

Projects (saving your work)

← Documentation ・ ← SmartCut ・ 日本語

You line up twenty recordings and start cutting the commercials out of them one by one. Then something else comes up. Closing the window does not throw the work away.

A project file (.scproj) saves the whole list. Which recordings you added, where you cut each one, and where the results should go. Open it next time and you are back where you left off.

Saving and opening

The SmartCut menu

The SmartCut button in the top right of the list window has four items. The keyboard does the same things.

Key Button What it does
Ctrl+S Save project Saves over the file you opened
Ctrl+Shift+S Save as Saves under a new name
Ctrl+O Open project Loads one you saved earlier
Ctrl+N New Empties the list and starts over

New clears the list and puts the output settings back to their defaults — exactly the state you get when you start the program. If you have unsaved work, it asks first.

At the foot of the menu is Quit, which is the window's own cross by another route: unsaved work stops it the same way. The batch tool's menu has it too.

You can also open a saved file by dropping it on the window, or by passing it on the command line.

smartcut friday.scproj

What is opened has to be a file, and one of no more than 64 MB; anything else — a named pipe or a device chosen by mistake — is refused as not a project file. Up to 0.8.35 the window waited on such a thing for good, or read it until memory ran out.

What is saved, and what is not

A project saves the things you decided:

  • where each recording is (and the order you put them in)
  • any clip you renamed
  • the cuts and the keyframes (marks) you made in each one
  • for a recording you have had open in the cut editor, what the detections found there: the commercial blocks, and the black, white and silent stretches. The bands under the timeline come back with the project
  • which tracks you chose to write
  • whether the list is written as one file, which clip is the master, and what happens at each join between two clips
  • the programme names and chapters read from a disc, and what a disc written from the list will say about each recording — the name, the channel, when it was recorded and what it was about, including anything typed over
  • for a recorder's title off a disc, what its playlist plays, and whether the stretches the playlist leaves out have been cut yet. A project saved before the recording was read cuts them when it is opened again
  • the output settings, once you have settled any of them

It does not save anything it can work out again. Length, resolution and frame rate come straight from the file next time it is opened. The seek index and the thumbnails live in the program's own cache folder, and are read back from there.

A detection is kept in that cache too, but only on the machine it was made on. For a recording you have had open in the cut editor, the stretches it found are in the project as well — so the bands are there again after you clear the cache, and on another machine.

That keeps the file small: a few hundred bytes for a list of twenty with cuts and marks alone, a few kilobytes with the detections in it. It is only text, so it opens on another machine, and it opens after you have cleared the cache. Whatever is missing simply gets read again.

The output settings go in once you have settled them

A list saved from the Input screen has not been given an output yet. What the program is holding at that moment is its own defaults, whatever Preferences says a cut is called, and whatever the last session was carrying — none of it an answer you gave about this work. So none of it is written down, and opening that project later asks those standing answers again. Which is what you want when you have since changed them.

Use one control on the Output settings screen and the whole panel becomes this project's own answer: saved with it, and put back exactly as it was when it is opened. Merely walking onto that screen is not using it. The folder name and the disc title it fills in for you are worked out from the recordings, and are worked out again next time.

A batch job is the exception. Add to batch writes the output settings into the queue's copy whether or not you have been to that screen, because a job is to be written the way this window would write it now — not the way another process would work it out hours later.

The * in the title bar means "not saved yet"

The title bar shows the name of the project you have open. While there are changes you have not saved, a * appears in front of the name. Close the window in that state and it asks whether to save first.

The * is decided by comparing the current list against the last saved version, every time something changes — not by "you touched something, so flag it". So if you make a cut and immediately undo it, the * goes away again. A project saved by an older version is no different: open a row, close the editor with OK having changed nothing, and no * goes up, although the editor now keeps things about a row that the older file never had.

There are two exceptions, both cases where a * would be wrong:

  • An empty list with no project open. There is nothing to lose, so no *.
  • A list you passed on the command line. You did not build that list; the same command would produce it again. So until you touch it, there is no *.

Autosave and recovery

While there are changes that have not been saved, the list is written into SmartCut's own data folder about three seconds after each change — everything a save would write, but never over the project's own file. Saving, or closing the window normally, removes it.

If SmartCut crashes, or the machine loses its power, that copy is left behind, and the next time SmartCut is started on nothing it asks about it under Recover work:

Answer What happens
Yes The list, its cuts and marks and its output settings come back as they were. A list that belonged to a project opens under that project's name, with a * in the title until it is saved
No The copy is deleted

A copy that could not be put back after a Yes — one naming a network share that was then not let in, say — is kept and offered again at the next start. A copy written by a newer version of SmartCut, which this one cannot open, is left where it is without asking.

Each window leaves a copy of its own. One start offers the newest of them; the rest are offered at the starts after it. A start on files or on a project offers nothing, and the copies wait for the next start.

The batch tool keeps no copy: its jobs are files on disc already.

When a recording has moved

A recording named in the project may have been moved to another folder, or deleted. The project still opens normally. Only the row for that recording says what happened. The other nineteen work as usual.

A project with recordings on a share

A project that names recordings in a shared folder — \\nas\rec\… or smb://nas/rec/… — asks before it opens, if it names a computer SmartCut has not been used with yet.

An open project starts reading every row at once, and on Windows reading a file on a share sends your sign-in details to the computer it is on. A project from someone else that names a computer you do not know would hand them over just by being opened. The question is there to stop that.

When Asked again
Recordings were added to the list from that share No
You answered Yes No
You answered No The project does not open, and is asked about next time too

The batch tool asks the same when it starts a job. A folder mapped as a network drive (Z:\ and so on) is not asked about.

A saved project is also a batch job

Add to batch on the Export screen saves the list, puts it at the end of the queue and opens the batch tool over it, with no picker in the way. The tool — a window in a process of its own — writes the queue out one job after another overnight.

What is queued is a copy. The queue writes the list as it stands into a folder of its own and runs that, under the name of the project you have open or of the list's first row where there is none. The copy is the queue's, and goes when the job is taken out of it; to change it, open the job from its row in the tool with Open the project.

Registering is also saving. The project you have open is written as well, the way Ctrl+S writes it, and an untitled list counts as saved by the copy — either way the * comes off the title bar. Note what that means for an untitled one: taking the job out of the queue takes the copy with it, so save it yourself with Save project as… if you will want it again. A job is a .scproj and nothing besides, because the file already holds everything a job is. See Working through a batch.

Files from a newer version

A .scproj carries a version number. A file saved by a newer version than the one you are running is refused rather than opened.

Reading it anyway would silently drop everything this version does not recognise, and saving over it would make that loss permanent. Refusing to open is better than quietly throwing away someone's cuts.

Note that adding fields does not count as a new version. Fields it does not recognise are kept as they are and written back out. (Up to 0.8.21 they were dropped instead.) What carries over between versions, and what does not, is in Compatibility.


The file format itself, and how the * comparison is implemented, are in the design notes.