Musicmaster.conf.rb

From MusicMaster

Jump to: navigation, search

MusicMaster configuration file: musicmaster.conf.rb

This file configures MusicMaster. Parameters defined there are common to all MusicMaster commands.

The syntax of this file is the same as the projects configuration files. See WritingRecordConf if you are not familiar with it.

[edit] Where does MusicMaster look for this file ?

MusicMaster will look for this file in the following places (ordered):

  1. The environment variable MUSICMASTER_CONF_PATH: storing the full path to the file name
  2. The installed MusicMaster directory: containing a file named musicmaster.conf.rb
  3. The current directory: containing a file named musicmaster.conf.rb

[edit] Structure

The MusicMaster configuration file contains the following attributes:

  • WSKCmdLine: Path to the WaveSwissKnife command line. Example: :WSKCmdLine => "ruby /path/to/WSK/bin/WSK.rb" or :WSKCmdLine => "WSK"
  • Directories: Section defining all directories where MusicMaster stores files. this section contains the following attributes:
    • Record: Directory to record files to. Example: :Record => "MusicMaster/Record"
    • Wave: Directory to store static audio files to. Example: :Wave => "MusicMaster/Wave"
    • AnalyzeRecord: Directory to store analysis results of recorded files to. Example: :AnalyzeRecord => "MusicMaster/AnalyzeRecord"
    • Clean: Directory to clean files to. Example: :Clean => "MusicMaster/Clean"
    • Calibrate: Directory to calibrate files to. Example: :Calibrate => "MusicMaster/Calibrate"
    • ProcessWave: Directory to process static audio files to. Example: :ProcessWave => "MusicMaster/Process/Wave"
    • ProcessRecord: Directory to process recorded files to. Example: :ProcessRecord => "MusicMaster/Process/Record"
    • Mix: Directory to mix files to. Example: :Mix => "MusicMaster/Mix"
    • FinalMix: Directory storing links to final mix files. Example: :FinalMix => "MusicMaster/Mix/Final"
    • Deliver: Directory to deliver files to. Example: :Deliver => "MusicMaster/Deliver"
  • Record: Section configuring the way the Record command works. This section contains the following attributes:
    • RecordedFileGetter: Ruby code giving access to the next recorded file. Currently this value needs some Ruby code understanding. See the example to better understand its usage.
  • Clean: Section configuring the way the Clean command works. This section contains the following attributes:
    • MarginSilenceThresholds: Margin to add to measured silence thresholds. This is a floating numeral, representing a fraction of the maximal signal amplitude. Example: :MarginSilenceThresholds => 0.1 will add 10% margin.
    • Attack: Attack duration applied to noise gates. This is a string representing a number of samples, or seconds. Example: :Attack => "0.1s"
    • Release: Release duration applied to noise gates. This is a string representing a number of samples, or seconds. Example: :Release => "0.1s"
    • SilenceMin: Minimal duration used to identify silent parts during to noise gates. This is a string representing a number of samples, or seconds. Example: :SilenceMin => "1s"
  • Formats: Section configuring delivery formats. Each attribute name of this section is a string containing the format's name. Each corresponding value is a section configuring this particuliar format.
    • Wave: Section configuring the Wave format:
      • SRCCmdLine: Path to the SSRC tool executable.

[edit] Example

{

  # Command line to run WSK tool
  :WSKCmdLine => 'WSK.rb',

  # Directories used
  :Directories => {

    # Directory to record files to
    :Record => 'MusicMaster/Record',

    # Directory to store static audio files to
    :Wave => 'MusicMaster/Wave',

    # Directory to store analysis results of recorded files to
    :AnalyzeRecord => 'MusicMaster/AnalyzeRecord',

    # Directory to clean files to
    :Clean => 'MusicMaster/Clean',

    # Directory to calibrate files to
    :Calibrate => 'MusicMaster/Calibrate',

    # Directory to process static audio files to
    :ProcessWave => 'MusicMaster/Process/Wave',

    # Directory to process recorded files to
    :ProcessRecord => 'MusicMaster/Process/Record',

    # Directory to mix files to
    :Mix => 'MusicMaster/Mix',

    # Directory storing links to final mix files
    :FinalMix => 'MusicMaster/Mix/Final',

    # Directory to deliver files to
    :Deliver => 'MusicMaster/Deliver'

  },

  # Record options
  :Record => {

    # Method returning the name of the next recorded file.
    # Files returned from this proc will be moved to the Record directory of MusicMaster.
    # Don't forget to make a copy first if you want to keep them in the original location also.
    :RecordedFileGetter => Proc.new do
      next `ls -rt /path/to/recorded/files/*.wav | tail -1 | head -1`.chomp
    end

  },

  # Options used when cleaning recorded files
  :Clean => {

    # Percentage of values added as a margin of the silence thresholds (arbitrary value)
    # A value of 0.1 means that if the silence recording has thresholds from X to Y values, then we consider the silence thresholds to be from X-0.1*MaxValue to Y+0.1*MaxValue, MaxValue being the maximal value for the audio bit depth.
    :MarginSilenceThresholds => 0.1,

    # Durations used for noise gates
    # !!! Attack + Release should be < SilenceMin !!!
    :Attack => '0.1s',
    :Release => '0.1s',
    :SilenceMin => '1s'

  },

  # Options used by delivery formats
  :Formats => {

    'Wave' => {
      # Command line to run Sample Rate Converter tool
      :SRCCmdLine => '/path/to/ssrc/ssrc.exe'
    }

  }

}
Personal tools

 MusicMaster Links

Home page
Download v1.0.1 Beta - 27 Aug 2013
User Guide
Bugs tracker
Features tracker
ChangeLog
Forum
BSD License
Donate

 Developer Links

Developer Guide
Source Code
Source Doc.

 Muriel Salvan

Muriel's page
X-Aeon Solutions
Muriel's blog
Muriel tweets
File:T_EMail.png Contact Muriel

 MusicMaster Pages

SourceForge
RubyGems
GitHub
RubyForge