diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 5008ddf..0000000 Binary files a/.DS_Store and /dev/null differ diff --git a/.gitignore b/.gitignore index 76459f3..653b9e1 100644 --- a/.gitignore +++ b/.gitignore @@ -4,19 +4,18 @@ _site/ .sass-cache/ .jekyll-cache/ .jekyll-metadata -_config.yml +Gemfile.lock + # Ruby .bundle/ .ruby-gemset .ruby-version *.gem -Gemfile.lock # Mac/Windows System Files .DS_Store +*.DS_Store ._* Icon Thumbs.db -_config.yaml -_config.yml diff --git a/404.html b/404.html index 086a5c9..681b8b1 100644 --- a/404.html +++ b/404.html @@ -20,6 +20,6 @@

404

-

Page not found :(

-

The requested page could not be found.

+

📼 Page not found :( 📼

+

The requested page could not be found. Please eject the tape and try again.

diff --git a/Gemfile.lock b/Gemfile.lock index b884134..d5c48dd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,96 +1,95 @@ GEM remote: https://rubygems.org/ specs: - activesupport (6.0.3.4) + activesupport (6.0.6) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) tzinfo (~> 1.1) zeitwerk (~> 2.2, >= 2.2.2) - addressable (2.7.0) - public_suffix (>= 2.0.2, < 5.0) + addressable (2.8.1) + public_suffix (>= 2.0.2, < 6.0) coffee-script (2.4.1) coffee-script-source execjs coffee-script-source (1.11.1) colorator (1.1.0) - commonmarker (0.17.13) - ruby-enum (~> 0.5) - concurrent-ruby (1.1.7) - dnsruby (1.61.5) + commonmarker (0.23.6) + concurrent-ruby (1.1.10) + dnsruby (1.61.9) simpleidn (~> 0.1) - em-websocket (0.5.2) + em-websocket (0.5.3) eventmachine (>= 0.12.9) - http_parser.rb (~> 0.6.0) - ethon (0.12.0) - ffi (>= 1.3.0) + http_parser.rb (~> 0) + ethon (0.15.0) + ffi (>= 1.15.0) eventmachine (1.2.7) - execjs (2.7.0) - faraday (1.3.0) - faraday-net_http (~> 1.0) - multipart-post (>= 1.2, < 3) - ruby2_keywords - faraday-net_http (1.0.1) - ffi (1.14.2) + execjs (2.8.1) + faraday (2.5.2) + faraday-net_http (>= 2.0, < 3.1) + ruby2_keywords (>= 0.0.4) + faraday-net_http (3.0.0) + ffi (1.15.5) forwardable-extended (2.6.0) gemoji (3.0.1) - github-pages (209) - github-pages-health-check (= 1.16.1) - jekyll (= 3.9.0) + github-pages (227) + github-pages-health-check (= 1.17.9) + jekyll (= 3.9.2) jekyll-avatar (= 0.7.0) jekyll-coffeescript (= 1.1.1) - jekyll-commonmark-ghpages (= 0.1.6) + jekyll-commonmark-ghpages (= 0.2.0) jekyll-default-layout (= 0.1.4) jekyll-feed (= 0.15.1) jekyll-gist (= 1.5.0) jekyll-github-metadata (= 2.13.0) + jekyll-include-cache (= 0.2.1) jekyll-mentions (= 1.6.0) jekyll-optional-front-matter (= 0.3.2) jekyll-paginate (= 1.1.0) jekyll-readme-index (= 0.3.0) jekyll-redirect-from (= 0.16.0) jekyll-relative-links (= 0.6.1) - jekyll-remote-theme (= 0.4.2) + jekyll-remote-theme (= 0.4.3) jekyll-sass-converter (= 1.5.2) - jekyll-seo-tag (= 2.6.1) + jekyll-seo-tag (= 2.8.0) jekyll-sitemap (= 1.4.0) jekyll-swiss (= 1.0.0) - jekyll-theme-architect (= 0.1.1) - jekyll-theme-cayman (= 0.1.1) - jekyll-theme-dinky (= 0.1.1) - jekyll-theme-hacker (= 0.1.2) - jekyll-theme-leap-day (= 0.1.1) - jekyll-theme-merlot (= 0.1.1) - jekyll-theme-midnight (= 0.1.1) - jekyll-theme-minimal (= 0.1.1) - jekyll-theme-modernist (= 0.1.1) - jekyll-theme-primer (= 0.5.4) - jekyll-theme-slate (= 0.1.1) - jekyll-theme-tactile (= 0.1.1) - jekyll-theme-time-machine (= 0.1.1) + jekyll-theme-architect (= 0.2.0) + jekyll-theme-cayman (= 0.2.0) + jekyll-theme-dinky (= 0.2.0) + jekyll-theme-hacker (= 0.2.0) + jekyll-theme-leap-day (= 0.2.0) + jekyll-theme-merlot (= 0.2.0) + jekyll-theme-midnight (= 0.2.0) + jekyll-theme-minimal (= 0.2.0) + jekyll-theme-modernist (= 0.2.0) + jekyll-theme-primer (= 0.6.0) + jekyll-theme-slate (= 0.2.0) + jekyll-theme-tactile (= 0.2.0) + jekyll-theme-time-machine (= 0.2.0) jekyll-titles-from-headings (= 0.5.3) jemoji (= 0.12.0) - kramdown (= 2.3.0) + kramdown (= 2.3.2) kramdown-parser-gfm (= 1.1.0) liquid (= 4.0.3) mercenary (~> 0.3) minima (= 2.5.1) - nokogiri (>= 1.10.4, < 2.0) - rouge (= 3.23.0) + nokogiri (>= 1.13.6, < 2.0) + rouge (= 3.26.0) terminal-table (~> 1.4) - github-pages-health-check (1.16.1) + github-pages-health-check (1.17.9) addressable (~> 2.3) dnsruby (~> 1.60) octokit (~> 4.0) - public_suffix (~> 3.0) + public_suffix (>= 3.0, < 5.0) typhoeus (~> 1.3) - html-pipeline (2.14.0) + html-pipeline (2.14.2) activesupport (>= 2) nokogiri (>= 1.4) - http_parser.rb (0.6.0) + http_parser.rb (0.8.0) i18n (0.9.5) concurrent-ruby (~> 1.0) - jekyll (3.9.0) + jekyll (3.9.2) addressable (~> 2.4) colorator (~> 1.0) em-websocket (~> 0.5) @@ -108,12 +107,12 @@ GEM jekyll-coffeescript (1.1.1) coffee-script (~> 2.2) coffee-script-source (~> 1.11.1) - jekyll-commonmark (1.3.1) - commonmarker (~> 0.14) - jekyll (>= 3.7, < 5.0) - jekyll-commonmark-ghpages (0.1.6) - commonmarker (~> 0.17.6) - jekyll-commonmark (~> 1.2) + jekyll-commonmark (1.4.0) + commonmarker (~> 0.22) + jekyll-commonmark-ghpages (0.2.0) + commonmarker (~> 0.23.4) + jekyll (~> 3.9.0) + jekyll-commonmark (~> 1.4.0) rouge (>= 2.0, < 4.0) jekyll-default-layout (0.1.4) jekyll (~> 3.0) @@ -124,6 +123,8 @@ GEM jekyll-github-metadata (2.13.0) jekyll (>= 3.4, < 5.0) octokit (~> 4.0, != 4.4.0) + jekyll-include-cache (0.2.1) + jekyll (>= 3.7, < 5.0) jekyll-mentions (1.6.0) html-pipeline (~> 2.3) jekyll (>= 3.7, < 5.0) @@ -136,57 +137,57 @@ GEM jekyll (>= 3.3, < 5.0) jekyll-relative-links (0.6.1) jekyll (>= 3.3, < 5.0) - jekyll-remote-theme (0.4.2) + jekyll-remote-theme (0.4.3) addressable (~> 2.0) jekyll (>= 3.5, < 5.0) jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0) rubyzip (>= 1.3.0, < 3.0) jekyll-sass-converter (1.5.2) sass (~> 3.4) - jekyll-seo-tag (2.6.1) - jekyll (>= 3.3, < 5.0) + jekyll-seo-tag (2.8.0) + jekyll (>= 3.8, < 5.0) jekyll-sitemap (1.4.0) jekyll (>= 3.7, < 5.0) jekyll-swiss (1.0.0) - jekyll-theme-architect (0.1.1) - jekyll (~> 3.5) + jekyll-theme-architect (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-cayman (0.1.1) - jekyll (~> 3.5) + jekyll-theme-cayman (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-dinky (0.1.1) - jekyll (~> 3.5) + jekyll-theme-dinky (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-hacker (0.1.2) + jekyll-theme-hacker (0.2.0) jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-leap-day (0.1.1) - jekyll (~> 3.5) + jekyll-theme-leap-day (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-merlot (0.1.1) - jekyll (~> 3.5) + jekyll-theme-merlot (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-midnight (0.1.1) - jekyll (~> 3.5) + jekyll-theme-midnight (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-minimal (0.1.1) - jekyll (~> 3.5) + jekyll-theme-minimal (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-modernist (0.1.1) - jekyll (~> 3.5) + jekyll-theme-modernist (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-primer (0.5.4) + jekyll-theme-primer (0.6.0) jekyll (> 3.5, < 5.0) jekyll-github-metadata (~> 2.9) jekyll-seo-tag (~> 2.0) - jekyll-theme-slate (0.1.1) - jekyll (~> 3.5) + jekyll-theme-slate (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-tactile (0.1.1) - jekyll (~> 3.5) + jekyll-theme-tactile (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) - jekyll-theme-time-machine (0.1.1) - jekyll (~> 3.5) + jekyll-theme-time-machine (0.2.0) + jekyll (> 3.5, < 5.0) jekyll-seo-tag (~> 2.0) jekyll-titles-from-headings (0.5.3) jekyll (>= 3.3, < 5.0) @@ -196,48 +197,49 @@ GEM gemoji (~> 3.0) html-pipeline (~> 2.2) jekyll (>= 3.0, < 5.0) - kramdown (2.3.0) + kramdown (2.3.2) rexml kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) liquid (4.0.3) - listen (3.4.1) + listen (3.7.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.3.6) + mini_portile2 (2.8.0) minima (2.5.1) jekyll (>= 3.5, < 5.0) jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) - minitest (5.14.3) - multipart-post (2.1.1) - nokogiri (1.11.1-x86_64-darwin) + minitest (5.16.3) + nokogiri (1.13.8) + mini_portile2 (~> 2.8.0) + racc (~> 1.4) + nokogiri (1.13.8-x86_64-darwin) racc (~> 1.4) - octokit (4.20.0) - faraday (>= 0.9) - sawyer (~> 0.8.0, >= 0.5.3) + octokit (4.25.1) + faraday (>= 1, < 3) + sawyer (~> 0.9) pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (3.1.1) - racc (1.5.2) - rb-fsevent (0.10.4) + public_suffix (4.0.7) + racc (1.6.0) + rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) - rexml (3.2.4) - rouge (3.23.0) - ruby-enum (0.8.0) - i18n - ruby2_keywords (0.0.2) - rubyzip (2.3.0) + rexml (3.2.5) + rouge (3.26.0) + ruby2_keywords (0.0.5) + rubyzip (2.3.2) safe_yaml (1.0.5) sass (3.7.4) sass-listen (~> 4.0.0) sass-listen (4.0.0) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) - sawyer (0.8.2) + sawyer (0.9.2) addressable (>= 2.3.5) - faraday (> 0.8, < 2.0) + faraday (>= 0.17.3, < 3) simpleidn (0.2.1) unf (~> 0.1.4) terminal-table (1.8.0) @@ -245,15 +247,16 @@ GEM thread_safe (0.3.6) typhoeus (1.4.0) ethon (>= 0.9.0) - tzinfo (1.2.9) + tzinfo (1.2.10) thread_safe (~> 0.1) unf (0.1.4) unf_ext - unf_ext (0.0.7.7) - unicode-display_width (1.7.0) - zeitwerk (2.4.2) + unf_ext (0.0.8.2) + unicode-display_width (1.8.0) + zeitwerk (2.6.0) PLATFORMS + ruby x86_64-darwin-18 DEPENDENCIES diff --git a/README.md b/README.md index d73158e..edafc46 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,10 @@ -# futureDocs -## Committing to Documentation: [The Template](https://ctodocs.github.io/futureDocs/)! -This site is the template for the workshop [Committing to Documentation](https://ctodocs.github.io/ctod/), created by Genevieve Havemeyer-King, Alison Rhonemus, and Nick Krabbenhoeft. +# BAVC-resources +This is a GitHub repo for hosting BAVC Preservation’s public workflow and resource documents on GitHub Pages. -# Docs are awesome \ No newline at end of file +The page is accessible at https://bavc.github.io/bavc-resources/ + +## How This Page Was Created: + +This page was builting using [This Template](https://ctodocs.github.io/futureDocs/)! +Thank you to created by Genevieve Havemeyer-King, Alison Rhonemus, and Nick Krabbenhoeft for hosting a workshop on how to build these sites. Here is the template for the workshop [Committing to Documentation](https://ctodocs.github.io/ctod/). diff --git a/_config.yml b/_config.yml index f8becb0..a909214 100644 --- a/_config.yml +++ b/_config.yml @@ -9,7 +9,7 @@ # For technical reasons, this file is *NOT* reloaded automatically when you use # 'bundle exec jekyll serve'. If you change this file, please restart the server process. # -# If you need help with YAML syntax, here are some quick references for you: +# If you need help with YAML syntax, here are some quick references for you: # https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml # https://learnxinyminutes.com/docs/yaml/ # @@ -19,7 +19,7 @@ # You can create any custom variable you would like, and they will be accessible # in the templates via {{ site.myvariable }}. -title: Future Docs Template +title: BAVC Resources description: Template site for the "Committing to Documentation" workshop search_enabled: true remote_theme: pmarsceill/just-the-docs @@ -27,5 +27,9 @@ search_enabled: true search.previews: 3 search_tokenizer_separator: /[\s/]+/ #heading_anchors: true -#color_scheme: "dark" -#theme: "just-the-docs" \ No newline at end of file +color_scheme: "dark" +baseurl: "/bavc-resources" # the subpath of your site, e.g. /blog +#theme: "just-the-docs" +aux_links: + "BAVC Resources source on GitHub": + - "//github.com/bavc/bavc-resources" diff --git a/about.markdown b/about.markdown deleted file mode 100644 index 801a9f4..0000000 --- a/about.markdown +++ /dev/null @@ -1,8 +0,0 @@ ---- -layout: page -title: About -permalink: /about/ ---- -This is a template! - -#You can write about your project diff --git a/assets/images/BAVCLogoOrange.png b/assets/images/BAVCLogoOrange.png new file mode 100644 index 0000000..2089c45 Binary files /dev/null and b/assets/images/BAVCLogoOrange.png differ diff --git a/assets/images/GitHubFork.png b/assets/images/GitHubFork.png new file mode 100644 index 0000000..d49c8f9 Binary files /dev/null and b/assets/images/GitHubFork.png differ diff --git a/assets/images/Google_Drive_SalesForce.png b/assets/images/Google_Drive_SalesForce.png new file mode 100644 index 0000000..8a3b7c4 Binary files /dev/null and b/assets/images/Google_Drive_SalesForce.png differ diff --git a/assets/images/Premiere4Channel01.png b/assets/images/Premiere4Channel01.png new file mode 100644 index 0000000..b638f57 Binary files /dev/null and b/assets/images/Premiere4Channel01.png differ diff --git a/assets/images/Premiere4Channel02.png b/assets/images/Premiere4Channel02.png new file mode 100644 index 0000000..1fbfe33 Binary files /dev/null and b/assets/images/Premiere4Channel02.png differ diff --git a/assets/images/Pull Request.png b/assets/images/Pull Request.png new file mode 100644 index 0000000..41f80a7 Binary files /dev/null and b/assets/images/Pull Request.png differ diff --git a/assets/images/TransferLog.png b/assets/images/TransferLog.png new file mode 100644 index 0000000..590786b Binary files /dev/null and b/assets/images/TransferLog.png differ diff --git a/assets/images/VM_Button.png b/assets/images/VM_Button.png new file mode 100644 index 0000000..3de486c Binary files /dev/null and b/assets/images/VM_Button.png differ diff --git a/assets/images/XLD-Options.png b/assets/images/XLD-Options.png new file mode 100644 index 0000000..4521025 Binary files /dev/null and b/assets/images/XLD-Options.png differ diff --git a/assets/images/XLD-ripping.png b/assets/images/XLD-ripping.png new file mode 100644 index 0000000..a0fb13a Binary files /dev/null and b/assets/images/XLD-ripping.png differ diff --git a/docs/Salesforce/index.md b/docs/Salesforce/index.md new file mode 100644 index 0000000..2f31cb3 --- /dev/null +++ b/docs/Salesforce/index.md @@ -0,0 +1,6 @@ +--- +layout: page +title: Salesforce +has_children: true +--- +{:toc} diff --git a/docs/Salesforce/intakeWorkflow.md b/docs/Salesforce/intakeWorkflow.md new file mode 100644 index 0000000..00340b2 --- /dev/null +++ b/docs/Salesforce/intakeWorkflow.md @@ -0,0 +1,19 @@ +--- +layout: page +title: Intake Visual Workflow +parent: Salesforce +--- + + +# Intake Visual Workflow + +* One way to perform intake is by using the Intake Visual Workflow. This is accessed on the Opportunity page, when clicking the "Launch Intake" button. + +* This page will need to be fleshed out, but for now here's info about how to edit the Visual Workflow. + + - In SalesForce, click "Setup" on the top bar + - On the left side navigate to Build -> Create -> Workflow & Approvals -> Flows + - From here, select Preservation Intake + - All of the earlier versions of the Visual Workflow are available on this page. + - To edit a workflow press Open + - If you make any changes please press Save As so that it can be tested before going into production diff --git a/docs/Salesforce/inventory.md b/docs/Salesforce/inventory.md new file mode 100644 index 0000000..953adc4 --- /dev/null +++ b/docs/Salesforce/inventory.md @@ -0,0 +1,21 @@ +--- +layout: page +title: Inventory +parent: Salesforce +--- + + +# Inventory + +* There are a number of steps to complete upon receipt of a collection: + - Look through the collection, checking for series numbers or descriptive information that may inform the order in which you inventory the collection, eg. if there there are three tapes of the same name numbered 1,2,3, inventory these tapes in numerical order. + - In Salesforce, navigate to the collection opportunity. + - Scroll to the bottom of the Opportunity page, and select **New Preservation Object**. + - Begin with your visual inspection of the first tape. + - During inspection you should be looking for any signs of tape or cassette damage, dirt, dust, water damage, creasing etc. + - If mold is found, please let a staff member know immediately, and place the suspect tape in a zip lock bag with a number of desiccants. The tape can remain with the rest of the collection until it is sent out for treatment. + - Place a barcode on the tape case and cassette. + - Complete the **Intake/Inventory** section in Salesforce (instructions can be found in section on Salesforce). + - As you finish inventory on each tape, place it in numerical order in a BAVC container. + - Once you have completed inventory of the collection, write the opportunity name on two Post It notes, and tape these notes to the front and back of the container. + - Finally, place the container on a shelf in the tape closet. diff --git a/docs/Salesforce/preservationObjects.md b/docs/Salesforce/preservationObjects.md new file mode 100644 index 0000000..a8c013e --- /dev/null +++ b/docs/Salesforce/preservationObjects.md @@ -0,0 +1,177 @@ +--- +layout: page +title: Preservation Objects +parent: Salesforce +--- + +# Preservation Objects + +## Preservation Object Detail + +### Intake/Inspection +*Complete during intake* + +* Intake/Inspection covers all inventorying and condition information gathered upon (you guessed it) initial intake and inspection! + + - **Media Type:** Almost always Video or Audio + - **Opportunity:** Should auto fill with collection name + - **Barcode:** Enter BAVC barcode number you apply to tape + - **Intake Date:** Current date + - **Intake Contact:** Your name + - **Label on Original:** Any label or information on tape or case. Please be as correct as possible, but if there is a lot of information on the tape, you should be succinct rather than comprehensive. + - **Client Identifier:** Any identifying number appearing consistently within the collection + - **Box:** Only relevant if collection comprises of multiple boxes + - **Tape Series:** Rarely used, as generally covered by client identifier + - **Format of Original:** Choose from drop down menu. If format is missing, please inform staff member. + - **Manufacturer Length of Tape:** Often printed on base of tape, or printed on tape or case label. If length on tape differs from length on label, defer to tape, as it may have been rehoused at some point. + - **Manufacturer on Tape:** Choose from drop down menu if manufacturer known + - **Model of Tape:** If not printed on label, may be printed on base of tape, ex. KCA-60 + - **Magnetic Pigment Formulation:** Choose from drop down menu. Generally Oxide, but DV tapes will be MP (metal particle) or ME (metal evaporate) + - **Back Matting:** Check box if back matting present on tape + - **Inspection/Condition Notes:** Note any physical issues related to the tape or it’s housing here. Examples of notes you may make are popped strands, stepping, no case, dirty, removed record tape etc. If mold is found, please note in inspection/condition notes AND technician notes. Also, alert a staff member immediately. + +## Transfer Environment +*Complete before capture* +* + - **Transfer Suite:** Choose the preservation room you are working in from drop down menu + - **Transfer Technician:** Begin typing your own name. It should appear quickly and you can chose it from the list that appears + - **Transfer Date:** Current date + - **Host Computer:** The computer you are using to capture. Type in computer’s inventory number and search, then choose from search list + - **Operating System Name:** Mac OS + - **Source Deck:** The deck you are using for this capture. Type in deck’s inventory number and search, then choose from search list + - **SDI Converter:** Most transfers utilize an SDI converter before being captured on the computer disk. Type in the inventory number and search, then choose from search list + - **Operating System Version:** Choose computer’s current OS from drop down menu. If not present, please alert a staff member + - **Capture Hardware:** Choose from drop down menu. Black Magic 4K Extreme currently in use at all stations. + - **Capture Software:** Choose from drop down menu + - **Trim Software:** Choose from drop down menu. We currently use QuickTime7 almost exclusively to trim files. + +## Video Transfer Elements +*Complete before capture - Video* + + - **Analog Video Transmission:** Choose the transmission method from the drop down menu + - **Color:** Choose from drop down menu + - **Audio Source Channels:** Choose from drop down menu. While the majority of formats have two channels (CH1, CH2), ½ inch and occasionally Umatic have one channel, and Betacam can have more than two. + - **Audio Source Channel Layout:** Choose from drop down menu + - **Audio Source Recording Method:** Choose from drop down menu. Particularly relevant for VHS transfer, as cabling must be adjusted for HiFi + - **TBC/Frame Sync:** The time base corrector(TBC) you are using to capture. Type in TBC’s inventory number and search, then choose from search list. If using internal TBC, note this in **Proc Amp Notes** + - **Proc Amp Notes:** Note all adjustments you made to TBC (Black, Luma; Chroma, Hue, H Position) + - **Bars/Tone:** Choose from drop down menu + - **Timecode:** Choose from drop down menu if capturing timecode. Timecode is almost always dropped frame. + - **Alternate Modes:** Choose relevant headings, or leave blank if none apply + - **Video Transfer Notes:** Notes about the transfer you would like your colleagues and QC technician to see, ex. *File captured twice on two different TBCs. Please review both.* + +## Audio Transfer Elements +*Complete before capture - Audio* + + - **Audio Material Type:** Choose from drop down menu + - **Audio Speed:** Choose from drop down menu + - **Audio Reel Size:** Choose from drop down menu + - **Audio Track Configuration:** Choose from drop down menu + - **Audio Size Configuration:** Choose from drop down menu + - **Audio Transfer Notes:** Notes about the transfer you would like your colleagues and QC technician to see + +## Supervised Transfer Notes +*Complete after capture* + +* **Technician's Notes** + - Technician’s Notes should contain *general* information about the overall condition of the tape content, ex. regularity of drop outs (occasional, regular, heavy), presence of double headswitching, regular instances of sync loss. + - Video notes should come before audio notes, ex. Regular drop outs. Numerous sync errors, audio buzz present throughout. Intermittent audio drop outs. + +* **Timecode Stamped Notes** + - Timecode Stamped Notes indicate particular instances of damage or image/audio variation of which you wish to alert the client. + - Timecode Stamped Notes should appear as follows: + - 00:00:00(space)-(space)Capitalized note; ex. 01:02:03 - Drop out; + - Each note (barring the final note you make) should have it’s own line and end in a semi-colon. This is to ensure that the information displaces legibly in the Excel transfer log we provide to clients. + +## Digitization Status +* **In Progress** - The transfer process has been started and is proceeding as normal, but has not yet been completed. +* **Pass** - You are satisfied with your captured file and notes. +* **Review** - There is an issue with your file that you would like to review, either by yourself or with colleagues. +* **Fail** - Your capture was not successful. +* **Not Captured** - The tape has not and will not be captured. +* **Sent to Sub** - The tape is not at BAVC, and has been sent to a subcontractor like Specs Brothers. + +## Digital Object Elements +* The information for Digital Object Elements are auto-populated into the Salesforce record via a script appended to the transcodeEngine. The majority of the fields in Digital Object Elements will remain the same from record to record. For 10-bit uncompressed capture, your fields should read as follows: + + - **Digital File Format:** MOV + - **Digital Video Codec:** Uncompressed 10-bit (v210) + - **Digital Video Bit Depth:** 10 bit + - **Digital Compression Mode:** Lossless + - **Digital Video Scan Type:** Interlaced + - **Digital Video Frame Rate:** 29.97 + - **Digital Video Frame Size:** 720 x 486 + - **Digital Video Aspect Ratio:** 4:3 + - **Digital Video Data Rate:** 224 Mbps + - **Digital Video Color Matrix:** BT.601 + - **Digital Video Color Space:** YUV + - **Digital Video Chroma Subsampling:** 4:2:2 + - **Digital Video Audio Data Rate:** 2 304 Kbps + - **Digital Audio Bit Depth:** 24 bit + - **Digital Audio Sampling Rate:** 48 kHz + - **Digital Audio Codec:** Linear PCM + - **Digital Audio Channel Positions:** L R + - **Digital Audio Channel(s):** 2 Channels + - **Checksum Generator:** MD5 + +* The only contantly variable fields are: + - **Digital File Name** + - **Digital File Duration** + - **Digital File Size** + - **Checksum** + +### Non 10-bit Captures +* While we largely capture files as 10 bit uncompressed (v210), there are occasions when we will capture to other codecs. These situations require some changes to the normally static Digital Object Elements fields. + - **ProRes 422 HQ** + - **Digital Video Codec:** Prores 422 HQ + - **Digital Compression Mode:** Lossy + - **Digital Video Scan Type:** Progressive + - **Digital Video Frame Size:** 648 x 486 + - **Digital Video Data Rate:** Variable + - **DV (DVCAM, MiniDV)** + - **Digital Video Codec:** DV + - **Digital Video Bit Depth:** 8 bit + - **Digital Compression Mode:** Lossy + - **Digital Video Frame Size:** 720 x 480 + - **Digital Video Data Rate:** 24.4 Mbps + - **Digital Video Chroma Subsampling:** 4:1:1 + - **Digital Audio Data Rate:** 1 536 Kbps + - **Digital Audio Bit Depth:** 16 bit + - **Digital Audio Sampling Rate:** 48 kHz OR 32 kHz + +## Quality Control Elements +* Checklist + - **Trimming:** + - Is any content at the beginning or end cutoff? + - Is there excessive static/snow or dead air at the beginning or end of the file? + - Are client requested bars/slates present? + - **Metadata:** Is every required field filled out? + - **Time Code:** + - Does timecode exist in the file? + - If so, is it correct? + - **Audio Sync:** Is the audio and video content in sync throughout the entire file? + - **Notes:** + - Do notes properly describe errors, artifacts, or other salient details? + - Is the correct vocabulary used to describe errors? + - Are any major errors missing from the notes? + - **QCTools Report:** Does the report open properly in QCTools? + - **MediaConch:** Do all files pass associated Policies? + - **Quality Control Notes:** Note any issues, errors or oversights that need to be addressed by digitization technician + - **Quality Control User:** Autofills when QC Technician is assigned at outset of project + - **Quality Control Date:** Today's date + - **Quality Control Status:** Select Pass, Review or Not Captured, dependent on outcome of QC process + - **Loaded to Drive:** Check box when all files associated with record have been successfully loaded to client drive + +## Preservation Activities +* Any interventionist actions taken on a tape must be recorded in Preservation Activities. The most common activities are cleaning and baking, but actions such as splicing or rehousing should also be recorded here. + - Select **New Preservation Activities** + - **Activity Type:** Select option from drop down menu. If Other selected, please specify which activity was taken in the Note field + - **Activity Date:** Date activity was undertaken + - **Preservation Object:** Should already contain object barcode number + - **Note:** space for short, relevant notes, such as the type of action taken (if not listed in Activity Type drop down menu) or number of cleaning passes if tape required repeated cleaning + +## Google Docs, Notes, and Attachments +* This field is rarely used at the object level. + +## Notes +* This field is rarely used at the object level. diff --git a/docs/Salesforce/quotesInvoices.md b/docs/Salesforce/quotesInvoices.md new file mode 100644 index 0000000..3abb2af --- /dev/null +++ b/docs/Salesforce/quotesInvoices.md @@ -0,0 +1,27 @@ +--- +layout: page +title: Creating Quotes and Invoices +parent: Salesforce +--- + +# Quotes and Invoices + +* While the Finance department handles accounting, bookkeeping, and sometimes payments, it is on us to negotiate with the client on services fees. We first create a quote in Salesforce for the client only, then generate an invoice for Finance to process. We are also responsible for locking in the initial deposit (either 100% or 50% of the quoted amount). + +## Quotes + +* Quotes are only for the the client and for Preservation's internal moves management. Quotes are usually generated during the "Negotiation" stage of an Opportunity. We generally do not alert the Finance department of income while a project is in this phase; the money is not guaranteed. + +## Invoices + +* Invoices are for the the client and the Finance department. Note, the invoicing functionality is constantly evolving. Please update this page if you notice missing, added, or replaced steps in the process, or if you encounter new terminology. + - In the Quotes, choose "Create PDF" then from the dropdown menu chose "EMAIL 50" template. (This method only works if you have created a quote with line items first) + - Look over the PDF and make sure it is correct. Choose "Save and Send and Email" + - At the bottom of email page, close "Select Template." + - Choose "QUOTE INVOICE" and the invoice payment template should appear. Please test the link and make sure it is working. (The Quote/Invoice number needs to be in the body of the email in order for Finance to process the email accordingly) + - Change the Related To field to "Opportunity" + - Add the contacts name in the To field + - In the CC field, type innesa@bavc.org + - In the BCC field, type preservation@bavc.org + - Edit the Subject Line, Text, and Email fields as you see fit. (this invoice will be sent from your email address). + - You might have to email the client in your other correspondence that you have sent an invoice and that they should check their spam folder if they haven't received it (this happens sometimes when sending emails through Salesforce). diff --git a/docs/Services/audioTransfer.md b/docs/Services/audioTransfer.md new file mode 100644 index 0000000..e181bd1 --- /dev/null +++ b/docs/Services/audioTransfer.md @@ -0,0 +1,150 @@ +--- +layout: page +title: Audio Transfer Workflow +parent: Services +--- + +# Audio Transfer Workflow + +# Baking +* Test the tape to see if it's sticky + - If the tape is from the 80's or later and has black backing, it's likely sticky + - Test the tape by slowly unreeling the tape off the reel. If it's sticky, the tape will not easily fall off the reel. + - If you are already playing back the tape and it's squaling, it will need to be baked. + - Only bake tapes that are polyester, NEVER bake acetate tapes. An easy way to remember this is "if it's opaque, you can bake!" Acetate tapes are translucent when held up to bright lights, and will melt if you bake them. +* If sticky, bake the tape using Program 3 + - 50 degrees C + - 4.0 degrees C/min + - 48 hour cycle + - Fan speed 60% +* Salesforce + - Notate any baking you do as a Preservation Activity in Salesforce + - Click "New Preservation Activity" from the Preservation Object page + - Select the date + - Select "Baking" + - Make sure the correct Preservation Object is associated + - Make sure a note about which program was used, or any extra info + +# Audio Transfer Station Setup +* Here is the typical signal chain for an analog audio transfer + - Tape Deck (Otari for Reel to Reel, Tascam for cassettes) + - A/D converter (MOTU Ultralite Mk4) + - Computer (Mac laptop running REAPER) +* Set up the signal chain + - Connect the Left and Right outputs of the Tape Deck to Inputs 1 and 2 respectively of the MOTU. + - Connect the MOTU to the Mac laptop via USB + - Open REAPER, create a new project + - Press *File -> Open* in *New Project* tab + - Select a template by pressing *File -> Project Template* + - Select the appropriate template for the tape type you're using + - Analog tapes: ***96k_24b_Analog*** + - DAT tapes: ***48k_16b_DAT*** + - MiniDisc: ***48k_16b_DAT*** + - Name the project after the BAVC Barcode Number. Save it in a folder named after the Opportunity on the Scratch RAID + - Make sure the project settings are correct. You can see them at the top of the screen. + - Project Templates should have the inputs already set up. However, you can click on the audio meters per track to set the inputs accordingly. +* You can monitor the audio being recorded on the studio monitors. Make sure they are on and click the "Main Volume" encoder on the MOTU until Main 1-2 appears. Adjust the levels appropriately. + +# Salesforce +* Fill out the ***Transfer Environment*** section + - Transfer Suite (Preservtion Grotto) + - Transfer Technician (User) + - Transfer Date + - Source Deck + - TBC/Frame Sync 1 (will always be None) + - SDI Converter (will always be None) + - Host Computer + - Operating System Name + - Operating System Version + - Capture Hardware + - Capture Software +* Fill out the ***Audio Metdata*** sections. This metadata gets embedded directly into the audio files, so make sure it is correct and has no typos! You can get this info either from the metadata provided by the client, or from the content on the tape. + - Audio Metadata: Title + - You can just use the label if it is descriptive. If not, just give it a good title according to the metadata. If that doesn't work, just enter the barcode. + - Audio metadata: Artist + - If there is an interviewee, artist, or musician and you have their full name, use that. If you can't get that then use the Archive or Collection Holder's name. + - Audio metadata: Date + - Enter the original recording date if you have it. If not, leave blank. + - Audio Metadata: Album + - Use the collection name if you have it. If not, use the Archive or Collection Holder's name. + +# Prep +* Track Configuration + - Determine what the track configuration is +* Leader + - When auditioning, test to see if the audio goes right to the beginning and end of the tape. If so, add leader to either side before transferring. +* Levels + - The Otari decks are calibrated against test tones. However, if the levels are way too low or clipping, you can turn off SRL (Standard Record Level) and adjust the levels manually. +* Cleaning + - Clean the entire signal path of the tape deck with cotton swabs, texwipes, and isopropyl alcohol before transferring. +* Salesforce + - Fill out the ***Audio Transfer Elements*** section + - Audio Material Type + - Audio Speed + - Audio Reel Size + - Audio Track Configuration + - Audio Sound Configuration + - Audio Transfer Notes (This is just to be used for internal notes, this does not go to the client) + - ***BUG REPORT*** + - *You'll also need to fill out all of the Video Transfer Elements, or Salesforce won't let you save the record. This will be fixed.* + +# Transferring +* During the transfer process, monitor the audio and make notes about any momentary or constant errors. Make sure to pass on as much information about the audio to the client. +* There are two Salesforce fields where we put information about the audio quality. Each has a slightly different format: + - Technicians Notes + - This field contains info about the audio quality in general + - Here are some common notes + - Audio Buzz + - Audio Hiss + - Native Clipping + - Wow and flutter + - Low recording levels + - Timecode Stamped Notes + - This field contains info for momentary errors, or any content of note specific to a certain time. + - Use the following format for each instance: + - HH:MM:SS - This is a timecode stamped note; + - HH:MM:SS - Every note but the last ends with a semicolon; + - HH:MM:SS - The last note does not have a semicolon + +# Post-Digitization +* Exporting the file + - Trim the audio to the appropriate length and according to project/client specs + - Default is 5 seconds or less of silence at the tail or head + - Press *File -> Render* + - Select the proper Sample Rate and Bit Depth, according to the recording specs + - Name the output files appropriately + - BAVC#######_ClientID_Face## + - Press *Render 1 File* +* Updating Metadata + - The transcode engine will automatically insert metadata into the files. This needs to come from the following fields in Salesforce: + - Audio Metadata: Title + - *No apostrophes or quotes!* + - Audio Metadata: Artist + - *Use artist or interviewee name is possible* + - Audio Metadata: Date + - *Must be in format YYYY-MM-DD* + - Audio Metadata: Album + - *Use collection name if possible* + * Creating Derivatives + - transcodeEngine.py can process audio files + - Select 1 derivative + - Select MP3 + - Select bitrate (default is 320kbps) + * Moving to the SAN for QC + - If not mounted, mount the SAN + - Select Finder + - Go -> Connect to Server... (or ⌘K) + - Server address is *smb://presfsan* + - Make sure there is a folder on the SAN for the Opportunity + - rsync -av --progress [path to sounce file/folder] [path to destination folder] + * Backup file on PresRaid + - If not mounted, mount the PresRaid + - Select Finder + - Go -> Connect to Server... (or ⌘K) + - Server address is *smb://presraid* + - Make sure there is a folder on the PresRaid for the project + - rsync -av --progress [path to sounce file/folder] [path to destination folder] + * Salesforce + - Once this is all complete, fill out the following fields: + - Loaded to PresRaid + - Digitization Status (Pass) diff --git a/docs/Services/cleaningDecks.md b/docs/Services/cleaningDecks.md new file mode 100644 index 0000000..02351bc --- /dev/null +++ b/docs/Services/cleaningDecks.md @@ -0,0 +1,70 @@ +--- +layout: page +title: Cleaning Decks +parent: Services +--- + +# Cleaning Decks + - Ensure deck is powered off + - Moisten a cloth with alcohol + - Clean entire tape path, making sure that all points of contact with tape are wiped clean + - Hold the cloth with gentle pressure against the side of tape drum and rotate the drum, cleaning heads + - Clean edges of tape path and area between heads (though not heads themselves) with cotton-tipped applicators moistened with alcohol + - Clean difficult to reach areas with cotton-tipped applicators moistened with alcohol + - Clean rubber rollers with Rubber Roller Restorer applied to cotton cloth (wear gloves and ensure room is properly ventilated when using this fluid) + - Repeat above processes as often as necessary to remove all signs of dirt, grease, and dust from tape path + - Clean deck before setting levels, after setting levels, and after every capture + +* **Creating Digibetas** + +Museums, archives, and libraries will sometimes request an additional Digibeta copy of the digital master file. Part of the Digibeta mastering process is laying down 30 seconds of black, 1 minute of bars/tone, and 30 seconds of black before the picture begins. +**Set-Up** + - Clean heads and tape path carefully; use swab to clean the rollers. + - Thread a BNC cable out of DIGITAL I/O Serial V/A input directly into the Blackmagic Capture Card + - Set Remote part of patch bay from Kona to Digibeta. + - Video Patch - Digibeta–>VDA1 + - Audio Patch - Digibeta --> RANE Mix + - Find a blank tape of the right length. They are stored in a filing cabinet in the tape closet. + - Open Media Express and import the file you are mastering to tape. + - Pack the tape by fast-forwarding and rewinding. + - Ensure the tape is wound to the beginning before laying down timecode. + +**Lay Black and Timecode** + - Switch deck to "Setup 1" by opening the control panel to reveal advance settings. Turn the deck off and back on again to activate. + - Set the "TG Generator" to "interior" and "preset." + - Press the "hold" button that is underneath the timecode panel. + - Set timecode to 00:58:00 + - Press "Jog" and use the knob to move between the sections of the timecode. Set the numbers by pressing "Jog" at the same time as the knob is turned. + - Press "Set" button under timecode. + - Test by pressing REC + - Pres REC + PLAY to record black and let run past 01:00:00 + - Stop + +**Lay Bars and Tone** + - Switch deck to "Setup 2" by opening the control panel to reveal advance settings. Turn the deck off and back on again to activate. + - Set the "TG Generator" to "interior" and "regen." + - Rewind tape to 00:58:30 + - Under "INSERT" press "video" and all four audio channels + - Press "Entry" and "In" at the same time + - Forward tape to 00:59:30 + - Press "Entry" and "Out" at the same time + - Identify Audio and Video + - Press and hold SIF/CH1 on the Audio Input section until all audio channels light up. + - Press and hold SIF in the Video Input section until all video channels light up. + - Press Auto Edit + +**Mastering** + - Follow the procedures in the "Setup" section of this page. + - Switch deck to "Setup 1" + - On the Digibeta deck, Turn on Remote 1(9P) on + - In Media Express–>Edit to Tape, set In Point to 1:00:00. You shouldn't have to set out point (if you do, use time code on file). + - Click Assemble button + - When ready to go, click the "Master" button. The tape will automatically stop when the file ends. + - Check to make sure blacks, bars, and file all begin at the established in/out points. + +**Labeling** + tba + +**Tips/Troubleshooting** + - Do not use Media Express at the same time as you are recording blacks. You might accidentally record the file prematurely. + - The file should be imported from the computer's local storage drive, not the presraid. Importing from the presraid will result in dropped frames. diff --git a/docs/Services/cleaningTapes.md b/docs/Services/cleaningTapes.md new file mode 100644 index 0000000..cea4962 --- /dev/null +++ b/docs/Services/cleaningTapes.md @@ -0,0 +1,47 @@ +--- +layout: page +title: Cleaning Tapes +parent: Services +--- + +# Cleaning Tapes + +* **1/2 Inch** + - Remove lid of 1/2" cleaning deck + - Ensure that a 1/4" audio reel is in place on right side of deck to support take up reel + - Turn on deck + - Ensure tension pin is blocked + - Choose a take up reel which corresponds in size with the reel you wish to clean + - Thread source tape anti clockwise around take up reel's hub directly across top of deck - DO NOT thread through tape path + - Fold a DRY cotton swatch over exposed tape between reels and pinch lightly + - Put control in FORWARD position + - Allow tape to run through pinched fingers, applying even pressure + - Pause occasionally and check level of dirt being removed + - Replace dirty cloth with fresh cloth as often as necessary while cleaning + - Once tape has finished forwarding, thread back on to source reel and rewind entirely + - Repeat as necessary + +* **U-Matic** + - Open lid of cleaning deck, and hang lid from nail above deck using rubber bands attached to lid + - Clean entire tape path with cotton swatches and alcohol + - Turn on power switch bottom right underneath deck (and step back or you will get hit in the face!) + - Once alcohol has evaporated, put tape in deck + - Press CLEAN button followed by AUTO - tape will now fast forward and then rewind while cleaning + - Once tape has self ejected following cleaning, use dentist's mirror to check how much dirt has been removed by cleaning rolls + - If cleaning rolls has removed a lot of dirt, repeat cleaning procedure + - If cleaning roll is collecting thick, sticky detritus, you should bake tape + - If machine is stopping mid wind and showing the BIND warning, you will likely have to bake tape (though in some cases rehousing is necessary rather than baking) + - If baking is necessary, try to pack tape back to start if possible before baking + - Clean tape path between each cleaning pass + - Once tape is satisfactorily clean, turn off machine, clean tape path again, close lid of cleaning deck. + +* **VHS** + - Open lid of cleaning deck. + - Clean entire tape path with cotton swatches and alcohol. + - Turn on deck (power switch bottom left underneath deck). + - Once alcohol has evaporated, put tape in deck. + - Press START. + - Once tape has self ejected following cleaning, use dentist's mirror to check how much dirt has been removed by cleaning rolls + - If cleaning rolls has removed a lot of dirt, repeat cleaning procedure + - Clean tape path between each cleaning pass + - Once tape is satisfactorily clean, turn off machine, clean tape path again, close lid of cleaning deck. diff --git a/docs/Services/index.md b/docs/Services/index.md new file mode 100644 index 0000000..078c0a4 --- /dev/null +++ b/docs/Services/index.md @@ -0,0 +1,6 @@ +--- +layout: page +title: Services +has_children: true +--- +{:toc} diff --git a/docs/Services/packingTapes.md b/docs/Services/packingTapes.md new file mode 100644 index 0000000..d2c6826 --- /dev/null +++ b/docs/Services/packingTapes.md @@ -0,0 +1,28 @@ +--- +layout: page +title: Packing Tapes +parent: Services +--- + +# Packing Tapes + +Packing tapes at a controlled tension and speed redistributes tape pack stresses and creates an even tension during playback. For tapes with heavy cinching, windows or other pack problems, this process can be repeated as often as needed. + +* **1 inch** + - We currently do not pack 1 inch tapes for safety reasons + +* **1/2 inch** + - Remove lid of 1/2" cleaning deck + - Ensure that a 1/4" audio reel is in place on right side of deck to support take up reel + - Turn on deck + - Ensure tension pin is blocked + - Chose a take up reel which corresponds in size with the reel you wish to clean + - Thread source tape anti clockwise around take up reel's hub directly across top of deck - DO NOT thread through tape path + - Put control in FORWARD position + - Once tape has finished forwarding, thread back on to source reel and rewind entirely + +* **Cassette Based Formats** + - Ensure deck tape path is clean + - Place tape in deck + - Fast-forward + - Rewind diff --git a/docs/Services/videoFormats.md b/docs/Services/videoFormats.md new file mode 100644 index 0000000..4ad1ac1 --- /dev/null +++ b/docs/Services/videoFormats.md @@ -0,0 +1,37 @@ +--- +layout: page +title: Video Formats +parent: Services +--- + +# Video Formats + +## 2" Quadraplex +We do not transfer 2". We sub-contract to Larry Odham in Tennessee + +## 1" Video + +* CAUTION! Don't slow down or use shuttle while playing or TAPE WILL BREAK +* Don't pack tapes (for safety) +* Leave empty reel on deck when not in use +* 3rd audio channel is timecode +* BVH-2000 deck plays type C +* Take cover screws off to use deck, lock reel on left side +* For right pickup reel use large hub +* Shuttle to rewind and FF - turn all the way, don't adjust speed +* Shuttle a 2nd time to get tape off reel + +## 1/2" Open Reel + +* No time code +* Watch for dropouts, creases in tape +* Squealing or sticky tape should be stopped and baked before playback +* One audio and one video channel +* Don't stop tape immediately if tape appears to be over - watch remainder of tape to ensure there is no further content +* CV vs AV: CV tape is unbacked, appearing shiny on both sides. While this is occasionally the case for AV tapes, a lack of backing is a good indicator that a tape is CV +* If there are heavy dropouts, utilize either of the two TBCs with dropout correctors (DOC). Make sure to connect RF out of the deck to the RF scope, and make sure the scope is connected to the correct TBC + - BVT-800 + - Make sure the advanced sync from the BVT is connected to the Video In of the deck + - DPS-290 + - The Video In of the deck can be connected to the general blackburst in the rack + - The DOC can be tuned with a trim pot inside the TBC. Do this if you see lots of weird lines instead of a clear picture diff --git a/docs/Services/videoTransfer.md b/docs/Services/videoTransfer.md new file mode 100644 index 0000000..d8c1574 --- /dev/null +++ b/docs/Services/videoTransfer.md @@ -0,0 +1,142 @@ +--- +layout: page +title: Video Transfer Workflow +parent: Services +--- + +# General Tape Transfer Workflow + +## Start of Day + +* Check that the previous day's transcodes and scripts have completed processing +* Restart every computer that ran overnight +* Patch the Audio and Video for the format you are using at your station +* Power on all equipment, allowing it to warm up (monitor, TBC, scopes, blackburst, audio mixer, etc) +* Empty the dehumidifier located in the Tape Closet if necessary +* Pack and/or clean tapes prior to transfer +* Bring only the tapes you intend on capturing for the day to your Capture Station + +## Capturing with vrecord + +* Follow **Start of Day** steps above to ensure that your station is ready to run +* Clean deck thoroughly, ensuring the entire tape path and heads are free of dirt +* Open **Terminal** and type in **vrecord -p** (passthrough mode) +* Ensure that your video settings in **vrecord** are correct. If not, type **vrecord -e** and select the appropriate configuration for that specific client and/or format. Return to vrecord's passthrough mode +* Insert a Bars & Tone tape to adjust waveform/vectorscope and audio within Broadcast range (or -18dB) + - In some case, audio levels may need to be adjusted on a TBC +* Eject the Bars & Tone tape and insert or thread the client tape to be captured +* Observe the threading and press Play (if necessary) + - Watch and listen to the tape movement in the deck. If there is ever any sign of struggling or loud squeaking; if you have any concerns whatsoever - **STOP THE TAPE** +* Set the levels to the program utilizing the scopes or **vrecord** to guide you + - If Bars & Tone is present on the client tape, set to these levels first. If those levels are off, make subjective adjustments to the content + - If you feel your eyes have adjusted and hue or saturation is still off, look away for 30 seconds and come back to it +* Set the audio levels during the loudest moments of the content. Do not allow the dB to drift into single digits. -10 dB should be the threshold +* Center the Horizontal framing by locating Input H-Position or H-Pos in a TBC +* If you are pleased with the settings, rewind and eject the tape, and re-clean the tape path +* Open **Salesforce** and locate the Preservation Object by typing in the tape's 7-digit barcode +* Copy the entire *Digital File Name* +* Exit and reopen vrecord, this time typing in **vrecord -e** +* Double check that the configuration is correct +* Follow the prompts and paste the digital file name where it asks for the *Client Identifier* + - Type **_take01** to the file name +* Press *Enter* to activate the capture. Start/play the tape from head at the same moment + +## Capturing with Media Express (only do this if you need to capture timecode or an upscaled video from the Teranex) + +* Open **BlackMagic Media Express** +* Open **Log and Capture** window +* Save Media Express project as the same name as the project folder, and save to folder +* In the top right-hand corner, go to **Preferences** and set **Capture Audio and Video To:** and **Capture Still Frames To:** to your project folder on the storage raid +* While in **Preferences**, ensure that **Project Video Format** is set to the correct settings: + - For analog tape captures: + - **Framerate:** 29.97 NTSC + - **Capture File Format:** 10 bit Uncompressed + - **Use Dropped Frame Timecode** should be checked + - For upscale HD captures: + - **Framerate:** Make sure to set this according to the client’s specifications + - **Capture File Format:** ProRes 422 HQ + - **Use Dropped Frame Timecode** should be checked +* Navigate to **Blackmagic Desktop Video Setup** (should be in the dock) and ensure that your settings are correct for both video and audio set up +* Use bars and tone tape to set levels +* Ensure your capture station is set up correctly for the selected format AND the video input you are using + +## During the Capture + +* Keep your eyes and ears on the transfer, taking notes on any artifacts or errors + - Notate these artifacts using the following timecode formula *HH:MM:SS* (Hours, Minutes, Seconds) + - Example: *01:13:42 - Crash record;* + - Regularly check the waveform monitor and vectorscope as you capture, being watchful for signal variances outside of broadcast range + - Watch the audio meters, ensuring that the audio is not peaking +* Once the recorded content has ended, press *Esc* +* Ensure no more content exists on tape. If complete, rewind the tape fully +* Eject or remove the tape and return it to it's case +* Wrap a green elastic band around the tape/case if the capture was successful. If unsuccessful, wrap an orange elastic band +* Clean the tape path + +## File Trimming + +* There is now a script that can help with file trimming, located on the SAN + - /Volumes/SymplyUltra/Scripts/trimmer.sh +* Open a terminal window +* Drag in the script or type in the path to the script above +* Drag in the file you want to trim +* Enter the timecode you want the trimmed file to start and end in the format HH:MM:SS +* Optional: enter how many hours you want the script to wait before running +* This script only works on uncompressed .mov files. DV files (even .movs created from DV) will need to be trimmed manually using this ffmpeg command: + - **ffmpeg -i [input file] -ss HH:MM:SS -to HH:MM:SS -c copy [output file]** + +## Transcoding + +* Generally, transcoding should take place EOD as to not interfere with other processing +* If the file was captured to a local RAID, it will first need to be rsync'd to the **SAN** +* Regular BAVC clients and archives (such as the Walt Disney Archives**) have variable requests pertaining to their deliverables. Check the project's **Salesforce Opportunity** for those specifications prior to creating the derivatives +* For the most commonly used script, open **Terminal** + - Drag in the file from the SAN scripts folder called **transcodeEngine.py** + - Add one space and type *-i* + - Drag the folder containing similar .mov files to be transcoded alike (i.e. all files with left channel audio only - do not mix) + - Hit *Enter* and follow each step + 1. creates the Access file or H.264/MP4 + - De-interlace (unless otherwise specified) + - Choose how to map the audio (Usually choosing from “Keep Original” or “Sum Stereo to Mono”) + - 640x480 unless otherwise specified + 2. creates the Mezzanine file or ProRes/MOV + - De-interlace (unless otherwise specified) + - Choose how to map the audio (typically “same as original” unless otherwise specified) + - Move the files to the PresRaid + - When prompted, enter the folder name on the PresRaid, i.e. *PV22_ClientName* + - Note: you do not need to type in the full path to the project folder, the script will automatically assume it goes in the *InProgress* folder + - Create a QCTools file and Checksum + - We typically create MD5 checksums without sidecar files + +## Update Salesforce + +* **Transfer Details** + - Fill out the ***Transfer Environment*** section + - Fill out the ***Video Transfer Elements*** section +* **Signal Notes** + - There are two Salesforce fields where we put information about the tape quality. Each has a slightly different format: + - Technicians Notes + - This field contains information about the tape's quality in general + - Here are some common notes: + - Intermittent dropouts + - Flagging + - Headswitch error in underscan + - Audio buzz + - Audio hiss + - Timecode Stamped Notes + - This field contains information for mandatory errors, or any content of note specific to a certain time + - Use the following format for each instance: + - HH:MM:SS - This is a timecode stamped note; + - HH:MM:SS - Every note but the last ends with a semicolon; + - HH:MM:SS - The last note does not have a semicolon +* **Digital File Metadata** + - The **transcodeEngine.py** script will create a mediainfo.py file and automatically sync this file to Salesforce. If you want to do the sync manually you can run the **sfsync.py** script in the Scripts folder on the SAN + - If you want to refresh the metadata in Salesforce, you can recreate it from any file or a folder of files using the **metaharvest** script + +## End of Day + +* Power off all decks, monitors, and power conditioners +* Clean the deck(s) and replace the tops +* Return tapes to the tape closet +* Empty the dehumidifier +* Turn off lights and lock door(s) diff --git a/docs/Technical Documentation/SANandPresRaidStartupAndShutdown.md b/docs/Technical Documentation/SANandPresRaidStartupAndShutdown.md new file mode 100644 index 0000000..409eae2 --- /dev/null +++ b/docs/Technical Documentation/SANandPresRaidStartupAndShutdown.md @@ -0,0 +1,49 @@ +--- +layout: page +title: SAN and PresRAID Startup and Shutdown +parent: Technical Documentation +--- + +# SAN and PresRAID Startup and Shutdown + +## SAN Startup + +* Power up the SAN by pressing the power button on the front right-hand side of the server. Note, the SAN should be plugged into a UPS ideally. +* Wait about 15 minutes for things to start up +* Go to the SAN management GUI at: [https://192.168.253.61:8088](https://192.168.253.61:8088). Login credentials can be found on 1Password +* Once logged in, go to the VM (Virtual Machine) Tab on the right side of the browse window. If the tab doesn't appear, wait 5 to 10 minutes and refresh the page. +* Click the VM icon at the bottom of the screen (image attached) to enter the View and Management control panel +* ![VM Button]({{site.baseurl}}/assets/images/VM_Button.png) +* Here, you'll see statuses for both Metadata Controllers, MDC1 and MDC2. If you just started up the system, these should both have a Running Status of Powered Off. +* Click on the row labeled MDC1 and press the Power On button +* Once the Execution Result has succeeded you can close the popup window. Wait about 15 minutes, then to do the same for MDC2 +* Once MDC2 is up and running you can closes the GUI and the SAN should be up and running +* To mount the SAN on the transfers stations you need to run the following command in terminal + - `sudo xsanctl mount SymplyUltra` + +## SAN Shutdown + +* Make sure that the SAN is unmounted from all computers using this command + - `sudo xsanctl unmount SymplyUltra` +* Login to the same web portal discussed above and stop services +* Shutdown + + + +## PresRAID Startup + +* Power up the PresRAID by pressing the power button on the front left-hand side of the server + _Note: the PresRAID should be plugged into a UPS ideally_ +* Wait about 15 minutes for things to start up + +## PresRAID Shutdown + +* Make sure that the PresRAID is ejected from all computers +* Open a terminal window +* Remotely log into the PresRAID as the user bavcadmin with the following command + - `ssh bavcadmin@192.168.253.95` +* You'll be asked for a password, get it from 1password +* Shutdown the PresRAID with the following command + - `sudo shutdown -h now` +* If you're prompted for a password it will be the same as before, available on 1password +* That's it. The PresRaid should be down in a few minutes diff --git a/docs/Technical Documentation/Scripts.md b/docs/Technical Documentation/Scripts.md new file mode 100644 index 0000000..fdbcfa6 --- /dev/null +++ b/docs/Technical Documentation/Scripts.md @@ -0,0 +1,561 @@ +--- +layout: page +title: Scripts +parent: Technical Documentation +--- + +# Scripts + +## Basic Unix Commands + +* Change directories: `cd [path]` +* Remove a directory: `rmdir [file]` +* Run commands in presraid: `ssh presraid@presraid` +* Change permissions (read, write, execute by everyone): `chmod 777 [file]` + +*** + +## Homebrew + +Homebrew is a program that allows for the easy install and updating of a variety of applications that we use, including ffmpeg, qctools, vrecord, and micromediaservices. +* Install Homebrew [http://brew.sh](http://brew.sh) +* Brew Cheatsheet [http://ricostacruz.com/cheatsheets/homebrew.html](http://ricostacruz.com/cheatsheets/homebrew.html) +* FFmpeg Cookbook for Archivists [https://avpres.net/FFmpeg/](https://avpres.net/FFmpeg/) + + +* Upgrade/Update Homebrew +``` +brew update&&upgrade +``` +* Dave's Mediamicroservices +``` +brew tap mediamicroservices/mm +``` +* AMIA Open Source +``` +brew tap amiaopensource/amiaos +``` +*** + +## Bagging Drives + +Bagging a drive is a way to prove to provide a digital shipping manifest to the client, as well as ensure that all the files that were loaded onto the drive were loaded properly. + +When we bag drives, we do so on the client's drive after all files have been reviewed. The "data" folder of the bag will include: files, transfer log, codec, readme.txt, qctools report + +There are two tools that can be used: Bagit and Bagit.py. + +Bagit is outdated, and the library of congress is now just supporting Bagit.py. + +You can install bagit.py with homebrew: +``` +brew install bagit +``` + +### Bagit.py + +Before running the command you'll want to remove hidden files: +``` +sudo find [Path to Directory] -name ".*" -exec rm -vR {} \; +``` +Now you can run the basic bagging command for BAVC: +``` +bagit.py --md5 --contact-name 'Bay Area Video Coalition' --contact-email 'preservation@bavc.org' --contact-phone '415-558-2158' [Path to Directory] +``` +It is generating checksums so it will take a while to run, an overnight process for big projects. + +If you want to run this on a bunch of sub-directories within a directory, the easiest way to do that is to use the find command with a clever query. In this case [Path to Directory] refers to the path to the directory that contains the sub-directories you want bagged: +``` +find [Path to Directory] -type d -maxdepth 1 -mindepth 1 -exec bagit.py --md5 --contact-name 'Bay Area Video Coalition' --contact-email 'preservation@bavc.org' --contact-phone '415-558-2158' {} \; +``` +*** +## FFmpeg +FFmpeg is the command line tool for digital media manipulations that drives vRecord, QCtools, and most of our automated script processes. + +### Install/update +Once Homebrew is installed, you can install or update ffmpeg by running: +``` +brew install ffmpeg --HEAD +brew reinstall ffmpeg --HEAD +``` +Reto Kromer's FFmpeg Cookbook for Archivists (great resource for installation and manipulations) [https://avpres.net/FFmpeg/#ch1](https://avpres.net/FFmpeg/#ch1) + +### Transcode +The default specs for our access files are based on CAVPP's target specifications: [http://calpreservation.org/wp-content/uploads/2014/12/CAVPP-file-specs-2014.11.20.pdf](http://calpreservation.org/wp-content/uploads/2014/12/CAVPP-file-specs-2014.11.20.pdf) + +**For all Transcoding strings you need to cd into the working directory before running the string.** + +#### FFv1 +* Creating an MKV Master File from 10-Bit Uncompressed: +``` +for file in *.mov ; do ffmpeg -i "$file" -c:v ffv1 -level 3 -g 1 -slices 16 -slicecrc 1 -color_primaries smpte170m -color_trc bt709 -colorspace smpte170m -color_range mpeg -metadata:s:v:0 "encoder= FFV1 version 3" -c:a copy -vf setfield=bff,setsar=40/27,setdar=4/3 -metadata creation_time=now -f matroska "${file%.*}.mkv" ; done +``` +* Creating a 10-but Uncompressed File from an FFV1/MKV files: +``` +for file in *.mkv ; do ffmpeg -i "$file" -movflags write_colr -c:v v210 -color_primaries smpte170m -color_trc bt709 -colorspace smpte170m -color_range mpeg -metadata:s:v:0 "encoder=Uncompressed 10-bit 4:2:2" -c:a copy -vf setfield=bff,setsar=40/27,setdar=4/3 -f mov "${file%.*}.mov" ; done +``` + +#### Access files + +* Analog Master: 640 x 480 Access Files (De-Interlaced), Audio Channels Same as Original: +``` +for file in *.mov ; do ffmpeg -i "$file" -c:v libx264 -pix_fmt yuv420p -movflags faststart -crf 18 -b:a 160000 -ar 48000 -s 640x480 -vf crop=720:480:0:4,yadif,setdar=4/3 "${file%.*}_access.mp4" ; done +``` +* Analog Master: 640 x 480 Access Files (De-Interlaced), Audio Channels Same as Original (FROM PAL ORIGINAL): +``` +for file in *.mov ; do ffmpeg -i "$file" -c:v libx264 -pix_fmt yuv420p -movflags faststart -crf 18 -b:a 160000 -ar 48000 -s 640x480 -vf crop=720:570:0:4,yadif,setdar=4/3 "${file%.*}_access.mp4" ; done +``` +* Analog Master: 640 x 480 Access Files (De-Interlaced), Left Channel Panned to Center: +``` +for file in *.mov ; do ffmpeg -i "$file" -c:v libx264 -pix_fmt yuv420p -movflags faststart -crf 18 -b:a 160000 -ar 48000 -s 640x480 -vf crop=720:480:0:4,yadif,setdar=4/3 -af "pan=stereo|c0=c0|c1=c0" "${file%.*}_access.mp4" ; done +``` +* Analog Master: 640 x 480 Access Files (De-Interlaced), Right Channel Panned to Center: +``` +for file in *.mov ; do ffmpeg -i "$file" -c:v libx264 -pix_fmt yuv420p -movflags faststart -crf 18 -b:a 160000 -ar 48000 -s 640x480 -vf crop=720:480:0:4,yadif,setdar=4/3 -af "pan=stereo|c0=c1|c1=c1" "${file%.*}_access.mp4" ; done +``` +* Analog Master: 640 x 480 Access Files (De-Interlaced), Stereo Channels Summed to Mono: +``` +for file in *.mov ; do ffmpeg -i "$file" -c:v libx264 -pix_fmt yuv420p -movflags faststart -crf 18 -b:a 160000 -ar 48000 -s 640x480 -vf crop=720:480:0:4,yadif,setdar=4/3 -af "pan=stereo|c0=c0+c1|c1=c0+c1" "${file%.*}_access.mp4" ; done +``` +* Analog Master: 640 x 480 Access Files (De-Interlaced), 4 Channels summed to 2 Channel Mono: +``` +for file in *.mov ; do ffmpeg -i "$file" -c:v libx264 -pix_fmt yuv420p -movflags faststart -crf 18 -b:a 160000 -ar 48000 -ac 2 -s 640x480 -vf crop=720:480:0:4,yadif,setdar=4/3 -af "pan=stereo|c0=c0+c1+c2+c3|c1=c0+c1+c2+c3" "${file%.*}_access.mp4" ; done +``` +* DV Master: 640 x 480 Access Files (De-Interlaced), Audio Channels Same as Original, 4:3 aspect ratio: +``` +for file in *.mov ; do ffmpeg -i "$file" -c:v libx264 -pix_fmt yuv420p -movflags faststart -crf 18 -b:a 160000 -ar 48000 -s 640x480 -vf yadif,setdar=4/3 "${file%.*}_access.mp4" ; done +``` +* DV Master: 640 x 480 Access Files (De-Interlaced), Audio Channels Same as Original, 16:9 aspect ratio: +``` +for file in *.mov ; do ffmpeg -i "$file" -c:v libx264 -pix_fmt yuv420p -movflags faststart -crf 18 -b:a 160000 -ar 48000 -s 640x480 -vf yadif,setdar=16/9 "${file%.*}_access.mp4" ; done +``` +* 1920 x 1080 Access Files from Upscaled Mezzanine Files +``` +for file in *_mezzanine.mov ; do ffmpeg -i "$file" -c:v libx264 -pix_fmt yuv420p -movflags faststart -crf 17 -b:a 160000 -ar 48000 -s 1920x1080 -ac 2 -af "channelmap=map=FL|FR:channel_layout=stereo" -y "${file%_mezzanine.*}_access.mp4" ; done +``` +* 1920 x 1080 Access Files from Upscaled Mezzanine Files High Quality version (crf 12 instead of 17) +``` +for file in *_mezzanine.mov ; do ffmpeg -i "$file" -c:v libx264 -pix_fmt yuv420p -movflags faststart -crf 12 -b:a 160000 -ar 48000 -s 1920x1080 -ac 2 -af "channelmap=map=FL|FR:channel_layout=stereo" -y "${file%_mezzanine.*}_access_HQ.mp4" ; done +``` +* 1920 x 1080 Access Files from HDV .m2t files +``` +for file in *.m2t ; do ffmpeg -i "$file" -c:v libx264 -pix_fmt yuv420p -movflags faststart -crf 17 -b:a 160000 -ar 48000 -s 1920x1080 -ac 2 -vf yadif -filter_complex "[0:a:0]aresample=async=1:min_hard_comp=0.01" -y "${file%.*}_access.mp4" ; done +``` +#### Mezzanine files + +* For Prores HQ, De-Interlaced, 24-bit PCM Audio [Note: Prores version determined by profile #: 0=Proxy; 1=LT, 2=422 Normal, 3=HQ) +``` +for file in *.mov ; do ffmpeg -i "$file" -c:v prores -profile:v 3 -vf yadif -c:a pcm_s24le "${file%.*}_mezzanine.mov" ; done +``` +* For Prores HQ, De-Interlaced, 24-bit PCM Audio Channels Same as Original [Note: Prores version determined by profile #: 0=Proxy; 1=LT, 2=422 Normal, 3=HQ) +``` +for file in *.mov ; do ffmpeg -vsync 0 -i "$file" -c:v prores -profile:v 3 -vf yadif -c:a pcm_s24le "${file%.*}_mezzanine.mov" ; done +``` +* For Prores HQ, De-Interlaced, 24-bit PCM Audio Left Channel Panned to Center [Note: Prores version determined by profile #: 0=Proxy; 1=LT, 2=422 Normal, 3=HQ) +``` +for file in *.mov ; do ffmpeg -i "$file" -c:v prores -profile:v 3 -vf yadif -c:a pcm_s24le -af "pan=stereo|c0=c0|c1=c0" "${file%.*}_mezzanine.mov" ; done +``` +* For Prores HQ, De-Interlaced, 24-bit PCM Audio Right Channel Panned to Center [Note: Prores version determined by profile #: 0=Proxy; 1=LT, 2=422 Normal, 3=HQ) +``` +for file in *.mov ; do ffmpeg -i "$file" -c:v prores -profile:v 3 -vf yadif -c:a pcm_s24le -af "pan=stereo|c0=c1|c1=c1" "${file%.*}_mezzanine.mov" ; done +``` +* For Prores HQ, De-Interlaced, 24-bit PCM Audio Stereo Channels Summed to Mono [Note: Prores version determined by profile #: 0=Proxy; 1=LT, 2=422 Normal, 3=HQ) +``` +for file in *.mov ; do ffmpeg -i "$file" -c:v prores -profile:v 3 -vf yadif -c:a pcm_s24le -af "pan=stereo|c0=c0+c1|c1=c0+c1" "${file%.*}_mezzanine.mov" ; done +``` +* For Prores HQ, De-Interlaced, 24-bit PCM Audio 4 Channels Channels Summed to 2 Channel Mono [Note: Prores version determined by profile #: 0=Proxy; 1=LT, 2=422 Normal, 3=HQ) +``` +for file in *.mov ; do ffmpeg -i "$file" -c:v prores -profile:v 3 -vf yadif -c:a pcm_s24le -ac 2 -af "pan=stereo|c0=c0+c1+c2+c3|c1=c0+c1+c2+c3" "${file%.*}_mezzanine.mov" ; done +``` +* For Prores HQ, Interlaced, 24-bit PCM Audio Channels Same as Original [Note: Prores version determined by profile #: 0=Proxy; 1=LT, 2=422 Normal, 3=HQ) +``` +for file in *.mov ; do ffmpeg -i "$file" -c:v prores -profile:v 3 -c:a pcm_s24le "${file%.*}_mezzanine.mov" ; done +``` +* For Prores HQ, Interlaced, 24-bit PCM Audio Left Channel Panned to Center [Note: Prores version determined by profile #: 0=Proxy; 1=LT, 2=422 Normal, 3=HQ) +``` +for file in *.mov ; do ffmpeg -i "$file" -c:v prores -profile:v 3 -c:a pcm_s24le -af "pan=stereo|c0=c0|c1=c0" "${file%.*}_mezzanine.mov" ; done +``` +* For Prores HQ, Interlaced, 24-bit PCM Audio Right Channel Panned to Center [Note: Prores version determined by profile #: 0=Proxy; 1=LT, 2=422 Normal, 3=HQ) +``` +for file in *.mov ; do ffmpeg -i "$file" -c:v prores -profile:v 3 -c:a pcm_s24le -af "pan=stereo|c0=c1|c1=c1" "${file%.*}_mezzanine.mov" ; done +``` +* For Prores HQ, Interlaced, 24-bit PCM Audio Stereo Channels Summed to Mono [Note: Prores version determined by profile #: 0=Proxy; 1=LT, 2=422 Normal, 3=HQ) +``` +for file in *.mov ; do ffmpeg -i "$file" -c:v prores -profile:v 3 -c:a pcm_s24le -af "pan=stereo|c0=c0+c1|c1=c0+c1" "${file%.*}_mezzanine.mov" ; done +``` +* For Prores HQ, Interlaced, 24-bit PCM Audio 4 Channels Summed to 2 Channel Mono [Note: Prores version determined by profile #: 0=Proxy; 1=LT, 2=422 Normal, 3=HQ) +``` +for file in *.mov ; do ffmpeg -i "$file" -c:v prores -profile:v 3 -c:a pcm_s24le -ac 2-af "pan=stereo|c0=c0+c1+c2+c3|c1=c0+c1+c2+c3" "${file%.*}_mezzanine.mov" ; done +``` +* For CAVPP Standards (2015) Production files: +``` +for file in *.mov ; do ffmbc -i "$file" -target dvcpro50 -pix_fmt yuv422p -r ntsc -acodec copy "${file%.*}_dv50.mov" ; done +``` +* 1920 x 1080 ProRes HQ Files from HDV .m2t files +``` +for file in *.m2t ; do ffmpeg -i "$file" -c:v prores -profile:v 3 -vf yadif -filter_complex "[0:a:0]aresample=async=1:min_hard_comp=0.01" -c:a pcm_s24le -y "${file%.*}_access.mp4" ; done +``` + +#### Upres SD Files to HD +* For HD Prores HQ, De-Interlaced, 24-bit PCM Audio, Pillarboxed 16:9 1080 Files +``` +for file in *.mov ; do ffmpeg -i "$file" -c:v prores -profile:v 3 -aspect 16:9 -vf yadif,scale=w=1440:h=1080:flags=lanczos,pad=1920:1080:240:0 -c:a pcm_s24le -s 1920x1080 "${file%.*}_mezzanineHD.mov" ; done +``` +* For HD Prores HQ, De-Interlaced, 24-bit PCM Audio, Full Frame 16:9 1080 Files +``` +for file in *.mov ; do ffmpeg -i "$file" -c:v prores -profile:v 3 -vf yadif,scale=w=1920:h=1080:flags=lanczos -aspect 16:9 -c:a pcm_s24le "${file%.*}_mezzanineHD.mov" ; done +``` +* For HD Access HQ, De-Interlaced, Pillarboxed 16:9 1080 Files +``` +for file in *.mov ; do ffmpeg -i "$file" -c:v libx264 -pix_fmt yuv420p -movflags faststart -b:v 3500000 -b:a 160000 -ar 48000 -aspect 16:9 -vf yadif,scale=w=1440:h=1080:flags=lanczos,pad=1920:1080:240:0 -s 1920x1080 "${file%.*}_accesHD.mp4" ; done +``` +* For HD Access HQ, De-Interlaced, Full Frame 16:9 1080 Files +``` +for file in *.mov ; do ffmpeg -i "$file" -c:v libx264 -pix_fmt yuv420p -movflags faststart -b:v 3500000 -b:a 160000 -ar 48000 -vf yadif,scale=w=1920:h=1080:flags=lanczos -aspect 16:9 "${file%.*}_accessHD.mp4" ; done +``` + +#### Trimming +* Trim the end of a file. In this case you can either use the HH:MM:SS format or just put the number of seconds for [output duration] +``` +ffmpeg -i [/Path/To/OriginalFile.mov] -c copy -movflags write_colr -t [output duration] [/Path/To/TrimmedFile.mov] +``` +* Trim the beginning of a file. In this case you must use the HH:MM:SS format to specify the start time +``` +ffmpeg -ss [start time] -i [/Path/To/OriginalFile.mov] -c copy -movflags write_colr [/Path/To/TrimmedFile.mov] +``` + +#### Other +* Turn a 16:9 Pillarboxed video with 4:3 content into full-screen 16:9 content by cropping the pillars and resizing the content: +``` +ffmpeg -i [input.mov] -movflags write_colr -color_range mpeg -color_primaries smpte170m -color_trc bt709 -colorspace smpte170m -aspect 16:9 -s 1920x1080 -c:v prores -profile:v 3 -vf crop=1440:1080:240:0,setdar=16/9 -c:a pcm_s24le [output.mov] +``` +``` +-movflags write_colr -color_range mpeg -color_primaries smpte170m -color_trc bt709 -colorspace smpte170m -aspect 16:9 -c:v prores -profile:v 3 -vf crop=1440:1080:240:0,yadif,setdar=16/9 +``` +* If accidentally captured a file with 2 stereo audio tracks (4 channels total) instead of 1 stereo audio track (2 channels total) this is a quick fix for removing the extra audio track +``` +ffmpeg -i [input.mov] -movflags write_colr -map 0 -map -0:a:1 -c copy [output.mov] +``` +* If you export a file from Premiere this command MUST be run on the output file before running it through the Transcode Engine +``` +ffmpeg -i [input.mov] -dn -map_metadata "-1" -movflags write_colr -c:v v210 -color_range mpeg -color_primaries smpte170m -color_trc bt709 -colorspace smpte170m -vf "setfield=bff,setsar=40/27,setdar=4/3" -c:a copy [output.mov] +``` +* Basic command for re-wrapping a file while maintaining the codec streams +``` +ffmpeg -i input.ext -c:v copy -c:a copy -map 0 output.ext +``` +* Creating FrameMD5 Manifests for video streams in all files in a folder: +``` +for file in *; do ffmpeg -i "$file" -an -f framemd5 -y "${file%}.fd5" ; done +``` +* Extract DV stream from a .MOV wrapped DV file +``` +ffmpeg -i BAVC1004511_2385M_1.mov -c:v copy -f rawvideo BAVC1004511_2385M_1.dv +``` +* Create 5 seconds of SMPTE Bars with 1kHz Tone +``` +ffmpeg -f lavfi -i smptebars=s=720x486:r=30000/1001 -f lavfi -i "sine=frequency=1000:sample_rate=48000" -movflags write_colr+faststart -color_primaries smpte170m -color_trc bt709 -colorspace smpte170m -color_range mpeg -vf "setfield=bff,setdar=4/3" -c:v v210 -c:a pcm_s24le -t 5 -y tn2162_v210.mov +``` +* Create 5 seconds of Black Bars with Silent Audio +``` +ffmpeg -f lavfi -i color=c=black:s=720x486:r=30000/1001 -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=48000 -movflags write_colr+faststart -color_primaries smpte170m -color_trc bt709 -colorspace smpte170m -color_range mpeg -vf "setfield=bff,setdar=4/3" -c:v v210 -c:a pcm_s24le -t 5 -y tn2162_v210_black_silent.mov +``` +*** +## QCTools/vRecord + +* How to install QCLI +``` +brew install qcli +``` +* For running QCLI on a single file: +``` +qcli -i [file name] +``` +* For running QCLI on a whole directory: +``` +for file in *.mov; do qcli -i "$file" ; done +``` +*** +## Audio +* See the max peak of the audio of a file (you can use this to check for digital clipping. If the Max Volume is 0dB it has clipped +``` +ffmpeg -i input.wav -filter:a volumedetect -f null /dev/null +``` +* For creating an MP3 from a folder of WAV files, maintaining channels +``` +for file in *.wav ; do ffmpeg -i "$file" -c:a libmp3lame -b:a 320k -write_xing 0 -ac 2 "${file%.*}_access.mp3" ; done +``` +* For creating an MP3 from a folder of WAV files, Left Channel Panned to Center +``` +for file in *.wav ; do ffmpeg -i "$file" -c:a libmp3lame -b:a 320k -write_xing 0 -ac 2 -af "pan=stereo|c0=c0|c1=c0" "${file%.*}_access.mp3" ; done +``` +* For creating an MP3 from a folder of WAV files, Right Channel Panned to Center +``` +for file in *.wav ; do ffmpeg -i "$file" -c:a libmp3lame -b:a 320k -write_xing 0 -ac 2 -af "pan=stereo|c0=c1|c1=c1" "${file%.*}_access.mp3" ; done +``` +* For creating an MP3 from a folder of WAV files, Stereo Channels Summed to Mono +``` +for file in *.wav ; do ffmpeg -i "$file" -c:a libmp3lame -b:a 320k -write_xing 0 -ac 2 -af "pan=stereo|c0=c0+c1|c1=c0+c1" "${file%.*}_access.mp3" ; done +``` +* Convert an .mov file to a .wav file +``` +ffmpeg -i input.mov -map 0:a -c:a pcm_s16le -ar 48000 output.wav +``` +* Convert an .mov DV file to a .wav file +``` +ffmpeg -i input.mov -map 0:a:0 -c:a pcm_s16le -ar 48000 output.wav +``` +*** +## Mediainfo +* Salesforce syntax for Filename, Duration, and FileSize +``` +mediainfo --Inform="General;\n%FileName%\n%Duration/String4%\n%FileSize/String4%\n" [FILE NAME or DIRECTORY] +``` +*** +## Checksums + +A checksum is a string of letters and numbers that acts like a fingerprint for a file. If two files have the same sum, it is safe to assume the files are the same. + +To obtain a file's Md5 checksum: +* Open Terminal app, type “md5 “ (without quotes, with space after) +* Drop file(s) from finder window into terminal window, and press enter, and wait... +* Copy md5 checksum codes from terminal window and paste into MD5 field in Salesforce + + More on MD5's here: [http://www.codejacked.com/using-md5sum-to-validate-the-integrity-of-downloaded-files/](http://www.codejacked.com/using-md5sum-to-validate-the-integrity-of-downloaded-files/) + +* Create an MD5 Checksum Sidecar file for each file in the working directory +``` +for file in *.* ; do md5 -q "$file">"${file}.md5" ; done +``` +*** +## Rsync +* rsync to presraid +``` +rsync -avv --progress [FILE OR DIRECTORY] presraid@presraid.bavc-int.org:/presraid +``` +* rsync to client drive +``` +rsync -avv --progress [FILE OR DIRECTORY] [DESTINATION FOLDER] +``` +*** +## DVRescue +DVRescue is a suite of tools that allow you to fix and re-wrap dv diles. + +DVPackager is a part of the suite that slipts up dv streams with different attributes contained in a single file. The input is always a DV file. You can use it to package a .dv file as 1 or many .mov files with the following command: +``` +dvpackager -e mov [path/to/file.dv] +``` +You can also run in a folder using this command: +``` +find [path/to/folder] -name "*.dv" -not -name ".*" -exec dvpackager -e mov {} \; +``` +It's possible to merge multiple transfers of a tape into a single file to remove errors. You can input as many files as you'd like, as long as they have an overlap in content. You can use this with .dv or .mov files: +``` +dvrescue [path/to/file1.dv] [path/to/file2.dv] [path/to/file3.dv] -m [path/to/OutputFile.dv] +``` +Like iwth QCTools, it's possible to generate DVRescue reports using the command line. This string will create an .xml report for every .mov file in the current directory. This will make it so that the DVRescue GUI opens instantly. To run this command you first need to change the current directory of terminal to the target folder using `cd /path/to/directory/` +``` +for i in *.mov ; do dvrescue "$i" -x "$i.dvrescue.xml" -c "$i.dvrescue.scc" -s "$i.dvrescue.vtt" ; done ; cowsay "done" +``` +*** +## Transcode Engine +Transcode Engine is a python script that lives on the SAN. The path is: +``` +/Volumes/SymplyUltra/Scripts/transcodeEngine.py +``` +_Be sure to use this instance and not the script on your desktop - The script on the SAN will be the most up to date._ + +You can run the script with the -h flag for help, you'll see the following information: +``` +/Volumes/SymplyUltra/Scripts/transcodeEngine.py -h +usage: transcodeEngine.py [-h] [-i I] [-o O] [-c C] [-mkv] [-dv] [-nsf] + +Harvests Mediainfo of input file or files in input directory + +options: + -h, --help show this help message and exit + -i I, --input I the path to the input directory or files + -o O, --output O the output file path (optional) + -c C, --csvname C the name of the csv file (optional) + -mkv, --Matroska Allows input file type to be mkv rather than default + mov + -dv, --DV Allows input file type to be dv rather than default mov. Processes as 720x480 rather than 720x486 + -nsf, --NoSalesForce Turns off 'No SalesForce' flag, which will avoid syncing the CSV to SF automatically. By default this script will sync CSV files to SalesForce + ``` + Other than -h for help, there are three other input flag: -i, -o, and -c + + * -i is used to specify the file or directory being processed. If you choose a file, only that file will be processed. If you choose a directory, all files with the extension ".mov" will be processed. This includes V210 files and ProRes files. No other codecs are fully supported at the moment. + + Example: + ``` + /Volumes/SymplyUltra/Scripts/transcodeEngine.py -i [Path/To/Input/Folder] + ``` + * -o is used to specify the output path of the resulting CSV file. If not specified, the output path will be the same directory as the input file (if processing a file), or the input directory (if processing a directory). + + Example: + ``` + /Volumes/SymplyUltra/Scripts/transcodeEngine.py -i [Path/To/Input/Folder] -o [Path/To/Output/Folder] + ``` + * -c is used to specify the filename for the resulting CSV file. If not specified, the output filename will be the same as the input file in the format inputfile.mov.csv (if processing a file), or mediainfo.csv (if processing a directory) + + Example: + ``` + /Volumes/SymplyUltra/Scripts/transcodeEngine.py -i [Path/To/Input/Folder] -o [Path/To/Output/Folder] -c OutputFilename.csv + ``` +*** +## Salesforce Metadata Python (out of date) +Salesforce records can be updated using the CSV created by the transcode engine and a python script. Here is how you do it! +### Setup +* make sure you have python3 installed. run the following command `brew install python3` +* Install the simple salesforce python library with the following command: `sudo pip3 install simple-salesforce` + * You will need to type in the password after running this command +* Download sfsync.py and config.py from the preservation Team Drive (Inventory -> Software -> Scripts) +* Drop these scripts into the ~/Documents/FFMPEG folder on your computer. + * These scripts can live anywhere, but they must be in the same folder. These instructions will assume that the files are in ~/Documents/FFMPEG + +*Note: config.py has private user/password data in it. DO NOT SHARE this file with people online.* + +### Running +* You can run the script with the following command: `python3 ~/Documents/FFMPEG/sfsync.py [path/to/mediainfo.csv]` +* You can actually run as many CSV files as you want in a single command! `python3 ~/Documents/FFMPEG/sfsync.py [path/to/01mediainfo.csv path/to/02mediainfo.csv path/to/03mediainfo.csv path/to/04mediainfo.csv]` + +*Note: Anything in brackets is a placeholder for the folder or file - [path/to/example]* + +*** + +## Salesforce Metadata CSV Update +*With the new updates that use Python, the skyvia method is now out of date. This portion is still here in case the Skyvia portion needs to be used, but it’s deprecated.* + +The Transcode Engine script creates a file named mediainfo.csv when it's finished running. This CSV file contains the Digital Object Elements metadata for each .mov file that was processed. There is a script that runs in the background that will update the Digital Object Elements in a Salesforce Preservation Objects with the information contained in these CSV files, and it uses the Barcode Number to match the data up with the correct record. + +It reads the CSV files from a Shared Google Drive folder. That folder lives in the preservation@bavc.org account's google drive. This folder is accessible from every Capture Station using the Backup and Sync from Google application. Each computer should have the folder accessible via finder, like this: + +![Google Drive Salesforce]({{site.baseurl}}/assets/images/Google_Drive_SalesForce.png) + +Every file in this folder will be synced daily to SalesForce at exactly 11:45 a.m. In order to sync up the CSV file you just created, you must rename it to match the following naming convention: XXmediainfo.csv (where XX is a number 01 thru - 09). Each staff member should have one or two filenames reserved for their individual use, in order to keep people from overwriting each other's files. If you don't remember which numbers are yours ask your coworkers! + +Drag the renamed CSV file into the SalesForceCSV folder to overwrite the existing file; When prompted, select "Replace". + +Wait until 11:45 a.m. rolls around again to ensure that the record has updated, or... + +### Manually Run The Update + +It's possible to run the update manually, rather than wait for the automatic sync at 11:45 a.m. Go the Skyvia web app at https://app.skyvia.com/ (login information available in the Accounts and Login page) and to the following + +* Click on the Integration tab on the left +* Click on the Digital Object Elements Update item +* Click the Run button on the top-right side of the page +* Be patient! It can take a few minutes to run + +### Known Issues! + +There is a major known issue that can cause problems. If a single tape has multiple parts, and there is a file for each part, you'll need to edit the CSV file to remove all but one part. We typically fill the Salesforce record with Digital Object Elements fields with the data from Part01 of a tape. So, you'll need to go into the CSV file and remove the rows that correspond to the other parts. You can edit the CSV files in TextEdit . + +*** + +## SAN +If the SAN gets unmounted you can mount it with the following command: +``` +sudo xsanctl mount SymplyUltra +``` +you'll be prompted for a password, it's preservation + +*** + +## Github +We use GitHub to develop all of our open source projects such as QCTools, SignalServer, and AVAA. + +### Getting Started + +If you have Homebrew, then you already have git installed on your local machine. You can also install git by itself from here: http://git-scm.com/download/mac. + +Next, you should create your GitHub account here: https://github.com/. + +### Basic Use + +Here are some very basic CLI steps for updating GitHub projects via Terminal. + + 1. Login to GitHub and fork the original repository (of the application you want to make changes too) to your remote repository + ![GitHub Fork]({{site.baseurl}}/assets/images/GitHubFork.png) + 2. Clone your remote repository to your local computer. You can do this in GitHub, or you can use a command line: + ``` + git clone [remote repository url] + ``` + 3. In your local repo, open the .md file you would like to edit in Atom [Atom](https://atom.io/) or another text editor + 4. Make you edits, save and close the file + 5. In Terminal, cd into your local repository + ``` + cd [path/to/repository] + ``` + 6. Now add the the change to a temporary staging area + ``` + git add [filename] + ``` + 7. Commit the change to your local repository and add a message - the more specific the better + ``` + git commit -m "changed the title from preservation to av preservation" + ``` + 8. Now you are ready to send the change and the commit to your remote repository (the one on GitHub). + ``` + git push origin master + ``` + 9. Finally, it's time to send the proposed changes to administrators of the original repository. In GitHub, go to the Pull Request tab and click the New Pull Request button + ![GitHub Pull Request]({{site.baseurl}}/assets/images/Pull request.png) + 10. Follow the steps of the Pull Request and make sure your comments are descriptive and specific. It will be sent to the GitHub community. If an administrator approves, they will merge the changes into the repository. If they do not immediately approve, they will begin a dialogue about the change. + +#### Resources +Here is a great guide with more explanatory notes about checkouts, branches, and other features: [http://rogerdudler.github.io/git-guide/](http://rogerdudler.github.io/git-guide/). + +*** + +## Rename +### General Use +Rename is a super useful tool for renaming files and folders in bulk. It's pretty tricky to use, but here's a quick explanation of a simple use case + + * Installation is simple, just run `brew install rename` + * In this example we will rename all files with the extension .jpeg to have the extension .jpg instead. + * First you need to `cd` into a the folder you want to rename. + * Then run this command + ``` + rename -n 's/\.jpeg/\.jpg/' * + ``` + * The `-n` flag will run in dry-run mode, meaning it will tell you what it will do before doing it. + * `s/\.jpeg/\.jpg/` tells rename to look at the standard in, and replace ".jpeg" with ".jpg" in any file it finds + * the `*` tells rename to look at every file in the working directory. + * Once you run the command in dry-run mode it'll show you what changes it will make. If you're happy with that run the command again without the -n flag and it'll actually rename the files: + ``` + rename 's/\.jpeg/\.jpg/' * + ``` +The above example just runs on files in a single folder. If you want to run the command on a bunch of recursive directories you'll need to use a more complex command: + * First you need to `cd` into a the folder you want to rename. + * Then run this command + ``` + find . -type f -name '*.jpeg' -print0 | xargs -0 rename -n 's/\.jpeg/\.jpg/ + ``` + * This part: `find . -type f -name '*.jpeg' -print0 | xargs -0` performs a find in the working directory for any file ending with ".jpeg". Then it passes the file path to rename, which runs in dry-run mode + * If you're happy with what dry-run mode comes up with, you can run it for real without the -n flag + ``` + find . -type f -name '*.jpeg' -print0 | xargs -0 rename 's/\.jpeg/\.jpg/ + ``` +In both examples we're just replacing .jpeg with .jpeg with this command: `s/\.jpeg/\.jpg/` + +Keep in mind you can replace any string with any other string. It's very useful! + +### Removing Barcodes + +Rename can very easily remove barcodes from files names. However, it's **very dangerous** because you can easily mangle files names with this command. + + * First, you need to make sure you remove all hidden files from the working directory. + * `cd` into whatever directory you want to rename the files in + * Run this command to see every hidden file in the directory `find . -name ".*"` + * If what you see looks like just hidden files, then run this command to remove hidden files. BE SUPER CAREFUL DON'T MESS THIS UP OR YOU CAN REMOVE EVERY FILE IN THE DIRECTORY. + ``` + find . -name ".*" -exec rm -vR {} \; + ``` + * From here you can run the following command to remove the barcodes (first 12 characters) from every file in the folder + ``` + rename -n 's/.{12}(.*)/$1/' * + ``` + * That command actually runs in dry-run mode. Remove the -n to run it for real if you're happy with the projected results of the dry-run + + You can read the manual [here](http://plasmasturm.org/code/rename/) diff --git a/docs/Technical Documentation/cdRipping.md b/docs/Technical Documentation/cdRipping.md new file mode 100644 index 0000000..a8f0b72 --- /dev/null +++ b/docs/Technical Documentation/cdRipping.md @@ -0,0 +1,176 @@ +--- +layout: page +title: CD Ripping +parent: Technical Documentation +--- + +# CD Ripping + +There are generally 2 types of CDs: CD-ROM and CD-DA. CD-ROMs contain an imaged volume with data, and can generally be treated like DVDs but with slightly different ripping parameters. CD-DAs contain just audio, and need to be ripped with special software. + +## Ripping CD-DA discs + +At BAVC we have created specific workflow for ripping CD-DAs. Our preferred method is to use XLD to rip the CD to a single WAV file. Once the file is ripped, it is possible to either create just a single MP3 access file per disc, or to split the MP3 access files according to the original tracklist on the CD. + +The reason we rip the CD as a single WAV file is because it's easier to manage a single file. Our system has trouble keeping track of multiple files in a single record, especially if the number of files is variable like it often is with CDs. However, since our automation embeds the tracklist into the file, the original tracklist can always be extracted from the single WAV file. + +## Required Software + +* XLD + * You can install by either: + * Installing the DMG file from [this site](http://sourceforge.net/projects/xld/files/xld-20220917.dmg) + * If you have homebrew install you can run the command `brew install xld` + + +## How To Rip +* Create folder with unique file name (BAVCbarcode_client ID) +* Open XLD, set output directory to new folder +* Under file name, set to custom and paste in folder name +* Under CD Rip, set ripping mode to CDParanoia III 10.2 +* Click the following settings + * REQUIRED + * **Ripper Mode**: CDParanoia III 10.2 + * **Read samples offset correction value**: 0 + * ✅ Set automatically if possible. + * **Save Log File**: Always + * **Save Cue File**: Always + * OPTIONAL + * **Max retry count**: 20 + * You can set this to more or less if you’d like. + * **Drive Speed Control**: Automatic + * ✅ Query AccurateRip database to check integrity + * ✅ Automatically open disc upon insertion + * All other fields are optional, set them as you'd like + * You can use this image for reference: + * ![XLD Options]({{site.baseurl}}/assets/images/XLD-Options.png) + * Insert CD + * Second window will pop up. Make sure option in top left says *Save as a single file (+ cue)* + * ![XLD Ripping]({{site.baseurl}}/assets/images/XLD-ripping.png) + * Make sure you rip as a single file! + + +## During Rip +* Barcode Case +* Do NOT barcode CD +* Update Intake details +* Update as much of the following metadata fields as possible. Any of these fields can be left blank if they are unknown or unapplicable + * **Embedded Metadata: Title** + * Label on the tape + * Or, if the title is clearly a subset of the label just put the title + * **Embedded Metadata: Artist** + * Music or art = Main artist or musical group + * Oral history or interview = Interviewee’s name + * **Embedded Metadata: Date** + * Year only = 1/1/YYYY + * Year and month = MM/1/YYYY + * Year months and day = MM/DD/YYYY + * Unknown = leave blank + * **Embedded Metadata: Album** + * If it’s actually an album then use the album name + * Otherwise, use the collection name + * **Embedded Metadata: Institution** + * Use the collection holder’s institutional name + * **Embedded Metadata: Comment** + * Optional field, but could include any errors encountered during transfer or any other salient information + * Mention if the tracklist noted in liner notes or on the container differs from the cue file tracklist. + * Essentially, any information from the Technicians Notes field could go here, but it is optional + * **Embedded Metadata: Copyright** + * If the collection holder has mention specific copyright information it should be included here. This is mostly used by California evealed + * **Technicians Notes** + * Any errors encountered during transfer or any other salient information + * Mention if the tracklist noted in liner notes or on the container differs from the cue file tracklist. + +## After Rip +* Rename log file to match ripped wav file name, but with .log extension +* Check log file for track number, any errors + * If there are errors, Mark file as review in Salesforce and check the file’s spectrogram for an obvious errors + * If no errors are audible in the file or clearly visible in the spectrogram you should note any errors mentioned in the log in the Technicians Note, mark the file as pass and move on. +* Run the [`cdEngine.py`](https://github.com/bavc/videomachine/blob/master/cdEngine.py) script on a folder containing all folders that need to be processed. Check to ensure metadata is uploaded on Salesforce + * Run the script with the following command: + * `cdEngine.py -i /Path/To/Folder` + * It is also possible to run the `cdEngine.py` script on a single folder containing the files for a single CD if you’d like. + +## Quality Control + +### Bulk Quality Control +Since CDs are often transferred in large volumes, it’s best to check specifics about the metadata in bulk using BWFMetaEdit. + +* Open BWFMetaEdit +* Drag the folder containing all the CD subfolders into BWFMetaEdit. +* Technical Metadata Check + * Click on the Tech tab + * Check that every file meets the following specs: + * **Format**: Wave + * **CodecID**: 0001 + * **Channels**: 2 + * **SampleRate**: 44100 + * **BitRate**: 1411200 + * **BitPerSample**: 16 + * *Note: The specifications for CDs are very strict. If any of these specs don’t match then the file wasn’t properly ripped from the CD* +* Descriptive Metadata Check + * Click on the Core tab + * Make sure that the embedded descriptive metadata for every file makes sense and has been properly filled out. + * Here are the fields that are most important to check + * **Description** + * Should include the Title and the date. Make sure it doesn’t include the date twice by accident, which is a common way for this to fail based on how the script works. + * **Originator** + * Should be “BAVC” + * **OriginationDate** + * Should be the date the file was ripped, so within a few days of QC + * **BextVersion** + * Should be “1” + * **CodingHistory** + * Should contain the entire log file. If it’s empty there is an error + * **ICRD** + * Should be the original recording date of the CD (if it exists) + +### File by file Quality Control +For the most part these files can be QC’d in bulk, but there are a few things that need to be checked individually. + +* File playback + * Preview the file quickly to make sure it plays. No need to check heads and tails because we do not trim these manually + * If any files have been flagged for having a high number of errors during the rip they should be played back to ensure that these errors are not present during playback. If the errors are present then the disc should either be retransferred, or the errors should be noted according to the technician’s discretion. +* MP3 Metadata + * Opening the MP3 in iTunes will show the file’s embedded metadata. Make sure that it looks correct compared to the metadata in the Salesforce record + * If MP3 is split, check that the number of MP3 files matches the tracklist in the CUE and LOG files. + +### Bulk QC Updates in Salesforce +Because CDs often come in large numbers, it’s easier to update the QC records for them in bulk using Views in Preservation. + +* Open the Preservation Object View named !(CD QC)[https://bavc.lightning.force.com/lightning/o/Preservation_Object__c/list?filterName=00B2J000009e0vzUAA] +* This view will show any CD objects that have been marked *Digitization Status:* ***Pass***, but have not been marked *Quality Control Status:* ***Pass*** +* In order for these records to be considered a QC Pass, the following fields visible in this view need to be filled out. None of these fields can be empty: + * **Digital File Name** + * This should reflect the file name without the extension + * **Digital File Duration** + * This should reflect the file duration in format HH:MM:SS:mmm + * **Digital Audio Sampling Rate** + * This should always be 44100 + * **Checksum** + * This should have checksum in it. + * **Source Deck** + * This should reflect the disc drive used to rip the CD + * If the drive is internal to a computer is should say “Internal” + * **Host Computer** + * This should reflect the computer that was used to rip the CD +* If the above fields are properly filled, you will need to update the following fields. These fields can be easily updated in bulk by clicking the checkbox on the far left side of the list for every record you want to update. Then, when you update each field make sure to click the box that says “Update X selected items” (where “X” is how many records you’ve selected) + * **Quality Control Date** + * The date that you are performing QC + * **Quality Control Notes** + * This should only be filled out if there is a problem. The format should be: + * QC User Initials - Date - Note + * **Quality Control User** + * Your username + * **Metadata** + * “Pass” + * This is the only “QC Checklist” record we’re updating unless you’re performing full single-file QC + * **Quality Control Status** + * “Pass” + * This is the most important field, since it determines the QC status of the record. + +### Ripping CDs Outside of BAVC + +If you plan to rip CDs at an institution outside of BAVC you can follow most of the main steps. You'll still want to use XLD, but you won't be using Salesforce at all to handle the metadata. Instead of using `cdEngine.py`, which by design needs to be connected to salesforce, you can use [`simple_cd.py`](https://github.com/bavc/videomachine/blob/master/simple_cd.py), which works the same way, but allows the user to manually enter any embedded metadata. + +Run the script like this: +```simple_cd.py -i /Path/To/Folder``` diff --git a/docs/Technical Documentation/clientFiles.md b/docs/Technical Documentation/clientFiles.md new file mode 100644 index 0000000..f98fe76 --- /dev/null +++ b/docs/Technical Documentation/clientFiles.md @@ -0,0 +1,17 @@ +--- +layout: page +title: Sharing Client Files via Google Drive +parent: Technical Documentation +--- + +# Sharing Client Files via Google Drive + +* Our current method for supplying clients with Google Drive is not very secure. Ergo, you must do this sparingly, only when time-sensitive retrieval is needed by the client. Files should only be available for 48 hours and then removed from the Google Drive once you can ensure that the files have been downloaded. + + - Log Into Google Drive using the preservation@gmail.com account + - Navigate to the Preservation Files for Clients folder + - Create a new folder based off of the Opportunity Name + - Drag in the typical BAVC_Preservation delivery folder + - Drag in the files into their appropriate folders + - Share the main folder with the client's email + - Email the client and tell them they have 48 hours to download the files. diff --git a/docs/Technical Documentation/dvdCreation.md b/docs/Technical Documentation/dvdCreation.md new file mode 100644 index 0000000..f856541 --- /dev/null +++ b/docs/Technical Documentation/dvdCreation.md @@ -0,0 +1,41 @@ +--- +layout: page +title: DVD Creation +parent: Technical Documentation +--- + +# DVD Creation + +## DVD Creation From File + +### Using Terminal +* **Run make_dvd_iso.sh** + - We have a script called make_dvd_iso.sh (attached). + - If you already have it installed on your machine, simply run the following two scripts in Terminal: + - cd (directory) + - make_dvd_iso.sh * +* **Install make_dvd.iso.sh + - In order for the script to work, your computer needs to have the following installed: ffmpeg, ffprobe, dvdauthor, and cdrtools. If you don't have these, submit a ticket to get them installed (or use homebrew). If you don't have the script installed, do the following: + - Install, update, or upgrade Homebrew + - Download the attached make_dvd-iso.sh script + - Move the script to the /usr/location/bin folder and change permissions + - cd (directory that make_dvd_iso is in) + - mv make_dvd_iso.sh /usr/local/bin + - cd /usr/local/bin + - chmod 777 make_dvd_iso.sh + - Install dvdauthor & cdrtools + - brew install dvdauthor + - brew install cdrtools + ***If your original files do not have a ".mov" wrapper, change that part in the command as well*** + + +## Burning an ISO to DVD +* Put in blank disk* +* Right click on the ISO file and choose "Burn [file name] to disk" +* Keep ISO file, we give them to clients when they request DVDs + +*DVD stock should be: DVD-R Inkjet Printable (also known as "hub printable). We like the Verbatim brands. + + +## Labeling a DVD +* As of this writing, we use the Epson Stylus Photo R2000 printer (Barcode 102181) to print CDs. We are still using a rather antiquated software to print from: Epson Print CD 2.0. The extension of Epson files is .printcd2. diff --git a/docs/Technical Documentation/formats.md b/docs/Technical Documentation/formats.md new file mode 100644 index 0000000..3d00d84 --- /dev/null +++ b/docs/Technical Documentation/formats.md @@ -0,0 +1,39 @@ +--- +layout: page +title: Supported Formats +parent: Technical Documentation +--- + +# Formats + +## Formats We Transfer + +* Open Reel: + - 1/4" Reel-to-Reel Audio + - 1/2" EIAJ Type 1 + - 1/2" EIAJ + - 1/2" CV + +* Cassette: + - 1/8" Audio Cassette + - 8mm: Digital-8 + - 8mm: Video 8 + - 8mm: Hi8 + - Betacam + - Betacam Digital (aka Digibeta) + - Betamax + - Betamax SP + - Betamax HB + - Betamax Super + - MiniDV - Standard Definition + - U-Matic 3/4" + - VHS/S-VHS/VHS-C + +* Optical Media + - CD + - DVD + +## Formats We Do NOT Transfer + +* 2" Quadruplex +* MiniDV - High Definition (HDV) diff --git a/docs/Technical Documentation/index.md b/docs/Technical Documentation/index.md new file mode 100644 index 0000000..c1a5435 --- /dev/null +++ b/docs/Technical Documentation/index.md @@ -0,0 +1,6 @@ +--- +layout: page +title: Technical Documentation +has_children: true +--- +{:toc} diff --git a/docs/Technical Documentation/intakeConservation.md b/docs/Technical Documentation/intakeConservation.md new file mode 100644 index 0000000..8313f23 --- /dev/null +++ b/docs/Technical Documentation/intakeConservation.md @@ -0,0 +1,31 @@ +--- +layout: page +title: Intake and Inspection +parent: Technical Documentation +--- + +# Intake/Inspection + +## Potential Setbacks + +* Tapes are not barcoded properly; mold and conditions that impair playback are not noted; labels are lost; incorrect information is logged into Salesforce. + +## Recommended Assurance + +* Perform intake in three steps. First, prep the tapes: apply barcode, perform a condition inspection, remove write-protect tab, and tape down loose labels with paper tape. When all of the tapes are prepped, go back and enter the data in Salesforce. Finally, bag moldy tapes with desiccants and store tapes vertically This method gives you a second chance to spot discrepancies (missing barcodes, etc.) + +When entering data in Salesforce, NEVER guess. Always ask if you are unclear about how to describe an item. It is always better to leave a field blank than to misdirect the next person with a barely informed hypothesis. + +# Conservation Treatment + +## Potential Setbacks + +* Tapes are left in the oven too long and/or to hot; tapes are baked/clean more than necessary or not at all; cleaning machines "eat" or break tapes; tapes sent to Peter Brothers for mold treatment are lost/forgotten by Peter Brothers; mold on tapes increases and/or spreads to other tapes in the collection while in storage; sticky shed syndrome intensifies in storage. + +## Recommended Assurance + +* All conservation treatment and activities should be logged in the object's preservation record in Salesforce to prevent duplicate efforts and confusion. Every clean and bake should be logged in the 'Preservation Activities" module. Our ovens have their temperatures locked in to prevent changes; if you'd like to change the oven temperature, please talk to your supervisor. + +To avoid the spread of mold, any tape suspected of mold should be sealed in a ziploc bag with desiccants. The tape should remain that way until it has been determined either that there is no mold, or it has been treated by Peter Brothers. + +Peter Brothers runs a small, high-volume operation and does not have the staff to accurately track the move of materials. The onus is on us to make sure he has received the tape and servicing us in a timely manner. Whenever a tape is sent to Spec Bros for mold treatment, the activity should be logged in the Activity module of Salesforce. Attach a record of the FedEx tracking number and note the estimated arrival of the tape. When the tape has arrived according to FedEx, call Peter and make sure the package was received. Follow up with him every two weeks on the status of the service. diff --git a/docs/Technical Documentation/qualityControl.md b/docs/Technical Documentation/qualityControl.md new file mode 100644 index 0000000..7829cd0 --- /dev/null +++ b/docs/Technical Documentation/qualityControl.md @@ -0,0 +1,180 @@ +--- +layout: page +title: Quality Control (QC) +parent: Technical Documentation +--- + +# Quality Control (QC) + +## QCing Files Using Salesforce +### QC Overview +* Quality Control(QC) procedures occur in all phases of our workflow for conserving magnetic media and migrating the content to digital formats. This document provides guidelines for the QC technician to properly assess the integrity of Transfer Technicians’ work in transferring analog media. The purpose of QC in our organization is four-fold: + - QC will ensure that only the highest quality files and documentation are delivered to the client + - QC will ensure that all equipment is functioning as expected + - QC will ensure that workflows and tasks are being performed as expected + - QC will help tell us where to focus resources + +While errors will be found on a file-by-file basis, analysis of QC data can help us holistically improve the quality of our work. Keep in mind that communication between the QC Technician and the Transfer Technician is very important when discussing files for review. + +* Below are a few key guidelines for performing QC: + - QC Should be performed by someone other than the Transfer Technician + - QC should be performing as soon as possible following transfer + - QC should be performed before loading files to the delivery media + - QC should be performed on the Storage Area Network (SAN) + - QC should be performed before deleting any files from the SAN + - Any QC fails or issues found by the QC Technician should be addressed by the Transfer Technician + +### QC Software +* Salesforce + - A web-app used for tracking our work. Each tape is represented as a Preservation Object within an Opportunity. Salesforce allows us to create reports that can give us an overview of tasks and workflows. +* QuickTime 7 + - Playback software used for QC. Other playback software exists, and can be useful for troubleshooting, but this is the main software to be used during QC. +* QCTools + - An open-source app built specifically for performing QC on digitized a/v content. The software on its own does not perform QC, but provides the user with data visualizations and playback filters that can help them perform QC. +* MediaConch + - An open-source app used to analyse files through a series of BAVC specific policies, ensuring file specifications are correct. + +### QC Reports +* These reports can be found by clicking on the Reports tab in Salesforce, then clicking on the Preservation: Quality Control folder on the left-hand side of the screen. Each report has been designed to give the QC Technician specific overviews of their tasks and progress. + - QC Queue + - A list of all Preservation Objects that have been marked as Transfer Passed but not marked QC Passed + - QC Needs Review + - A list of all Preservation Objects that have been marked QC Needs Review + - QC Stats + - A list of all items transferred and QC’d within an adjustable timeframe + - QC Review History + - A running list of all items that have QC Notes, organized by Original Format + +### QC Checklist +* Each of the following bullet points correspond to a checkbox in Salesforce in the Quality Control Elements section + - Derivatives + - Do the derivatives exist and playback properly in QuickTime 7? + - Is the audio and video in sync? + - Trimming + - Is any content at the beginning or end cutoff? + - Is there excessive static/snow or dead air at the beginning or end of the file? + - If client has requested bars/slates, are they present? + - Metadata + - Is every required field filled? + - Does the Video duration match the duration notated in Digital File Duration? + - **ONLY FOR AUDIO** + - Check the embedded metadata in the audio files: + - Drag the WAV files into BWFMetaEdit and ensure the following fields are filled out + - Description: *Title; Date (if any)* + - Originator: *"BAVC"* + - OriginatorReference: *BAVC Barcode* + - OriginationDate: *Date of file creation* + - OriginationTime: *Time of file creation* + - TimeReference: *"0"* + - BextVersion: *"1"* + - CodingHistory: *This will be a long string of text.* + - Drag the MP# files into iTunes and ensure the following: + - Title: *Title* + - Artist: *Creator, producer, artist, etc... (if any)* + - Year: *Recording year, if any* + - Time Code **(ONLY FOR VIDEO, DO NOT CHECK BOX FOR AUDIO)** + - Does timecode exist in the file? + - If so, is it correct? + - Drop Frame vs Non Drop Frame + - Audio Sync **(ONLY FOR VIDEO, DO NOT CHECK BOX FOR AUDIO)** + - Is the audio and video content in sync throughout the entire file? + - Check beginning, middle, and end of file + - Notes + - Do notes properly describe errors, artifacts, or other salient details? + - Transfer Notes should describe details that occur throughout the content, over large portions of content, or any extra intervention taken to complete the transfer + - Timecode Stamped Notes should describe errors or salient details that occur at specific times in the video file, using the format + - The format of the note should be: HH:MM:SS - Description of error; + - Is the correct vocabulary used to describe errors? + - Are any major errors missing from the notes? + - QCTools Report **(ONLY FOR VIDEO, DO NOT CHECK BOX FOR AUDIO)** + - Does the report open properly in QCTools? + - General signal analysis: + - Are Y levels within range? + - Are Saturation levels within range? + - Are MSEF spikes at expected locations? + - Does waveform look smooth and not quantized? + - MediaConch + - Do files all pass associated Policies? + +### QC Status +* There are five possible entries for QC Status + - Blank + - QC has not been performed at all on the Object + - Pass + - QC has been performed and the Object passes all checks + - Review + - QC has been performed and one or more of the checks has failed or has a questionable status + - When marking an Object as Review, make sure to always enter a description of the issue into Quality Control Notes. Upon saving the Salesforce record, a bot will send the QC Tech and Transfer Tech an email containing the Barcode and Quality Control Notes. + - Review Addressed + - Transfer Technician has addressed the reviews flagged by the QC Technician, by either correcting errors or by ensuring the errors are inherent to the tape + - Transfer Technician will enter a description of tasks performed to address errors in Quality Control Notes + - Not Captured + - If the Object has not been transferred for any reason, often because it is a duplicate or is beyond intervention. In any case where an Object has not been transferred the Digitization Status and QC Status should both be marked Not Captured, and there should be a Technicians Notes describing why it was not captured. + +## QC Workflow + - Navigate to QC Queue report + - Find the Opportunity you will be performing QC on + - Priorities will most commonly be decided by the Preservation Manager + - If no priorities are clear, navigate to the opportunity with the fewest number of Preservation Items that are ready for QC. This makes it easier to close any existing gaps. + - Every Preservation Object associated with the selected Opportunity should be visible in the report. If they are not visible, press the Show Details button. +- Navigate to the QCReady folder of the OPportunity you will be QCing + - SymplyUltra (SAN) + - TransferProjects + - Opportunity Name + - 03_QCReady + - NOTE: All files in the QCReady folder should be marked ready for QC according to Salesforce. Do not QC anything that isn’t ready according to Salesforce. Additionally, make sure to clear up any discrepancies about the status of an Object with the transfer technician. +- Run MediaConch on all Preservation files in the QCReady folder + - The most common Policy used on Preservation files is CAVPP Preservation Master, which is used for 10-Bit Uncompressed MOV files + - If the Preservation file being delivered to the client is not a typical 10-Bit Uncompressed file, work with the Preservation Manager to find or create a profile that works for the Opportunity + - If any fails occur, investigate the failure to determine whether the Object should be marked for review + - Not all MediaConch failures are grounds for an overall fail, but they must all be investigated +- Navigate to the Preservation Object you will be QCing by right-clicking the Barcode number and opening a new tab or new window + - DO NOT QC the object if it has not been loaded to the PresRaid +- Step through the checkboxes in the Quality Control Elements section of the Salesforce page + - Stepping through the checkboxes in order will ensure that you are following the workflow in the prescribed manner + - The exception to this is the MediaConch box, which will be checked in bulk at the beginning of the QC Workflow. If you know that the files associated with this object have passed the MediaConch check you may check off this box at any time. + - Check off each box once you have ensured that the associated details pass QC + - Upon encountering any fail, describe the problem in Quality Control Notes, mark the QC Status of the record Review, and save the record. Move onto the next record. +- Once all of the check boxes are ticked, enter the Quality Control Date with today’s date, and mark the Quality Control Status as Pass +- Close the Object window and navigate back to the QC Queue report +- Move onto the next Object in the Opportunity + +## Drive Load Workflow +* Drive loads should generally be started at the end of the day. Too many drive loads on a single station can slow the station’s SAN connection, and QCing during a drive load can be very slow. + - Drive Formatting + - Attach labels to all important parts of the drive + - Box + - Drive + - Power Brick + - Computer end of USB Cable + - Mark drive as received in Salesforce Opportunity, and include notes on make/model/capacity + - Plug Drive into computer + - Format the Drive + + - ***ONLY PERFORM THE FOLLOW STEPS IF THE CLIENT DOES NOT HAVE MATERIALS ON THE DRIVE ALREADY*** + + - Open Disk Utility + - Click on the corresponding drive under External on the left-hand side of the window + - Click the Erase button at the top of the window + - ***WARNING: THIS WILL DEFINITELY ERASE THE DRIVE + - Enter the name of the Drive. You can only use 10 characters, so make them count! + - Set the format to ExFAT + - Set the Scheme to GUID Partition Map + - Click Erase. This process should run quickly + - Drag the BAVC_Preservation folder from the desktop of your computer to the root level of the hard drive + - Once finished, you can either start loading to the drive, or place it on the PresSuite shelf if it will not be used immediately. + - Drive Loading + - Plug the drive into the load station + - Open a Terminal Window + - Type in the following command + - rsync -rlgtvD --progress + - Press the space bar + - Drag in the contents on 05_Loading from the opportunity folder on the SAN + - Drag in the BAVC_Preservation folder on the Drive + - The resulting string should look something like this: + + rsync -avv --progress /Volumes/SymplyUltra/TransferProjects/OpportinityName/05_Loading/Files_Access /Volumes/SymplyUltra/TransferProjects/OpportinityName/05_Loading/test/Files_Preservation /Volumes/ClientDriveName/BAVC_Preservation + + - Press Return and watch the files start to load! + - When complete, move files into appropriate (Pres or Access) folders. + - Click the "Loaded to Drive" box on each record in Salesforce. diff --git a/docs/Technical Documentation/sanOrganization.md b/docs/Technical Documentation/sanOrganization.md new file mode 100644 index 0000000..91294a8 --- /dev/null +++ b/docs/Technical Documentation/sanOrganization.md @@ -0,0 +1,28 @@ +--- +layout: page +title: SAN Organization +parent: Technical Documentation +--- + +# SAN Organization + +* The **SAN** (Storage Area Network) is BAVC's primary, albeit temporary, file storage system for housing AV files and their accessories (such as scripts, transfer logs, etc) only. It does not, and should not, contain documentation pertaining to the department or any employee information. Each capture station in Preservation has direct access to the **SAN** via **Finder**, where it is inconveniently named **SymplyUltra**. For departmental documentation, you will need access to the **Preservation Team Drive**. + +* The organization of it is pretty straightforward, but keep in mind the naming convention for folders and files require consistency in order for the scripts to locate the files and work their magic. It is best to copy & paste templates (located on the **SAN**) for this reason. + +## Create a New Client Folder +* Note: The project folder name should match the **Salesforce** Opportunity Name. +* Create a client folder on the **SAN** using the naming convention **PV**(Last two digits of current year) followed by an underscore and the project name. + - Example: *PV20_BeyonceKnowles* +* The **PAP** naming convention follows the same rule, replacing **PV**(year) with **PAP**(current round). + - Example: *PAP12_BeyonceKnowles* +* Copy the folders located under **ProjectTemplate** and paste them under the newly created client folder. + +## Keeping Up With Storage +* Keep an eye on the amount of storage left on the SAN. Anytime the amount of available space drops below 7 TB, then files will need to be QC'd and loaded to drives, deleted, or moved before much more can be added. +* Low space can cause playback issues with the files already stored there. +* Empty the **TrashCan** on the **SAN** every morning by dragging the trashed files to your desktop's trashcan and selecting EMPTY TRASH. + +## SAN Troubleshooting + +* Other documentation is only accessible to employees who can access the Preservation Team Drive or via the IT/OPS team. See a manager or someone from IT if you discover any problems that require immediate attention. diff --git a/docs/Technical Documentation/transferLogs.md b/docs/Technical Documentation/transferLogs.md new file mode 100644 index 0000000..0c937af --- /dev/null +++ b/docs/Technical Documentation/transferLogs.md @@ -0,0 +1,22 @@ +--- +layout: page +title: Transfer Logs +parent: Technical Documentation +--- + +# Transfer Logs +* Transfer logs are included on the client's drive along with their preservation master files. For more information about client deliverables, go here: + - In Salesforce, go to Reports. + - Navigate to the report called either **Client_TransferLog_Audio** or **Client_TransferLog_Video** depending on the format (they have different schemas). + - Run the report and click the Customize button. + - Click the Edit button next to the Opportunity Name filter + - Type in the first few letters of the opportunity name of the project you are completing + - Click OK + - Run the report + - Check that all the fields have consistent and correct information + - Click Export Details + - Export as an .xls file + - Open the .xls file in Excel and remove the text at the bottom about time/user that ran the report. + - Highlight the sheet and reformat row height to 0.19 + - Scan through all content checking for inconsistencies or missing information + - Save on the client's drive as (OpportunityName_TransferLog) for example "PAP7_OregonHistoricalSociety_TransferLog." diff --git a/docs/TemplateFolder/TemplateArticle.md b/docs/TemplateFolder/TemplateArticle.md new file mode 100644 index 0000000..3e156b9 --- /dev/null +++ b/docs/TemplateFolder/TemplateArticle.md @@ -0,0 +1,235 @@ +--- +layout: page +title: Template Article +parent: Template Folder +--- + + +# h1 Heading 8-) :-> +## h2 Heading +### h3 Heading +#### h4 Heading +##### h5 Heading +###### h6 Heading + + +## Horizontal Rules + +___ + +--- + +*** + + +## Typographic replacements + +Enable typographer option to see result. + +(c) (C) (r) (R) (tm) (TM) (p) (P) +- + +test.. test... test..... test?..... test!.... + +!!!!!! ???? ,, -- --- + +"Smartypants, double quotes" and 'single quotes' + + +## Emphasis + +**This is bold text** + +__This is bold text__ + +*This is italic text* + +_This is italic text_ + +~~Strikethrough~~ + + +## Blockquotes + + +> Blockquotes can also be nested... +>> ...by using additional greater-than signs right next to each other... +> > > ...or with spaces between arrows. + + +## Lists + +Unordered + ++ Create a list by starting a line with `+`, `-`, or `*` ++ Sub-lists are made by indenting 2 spaces: + - Marker character change forces new list start: + * Ac tristique libero volutpat at + + Facilisis in pretium nisl aliquet + - Nulla volutpat aliquam velit ++ Very easy! + +Ordered + +1. Lorem ipsum dolor sit amet +2. Consectetur adipiscing elit +3. Integer molestie lorem at massa + + +1. You can use sequential numbers... +1. ...or keep all the numbers as `1.` + +Start numbering with offset: + +57. foo +1. bar + + +## Code + +Inline `code` + +Indented code + + // Some comments + line 1 of code + line 2 of code + line 3 of code + + +Block code "fences" + +``` +Sample text here... +``` + +Syntax highlighting + +``` js +var foo = function (bar) { + return bar++; +}; + +console.log(foo(5)); +``` + +## Tables + +| Option | Description | +| ------ | ----------- | +| data | path to data files to supply the data that will be passed into templates. | +| engine | engine to be used for processing templates. Handlebars is the default. | +| ext | extension to be used for dest files. | + +Right aligned columns + +| Option | Description | +| ------:| -----------:| +| data | path to data files to supply the data that will be passed into templates. | +| engine | engine to be used for processing templates. Handlebars is the default. | +| ext | extension to be used for dest files. | + + +## Links + +[link text](http://dev.nodeca.com) + +[link with title](http://nodeca.github.io/pica/demo/ "title text!") + +Autoconverted link https://github.com/nodeca/pica (enable linkify to see) + + +## Images + +Make sure to put any images you want in the `/assets/images/` folder. Then you'll want to use the following format to insert images into a page. + +`![Alt Text Goes Here]({{site.baseurl}}/assets/images/BAVCLogoOrange.png)` + +![Alt Text Goes Here]({{site.baseurl}}/assets/images/BAVCLogoOrange.png) + + +## Plugins + +The killer feature of `markdown-it` is very effective support of +[syntax plugins](https://www.npmjs.org/browse/keyword/markdown-it-plugin). + + +### [Emojies](https://github.com/markdown-it/markdown-it-emoji) + +> Classic markup: :wink: :crush: :cry: :tear: :laughing: :yum: +> +> Shortcuts (emoticons): :-) :-( 8-) ;) + +see [how to change output](https://github.com/markdown-it/markdown-it-emoji#change-output) with twemoji. + + +### [Subscript](https://github.com/markdown-it/markdown-it-sub) / [Superscript](https://github.com/markdown-it/markdown-it-sup) + +- 19^th^ +- H~2~O + + +### [\](https://github.com/markdown-it/markdown-it-ins) + +++Inserted text++ + + +### [\](https://github.com/markdown-it/markdown-it-mark) + +==Marked text== + + +### [Footnotes](https://github.com/markdown-it/markdown-it-footnote) + +Footnote 1 link[^first]. + +Footnote 2 link[^second]. + +Inline footnote^[Text of inline footnote] definition. + +Duplicated footnote reference[^second]. + +[^first]: Footnote **can have markup** + + and multiple paragraphs. + +[^second]: Footnote text. + + +### [Definition lists](https://github.com/markdown-it/markdown-it-deflist) + +Term 1 + +: Definition 1 +with lazy continuation. + +Term 2 with *inline markup* + +: Definition 2 + + { some code, part of Definition 2 } + + Third paragraph of definition 2. + +_Compact style:_ + +Term 1 + ~ Definition 1 + +Term 2 + ~ Definition 2a + ~ Definition 2b + + +### [Abbreviations](https://github.com/markdown-it/markdown-it-abbr) + +This is HTML abbreviation example. + +It converts "HTML", but keep intact partial entries like "xxxHTMLyyy" and so on. + +*[HTML]: Hyper Text Markup Language + +### [Custom containers](https://github.com/markdown-it/markdown-it-container) + +::: warning +*here be dragons* +::: diff --git a/docs/TemplateFolder/index.md b/docs/TemplateFolder/index.md new file mode 100644 index 0000000..a051927 --- /dev/null +++ b/docs/TemplateFolder/index.md @@ -0,0 +1,6 @@ +--- +layout: page +title: Template Folder +has_children: true +--- +{:toc} diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000..71c1e2e Binary files /dev/null and b/favicon.ico differ diff --git a/gettingstarted.md b/gettingstarted.md new file mode 100644 index 0000000..1135ed5 --- /dev/null +++ b/gettingstarted.md @@ -0,0 +1,149 @@ +--- +layout: page +title: Getting Started +permalink: /gettingstarted/ +nav_order: 2 +--- + +# Getting Started with a GitHub Documentation Page! + +## Installing Homebrew and Github on Mac OS + +* Install Homebrew +``` +/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" +``` +* Install Git: +``` +brew install git +``` + +## Cloning GitHub Repo to your local computer + +This can be done either using the Git command line tool `git` or by using the GitHub desktop tool. The GitHub repo lives [here](https://github.com/bavc/bavc-resources). Use your [preferred method](https://www.youtube.com/watch?v=CKcqniGu3tA) to clone the repo to your local drive. You'll eventually need to navigate your terminal window to this repo using the `cd` command, so make sure you clone the repo somewhere that is easily accessible. + + +## Installing the rest of the software needed on Mac OS + +* Install [rbenv](https://github.com/rbenv/rbenv#installation) +``` +brew install rbenv +``` +* Set up rbenv for your shell: +``` +rbenv init +``` +* This might put out a message like this: + +``` +# Load rbenv automatically by appending +# the following to ~/.zshrc: + +eval "$(rbenv init - zsh)" +``` + +* Make sure to so what it says. In this case, you should run the command it says: +``` +eval "$(rbenv init - zsh)" +``` + +* Setup your terminal to start rbenv on open: +``` +echo 'eval "$(rbenv init -)"' >> ~/.bash_profile +source ~/.bash_profile +``` +* Check your installation (you should see a bunch of "OK"s) +``` +curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash +``` +* Install Ruby 2.7.2 using rbenv, which is not the latest version, but is the version required for GitHub Pages. +``` +rbenv install 2.7.2 +``` + +* Set Ruby 2.7.2 as your global version +Note: This will set version 2.7.2 as your default Ruby version. If you're working on other Ruby projects with the computer you're using for this workshop, feel free to contact us for help maintaining multiple versions. +``` +rbenv global 2.7.2 +``` +* Restart your terminal + +* Download / update Ruby gems: +``` +gem update --system +``` +*note: you might need to run this with `sudo` if you get permissions errors* + +* Install the jekyll and bundler gems. +``` +gem install jekyll bundler +``` +*note: you might need to run this with `sudo` if you get permissions errors* + + +## Getting a local intance of the website running on your local server + +* Navigate your terminal window to the Repository Directory using the `cd` command + +* Run the following command +``` +bundle install +``` + +* Now you can start the local server on your machine with the following command +``` +bundle exec jekyll serve +``` +You'll probably see something like this: +``` +Configuration file: /Users/preservation/Documents/Github/bavc-resources/_config.yml +To use retry middleware with Faraday v2.0+, install `faraday-retry` gem + Source: /Users/preservation/Documents/Github/bavc-resources + Destination: /Users/preservation/Documents/Github/bavc-resources/_site + Incremental build: disabled. Enable with --incremental + Generating... + Remote Theme: Using theme pmarsceill/just-the-docs + Jekyll Feed: Generating feed for posts + done in 4.72 seconds. + Auto-regeneration: enabled for '/Users/preservation/Documents/Github/bavc-resources' + Server address: http://127.0.0.1:4000/bavc-resources/ + Server running... press ctrl-c to stop. +``` + +This means that you have a local instance of the page running at [http://127.0.0.1:4000/bavc-resources/](http://127.0.0.1:4000/bavc-resources/) + +The purpose of running the local server on your machine is so that you can see the changes you're making to site. These changes will be made to the live site at [http://bavc.github.io/bavc-resources](http://bavc.github.io/bavc-resources) when you push them to the repo, but the local instance is as great way to test them beforehand. + +## Making updates to the Resource Pages + +### Github Etiquitte + +Now that you have the repo clone and a local instance running on your computer you can make changes to the documentation and see them happen in real time before they're pushed to the main branch in the remote repository. + +Proper GitHub etiquitte states that any changes you make should made to your own branch. When you're ready for these changes to be made to the main branch (what you see on the public website) you should create a ***Pull Request***, which pulls your changes into the main branch. + +So, the first thing you need to do is create your own branch. [Here's an article](https://docs.couchbase.com/home/contribute/create-branches.html) about creating a new branch using Atom or the command line. + +Once you've created a new branch you can push all the changes you want to this branch. Remember, the workflow for this is as follows: +* Make changes to the files +* *Stage* the changes +* *Commit* the changes with a helpful description/message +* *Push* the changes to your branch. + +Once you're happy with all the changes you've pushed you can make a [Pull Request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request). Someone else on your team should review the Pull Request, then will confirm that it's all ok, and then it will *Merged* into the main branch of the remote repository. + +### Making changes to the documentation + +The documentation lives in text files that in the *Markdown* language. The [TemplateArticle.md]({{site.baseurl}}/docs/TemplateFolder/TemplateArticle.html) file contains all the different ways you can use Markdown to make pretty and readable documentation. + +The files are best edited in a program like Atom or Visual Studio Code. These programs are a little confusing at first, so if you're lost you should watch a YouTube tutorial about them (as an added bonus, these programs integrate Git features like commits and pull requests into their GUIs). + +Once you have a good editing environment setup all you have to do edit the text in the documents. Once you save the files you'll see the updates reflected instantly in your local instance. + +### Adding a new Article + +Articles all live in the `/docs/` folder, which is located in the root level of the repository. Inside `docs` there are a bunch of subfolders. Each of these subfolders represents a category of articles on the website. Inside each subfolder are a bunch of `.md` files. These files each correspond to an article. To make a new article you can simply copy an existing article, or copy the `TemplateArticle.md` file. Make sure you nest the new article in its associated subfolder, and that you update `layout`, `title`, and `parent` information at the top of the document. + +### Adding a new subfolder / categeory + +To add a new subfolder or category, you'll need to add a new subfolder to the `docs` folder. You'll also need to create a new `index.md` file inside of that folder. The `index.md` file is critical, as it tells the website that this new folder corresponds to a new category, and creates a landing page for that category. To make creating a new folder easier, you can just duplicate and rename the `TemplateFolder` directory. Just make sure you rename the folder, and rename `title` info in the header of the `index.md` file within that folder. diff --git a/index.markdown b/index.markdown deleted file mode 100644 index d0415a0..0000000 --- a/index.markdown +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Front Page -layout: default -nav_order: 1 ---- - -# Front page -Your content goes here! diff --git a/index.md b/index.md new file mode 100644 index 0000000..e343bca --- /dev/null +++ b/index.md @@ -0,0 +1,8 @@ +--- +title: Welcome +layout: default +nav_order: 1 +--- + +# Welcome to BAVC Resources +This is a landing page for all of BAVC Preservation's public workflow and resource documents diff --git a/package-lock.json b/package-lock.json index 9c44bc9..394c491 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "ctod", + "name": "bavc-resources", "lockfileVersion": 2, "requires": true, "packages": {}