]> Shamusworld >> Repos - ardour-manual-diverged/commitdiff
Transition commit as per discussion with rgareus.
authorShamus Hammons <jlhamm@acm.org>
Tue, 17 Jan 2017 02:05:10 +0000 (20:05 -0600)
committerShamus Hammons <jlhamm@acm.org>
Tue, 17 Jan 2017 02:05:10 +0000 (20:05 -0600)
N.B.: Moving things around in _manual will quickly throw things out of
      sync with master-doc.txt if changes are not reflected there.

56 files changed:
build.rb
doit [new file with mode: 0755]
import.rb [deleted file]
include/about-ardour_s-documentation.html [new file with mode: 0644]
include/ardour-concepts.html [new file with mode: 0644]
include/ardour-setup-for-surround.html [new file with mode: 0644]
include/ardour-systems.html [new file with mode: 0644]
include/arranging-regions.html [new file with mode: 0644]
include/audio-recording.html [new file with mode: 0644]
include/automation.html [new file with mode: 0644]
include/basic-mixing.html [new file with mode: 0644]
include/configuring-midi.html [new file with mode: 0644]
include/edit-mode-and-tools.html [new file with mode: 0644]
include/editing-basics.html [new file with mode: 0644]
include/editing-regions-and-selections.html [new file with mode: 0644]
include/fades-and-crossfades.html [new file with mode: 0644]
include/file-and-session-management-and-compatibility.html [new file with mode: 0644]
include/generic-midi.html [new file with mode: 0644]
include/grouping-tracks.html [new file with mode: 0644]
include/i_o-setup.html [new file with mode: 0644]
include/importing-and-exporting-session-data.html [new file with mode: 0644]
include/kde-plasma-5.html [new file with mode: 0644]
include/keyboard-and-mouse-shortcuts.html [new file with mode: 0644]
include/lua-scripting-in-ardour.html [new file with mode: 0644]
include/making-selections.html [new file with mode: 0644]
include/memory-locations.html [new file with mode: 0644]
include/midi-editing.html [new file with mode: 0644]
include/midi-editors.html [new file with mode: 0644]
include/midi-event-list.html [new file with mode: 0644]
include/midi-recording.html [new file with mode: 0644]
include/mixdown.html [new file with mode: 0644]
include/multichannel-tracks-and-signal-routing.html [new file with mode: 0644]
include/playing-back-track-material.html [new file with mode: 0644]
include/playlists.html [new file with mode: 0644]
include/plugin-and-hardware-inserts.html [new file with mode: 0644]
include/plugins-bundled-with-ardour.html [new file with mode: 0644]
include/preferences.html [new file with mode: 0644]
include/punch-recording-modes.html [new file with mode: 0644]
include/record-setup.html [new file with mode: 0644]
include/region-loops-and-groups.html [new file with mode: 0644]
include/rhythm-ferret.html [new file with mode: 0644]
include/score-editor.html [new file with mode: 0644]
include/sessions.html [new file with mode: 0644]
include/surround-panning-and-mixing.html [new file with mode: 0644]
include/system-setup.html [new file with mode: 0644]
include/techniques-for-working-with-tempo-and-meter.html [new file with mode: 0644]
include/time_-tempo-and-meter.html [new file with mode: 0644]
include/tracks.html [new file with mode: 0644]
include/using-key-bindings.html [new file with mode: 0644]
include/welcome-to-ardour_.html [new file with mode: 0644]
include/working-with-field-recorders-in-ardour.html [new file with mode: 0644]
include/working-with-synchronization.html [new file with mode: 0644]
include/working-with-video-in-ardour.html [new file with mode: 0644]
master-doc.txt [new file with mode: 0644]
munge [new file with mode: 0755]
munge.cpp [new file with mode: 0644]

index 82693f10a11f6cccca13e7d51821a288f56c9a36..4c981d2954b89ec8d32c2ebbf9b5cf7f85bdadc2 100755 (executable)
--- a/build.rb
+++ b/build.rb
@@ -11,7 +11,7 @@ rescue LoadError
 end
 
 CONFIG = {
-    pages_dir: '_manual',
+    pages_dir: '_manual.munge',
     layouts_dir: '_layouts',
     static_dir: 'source',
     output_dir: '_site'
diff --git a/doit b/doit
new file mode 100755 (executable)
index 0000000..8b8b787
--- /dev/null
+++ b/doit
@@ -0,0 +1,43 @@
+#!/bin/sh
+#
+# Simple shell script to do all the steps that need doing
+#
+
+# if a parameter exists, that's where the website is copied after generation
+if [ -n "$1" ]
+then
+  DIRHTML=$(echo "$1"|sed 's/\/$//g'); #strips the trailing slash if need be
+else
+  DIRHTML="";
+fi
+
+# Create required symlink (this is temporary!)
+if [ ! -e "include/_manual" ]; then
+  ln -s ../_manual/ include/_manual
+fi
+
+# create the required folders if need be, or empties them
+if [ ! -d "_site" ]; then
+  mkdir _site
+else
+       rm -rf _site/*
+fi
+
+if [ ! -d "_manual.munge" ]; then
+  mkdir _manual.munge
+else
+  rm -rf _manual.munge/*
+fi
+
+rm -rf _build/* && \
+./munge && \
+./build.rb 
+chmod -R a+rx _site
+
+# if a target directory exists, copy the site there
+if [ ! -z "$DIRHTML" ]
+then
+  rm -rf "$DIRHTML/*"
+  cp -R _site/* "$DIRHTML/"
+fi
+
diff --git a/import.rb b/import.rb
deleted file mode 100644 (file)
index b3e58d7..0000000
--- a/import.rb
+++ /dev/null
@@ -1,229 +0,0 @@
-require 'nokogiri'
-require 'fileutils'
-require 'open-uri'
-
-URL = 'http://ardour.org/book/export/html/5848'
-FILENAME = 'drupal-export.html'
-
-WRITE = true
-DOWNLOAD_FILES = false
-GET_ARDOUR_ORG_IMAGES = false
-HANDLE_OTHER_IMAGES = false
-
-OUTPUT_DIR = '_manual'
-
-FILES_DIR = 'source'
-
-SLUG_MAPPINGS = {
-    'working_with_sessions' => 'sessions',
-    'export_stem' => 'export',
-    'track_groups' => 'track_bus_groups',
-    'vst_support' => 'windows_vst',
-    'kbd_default' => 'default_bindings',
-    'midistep_entry' => 'midi_step_entry',
-    'midi_stepentry' => 'midi_step_entry'
-}
-
-MISSING_SLUGS = %w(
-    range_selection
-    track_templates
-    track_template
-    color_dialog
-    region_layering
-    round_robin_inputs
-    mcp_osx
-    mcp_new_device
-)
-
-FILES_MAPPINGS = {
-    '/files/a3_mnemonic_cheatsheet.pdf' => '/files/ardour-2.8.3-bindings-x.pdf',
-    '/files/a3_mnemonic_cheat_sheet_osx.pdf' => '/files/ardour-2.8.3-bindings-osx-a4.pdf'
-}
-
-LINK_SLUG_TO_NODE_ID = {}
-
-def link_slug_to_node_id(slug)
-
-    slug = SLUG_MAPPINGS[slug] || slug
-
-    return nil if MISSING_SLUGS.include? slug
-
-    LINK_SLUG_TO_NODE_ID[slug] ||= begin
-        filename = "tmp/slug-to-node/#{slug}"
-
-        if File.exists? filename
-            File.read(filename).to_i
-        else
-            url = "http://ardour.org/manual/#{slug}"
-            puts "opening #{url}"
-            node_id = Nokogiri(open(url)).at('#content .node')['id'].sub(/^node\-/,'').to_i
-            File.open(filename,'w+') { |f| f << node_id }
-            node_id
-        end
-    end
-end
-
-
-def register_node(node_id, path)
-    filename = "tmp/node-to-path/#{node_id}"
-    File.open(filename,'w+') { |f| f << path } unless File.exists? filename
-end
-
-def node_id_to_path!(node_id)
-    filename = "tmp/node-to-path/#{node_id}"
-    return '' unless File.exists? filename
-    #raise "no path for node-id #{node_id}" unless File.exists? filename
-    File.read(filename)
-end
-
-def process(html, level = 1, path = [], numbered_path = [])
-    html.search("div.section-#{level}").each_with_index do |child, i|
-
-        title = child.at('h1.book-heading').inner_text
-
-        node_id = child['id'].sub(/^node\-/,'')
-
-
-        slug = title.downcase.gsub(' ','-').gsub(/[^a-z0-9\-]/, '')
-
-        root = slug == 'the-ardour3-manual'
-
-        if root
-
-            # top level
-
-            this_path = []
-            this_numbered_path = []
-        else
-            numbered_slug = "%02d_%s" % [i + 1, slug, node_id]
-
-            this_path = path + [slug]
-            this_numbered_path = numbered_path + [numbered_slug]
-        end
-
-        register_node node_id, this_path.join('/')
-
-        indent = ' ' * level * 3
-
-        has_children = child.search("div.section-#{level + 1}").length > 0 #&& possible_children.any? { |child| child.search('div').length > 0 }
-
-        output_dir = "#{OUTPUT_DIR}/#{this_numbered_path.join('/')}"
-
-        output_file = case 
-        when root
-            "#{OUTPUT_DIR}/blah.html"
-        #when has_children
-        #    "#{output_dir}/index.html"
-        else
-            "#{output_dir}.html"
-        end
-
-        content = child.dup
-
-        content.search('h1.book-heading').remove
-        content.search("div.section-#{level + 1}").remove
-
-        if heading = content.at('h2') and heading.inner_text == title
-            heading.remove
-        end
-
-        #puts "processing links in [#{this_path.join('/')}]"
-
-        content.search('a').each do |a|
-            href = a['href']
-            case href
-            when /^\/manual\/(.*)/
-                slug = $1
-                if node_id = link_slug_to_node_id(slug)
-                    link_path = node_id_to_path! node_id
-                    #puts " link slug [#{slug}] -> #{node_id} -> #{link_path}"
-                    a['href'] = "/#{link_path}"
-                else
-                    a['href'] = "/missing"
-                end
-
-            when /^(\/files\/.*)/
-
-                if DOWNLOAD_FILES
-                    file_path = $1
-
-
-                    if FILES_MAPPINGS[file_path]
-                        file_path = FILES_MAPPINGS[file_path]
-                        a['href'] = file_path
-                    end
-
-                    puts "downloading [#{file_path}] (for #{this_path.join('/')})"
-
-                    filename = "#{FILES_DIR}/#{file_path}"
-                    FileUtils.mkdir_p File.dirname(filename)
-                    File.open(filename,'w+') { |f| f << open("http://ardour.org/#{file_path}").read }
-                end
-            end
-        end
-
-        content.search('img').each do |img|
-
-            src = img['src']
-
-            case src
-            when /^\//
-                if GET_ARDOUR_ORG_IMAGES
-                    url = "http://ardour.org#{src}"
-                    puts "getting #{url}"
-                    img_path = "#{FILES_DIR}#{src}"
-                    FileUtils.mkdir_p File.dirname(img_path)
-                    File.open(img_path, 'w+') { |f| f << open(url).read }
-                end
-            when /^http/
-                new_src = '/' + src.sub(/^http:\/\/[^\/]+\//,'')
-                img['src'] = new_src
-                    
-                if HANDLE_OTHER_IMAGES
-                    puts "new_src: #{new_src}"
-                    img_path = "#{FILES_DIR}#{new_src}"
-                    FileUtils.mkdir_p File.dirname(img_path)
-                    puts "getting #{src}"
-                    File.open(img_path, 'w+') { |f| f << open(src).read }
-                end
-            end
-
-        end
-
-        if WRITE
-            FileUtils.mkdir_p output_dir if has_children
-            File.open(output_file, 'w:UTF-8') do |f| 
-                f << <<-HTML
----
-layout: default
-title: #{title}
----                        
-
-#{content.inner_html}
-                HTML
-
-                if has_children
-                    f << <<-HTML
-{% children %}
-                    HTML
-                end
-
-
-            end
-        end
-
-        process(child, level + 1, this_path, this_numbered_path)
-    end
-end
-
-
-unless File.exists?(FILENAME)
-    puts "downloading #{URL} to #{FILENAME}"
-    File.open(FILENAME,'w+') { |f| f << open(URL).read }
-end
-
-FileUtils.mkdir_p('tmp/node-to-path')
-FileUtils.mkdir_p('tmp/slug-to-node')
-
-process Nokogiri(File.read(FILENAME))
-
diff --git a/include/about-ardour_s-documentation.html b/include/about-ardour_s-documentation.html
new file mode 100644 (file)
index 0000000..a89d53f
--- /dev/null
@@ -0,0 +1,119 @@
+---
+title: About Ardour's documentation
+---
+
+<h2>Conventions Used In This Manual</h2>
+
+<p>
+  This section covers some of the typographical and language conventions used in this manual.
+</p>
+
+<h3>Keyboards and Modifiers</h3>
+
+<p>
+  <dfn>Keyboard bindings</dfn> are shown like this: <kbd>s</kbd> or <kbd class="mod1">x</kbd>.
+</p>
+
+<p>
+  <kbd class="mod1">x</kbd> means "press the <kbd class="mod1">&nbsp;</kbd> key, keep it pressed and then also press the <kbd>x</kbd> key.
+</p>
+
+<p>
+  You may also see key combinations such as <kbd class="mod12">e</kbd>, which mean that you should hold down the <kbd class="mod1">&nbsp;</kbd> key <em>and</em> the <kbd class="mod2">&nbsp;</kbd> key, and then, while keeping them both down, press the <kbd>e</kbd> key.
+</p>
+
+<p>
+  Note that different platforms have different conventions for which modifier key (Control or Command) to use as the primary or most common modifier. When viewing this manual from a machine identifying itself as running OS X, you will see  <kbd>Cmd&nbsp;</kbd> where appropriate (for instance in the first example above). On other machines you will see <kbd>Ctrl&nbsp;</kbd> instead.
+</p>
+
+<h3>Mouse Buttons</h3>
+
+<p>
+  We refer to <a href="/setting-up-your-system/the-mouse">mouse buttons</a> as <kbd class="mouse">Left</kbd>, <kbd class="mouse">Middle</kbd> and <kbd class="mouse">Right</kbd>. Ardour can use additional buttons, but they have no default behaviour in the program.
+</p>
+
+<h4>Mouse click modifiers</h4>
+
+<p>
+  Many editing functions are performed by clicking the mouse while holding a modifier key, for example <kbd class="mouse mod1">Left</kbd>.
+</p>
+
+<h4>Mouse wheel</h4>
+
+<p>
+  Some GUI elements can optionally be controlled with the mouse wheel when the pointer is hovering over them. The notation for mouse wheel action is <kbd class="mouse">&uArr;</kbd> <kbd class="mouse">&lArr;</kbd> <kbd class="mouse">&dArr;</kbd> <kbd class="mouse">&rArr;</kbd>.
+</p>
+
+<h4>Context-click</h4>
+
+<p>
+  The term <dfn>context-click</dfn> is used to indicate that you should (typically) <kbd class="mouse">Right</kbd>-click on a particular element of the graphical user interface. Although right-click is the common, default way to do this, there are other ways to accomplish the same thing&mdash;this term refers to any of them, and the result is always that a menu specific to the item you clicked on will be displayed.
+</p>
+
+<h4>"The Pointer"</h4>
+
+<p>
+  When the manual refers to the "pointer", it means the on-screen representation of the mouse position or the location of a touch action if you are using a touch interface.
+</p>
+
+<h3>Other user input</h3>
+
+<p>
+  Ardour supports hardware controllers, such as banks of <kbd class="fader">faders</kbd>, <kbd class="knob">knobs</kbd>, or <kbd class="button">buttons</kbd>.
+</p>
+
+<h3>Menu Items</h3>
+
+<p>
+  Menu items are indicated like this:<br />
+  <kbd class="menu">Top &gt; Next &gt; Deeper</kbd>.<br />
+  Each "&gt;"-separated item indicates one level of a nested (sub-)menu.
+</p>
+
+<h3>Preference/Dialog Options</h3>
+
+<p>
+  Choices in various dialogs, notably the Preferences and Properties dialog, are
+  indicated like this:<br />
+  <kbd class="option">Edit &gt; Preferences &gt; Audio &gt; Some
+  Option</kbd>.<br />
+  Each successive item indicates either a (sub-) menu or a tabbed dialog
+  navigation. The final item is the one to choose or select.
+</p>
+
+<p>
+  If you are requested to deselect an option, you will see something like
+  this:<br />
+  <kbd class="optoff">Edit &gt; Preferences &gt; Audio &gt; Some other
+  Option</kbd>.<br />
+</p>
+
+<h3>User Input</h3>
+
+<p>
+  Some dialogs or features may require you to type in some <kbd class="input">data such as this</kbd>. In rare cases, you will be required to perform certain operations at the command line of your operating system:
+</p>
+
+<kbd class="cmd lin">cat /proc/cpuinfo</kbd>
+<kbd class="cmd mac">sleep 3600</kbd>
+<kbd class="cmd win">ping www.google.com</kbd>
+
+<h3>Program Output</h3>
+
+<p>
+  Important messages from Ardour or other programs will be displayed <samp>like this</samp>.
+</p>
+
+<h3>Notes</h3>
+
+<p class="note">
+  Important notes about things that might not otherwise be obvious are shown in this format.
+</p>
+
+<h3>Warnings</h3>
+
+<p class="warning">
+  Hairy issues that might cause things to go wrong, lose data, impair sound quality, or eat your proverbial goldfish, are displayed in this way.
+</p>
+
+
diff --git a/include/ardour-concepts.html b/include/ardour-concepts.html
new file mode 100644 (file)
index 0000000..09e5b51
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Ardour Concepts
+---
+
+
diff --git a/include/ardour-setup-for-surround.html b/include/ardour-setup-for-surround.html
new file mode 100644 (file)
index 0000000..fcacfb4
--- /dev/null
@@ -0,0 +1,7 @@
+---
+title: Ardour Setup for Surround
+---
+
+<p class="fixme">Add content</p>
+
+
diff --git a/include/ardour-systems.html b/include/ardour-systems.html
new file mode 100644 (file)
index 0000000..11a03f9
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Ardour Systems
+---
+
+
diff --git a/include/arranging-regions.html b/include/arranging-regions.html
new file mode 100644 (file)
index 0000000..a8c8c8a
--- /dev/null
@@ -0,0 +1,7 @@
+---
+title: Arranging Regions
+---
+
+<p class="fixme">Add content</p>
+
+
diff --git a/include/audio-recording.html b/include/audio-recording.html
new file mode 100644 (file)
index 0000000..34e806b
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Audio Recording
+---
+
+
diff --git a/include/automation.html b/include/automation.html
new file mode 100644 (file)
index 0000000..3342b90
--- /dev/null
@@ -0,0 +1,7 @@
+---
+title: Automation
+---
+
+<p class="fixme">Add content</p>
+
+
diff --git a/include/basic-mixing.html b/include/basic-mixing.html
new file mode 100644 (file)
index 0000000..5995b87
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Basic Mixing
+---
+
+
diff --git a/include/configuring-midi.html b/include/configuring-midi.html
new file mode 100644 (file)
index 0000000..94c80ba
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Configuring MIDI
+---
+
+
diff --git a/include/edit-mode-and-tools.html b/include/edit-mode-and-tools.html
new file mode 100644 (file)
index 0000000..b65f57a
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Edit Mode and Tools
+---
+
+
diff --git a/include/editing-basics.html b/include/editing-basics.html
new file mode 100644 (file)
index 0000000..df12127
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Editing Basics
+---
+
+
diff --git a/include/editing-regions-and-selections.html b/include/editing-regions-and-selections.html
new file mode 100644 (file)
index 0000000..aa602ea
--- /dev/null
@@ -0,0 +1,4 @@
+---
+title: Editing Regions and Selections
+---
+
diff --git a/include/fades-and-crossfades.html b/include/fades-and-crossfades.html
new file mode 100644 (file)
index 0000000..5bd005d
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Fades and Crossfades
+---
+
+
diff --git a/include/file-and-session-management-and-compatibility.html b/include/file-and-session-management-and-compatibility.html
new file mode 100644 (file)
index 0000000..3eca224
--- /dev/null
@@ -0,0 +1,7 @@
+---
+title: File and Session Management and Compatibility
+---
+
+<p class="fixme">Add content</p>
+
+
diff --git a/include/generic-midi.html b/include/generic-midi.html
new file mode 100644 (file)
index 0000000..2f0ae37
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Generic MIDI
+---
+
+
diff --git a/include/grouping-tracks.html b/include/grouping-tracks.html
new file mode 100644 (file)
index 0000000..082e445
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Grouping Tracks
+---
+
+
diff --git a/include/i_o-setup.html b/include/i_o-setup.html
new file mode 100644 (file)
index 0000000..89b4e4a
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: I/O Setup
+---
+
+
diff --git a/include/importing-and-exporting-session-data.html b/include/importing-and-exporting-session-data.html
new file mode 100644 (file)
index 0000000..a56dce2
--- /dev/null
@@ -0,0 +1,7 @@
+---
+title: Importing and Exporting Session Data
+---
+
+<p class="fixme">Add content</p>
+
+
diff --git a/include/kde-plasma-5.html b/include/kde-plasma-5.html
new file mode 100644 (file)
index 0000000..16c0792
--- /dev/null
@@ -0,0 +1,61 @@
+---
+title: KDE Plasma 5
+---
+
+<p>
+  Under <dfn>KDE Plasma 5</dfn>, plugin and various other windows will not stay
+  on top of any main window; therefore a workaround is required.
+</p>
+
+<h2>Workaround for ancillary windows not staying on top in KDE Plasma 5</h2>
+
+<p>
+  In order to force ancillary windows in Ardour to stay on top, the following
+  steps are necessary:
+</p>
+
+<ol>
+  <li>Launch the <kbd class="menu">System Settings</kbd> application.</li>
+  <li>Open <kbd class="menu">Workspace &gt; Window Managment</kbd>.</li>
+  <li>Select <kbd class="menu">Window Rules</kbd> in the left-hand sidebar. It
+  should default to the <kbd class="menu">Window matching</kbd> tab.</li>
+  <li>Click on the <kbd class="button">New...</kbd> button.</li>
+  <li>On the line that says <kbd class="menu">Window class (application)</kbd>,
+  set the combo box to <kbd class="menu">Substring Match</kbd> and type <kbd
+  class="user">ardour</kbd> in the text entry field.</li>
+  <li>In the list box that is labeled <kbd class="menu">Window types:</kbd>,
+  click on the option <kbd class="menu">Dialog Window</kbd>, then press and
+  hold <kbd>Ctrl</kbd> while clicking on the second option <kbd
+  class="menu">Utility Window</kbd>.</li>
+  <li>Select the <kbd class="menu">Arrangement & Access</kbd> tab.</li>
+  <li>Check the box next to the <kbd class="menu">Keep above</kbd> option. On
+  the same line, select <kbd class="menu">Force</kbd> from the combo box, then
+  click on the <kbd class="menu">Yes</kbd> radio button for that line.</li>
+  <li>Click on the <kbd class="button">OK</kbd> button to dismiss the dialog.
+  </li>
+</ol>
+
+<p>
+  At this point you can close the <kbd class="menu">System Settings</kbd>
+  application.
+</p>
+
+<h3>Background Info</h3>
+
+<p>
+  <a href="https://bugs.kde.org/show_bug.cgi?id=172615#c26">According to one of
+  the lead KDE developers</a>, they are not willing to follow the <abbr
+  title="Inter-Client Communication Conventions Manual">ICCCM</abbr> standard
+  for utility windows. Apparently they are alone in this understanding, as
+  plugin windows on Ardour under Linux work out of the box on every other <abbr
+  title="Window Manager">WM</abbr> out there.
+</p>
+
+<p>
+  Under KDE 4, there was a workaround in Ardour (<kbd class="menu">Preferences
+  &gt; Theme &gt; All floating windows are dialogs</kbd>) that would "trick"
+  KDE into forcing certain window types to be on top of their parent windows,
+  but this no longer works under KDE Plasma 5.
+</p>
+
+
diff --git a/include/keyboard-and-mouse-shortcuts.html b/include/keyboard-and-mouse-shortcuts.html
new file mode 100644 (file)
index 0000000..25763a6
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Keyboard and Mouse Shortcuts
+---
+
+
diff --git a/include/lua-scripting-in-ardour.html b/include/lua-scripting-in-ardour.html
new file mode 100644 (file)
index 0000000..9549710
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Lua Scripting in Ardour
+---
+
+
diff --git a/include/making-selections.html b/include/making-selections.html
new file mode 100644 (file)
index 0000000..266869b
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Making Selections
+---
+
+
diff --git a/include/memory-locations.html b/include/memory-locations.html
new file mode 100644 (file)
index 0000000..2fcd867
--- /dev/null
@@ -0,0 +1,7 @@
+---
+title: Memory Locations
+---
+
+<p class="fixme">Add content</p>
+
+
diff --git a/include/midi-editing.html b/include/midi-editing.html
new file mode 100644 (file)
index 0000000..5b46275
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: MIDI Editing
+---
+
+
diff --git a/include/midi-editors.html b/include/midi-editors.html
new file mode 100644 (file)
index 0000000..8196ff7
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: MIDI Editors
+---
+
+
diff --git a/include/midi-event-list.html b/include/midi-event-list.html
new file mode 100644 (file)
index 0000000..f5368f4
--- /dev/null
@@ -0,0 +1,8 @@
+---
+title: MIDI Event List
+---
+
+
+
+
+
diff --git a/include/midi-recording.html b/include/midi-recording.html
new file mode 100644 (file)
index 0000000..233180d
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: MIDI Recording
+---
+
+
diff --git a/include/mixdown.html b/include/mixdown.html
new file mode 100644 (file)
index 0000000..24b0d43
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Mixdown
+---
+
+
diff --git a/include/multichannel-tracks-and-signal-routing.html b/include/multichannel-tracks-and-signal-routing.html
new file mode 100644 (file)
index 0000000..5a816ff
--- /dev/null
@@ -0,0 +1,7 @@
+---
+title: Multichannel Tracks and Signal Routing
+---
+
+<p class="fixme">Add content</p>
+
+
diff --git a/include/playing-back-track-material.html b/include/playing-back-track-material.html
new file mode 100644 (file)
index 0000000..a4692c0
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Playing Back Track Material
+---
+
+
diff --git a/include/playlists.html b/include/playlists.html
new file mode 100644 (file)
index 0000000..4d12f78
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Playlists
+---
+
+
diff --git a/include/plugin-and-hardware-inserts.html b/include/plugin-and-hardware-inserts.html
new file mode 100644 (file)
index 0000000..e647238
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Plugin and Hardware Inserts
+---
+
+
diff --git a/include/plugins-bundled-with-ardour.html b/include/plugins-bundled-with-ardour.html
new file mode 100644 (file)
index 0000000..bafa92b
--- /dev/null
@@ -0,0 +1,31 @@
+---
+title: Plugins Bundled With Ardour
+---
+
+<p>
+  Ardour now comes with the following plugins as part of a standard installation:
+</p>
+
+<dl class="narrower-table">
+  <dt>a-Amplifier</dt>
+  <dd>A versatile &plusmn;20dB multichannel amplifier</dd>
+  <dt>a-Compressor</dt>
+  <dd>A side-chain enabled compressor with the usual controls. Comes in stereo and mono versions</dd>
+  <dt>a-Delay</dt>
+  <dd>A basic single-tap delay line, with tempo sync</dd>
+  <dt>a-EQ</dt>
+  <dd>A nice sounding 4-band parametric EQ with shelves</dd>
+  <dt>a-Fluid Synth</dt>
+  <dd>Wraps the Fluidsynth SoundFont2 synthesis engine as a new sample player</dd>
+  <dt>a-High/Low Pass Filter</dt>
+  <dd>Independent high and low pass filters with steepness up to 48dB/octave</dd>
+  <dt>a-Inline Scope</dt>
+  <dd>A mixer strip inline waveform display</dd>
+  <dt>a-Inline Spectrogram</dt>
+  <dd>A mixer strip inline specturm display</dd>
+  <dt>a-MIDI Monitor</dt>
+  <dd>A mixer strip inline display to show recent <abbr title="Musical Instrument Digital Interface">MIDI</abbr> events</dd>
+  <dt>a-Reverb</dt>
+  <dd>A reverb that finds a balance between sounding good, using a lot of CPU and having too many controls</dd>
+</dl>
+
diff --git a/include/preferences.html b/include/preferences.html
new file mode 100644 (file)
index 0000000..0e30f4c
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Preferences
+---
+
+
diff --git a/include/punch-recording-modes.html b/include/punch-recording-modes.html
new file mode 100644 (file)
index 0000000..9495e33
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Punch Recording Modes
+---
+
+
diff --git a/include/record-setup.html b/include/record-setup.html
new file mode 100644 (file)
index 0000000..356a5f4
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Record Setup
+---
+
+
diff --git a/include/region-loops-and-groups.html b/include/region-loops-and-groups.html
new file mode 100644 (file)
index 0000000..274cf7a
--- /dev/null
@@ -0,0 +1,7 @@
+---
+title: Region Loops and Groups
+---
+
+<p class="fixme">Add content</p>
+
+
diff --git a/include/rhythm-ferret.html b/include/rhythm-ferret.html
new file mode 100644 (file)
index 0000000..894b3f4
--- /dev/null
@@ -0,0 +1,7 @@
+---
+title: Rhythm Ferret
+---
+
+<p class="fixme">Add content</p>
+
+
diff --git a/include/score-editor.html b/include/score-editor.html
new file mode 100644 (file)
index 0000000..1d50ffa
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Score Editor
+---
+
+
diff --git a/include/sessions.html b/include/sessions.html
new file mode 100644 (file)
index 0000000..4f4b84e
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Sessions
+---
+
+
diff --git a/include/surround-panning-and-mixing.html b/include/surround-panning-and-mixing.html
new file mode 100644 (file)
index 0000000..2adf828
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Surround Panning and Mixing
+---
+
+
diff --git a/include/system-setup.html b/include/system-setup.html
new file mode 100644 (file)
index 0000000..6a4e449
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: System Setup
+---
+
+
diff --git a/include/techniques-for-working-with-tempo-and-meter.html b/include/techniques-for-working-with-tempo-and-meter.html
new file mode 100644 (file)
index 0000000..1cf1b1f
--- /dev/null
@@ -0,0 +1,88 @@
+---
+title: Techniques for Working with Tempo and Meter
+---
+
+<h3>Techniques </h3>
+
+<p>
+  As a general approach, the best way to control tempo ramps is to use them in pairs.
+</p>
+
+<p>
+  Lets imagine we want to match the click to a drum performance recorded in 'free time'.
+</p>
+
+<p>
+  The first thing we need to do is determine where the first beat is. Drag the first meter to that position.
+</p>
+
+<p>
+  Now the first click will be in time with the first beat. To get all the other beats to align, we listen to the drums and visually locate the position of bar 4. You may wish to place the playhead here.
+</p>
+
+<p>
+  We then locate bar 4 in the BBT ruler and while holding the constraint modifier, drag it to bar 4 in the drum performance.
+</p>
+
+<p>
+  We notice that the click now matches the first 4 bars, but after that it wanders off. You will see this reflected in the tempo lines.. they won't quite match the drum hits. We now locate the earliest position where the click doesn't match, and place a new tempo just before this. Two bars later, place another new tempo.
+</p>
+
+<p>
+  Now while dragging any beat <strong>after</strong> the second new tempo, watch the drum audio and tempo lines until they align.
+</p>
+
+<p class="note">
+  Notice what is happening here: the tempo previous to your mouse pointer is being changed so that the beat you grabbed aligns with the pointer. Notice that the tempo lines previous to the changed one also move. This is because the previous tempo is ramping <strong>to</strong> the tempo you are changing. Look further to the left. The tempo lines in the first four bars do not move.
+</p>
+
+<p>
+  Again, some time later the click will not align. I didn't say this was easy.
+</p>
+
+<p>
+  Repeat the same technique: add two new tempos and drag the BBT ruler <strong>after</strong> the newest tempo so that the beats align with the audio again.
+</p>
+
+<p>
+  In a general sense, adding tempo markers in pairs allows you to 'pin' your previous work while you move further to the right.
+</p>
+
+<h3>Another use case: matching accelerando</h3>
+
+<p>
+  Imagine you have some video and have located where your music cue begins. Move the first meter to that frame (you may snap to TC frames, but not music with an audio locked meter).
+</p>
+
+<p>
+  Find a starting tempo by listening to the click while you drag the meter's tempo vertically using the constraint modifier.
+</p>
+
+<p>
+  You have the playhead at point where the dude slams the phone down, and your idea was that 4|1|0 would be good for this, but you want an accelerando to that point.
+</p>
+
+<p>
+  Add a tempo at bar 4.
+</p>
+
+<p>
+  Holding down the constraint modifier, and with snap set to 'TC Frames', grab the BBT ruler just <strong>after</strong> 4|1|0. Drag the ruler so that 4|1|0 snaps to the 'phone' frame.
+</p>
+
+<p class="note">
+  Notice what happened: The second tempo was changed.<br />
+  You had set a musical position for the second tempo marker. It was not aligned with the frame you wanted, so you dragged the BBT ruler, making the second tempo provide enough pulses over the ramp for 4|1|0 to align with the desired frame.
+</p>
+
+<p>
+  If the ramp doesn't feel right, you may add more points within it and keep adjusting beat positions in a similar manner.
+</p>
+
+<h3>General</h3>
+
+<p>
+  Audio locked meters can be useful when composing, as they allow a continuous piece of music to be worked on in isolated segments, preventing the listening fatigue of a fixed form. Reassembly is left as an excercise for the reader.
+</p>
+
+
diff --git a/include/time_-tempo-and-meter.html b/include/time_-tempo-and-meter.html
new file mode 100644 (file)
index 0000000..5c3fd26
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Time, Tempo and Meter
+---
+
+
diff --git a/include/tracks.html b/include/tracks.html
new file mode 100644 (file)
index 0000000..233c26d
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Tracks
+---
+
+
diff --git a/include/using-key-bindings.html b/include/using-key-bindings.html
new file mode 100644 (file)
index 0000000..80e7f00
--- /dev/null
@@ -0,0 +1,31 @@
+---
+title: Using Key Bindings
+---
+
+<p>
+  Ardour has many available commands for playback control that can be bound
+  to keys. Many of them have default bindings, some do not, so the list below
+  shows both the default bindings and internal command names.
+</p>
+
+<dl class="wide-table">
+  <dt><kbd>Space</kbd></dt>
+  <dd>switch between playback and stop.</dd>
+  <dt><kbd>Home</kbd></dt>
+  <dd>Move playhead to session start marker</dd>
+  <dt><kbd>End</kbd></dt>
+  <dd>Move playhead to session end marker</dd>
+  <dt><kbd>&rarr;</kbd></dt>
+  <dd></dd>
+  <dt><kbd>&larr;</kbd></dt>
+  <dd></dd>
+  <dt><kbd>0</kbd></dt>
+  <dd>Move playhead to start of the timeline</dd>
+</dl>
+
+<p>Commands without default bindings include:</p>
+
+<p class="fixme">Add content</p>
+
+
+
diff --git a/include/welcome-to-ardour_.html b/include/welcome-to-ardour_.html
new file mode 100644 (file)
index 0000000..605b18f
--- /dev/null
@@ -0,0 +1,66 @@
+---
+title: Welcome to Ardour!
+---
+
+<p>
+  <dfn>Ardour</dfn> is a professional digital workstation for working with audio and MIDI.
+</p>
+
+<h2>Ardour is meant for...</h2>
+
+<h3>Audio Engineers</h3>
+
+<p>
+  Ardour's core user group: people who want to record, edit, mix and master audio and MIDI projects. When you need complete control over your tools, when the limitations of other designs get in the way, when you plan to spend hours or days working on a session, Ardour is there to make things work the way you want them to.
+</p>
+
+<h3>Musicians</h3>
+
+<p>
+  Being the best tool to record talented performers on actual instruments has always been a top priority for Ardour. Rather than being focused on electronic and pop music idioms, Ardour steps out of the way to encourage the creative process to remain where it always has been: a musician playing a carefully designed and well built instrument.
+</p>
+
+<h3>Soundtrack Editors</h3>
+
+<p>
+  Sample accurate sync and shared transport control with video playback tools allows Ardour to provide a fast and natural environment for creating and editing soundtracks for film and video projects.
+</p>
+
+<h3>Composers</h3>
+
+<p>
+  Arrange audio and MIDI using the same tools and same workflow. Use external hardware synthesizers or software instruments as sound sources. From sound design to electro-acoustic composition to dense multitrack MIDI editing, Ardour can help.
+</p>
+
+<h2>Ardour features...</h2>
+
+<h3>Audio and MIDI Multi-Track Recording and Editing</h3>
+
+<p>
+  Any number of tracks and busses. Non-linear editing. Non-destructive (and destructive!) recording. Any bit depth, any sample rate. Dozens of file formats.
+</p>
+
+<h3>Plugins with Full Sample Accurate Automation</h3>
+
+<p>
+  AudioUnit, LV2, LinuxVST and LADSPA formats. FX plugins. Software instruments. MIDI processors. Automate any parameters. Physically manipulate them via control surfaces. Distribute processing across as many (or as few) cores as you want.
+</p>
+
+<h3>Transport Sync and External Control Surfaces</h3>
+
+<p>
+  Best-in-industry sync to MIDI timecode and LTC. Send and receive MIDI Machine Control. Sync with JACK transport and MIDI clock. Dedicated Mackie Control protocol support, pre-defined mappings for many MIDI controllers plus dynamic MIDI learn. Use OSC to drive almost any operation in Ardour.
+</p>
+
+<h3>Powerful Anywhere-to-Anywhere Signal Routing</h3>
+
+<p>
+  Complex signal flows are simple and elegant. Inputs and outputs connect to your hardware and/or other applications. Use sends, inserts and returns freely. Connections can be one-to-many, many-to-one or many-to-many. Tap signal flows at any point. If you can't connect in the way you want with Ardour, it probably can't be done.
+</p>
+
+<h3>Video Timeline</h3>
+
+<p>
+  Import a single video and optionally extract the soundtrack from it. Display a frame-by-frame (thumbnail) timeline of the video. Use a Video-monitor window, or full-screen display, of the imported video in sync with any of the available ardour timecode sources. Lock audio-regions to the video: Move audio-regions with the video at video-frame granularity. Export the video, cut start/end, add blank frames and/or mux it with the soundtrack of the current-session.
+</p>
+
diff --git a/include/working-with-field-recorders-in-ardour.html b/include/working-with-field-recorders-in-ardour.html
new file mode 100644 (file)
index 0000000..eab4310
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Working with Field Recorders in Ardour
+---
+
+
diff --git a/include/working-with-synchronization.html b/include/working-with-synchronization.html
new file mode 100644 (file)
index 0000000..0d03499
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Working with Synchronization
+---
+
+
diff --git a/include/working-with-video-in-ardour.html b/include/working-with-video-in-ardour.html
new file mode 100644 (file)
index 0000000..4d3ccd9
--- /dev/null
@@ -0,0 +1,5 @@
+---
+title: Working with Video in Ardour
+---
+
+
diff --git a/master-doc.txt b/master-doc.txt
new file mode 100644 (file)
index 0000000..cb597bf
--- /dev/null
@@ -0,0 +1,1897 @@
+<!-- exploded -->
+
+---
+title: Introduction to Ardour
+part: part
+---
+
+
+---
+title: Welcome to Ardour
+include: _manual/01_welcome-to-ardour.html
+part: chapter
+---
+
+---
+title: About Ardour's documentation
+include: about-ardour_s-documentation.html
+part: subchapter
+---
+
+---
+title: Welcome to Ardour!
+include: welcome-to-ardour_.html
+part: subchapter
+---
+
+---
+title: About Ardour
+include: _manual/01_welcome-to-ardour/01_about-ardour.html
+part: subchapter
+---
+
+---
+title: Isn't This A Really Complicated Program?
+include: _manual/01_welcome-to-ardour/01_about-ardour/01_isnt-this-a-really-complicated-program.html
+part: subchapter
+---
+
+---
+title: Why Write a DAW for Linux?
+include: _manual/01_welcome-to-ardour/01_about-ardour/02_why-write-a-daw-for-linux.html
+part: subchapter
+---
+
+---
+title: Why is it called Ardour?
+include: _manual/01_welcome-to-ardour/01_about-ardour/03_why-is-it-called-ardour.html
+part: subchapter
+---
+
+---
+title: Why write another DAW?
+include: _manual/01_welcome-to-ardour/01_about-ardour/04_why-write-another-daw.html
+part: subchapter
+---
+
+---
+title: Additional Resources
+include: _manual/01_welcome-to-ardour/03_additional-resources.html
+part: subchapter
+---
+
+---
+title: Creating Music with Ardour
+include: _manual/02_introducing-ardour/01_creating-music-with-ardour.html
+part: subchapter
+---
+
+---
+title: Ardour Concepts
+include: ardour-concepts.html
+part: chapter
+---
+
+---
+title: Understanding Basic Concepts and Terminology
+include: _manual/02_introducing-ardour/02_understanding-basic-concepts-and-terminology.html
+part: subchapter
+---
+
+---
+title: Basic GUI Operations
+include: _manual/02_introducing-ardour/03_basic-gui-operations.html
+part: subchapter
+---
+
+---
+title: Interface Elements
+include: _manual/02_introducing-ardour/03_basic-gui-operations/01_interface-elements.html
+part: subchapter
+---
+
+---
+title: Key Bindings
+include: _manual/02_introducing-ardour/03_basic-gui-operations/02_key-bindings.html
+part: subchapter
+---
+
+---
+title: Selection Techniques
+include: _manual/02_introducing-ardour/03_basic-gui-operations/03_selection-techniques.html
+part: subchapter
+---
+
+---
+title: Tooltips
+include: _manual/02_introducing-ardour/03_basic-gui-operations/04_tooltips.html
+part: subchapter
+---
+
+---
+title: Undo/Redo for Editing
+include: _manual/02_introducing-ardour/03_basic-gui-operations/05_undoredo-for-editing-.html
+part: subchapter
+---
+
+---
+title: Using the Mouse
+include: _manual/02_introducing-ardour/03_basic-gui-operations/06_using-the-mouse.html
+part: subchapter
+---
+
+---
+title: Cut and Paste Operations
+include: _manual/02_introducing-ardour/03_basic-gui-operations/07_cut-and-paste-operations.html
+part: subchapter
+---
+
+---
+title: Deleting Objects
+include: _manual/02_introducing-ardour/03_basic-gui-operations/08_deleting-objects.html
+part: subchapter
+---
+
+---
+title: Starting Ardour
+include: _manual/03_setting-up-your-system/08_starting-ardour.html
+part: subchapter
+---
+
+---
+title: Keyboard and Mouse Shortcuts
+include: keyboard-and-mouse-shortcuts.html
+part: chapter
+---
+
+---
+title: Default Keyboard Bindings
+menu_title: Key Bindings
+include: _manual/21_default-keyboard-bindings.html
+part: subchapter
+---
+
+---
+title: Mnemonic Bindings for Linux
+menu_title: Linux
+include: _manual/21_default-keyboard-bindings/01_mnemonic-bindings-for-linux.html
+part: subchapter
+---
+
+---
+title: Mnemonic Bindings for OS X
+include: _manual/21_default-keyboard-bindings/02_mnemonic-bindings-for-os-x.html
+part: subchapter
+---
+
+
+---
+title: Ardour Configuration
+part: part
+---
+
+
+---
+title: Ardour Systems
+include: ardour-systems.html
+part: chapter
+---
+
+---
+title: The Right Computer System for Digital Audio
+menu_title: The Right Computer System
+include: _manual/03_setting-up-your-system/01_the-right-computer-system-for-digital-audio.html
+part: subchapter
+---
+
+---
+title: Mouse
+include: _manual/03_setting-up-your-system/02_mouse.html
+part: subchapter
+---
+
+---
+title: System Setup
+include: system-setup.html
+part: chapter
+---
+
+---
+title: Setting Up Your System
+include: _manual/03_setting-up-your-system.html
+part: subchapter
+---
+
+---
+title: Platform Specifics
+include: _manual/03_setting-up-your-system/07_platform-specifics.html
+part: subchapter
+---
+
+---
+title: Ubuntu Linux
+include: _manual/03_setting-up-your-system/07_platform-specifics/01_ubuntu-linux.html
+part: subchapter
+---
+
+---
+title: Microsoft Windows
+include: _manual/03_setting-up-your-system/07_platform-specifics/02_microsoft-windows.html
+part: subchapter
+---
+
+---
+title: KDE Plasma 5
+include: kde-plasma-5.html
+part: subchapter
+---
+
+---
+title: I/O Setup
+include: i_o-setup.html
+part: chapter
+---
+
+---
+title: Connecting Audio and MIDI Devices
+include: _manual/03_setting-up-your-system/04_connecting-audio-and-midi-devices.html
+part: subchapter
+---
+
+---
+title: Using More Than One Audio Device
+include: _manual/03_setting-up-your-system/06_using_more_than_one_audio_device.html
+part: subchapter
+---
+
+---
+title: Preferences
+include: preferences.html
+part: chapter
+---
+
+---
+title: Preferences and Session Properties
+include: _manual/22_preferences-and-session-properties.html
+part: subchapter
+---
+
+---
+title: Global Preferences Dialog
+menu_title: Global Preferences
+include: _manual/22_preferences-and-session-properties/01_preferences-dialog.html
+part: subchapter
+---
+
+---
+title: Global Misc Tab
+menu_title: Misc Tab
+include: _manual/22_preferences-and-session-properties/01_preferences-dialog/01_misc.html
+part: subchapter
+---
+
+---
+title: Transport Tab
+menu_title: Transport Tab
+include: _manual/22_preferences-and-session-properties/01_preferences-dialog/02_transport.html
+part: subchapter
+---
+
+---
+title: Editor Tab
+menu_title: Editor Tab
+include: _manual/22_preferences-and-session-properties/01_preferences-dialog/03_editor.html
+part: subchapter
+---
+
+---
+title: Audio Tab
+menu_title: Audio Tab
+include: _manual/22_preferences-and-session-properties/01_preferences-dialog/04_audio.html
+part: subchapter
+---
+
+---
+title: Solo/Mute Tab
+menu_title: Solo/Mute Tab
+include: _manual/22_preferences-and-session-properties/01_preferences-dialog/05_solomute.html
+part: subchapter
+---
+
+---
+title: MIDI Tab
+menu_title: MIDI Tab
+include: _manual/22_preferences-and-session-properties/01_preferences-dialog/06_midi.html
+part: subchapter
+---
+
+---
+title: User Interaction Tab
+menu_title: User Interaction Tab
+include: _manual/22_preferences-and-session-properties/01_preferences-dialog/07_interaction.html
+part: subchapter
+---
+
+---
+title: Control Surfaces Tab
+menu_title: Control Surfaces Tab
+include: _manual/22_preferences-and-session-properties/01_preferences-dialog/08_control_surfaces.html
+part: subchapter
+---
+
+---
+title: Video Tab
+menu_title: Video Tab
+include: _manual/22_preferences-and-session-properties/01_preferences-dialog/09_video.html
+part: subchapter
+---
+
+---
+title: Plugins Tab
+menu_title: Plugins Tab
+include: _manual/22_preferences-and-session-properties/01_preferences-dialog/10_plugins.html
+part: subchapter
+---
+
+---
+title: GUI Tab
+menu_title: GUI Tab
+include: _manual/22_preferences-and-session-properties/01_preferences-dialog/11_gui.html
+part: subchapter
+---
+
+---
+title: Metering Tab
+menu_title: Metering Tab
+include: _manual/22_preferences-and-session-properties/01_preferences-dialog/12_metering.html
+part: subchapter
+---
+
+---
+title: Theme Tab
+menu_title: Theme Tab
+include: _manual/22_preferences-and-session-properties/01_preferences-dialog/13_theme.html
+part: subchapter
+---
+
+---
+title: Session Properties Dialog
+menu_title: Session Properties
+include: _manual/22_preferences-and-session-properties/02_session-properties-dialog.html
+part: subchapter
+---
+
+---
+title: Timecode Tab
+menu_title: Timecode Tab
+include: _manual/22_preferences-and-session-properties/02_session-properties-dialog/01_timecode.html
+part: subchapter
+---
+
+---
+title: Sync Tab
+menu_title: Sync Tab
+include: _manual/22_preferences-and-session-properties/02_session-properties-dialog/02_sync.html
+part: subchapter
+---
+
+---
+title: Fades Tab
+menu_title: Fades Tab
+include: _manual/22_preferences-and-session-properties/02_session-properties-dialog/03_fades.html
+part: subchapter
+---
+
+---
+title: Media Tab
+menu_title: Media Tab
+include: _manual/22_preferences-and-session-properties/02_session-properties-dialog/04_media.html
+part: subchapter
+---
+
+---
+title: Locations Tab
+menu_title: Locations Tab
+include: _manual/22_preferences-and-session-properties/02_session-properties-dialog/05_locations.html
+part: subchapter
+---
+
+---
+title: Filenames Tab
+menu_title: Filenames Tab
+include: _manual/22_preferences-and-session-properties/02_session-properties-dialog/06_filenames.html
+part: subchapter
+---
+
+---
+title: Monitoring Tab
+menu_title: Monitoring Tab
+include: _manual/22_preferences-and-session-properties/02_session-properties-dialog/07_monitoring.html
+part: subchapter
+---
+
+---
+title: Meterbridge Tab
+menu_title: Meterbridge Tab
+include: _manual/22_preferences-and-session-properties/02_session-properties-dialog/08_meterbridge.html
+part: subchapter
+---
+
+---
+title: Session Misc Tab
+menu_title: Misc Tab
+include: _manual/22_preferences-and-session-properties/02_session-properties-dialog/09_misc.html
+part: subchapter
+---
+
+---
+title: Configuring MIDI
+include: configuring-midi.html
+part: chapter
+---
+
+---
+title: Using External MIDI Devices
+include: _manual/03_setting-up-your-system/03_using-external-midi-devices.html
+part: subchapter
+---
+
+---
+title: Setting Up MIDI
+include: _manual/03_setting-up-your-system/05_setting-up-midi.html
+part: subchapter
+---
+
+---
+title: MIDI on Linux
+include: _manual/03_setting-up-your-system/05_setting-up-midi/02_midi-on-linux.html
+part: subchapter
+---
+
+---
+title: MIDI on OS X
+include: _manual/03_setting-up-your-system/05_setting-up-midi/01_midi-on-os-x.html
+part: subchapter
+---
+
+
+---
+title: Ardour's Interface
+part: part
+---
+
+
+---
+title: About Ardour's Interface
+include: _manual/05_ardours-interface.html
+part: chapter
+---
+
+---
+title: Main Menu
+include: _manual/05_ardours-interface/01_main-menu.html
+part: chapter
+---
+
+---
+title: The Session Menu
+include: _manual/05_ardours-interface/01_main-menu/01_Session-menu.html
+part: subchapter
+---
+
+---
+title: The Transport Menu
+include: _manual/05_ardours-interface/01_main-menu/02_Transport-menu.html
+part: subchapter
+---
+
+---
+title: The Edit Menu
+include: _manual/05_ardours-interface/01_main-menu/03_Edit-menu.html
+part: subchapter
+---
+
+---
+title: The Region Menu
+include: _manual/05_ardours-interface/01_main-menu/04_Region-menu.html
+part: subchapter
+---
+
+---
+title: The Track Menu
+include: _manual/05_ardours-interface/01_main-menu/05_Track-menu.html
+part: subchapter
+---
+
+---
+title: The View Menu
+include: _manual/05_ardours-interface/01_main-menu/06_View-menu.html
+part: subchapter
+---
+
+---
+title: The Window Menu
+include: _manual/05_ardours-interface/01_main-menu/07_Window-menu.html
+part: subchapter
+---
+
+---
+title: The Help Menu
+include: _manual/05_ardours-interface/01_main-menu/08_Help-menu.html
+part: subchapter
+---
+
+---
+title: Status Bar
+include: _manual/05_ardours-interface/02_status-bar.html
+part: chapter
+---
+
+---
+title: Transport bar and times
+include: _manual/05_ardours-interface/03_transport-bar-and-times.html
+part: chapter
+---
+
+---
+title: The Transport Bar
+include: _manual/05_ardours-interface/03_transport-bar-and-times/01_the-transport-bar.html
+part: subchapter
+---
+
+---
+title: Times
+include: _manual/05_ardours-interface/03_transport-bar-and-times/02_times.html
+part: subchapter
+---
+
+---
+title: The Editor
+include: _manual/05_ardours-interface/04_the-editor.html
+part: chapter
+---
+
+---
+title: The Editor - The Toolbar
+include: _manual/05_ardours-interface/04_the-editor/01_the-toolbar.html
+part: chapter
+---
+
+---
+title: The Toolbox
+include: _manual/05_ardours-interface/04_the-editor/01_the-toolbar/01_the-toolbox.html
+part: subchapter
+---
+
+---
+title: the Zoom Controls
+include: _manual/05_ardours-interface/04_the-editor/01_the-toolbar/02_the-zoom-controls.html
+part: subchapter
+---
+
+---
+title: the Grid Controls
+include: _manual/05_ardours-interface/04_the-editor/01_the-toolbar/03_the-grid-controls.html
+part: subchapter
+---
+
+---
+title: the Edit Point Control
+include: _manual/05_ardours-interface/04_the-editor/01_the-toolbar/04_the-edit-point-control.html
+part: subchapter
+---
+
+---
+title: The Nudge Controls
+include: _manual/05_ardours-interface/04_the-editor/01_the-toolbar/05_the-nudge-controls.html
+part: subchapter
+---
+
+---
+title: The Ruler
+include: _manual/05_ardours-interface/04_the-editor/02_the-ruler.html
+part: subchapter
+---
+
+---
+title: The Editor - The Editor's Lists
+include: _manual/05_ardours-interface/04_the-editor/03_the-editor_s-lists.html
+part: chapter
+---
+
+---
+title: Region List
+include: _manual/05_ardours-interface/04_the-editor/03_the-editor_s-lists/01_region-list.html
+part: subchapter
+---
+
+---
+title: Tracks and Busses List
+include: _manual/05_ardours-interface/04_the-editor/03_the-editor_s-lists/02_tracks-and-busses-list.html
+part: subchapter
+---
+
+---
+title: Snapshot List
+include: _manual/05_ardours-interface/04_the-editor/03_the-editor_s-lists/03_snapshot-list.html
+part: subchapter
+---
+
+---
+title: Track and Bus Group List
+include: _manual/05_ardours-interface/04_the-editor/03_the-editor_s-lists/04_track-and-bus-group-list.html
+part: subchapter
+---
+
+---
+title: Ranges and Marks List
+include: _manual/05_ardours-interface/04_the-editor/03_the-editor_s-lists/05_ranges-and-marks-list.html
+part: subchapter
+---
+
+---
+title: The Summary
+include: _manual/05_ardours-interface/04_the-editor/05_the-summary.html
+part: subchapter
+---
+
+---
+title: The Mixer
+include: _manual/05_ardours-interface/05_the-mixer.html
+part: chapter
+---
+
+---
+title: The Mixer - Favorite Plugins Window
+include: _manual/05_ardours-interface/05_the-mixer/01_favorite-plugins-window.html
+part: subchapter
+---
+
+---
+title: The Mixer - The Strips list
+include: _manual/05_ardours-interface/05_the-mixer/02_the-strips-list.html
+part: subchapter
+---
+
+---
+title: The Mixer - The Groups list
+include: _manual/05_ardours-interface/05_the-mixer/03_the-groups-list.html
+part: subchapter
+---
+
+---
+title: The Mixer - The Master Strip
+include: _manual/05_ardours-interface/05_the-mixer/04_the-master-strip.html
+part: subchapter
+---
+
+---
+title: The Mixer - The Monitor Section
+include: _manual/05_ardours-interface/05_the-mixer/05_monitoring.html
+part: subchapter
+---
+
+
+---
+title: Sessions & Tracks
+part: part
+---
+
+
+---
+title: Sessions
+include: sessions.html
+part: chapter
+---
+
+---
+title: New/Open Session Dialog
+include: _manual/08_working-with-sessions/01_new-session-dialog.html
+part: subchapter
+---
+
+---
+title: What's in a Session?
+include: _manual/08_working-with-sessions/02_whats-in-a-session.html
+part: subchapter
+---
+
+---
+title: Where Are Sessions Stored?
+include: _manual/08_working-with-sessions/03_where-are-sessions-stored.html
+part: subchapter
+---
+
+---
+title: Backup and Sharing of Sessions
+include: _manual/08_working-with-sessions/04_backup-and-sharing-of-sessions.html
+part: subchapter
+---
+
+---
+title: Interchange with other DAWs
+include: _manual/08_working-with-sessions/05_interchange-with-other-daws.html
+part: subchapter
+---
+
+---
+title: Copying The Interchange Folder
+include: _manual/08_working-with-sessions/05_interchange-with-other-daws/01_copying-the-interchange-folder.html
+part: subchapter
+---
+
+---
+title: Stem Exports
+include: _manual/08_working-with-sessions/05_interchange-with-other-daws/03_using-aatranslator.html
+part: subchapter
+---
+
+---
+title: Using AATranslator
+include: _manual/08_working-with-sessions/05_interchange-with-other-daws/03_using-aatranslator.html
+part: subchapter
+---
+
+---
+title: Renaming a Session
+include: _manual/08_working-with-sessions/06_renaming-a-session.html
+part: subchapter
+---
+
+---
+title: Session Templates
+include: _manual/08_working-with-sessions/07_session-templates.html
+part: subchapter
+---
+
+---
+title: Snapshots
+include: _manual/08_working-with-sessions/08_snapshots.html
+part: subchapter
+---
+
+---
+title: Metadata
+include: _manual/08_working-with-sessions/09_metadata.html
+part: subchapter
+---
+
+---
+title: Cleaning up Sessions
+include: _manual/08_working-with-sessions/10_cleaning_up.html
+part: subchapter
+---
+
+---
+title: Copying versus Linking
+include: _manual/13_adding-pre-existing-material/02_copying-versus-linking.html
+part: subchapter
+---
+
+---
+title: Adding Pre-existing Material
+include: _manual/13_adding-pre-existing-material.html
+part: subchapter
+---
+
+---
+title: Import Dialog
+include: _manual/13_adding-pre-existing-material/01_import-dialog.html
+part: subchapter
+---
+
+---
+title: Searching and Importing From Freesound
+menu_title: Freesound Search/Import
+include: _manual/13_adding-pre-existing-material/03_searching-and-importing-from-freesound.html
+part: subchapter
+---
+
+---
+title: Searching for Files Using Tags
+include: _manual/13_adding-pre-existing-material/04_searching-for-files-using-tags.html
+part: subchapter
+---
+
+---
+title: Supported File Formats
+include: _manual/13_adding-pre-existing-material/05_supported-file-formats.html
+part: subchapter
+---
+
+---
+title: Tracks
+include: tracks.html
+part: chapter
+---
+
+---
+title: Track Types
+include: _manual/11_working-with-tracks/01_track-types.html
+part: subchapter
+---
+
+---
+title: Adding Tracks, Busses and VCAs
+include: _manual/11_working-with-tracks/03_adding-tracks-and-busses.html
+part: subchapter
+---
+
+---
+title: Selecting Tracks
+include: _manual/11_working-with-tracks/04_selecting-tracks.html
+part: subchapter
+---
+
+---
+title: Controlling Track Appearance
+include: _manual/11_working-with-tracks/05_controlling-track-appearance.html
+part: subchapter
+---
+
+---
+title: Layering Display
+include: _manual/11_working-with-tracks/04_controlling-track-appearance/01_layering-display.html
+part: subchapter
+---
+
+---
+title: Track Color
+include: _manual/11_working-with-tracks/04_controlling-track-appearance/02_track-coloring.html
+part: subchapter
+---
+
+---
+title: Track Height
+include: _manual/11_working-with-tracks/04_controlling-track-appearance/03_track-height.html
+part: subchapter
+---
+
+---
+title: Waveform display
+include: _manual/11_working-with-tracks/04_controlling-track-appearance/04_waveform-display.html
+part: subchapter
+---
+
+---
+title: Controlling Track Ordering
+include: _manual/11_working-with-tracks/06_controlling-track-ordering.html
+part: subchapter
+---
+
+---
+title: Reordering Tracks
+include: _manual/11_working-with-tracks/05_controlling-track-ordering/01_reordering-tracks.html
+part: subchapter
+---
+
+---
+title: Track Ordering and Remote Control IDs
+include: _manual/11_working-with-tracks/05_controlling-track-ordering/02_track-ordering-and-remote-control-ids.html
+part: subchapter
+---
+
+---
+title: Bus Controls
+include: _manual/11_working-with-tracks/07_bus-controls.html
+part: subchapter
+---
+
+---
+title: Audio Track Controls
+include: _manual/11_working-with-tracks/08_audio-track-controls.html
+part: subchapter
+---
+
+---
+title: MIDI Track Controls
+include: _manual/11_working-with-tracks/09_midi-track-controls.html
+part: subchapter
+---
+
+---
+title: Track Context Menu
+include: _manual/11_working-with-tracks/11_track-context-menu.html
+part: subchapter
+---
+
+---
+title: Grouping Tracks
+include: grouping-tracks.html
+part: chapter
+---
+
+---
+title: Track and Bus Groups
+include: _manual/11_working-with-tracks/10_track-and-bus-groups.html
+part: subchapter
+---
+
+---
+title: Importing and Exporting Session Data
+include: importing-and-exporting-session-data.html
+part: chapter
+---
+
+---
+title: File and Session Management and Compatibility
+include: file-and-session-management-and-compatibility.html
+part: chapter
+---
+
+
+---
+title: Playback & Recording
+part: part
+---
+
+
+---
+title: Playing Back Track Material
+include: playing-back-track-material.html
+part: chapter
+---
+
+---
+title: Controlling Playback
+include: _manual/06_controlling-playback.html
+part: subchapter
+---
+
+---
+title: Using Key Bindings
+include: using-key-bindings.html
+part: subchapter
+---
+
+---
+title: Record Setup
+include: record-setup.html
+part: chapter
+---
+
+---
+title: Track Recording Modes
+include: _manual/14_recording/02_track-recording-modes.html
+part: subchapter
+---
+
+---
+title: Audio Recording
+include: audio-recording.html
+part: chapter
+---
+
+---
+title: Monitoring
+include: _manual/14_recording/01_monitoring.html
+part: subchapter
+---
+
+---
+title: Latency Considerations
+menu_title: Latency
+include: _manual/14_recording/01_monitoring/01_latency-considerations.html
+part: subchapter
+---
+
+---
+title: Monitor Signal Flow
+menu_title: Signal Flow
+include: _manual/14_recording/01_monitoring/02_monitor-signal-flow.html
+part: subchapter
+---
+
+---
+title: Monitor Setup in Ardour
+menu_title: Setup in Ardour
+include: _manual/14_recording/01_monitoring/03_monitor-setup-in-ardour.html
+part: subchapter
+---
+
+---
+title: MIDI Recording
+include: midi-recording.html
+part: chapter
+---
+
+---
+title: Punch Recording Modes
+include: punch-recording-modes.html
+part: chapter
+---
+
+---
+title: Working With Markers
+include: _manual/07_working-with-markers.html
+part: subchapter
+---
+
+---
+title: Creating Location Markers
+include: _manual/07_working-with-markers/01_creating-location-markers.html
+part: subchapter
+---
+
+---
+title: Creating Range Markers
+include: _manual/07_working-with-markers/02_creating-range-markers.html
+part: subchapter
+---
+
+---
+title: Moving Markers
+include: _manual/07_working-with-markers/03_moving-markers.html
+part: subchapter
+---
+
+---
+title: The Loop Range
+include: _manual/07_working-with-markers/04_loop-range.html
+part: subchapter
+---
+
+---
+title: Marker Context Menu
+include: _manual/07_working-with-markers/05_marker-context-menu.html
+part: subchapter
+---
+
+---
+title: Punch Range
+include: _manual/07_working-with-markers/06_punch-range.html
+part: subchapter
+---
+
+
+---
+title: Editing
+part: part
+---
+
+
+---
+title: Editing Basics
+include: editing-basics.html
+part: chapter
+---
+
+---
+title: Working With Regions
+include: _manual/09_working-with-regions.html
+part: subchapter
+---
+
+---
+title: Region Naming
+include: _manual/09_working-with-regions/01_region-naming.html
+part: subchapter
+---
+
+---
+title: Corresponding Regions Selection
+include: _manual/09_working-with-regions/02_corresponding-regions-selection.html
+part: subchapter
+---
+
+---
+title: Region Context Menu
+include: _manual/09_working-with-regions/03_region-context-menu.html
+part: subchapter
+---
+
+---
+title: Common Region Edit Operations
+menu_title: Region Editing
+include: _manual/16_editing-and-arranging/03_common-region-edit-operations.html
+part: subchapter
+---
+
+---
+title: Copy Regions
+include: _manual/16_editing-and-arranging/05_copy-regions.html
+part: subchapter
+---
+
+---
+title: Move Regions
+include: _manual/16_editing-and-arranging/06_move-regions.html
+part: subchapter
+---
+
+---
+title: Move Regions With the Mouse
+include: _manual/16_editing-and-arranging/06_move-regions/01_move-regions-with-the-mouse.html
+part: subchapter
+---
+
+---
+title: Align (Spot) Regions
+include: _manual/16_editing-and-arranging/06_move-regions/02_align-spotting-regions.html
+part: subchapter
+---
+
+---
+title: Edit Mode and Tools
+include: edit-mode-and-tools.html
+part: chapter
+---
+
+---
+title: Which Regions Are Affected?
+menu_title: Affected Regions
+include: _manual/16_editing-and-arranging/02_which-regions-are-affected.html
+part: subchapter
+---
+
+---
+title: Making Selections
+include: making-selections.html
+part: chapter
+---
+
+---
+title: Select Regions
+include: _manual/16_editing-and-arranging/01_select-regions.html
+part: subchapter
+---
+
+---
+title: Editing Regions and Selections
+include: editing-regions-and-selections.html
+part: chapter
+---
+
+---
+title: Trimming Regions
+include: _manual/16_editing-and-arranging/04_change-region-lengths.html
+part: subchapter
+---
+
+---
+title: Push/Pull Trimming
+include: _manual/16_editing-and-arranging/04_change-region-lengths/01_pushpull-trimming.html
+part: subchapter
+---
+
+---
+title: Separate Under
+include: _manual/16_editing-and-arranging/08_separation/01_separate-under.html
+part: subchapter
+---
+
+---
+title: Separate Range
+include: _manual/16_editing-and-arranging/08_separation/02_separate-range.html
+part: subchapter
+---
+
+---
+title: Strip Silence from Audio Regions
+menu_title: Stripping Silence
+include: _manual/16_editing-and-arranging/09_strip-silence-from-audio-regions.html
+part: subchapter
+---
+
+---
+title: Fades and Crossfades
+include: fades-and-crossfades.html
+part: chapter
+---
+
+---
+title: Create Region Fades and Crossfades
+include: _manual/16_editing-and-arranging/07_create-region-fades-and-crossfades.html
+part: subchapter
+---
+
+---
+title: Playlists
+include: playlists.html
+part: chapter
+---
+
+---
+title: Understanding Playlists
+include: _manual/10_working-with-playlists/01_understanding-playlists.html
+part: subchapter
+---
+
+---
+title: Playlist Operations
+include: _manual/10_working-with-playlists/02_playlist-operations.html
+part: subchapter
+---
+
+---
+title: Playlist Usecases
+include: _manual/10_working-with-playlists/03_playlist_usecases.html
+part: subchapter
+---
+
+---
+title: Rhythm Ferret
+include: rhythm-ferret.html
+part: chapter
+---
+
+
+---
+title: MIDI
+part: part
+---
+
+
+---
+title: MIDI Editing
+include: midi-editing.html
+part: chapter
+---
+
+---
+title: Edit MIDI
+include: _manual/16_editing-and-arranging/10_edit-midi.html
+part: subchapter
+---
+
+---
+title: Fundamental Concepts
+include: _manual/16_editing-and-arranging/10_edit-midi/01_fundamental-concepts.html
+part: subchapter
+---
+
+---
+title: Create MIDI Tracks
+include: _manual/16_editing-and-arranging/10_edit-midi/02_create-midi-tracks.html
+part: subchapter
+---
+
+---
+title: Create MIDI Regions
+include: _manual/16_editing-and-arranging/10_edit-midi/03_create-midi-regions.html
+part: subchapter
+---
+
+---
+title: Add New Notes
+include: _manual/16_editing-and-arranging/10_edit-midi/04_add-new-notes.html
+part: subchapter
+---
+
+---
+title: Change Note Properties
+include: _manual/16_editing-and-arranging/10_edit-midi/05_change-note-properties.html
+part: subchapter
+---
+
+---
+title: Handling Overlapping Notes
+menu_title: Overlapping Notes
+include: _manual/16_editing-and-arranging/10_edit-midi/06_handle-overlapping-notes.html
+part: subchapter
+---
+
+---
+title: Note Cut, Copy and Paste
+include: _manual/16_editing-and-arranging/10_edit-midi/07_note-cut-copy-and-paste-.html
+part: subchapter
+---
+
+---
+title: Note Selection
+include: _manual/16_editing-and-arranging/10_edit-midi/08_note-selection.html
+part: subchapter
+---
+
+---
+title: Quantize MIDI
+include: _manual/16_editing-and-arranging/10_edit-midi/09_quantize-midi.html
+part: subchapter
+---
+
+---
+title: Step Entry
+include: _manual/16_editing-and-arranging/10_edit-midi/10_step-entry.html
+part: subchapter
+---
+
+---
+title: Patch Change
+include: _manual/16_editing-and-arranging/10_edit-midi/11_patch-change.html
+part: subchapter
+---
+
+---
+title: Independent and Dependent MIDI Region Copies
+menu_title: Copy MIDI Region
+include: _manual/16_editing-and-arranging/10_edit-midi/12_copy-midi-region.html
+part: subchapter
+---
+
+---
+title: Transposing MIDI
+include: _manual/16_editing-and-arranging/10_edit-midi/13_transpose-midi.html
+part: subchapter
+---
+
+---
+title: Automating MIDI - Pitch bending and aftertouch
+menu_title: Automating MIDI
+include: _manual/16_editing-and-arranging/10_edit-midi/14_automation-midi.html
+part: subchapter
+---
+
+---
+title: Transforming MIDI - Mathematical operations
+menu_title: Transforming MIDI
+include: _manual/16_editing-and-arranging/10_edit-midi/15_transformation-midi.html
+part: subchapter
+---
+
+---
+title: MIDI Editors
+include: midi-editors.html
+part: chapter
+---
+
+---
+title: MIDI Scene Automation
+include: _manual/17_automation/01_midi-scenes.html
+part: subchapter
+---
+
+---
+title: Score Editor
+include: score-editor.html
+part: chapter
+---
+
+---
+title: MIDI Event List
+include: midi-event-list.html
+part: chapter
+---
+
+
+---
+title: Arranging
+part: part
+---
+
+
+---
+title: Time, Tempo and Meter
+include: time_-tempo-and-meter.html
+part: chapter
+---
+
+---
+title: Tempo and Meter
+include: _manual/26_tempo-meter/01_tempo-and-meter.html
+part: subchapter
+---
+
+---
+title: Techniques for Working with Tempo and Meter
+include: techniques-for-working-with-tempo-and-meter.html
+part: subchapter
+---
+
+---
+title: Memory Locations
+include: memory-locations.html
+part: chapter
+---
+
+---
+title: Arranging Regions
+include: arranging-regions.html
+part: chapter
+---
+
+---
+title: Region Loops and Groups
+include: region-loops-and-groups.html
+part: chapter
+---
+
+
+---
+title: Mixing
+part: part
+---
+
+
+---
+title: Basic Mixing
+include: basic-mixing.html
+part: chapter
+---
+
+---
+title: Metering in Ardour
+include: _manual/04_meters.html
+part: subchapter
+---
+
+---
+title: Signal Routing
+include: _manual/15_signal-routing.html
+part: subchapter
+---
+
+---
+title: Busses and VCAs
+include: _manual/11_working-with-tracks/02_busses-and-vcas.html
+part: subchapter
+---
+
+---
+title: Aux Sends
+include: _manual/15_signal-routing/01_aux-sends.html
+part: subchapter
+---
+
+---
+title: Comparing Aux Sends and Subgroups
+menu_title: Auxes vs. Groups
+include: _manual/15_signal-routing/02_comparing-aux-sends-and-subgroups.html
+part: subchapter
+---
+
+---
+title: External Sends
+include: _manual/15_signal-routing/03_external-sends.html
+part: subchapter
+---
+
+---
+title: Inserts
+include: _manual/15_signal-routing/04_inserts.html
+part: subchapter
+---
+
+---
+title: Subgrouping
+include: _manual/15_signal-routing/06_subgrouping.html
+part: subchapter
+---
+
+---
+title: Patchbay
+include: _manual/15_signal-routing/07_Patchbay.html
+part: subchapter
+---
+
+---
+title: Track/Bus Signal Flow
+include: _manual/15_signal-routing/08_signal-flow.html
+part: subchapter
+---
+
+---
+title: Muting and Soloing
+include: _manual/18_mixing/01_muting-and-soloing.html
+part: subchapter
+---
+
+---
+title: Panning
+include: _manual/18_mixing/02_panning.html
+part: subchapter
+---
+
+---
+title: Mono Panner
+include: _manual/18_mixing/02_panning/01_mono_panner.html
+part: subchapter
+---
+
+---
+title: Balance Control
+include: _manual/18_mixing/02_panning/02_balance_control.html
+part: subchapter
+---
+
+---
+title: Stereo Panner
+include: _manual/18_mixing/02_panning/03_stereo_panner.html
+part: subchapter
+---
+
+---
+title: Plugin and Hardware Inserts
+include: plugin-and-hardware-inserts.html
+part: chapter
+---
+
+---
+title: Working With Plugins
+include: _manual/12_working-with-plugins.html
+part: subchapter
+---
+
+---
+title: Processor Box
+include: _manual/12_working-with-plugins/03_processor-box.html
+part: subchapter
+---
+
+---
+title: Plugin Manager
+include: _manual/12_working-with-plugins/02_plugin-manager.html
+part: subchapter
+---
+
+---
+title: Managing Plugin Presets
+include: _manual/12_working-with-plugins/01_managing-plugin-presets.html
+part: subchapter
+---
+
+---
+title: Working with Ardour-built Plugin Editors
+include: _manual/12_working-with-plugins/06_working-with-ardour-built-plugin-editors.html
+part: subchapter
+---
+
+---
+title: Plugins Bundled With Ardour
+include: plugins-bundled-with-ardour.html
+part: subchapter
+---
+
+---
+title: Getting More Plugins
+include: _manual/12_working-with-plugins/07_getting-plugins.html
+part: subchapter
+---
+
+---
+title: Using Windows VST Plugins on Linux
+include: _manual/12_working-with-plugins/05_windows-vst-support.html
+part: subchapter
+---
+
+---
+title: Automation
+include: automation.html
+part: chapter
+---
+
+---
+title: Mixdown
+include: mixdown.html
+part: chapter
+---
+
+---
+title: Export Dialog
+include: _manual/19_exporting/01_export-dialog.html
+part: subchapter
+---
+
+---
+title: Export Format Profiles
+include: _manual/19_exporting/02_edit-export-format-profile.html
+part: subchapter
+---
+
+
+---
+title: Surround
+part: part
+---
+
+
+---
+title: Ardour Setup for Surround
+include: ardour-setup-for-surround.html
+part: chapter
+---
+
+---
+title: Multichannel Tracks and Signal Routing
+include: multichannel-tracks-and-signal-routing.html
+part: chapter
+---
+
+---
+title: Surround Panning and Mixing
+include: surround-panning-and-mixing.html
+part: chapter
+---
+
+---
+title: VBAP Panner
+include: _manual/18_mixing/02_panning/04_vbap_panner.html
+part: subchapter
+---
+
+
+---
+title: Sync & Video
+part: part
+---
+
+
+---
+title: Working with Synchronization
+include: working-with-synchronization.html
+part: chapter
+---
+
+---
+title: On Clock and Time
+include: _manual/20_synchronization/01_on-clock-and-time.html
+part: subchapter
+---
+
+---
+title: Latency and Latency-Compensation
+menu_title: Latency
+include: _manual/20_synchronization/02_latency-and-latency-compensation.html
+part: subchapter
+---
+
+---
+title: Timecode Generators and Slaves
+include: _manual/20_synchronization/03_timecode-generators-and-slaves.html
+part: subchapter
+---
+
+---
+title: Overview of all Timecode related settings
+menu_title: Overview of Timecode settings
+include: _manual/20_synchronization/04_overview-of-timecode-related-settings.html
+part: subchapter
+---
+
+---
+title: Working with Field Recorders in Ardour
+include: working-with-field-recorders-in-ardour.html
+part: chapter
+---
+
+---
+title: Working with Video in Ardour
+include: working-with-video-in-ardour.html
+part: chapter
+---
+
+---
+title: Video Timeline and Monitoring
+include: _manual/24_video-timeline.html
+part: subchapter
+---
+
+---
+title: Video Timeline Setup
+include: _manual/24_video-timeline/01_setup.html
+part: subchapter
+---
+
+---
+title: Transcoding, Formats &amp; Codecs
+include: _manual/24_video-timeline/02_transcoding_formats_codecs.html
+part: subchapter
+---
+
+---
+title: Workflow &amp; Operations
+include: _manual/24_video-timeline/03_operations.html
+part: subchapter
+---
+
+
+---
+title: Control Surfaces
+part: part
+---
+
+
+---
+title: Controlling Ardour with OSC
+include: _manual/23_using-control-surfaces/01_controlling-ardour-with-osc.html
+exclude: yes
+part: chapter
+---
+
+---
+title: OSC&#58; Controlling Ardour with OSC
+include: _manual/23_using-control-surfaces/01_controlling-ardour-with-osc/01_osc-control.html
+exclude: yes
+part: subchapter
+---
+
+---
+title: OSC&#58; Using the Setup Dialog
+include: _manual/23_using-control-surfaces/01_controlling-ardour-with-osc/02_osc-setup-dialog.html
+exclude: yes
+part: subchapter
+---
+
+---
+title: OSC&#58; Querying Ardour
+include: _manual/23_using-control-surfaces/01_controlling-ardour-with-osc/03_querying-ardour-with-osc.html
+exclude: yes
+part: subchapter
+---
+
+---
+title: OSC&#58; Feedback
+include: _manual/23_using-control-surfaces/01_controlling-ardour-with-osc/04_feedback-in-osc.html
+exclude: yes
+part: subchapter
+---
+
+---
+title: OSC&#58; Feedback and Strip-types Values
+include: _manual/23_using-control-surfaces/01_controlling-ardour-with-osc/05_calculating-feedback-and-strip-types-values.html
+exclude: yes
+part: subchapter
+---
+
+---
+title: OSC&#58; Personal Monitoring Control
+include: _manual/23_using-control-surfaces/01_controlling-ardour-with-osc/06_osc-personal-monitoring.html
+exclude: yes
+part: subchapter
+---
+
+---
+title: OSC&#58; Parameter Types
+include: _manual/23_using-control-surfaces/01_controlling-ardour-with-osc/07_parameter-types-in-osc.html
+exclude: yes
+part: subchapter
+---
+
+---
+title: OSC&#58; Selection and Expansion Considerations
+include: _manual/23_using-control-surfaces/01_controlling-ardour-with-osc/08_selection-considerations-in-osc.html
+exclude: yes
+part: subchapter
+---
+
+---
+title: OSC control for Ardour 4.7 and Prior
+include: _manual/23_using-control-surfaces/01_controlling-ardour-with-osc/09_osc-control-in-ardour-4.7-and-prior.html
+exclude: yes
+part: subchapter
+---
+
+---
+title: Devices using Mackie/Logic Control Protocol
+include: _manual/23_using-control-surfaces/02_devices-using-mackielogic-control-protocol.html
+exclude: yes
+part: chapter
+---
+
+---
+title: Behringer devices in Mackie/Logic Control Mode
+menu_title: Behringer devices
+include: _manual/23_using-control-surfaces/02_devices-using-mackielogic-control-protocol/01_behringer-devices-in-mackielogic-control-mode.html
+exclude: yes
+part: subchapter
+---
+
+---
+title: SSL Nucleus
+include: _manual/23_using-control-surfaces/02_devices-using-mackielogic-control-protocol/02_ssl-nucleus.html
+exclude: yes
+part: subchapter
+---
+
+---
+title: Mackie Control Setup on Linux
+include: _manual/23_using-control-surfaces/02_devices-using-mackielogic-control-protocol/03_mackie-control-setup-on-linux.html
+exclude: yes
+part: subchapter
+---
+
+---
+title: What to do if your Device is not Listed
+menu_title: Unlisted devices
+include: _manual/23_using-control-surfaces/02_devices-using-mackielogic-control-protocol/04_devices-not-listed.html
+exclude: yes
+part: subchapter
+---
+
+---
+title: Working With Extenders
+menu_title: Working With Extenders
+include: _manual/23_using-control-surfaces/02_devices-using-mackielogic-control-protocol/05_working-with-extenders.html
+exclude: yes
+part: subchapter
+---
+
+---
+title: Generic MIDI
+include: generic-midi.html
+part: chapter
+---
+
+---
+title: MIDI Binding Maps
+include: _manual/23_using-control-surfaces/03_midi-binding-maps.html
+exclude: yes
+part: subchapter
+---
+
+---
+title: MIDI Learn
+include: _manual/23_using-control-surfaces/04_midi-learn.html
+exclude: yes
+part: subchapter
+---
+
+---
+title: Working With Encoders in Ardour
+menu_title: Working With Encoders
+include: _manual/23_using-control-surfaces/03_midi-binding-maps/01_working-with-encoders.html
+exclude: yes
+part: subchapter
+---
+
+---
+title: Using the Presonus Faderport
+menu_title: Presonus Faderport
+include: _manual/23_using-control-surfaces/05_Presonus_FaderPort.html
+exclude: yes
+part: chapter
+---
+
+---
+title: Using the Ableton Push 2
+menu_title: Ableton Push 2
+include: _manual/23_using-control-surfaces/06_Ableton_Push2.html
+exclude: yes
+part: chapter
+---
+
+
+---
+title: Scripting
+part: part
+---
+
+
+---
+title: Lua Scripting in Ardour
+include: lua-scripting-in-ardour.html
+part: chapter
+---
+
+---
+title: Lua Scripting
+include: _manual/25_lua-scripting.html
+part: subchapter
+---
+
+---
+title: Scripting Documentation
+include: _manual/25_lua-scripting/01_brain_dump.html
+part: subchapter
+---
+
+---
+title: Class Reference
+include: _manual/25_lua-scripting/02_class_reference.html
+exclude: yes
+part: subchapter
+---
+
+
+---
+title: Appendix
+part: part
+---
+
+
+---
+title: List of Menu Actions
+include: _manual/28_appendix/01_menu-actions-list.html
+exclude: yes
+part: chapter
+---
+
diff --git a/munge b/munge
new file mode 100755 (executable)
index 0000000..dc3d1ac
Binary files /dev/null and b/munge differ
diff --git a/munge.cpp b/munge.cpp
new file mode 100644 (file)
index 0000000..296ad5d
--- /dev/null
+++ b/munge.cpp
@@ -0,0 +1,349 @@
+//
+// Program to massage the master doc file to spit out a bunch of little files
+// for the Ruby build script...
+//
+// by James Hammons
+// (C) 2016 Underground Software
+//
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>          // For mkdir()
+#include <sys/types.h>
+
+
+// Global variables (ZOMG YOU HIDEOUS BASTARD!!)
+char buffer[1024000], keyword[1024], token[1024];
+char title[1024], shortTitle[1024], inclFile[1024], style[1024];
+int level = 0, lastLevel = -1;
+int lineCount = 0, startLine, sectionLineCount;
+int part = 0, chapter = 0, subchapter = 0;
+bool first = true, nomove = false;
+FILE * newFile = NULL;
+char level1File[1024], level2File[1024], level3File[1024], temp[1024], temp2[1024];
+char partFN[1024], chapterFN[1024], scLink[4096];
+
+
+void MakeFilename(char * fn)
+{
+       int l = strlen(fn);
+
+       for(int i=0; i<l; i++)
+       {
+               if (fn[i] == ' ')
+                       fn[i] = '-';
+               else if (fn[i] >= 'A' && fn[i] <= 'Z')
+                       fn[i] |= 0x20;
+               else if (fn[i] >= 'a' && fn[i] <= 'z')
+                       ;
+               else if (fn[i] >= '0' && fn[i] <= '9')
+                       ;
+               else
+                       fn[i] = '_';
+       }
+}
+
+
+//
+// There's probably posix function to do this, if you find it, feel free to
+// nuke this crap
+//
+void CopyFile(char * from, char * to)
+{
+       FILE * fromFile = fopen(from, "r");
+
+       if (fromFile == NULL)
+       {
+               printf("\n\nCould not open file '%s' for reading! Aborting!!\n", from);
+               exit(1);
+       }
+
+       FILE * toFile = fopen(to, "w");
+
+       if (toFile == NULL)
+       {
+               printf("\n\nCould not open file '%s' for writing! Aborting!!\n", to);
+               exit(1);
+       }
+
+       fseek(fromFile, 0, SEEK_END);
+       long length = ftell(fromFile);
+       rewind(fromFile);
+
+       for(long i=0; i<length; i++)
+               fputc(fgetc(fromFile), toFile);
+
+       fclose(toFile);
+       fclose(fromFile);
+}
+
+
+bool ParseHeader(FILE * file)
+{
+       while (true)
+       {
+               // If we hit the EOF before finishing, something went horribly wrong
+               if (feof(file))
+                       break;
+
+               fgets(buffer, 1023999, file);
+               lineCount++;
+
+               // If we're seeing the end of header sentinel, return; we're done.
+               if (strncmp(buffer, "---", 3) == 0)
+                       return true;
+
+               sscanf(buffer, "%[^:]: %[^\n]", keyword, token);
+
+               if (strcmp(keyword, "title") == 0)
+               {
+                       strcpy(title, token);
+               }
+               else if (strcmp(keyword, "part") == 0)
+               {
+                       lastLevel = level;
+                       int len = strlen(token);
+
+                       if (len == 4)
+                               level = 0, part++;
+                       else if (len == 7)
+                               level = 1, chapter++, subchapter = 0;
+                       else if (len == 10)
+                               level = 2, subchapter++;
+                       else
+                               level = -1;  // Something went wrong
+               }
+               else if (strcmp(keyword, "include") == 0)
+               {
+                       strcpy(inclFile, token);
+               }
+               else if (strcmp(keyword, "menu_title") == 0)
+               {
+                       strcpy(shortTitle, token);
+               }
+               else if (strcmp(keyword, "style") == 0)
+               {
+                       strcpy(style, token);
+               }
+               else if (strcmp(keyword, "exclude") == 0)
+               {
+                       // Don't care about the token, just the keyword
+                       nomove = true;
+               }
+               else
+                       printf("Unknown keyword '%s' (token: %s)\n", keyword, token);
+       }
+
+       // If we end up here, something went horribly wrong...
+       return false;
+}
+
+
+int main(int argc, char * argv[])
+{
+       char roman[21][10] = { "0", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII", "XIII", "XIV", "XV", "XVI", "XVII", "XVIII", "XIX", "XX" };
+
+       FILE * master = fopen("master-doc.txt", "r");
+
+       if (master == NULL)
+       {
+               printf("Could not open master doc (master-doc.txt) file!\n");
+               return -1;
+       }
+
+       FILE * toc = fopen("_manual.munge/00_toc.html", "w");
+
+       if (toc == NULL)
+       {
+               printf("Could not open TOC file!\n");
+               fclose(master);
+               return -1;
+       }
+
+       fprintf(toc, "---\n");
+       fprintf(toc, "title: Ardour Table of Contents\n");
+       fprintf(toc, "---\n\n");
+
+       while (!feof(master))
+       {
+               fgets(buffer, 1023999, master);
+               lineCount++;
+
+               // Look for start of file marker
+               if (strncmp(buffer, "---", 3) == 0)
+               {
+                       if (first)
+                               first = false;
+                       else
+                       {
+                               sectionLineCount = lineCount - startLine;
+                               printf(" (%d lines)\n", sectionLineCount);
+                       }
+
+                       // Reset the "short" title, include file & sytle
+                       shortTitle[0] = 0;
+                       inclFile[0] = 0;
+                       style[0] = 0;
+                       nomove = false;
+
+                       if (!ParseHeader(master))
+                       {
+                               printf("Something went horribly wrong with the header parsing! Aborting!\n");
+                               break;
+                       }
+
+                       // We hit the end of our keyword block, now do something
+                       // about it... :-P
+                       if (level == 0)
+                               printf("\nPart %s: ", roman[part]);
+                       else if (level == 1)
+                               printf("\n\tCh. %d: ", chapter);
+                       else if (level == 2)
+                               printf("\t\t");
+
+                       printf("%s", title);
+
+                       if (strlen(inclFile) > 0)
+                               printf(" [%s]", inclFile);
+
+                       startLine = lineCount;
+
+                       // Add appropriate suffix chapter content if needed
+                       if ((lastLevel == 1) && (level == 2))
+                       {
+                               if (newFile != NULL)
+                               {
+                                       fprintf(newFile, "\n{%% children %%}\n\n");
+                               }
+                               else
+                               {
+                                       // If it didn't stream, it was a included file, so append to
+                                       // it directly...
+                                       sprintf(temp2, "%s.html", level2File);
+                                       FILE * tfp = fopen(temp2, "a");
+                                       fprintf(tfp, "\n{%% children %%}\n\n");
+                                       fclose(tfp);
+                               }
+                       }
+
+                       // Close any previously opened files...
+                       if (newFile != NULL)
+                       {
+                               fclose(newFile);
+                               newFile = NULL;
+                       }
+
+                       if (level == 0)
+                       {
+                               // Parts don't have any content...
+                               strcpy(temp, title);
+                               MakeFilename(temp);
+                               sprintf(level1File, "_manual.munge/%02d_%s", part, temp);
+                               mkdir(level1File, 0777);
+
+                               // Set up the "part" level of TOC link
+                               sprintf(partFN, "%s", temp);
+                               fprintf(toc, "<h2>Part %s: %s</h2>\n", roman[part], title);
+
+                               // Make the file expected at this level...
+                               sprintf(temp, "%s.html", level1File);
+                               FILE * tfp = fopen(temp, "w");
+                               fprintf(tfp, "---\n");
+                               fprintf(tfp, "title: %s\n", title);
+
+                               if (strlen(shortTitle) > 0)
+                                       fprintf(tfp, "menu_title: %s\n", shortTitle);
+
+                               fprintf(tfp, "---\n");
+                               fprintf(tfp, "\n{%% children %%}\n\n");
+                               fclose(tfp);
+                       }
+                       else if (level == 1)
+                       {
+                               strcpy(temp, title);
+                               MakeFilename(temp);
+                               sprintf(level2File, "%s/%02d_%s", level1File, chapter, temp);
+                               mkdir(level2File, 0777);
+
+                               // Set up the "chapter" part of the TOC link
+                               sprintf(chapterFN, "%s", temp);
+                               fprintf(toc, "  <p id=chapter>Ch. %d:&nbsp;&nbsp;<a href=\"/%s/%s/\">%s</a></p>\n", chapter, partFN, chapterFN, title);
+
+                               // If there's an include file, copy it...
+                               if (strlen(inclFile) > 0)
+                               {
+                                       sprintf(temp, "include/%s", inclFile);
+                                       sprintf(temp2, "%s.html", level2File);
+                                       CopyFile(temp, temp2);
+                               }
+                               else
+                               {
+                                       // Make the file expected at this level...
+                                       sprintf(temp, "%s.html", level2File);
+                                       newFile = fopen(temp, "w");
+                                       fprintf(newFile, "---\n");
+                                       fprintf(newFile, "title: %s\n", title);
+
+                                       if (strlen(shortTitle) > 0)
+                                               fprintf(newFile, "menu_title: %s\n", shortTitle);
+
+                                       fprintf(newFile, "---\n\n");
+                               }
+                       }
+                       else if (level == 2)
+                       {
+                               strcpy(temp, title);
+                               MakeFilename(temp);
+                               sprintf(level3File, "%s/%02d_%s.html", level2File, subchapter, temp);
+
+                               // Make the file expected at this level...
+
+                               // Make the link
+                               sprintf(scLink, "/%s/%s/%s/", partFN, chapterFN, temp);
+                               fprintf(toc, "    <a id=subchapter href=\"%s\">%s</a><br />\n", scLink, title);
+
+                               // If there's an include file, copy it...
+                               if (strlen(inclFile) > 0)
+                               {
+                                       sprintf(temp, "include/%s", inclFile);
+                                       CopyFile(temp, level3File);
+                               }
+                               else
+                               {
+                                       // Otherwise, stream it out of the master document
+                                       newFile = fopen(level3File, "w");
+                                       fprintf(newFile, "---\n");
+                                       fprintf(newFile, "title: %s\n", title);
+
+                                       if (strlen(shortTitle) > 0)
+                                               fprintf(newFile, "menu_title: %s\n", shortTitle);
+
+                                       if (strlen(style) > 0)
+                                               fprintf(newFile, "style: %s\n", style);
+
+                                       fprintf(newFile, "---\n\n");
+                               }
+                       }
+               }
+               else
+               {
+                       if (((level == 1) || (level == 2)) && (newFile != NULL))
+                               fprintf(newFile, "%s", buffer);
+               }
+
+               // Make sure no spurious garbage signals a false positive
+               buffer[0] = 0;
+       }
+
+       printf("\n\nProcessed %i lines.\n", lineCount);
+
+       fclose(master);
+       fclose(toc);
+
+       if (newFile)
+               fclose(newFile);
+
+       return 0;
+}
+