Skip to content

Latest commit

 

History

History
164 lines (150 loc) · 6.84 KB

configuration.md

File metadata and controls

164 lines (150 loc) · 6.84 KB

stratum/configuration

For more insights, run stratum-app with the -r, --reload flag :

$ stratum "dev" --reload # enable live reloading of stratum.config.dev.json

{
  "fps": 60,                          # stratum main loop framerate
  "ledsLength": 90,                   # number of led on a strip
  "white": [255, 200, 150],           # color used as white

  "timer": {
    "timeline": [                     # array of animations 
      "cave", "earth", "rain"         # can be as long as wanted
    ],
    "scrollIncrement": 1,             # scroll speed in LED/frame 
    "minimumInterval": 10000          # delay between to scroll in ms
  },

  "leap": { 
    "mockHandEasing": 0.09            # easing value of the leap mock hand
  },

  "sound": {
    "udp": {
      "local": "0.0.0.0",             # local IP for the UDP server. This should be "0.0.0.0"
      "remote": "127.0.0.1",          # remote IP to connect to
      "port": 2222,                   # remote port to connect to
      "reconnection": {
        "delay": 10000,               # delay between to reconnection attempts when connection lost
        "attempts" : 30               # number of max reconnection attempts
      }
    },
    "playInterval": 10000,            # delay between to `/play` messages
    "floatDecimals" : 3,              # number of float decimals for `OSC float` message
    "mixer": [0, 1]                   # tracks masters range (from 0 to 1)
  },

  "animations": {
    "separator": {             
      "color": [255, 0, 0],           # [R,G,B] color
      "height": 1                     # height in LED
    },

    "cave": {
      "color": [255, 200, 220],       # [R,G,B] color
      "camera": { 
        "speed": -0.003               # speed of the camera (negative value invert the cam direction)
      },  
      "noise": {
        "resolution": 0.2,            # resolution of the perlin noise used to simulate the cave
        "zoff": [1, -0.25]            # min and max noise z offset
      },
      "sound": {
        "name": {
          "on": "/cave-on",           # name of the OSC message controlling the noteOn event
          "off": "/cave-off",         # name of the OSC message controlling the noteOff event
          "volume": "/cave-1"         # name of the OSC message controlling the sfx volume
        },
        "thresholdZ": 0.3,            # normalized height of the noteChange leapmotion trigger
        "mod": [0, 0.5],              # volume range (from 0 to 1)
        "easing": 0.09,               # easing value of the in/out volume
        "notes": [53, 57, 60]         # sequence of midi notes played when noteChange fires
      }
    },

    "earth": {
      "camera": { 
        "speed": -0.008               # speed of the camera (negative value invert the cam direction)
      },
      "noise": {
        "resolution": 0.1,            # resolution of the perlin noise used to simulate the terrain
        "zoff": [-0.25, 0.5]          # min and max noise z offset
      },
      "sounds": [
        {
          "name": "/earth-1",         # name of the OSC message controlling the Z sfx
          "mod": [0, 0.5],            # volume range (from 0 to 1) of the Z sfx
          "easing": 0.09              # easing value of the in/out volume
        },
        {
          "name": "/earth-2",         # name of the OSC message controlling the fill sfx
          "mod": [0.8, 0.8]           # volume range (fomr 0 to 1) of the Z sfx
        }
      ]
    },

    "rain": {
      "color": [255, 200, 220],       # [R,G,B] color of the rain drops
      "ripple": {
        "enable": true,               # enable the ripple effect when a drop hits the floor
        "color": [12, 10, 7],         # [R,G,B] color of the ripples
        "triggerZ": [-2, -10]         # height range of the ripple event trigger
      },
      "speedVariationFactor" : [0.5, 1.5], # range of the random speed offset of a specific rain drop
      "particlesLength": [3, 80],     # range of the rain drops length
      "particle": {
        "trailLength": [1, 50],       # trail length range of the rain drops
        "maxSpeed": [0.1, 2],         # speed range of the rain drops
        "acceleration": [0, 0, -0.01] # vec3 controlling the direction of the rain drops
      },
      "sound": {
        "name": "/rain",              # name of the OSC message controlling the rain sfx
        "notes": [65, 76, 72, 59],    # array of midi notes randomly played for the rain sfx
        "velocity": [1, 127],         # velocity range of the rain sfx midi notes
        "duration": [10, 100]         # duration range of the rain sfx midi notes
      }
    },

    "storm": {
      "colors": [                     # array of [R,G,B] strikes colors
        [255, 200, 220],
        [255, 255, 255],
        [255, 200, 150]
      ],
      "delay": [0.1, 2],              # delay range between two strikes
      "duration": [0.1, 0.5],         # duration range of a specific strike
      "maxStrikesLength": 2,          # number of concurrent strikes
      "sky": {
        "enable": true,               # enable the sky layer
        "opacity": 1,                 # control the opacity of the sky layer
        "resolution": 0.1,            # resolution of the perlin noise used to simulate the sky
        "blinkDelay": [0, 5],         # delay range in seconds between to sky blink
        "blinkDuration": [0.1, 0.3],  # duration range in seconds of a blink
        "contrast": 3,                # exponent for the perlin contrast eq
        "displayThreshold": 2.58      # threshold above which the sky is allowed to control a specific LED
      },
      "sound": {
        "name": "/storm",             # name of the OSC message controlling the strike sfx
        "note": 65,                   # midi note played by the strike sfx
        "velocity": 127               # velocity of the strike sfx midi note
      }
    },

    "wind": {
      "particlesLength": [3, 100],    # range of wind particles length
      "amplitude": [10, 10],          # [x,y] amp coef of the sine waves
      "particle": { 
        "trailLength": 3,             # trail length range of the wind particles
        "maxSpeed": 0.1,              # max speed of the wind particles
        "acceleration": [0.01, 0, 0]  # vec3 controlling the direction of the wind particles
      },
      "sounds": [
        {
          "name": "/wind-1",          # name of the OSC message controlling the particles length sfx
          "mod": [0, 0.01]            # sfx volume range
        },
        {
          "name": "/wind-2",          # name of the OSC message controlling the particles height sfx 
          "mod": [0, 0.1]             # sfx volume range
        }
      ]
    }
  }
}

Note: config.sound.udp.local should always be 0.0.0.0.