1.0.0 • Published 7 years ago

meadowbrook v1.0.0

Weekly downloads
1
License
ISC
Repository
-
Last release
7 years ago

Meadowbrook

Alternative meyda cli

Allows extracting features from a segment of audio and store this information in a json document with large data blocks encoded as base64 strings

Example

meadowbrook horse.mp3 all --o=out.json

Usage

title: meadowbrook
example: meadowbrook [options] <INPUT_PATH> <...FEATURES> [options]
type: object
properties:
  INPUT_PATH:
    title: Audio file to read
    type: string
  FEATURES:
    title: Features to extract
    type: array
    description: >
      List of features to extract seperated by space,
      If 'all' is in the list extract all
    items:
      enum:
        -  all
        -  rms
        -  energy
        -  zcr
        -  amplitudeSpectrum
        -  powerSpectrum
        -  spectralCentroid
        -  spectralFlatness
        -  spectralSlope
        -  spectralRolloff
        -  spectralSpread
        -  spectralSkewness
        -  spectralKurtosis
        -  loudness
        -  perceptualSpread
        -  perceptualSharpness
        -  mfcc
  "--o":
    title: Output path
    description: >
      File to write data too,
      if not specified prints to stdout
    type: string
    example: --o=<outputPath>
  "--bs":
    title: Buffer size
    example: --bs=<bufferSize>
    defaut: 512
    type: number
  "--w":
    title: Windowing function
    example: --w=<windowingFunction>
    defaut: hanning
    enum:
      -  blackman
      -  sine
      -  hanning
      -  hamming
  "--f":
    title: Frames per second
    example: --f=<fps>
    type: number
    description: >
      How many frames of feature data should
      be captured per second of audio
    defaut: 60
  "--format":
    title: Output format
    example: --format=<format>
    description: Structure of output json
    default: array
    enum:
      -  array
      -  object
  "-h":
    title: Print help
    type: boolean

Structure

Json schema for output json file

description: Extracted data output
type: object
properties:
  extracted:
    type: object
    description: Name:data pairs for extracted features
    patternProperties:
      "/^[a-zA-Z]+$/":
        oneOf:
          - type: array
            description: >
              Data separated by channel,
              starting with channel 0 in audio source
            items:
              type: array
              description: >
                frames of extracted audio feature data,
                representation varies
                by feature, check meyda docs
          - type: object
            description: >
              Data separated by channel,
              starting with channel 0 in audio source
            patternProperties:
              "/^[0-9]+$/":
                type: object
                description: >
                  frames of extracted audio feature data,
                  representation varies
                  by feature, check meyda docs
  fps:
    type: number
    description: >
      Number of frames of data extracted for each second of audio
    default: 60
  sampleRate:
    type: number
    description: Sample rate of audio source
    default: 44100
  duration:
    type: number
    description: Length in seconds of audio source
  numberOfChannels:
    type: number
    description: Channels extracted from audio source
    default: 2
  bufferSize:
    type: number
    description: Size of buffer used when extracting
    default: 512
  windowingFunction:
    type: string
    description: Windowing function used when extracting
    default: hanning
  outputFormat:
    description: How collections are organized in this file
    default: array
    enum:
      -  array
      -  object
{
  "description": "Extracted data output",
  "type": "object",
  "properties": {
    "extracted": {
      "type": "object",
      "description": "Name:data pairs for extracted features",
      "patternProperties": {
        "/^[a-zA-Z]+$/": {
          "oneOf": [
            {
              "type": "array",
              "description": "Data separated by channel, starting with channel 0 in audio source\n",
              "items": {
                "type": "array",
                "description": "frames of extracted audio feature data, representation varies by feature, check meyda docs\n"
              }
            },
            {
              "type": "object",
              "description": "Data separated by channel, starting with channel 0 in audio source\n",
              "patternProperties": {
                "/^[0-9]+$/": {
                  "type": "object",
                  "description": "frames of extracted audio feature data, representation varies by feature, check meyda docs\n"
                }
              }
            }
          ]
        }
      }
    },
    "fps": {
      "type": "number",
      "description": "Number of frames of data extracted for each second of audio\n",
      "default": 60
    },
    "sampleRate": {
      "type": "number",
      "description": "Sample rate of audio source",
      "default": 44100
    },
    "duration": {
      "type": "number",
      "description": "Length in seconds of audio source"
    },
    "numberOfChannels": {
      "type": "number",
      "description": "Channels extracted from audio source",
      "default": 2
    },
    "bufferSize": {
      "type": "number",
      "description": "Size of buffer used when extracting",
      "default": 512
    },
    "windowingFunction": {
      "type": "string",
      "description": "Windowing function used when extracting",
      "default": "hanning"
    },
    "outputFormat": {
      "description": "How collections are organized in this file",
      "default": "array",
      "enum": [
        "array",
        "object"
      ]
    }
  }
}