UNPKG

gibber.core.lib

Version:

small set of core objects and functions for gibber

41 lines (30 loc) 856 B
module.exports = function( Gibber ) { const Pattern = Gibber.Pattern const Triggers = function( __values ) { const values = __values.split('') const pattern = Pattern( ...values ) pattern.isPattern = true pattern.type = 'Triggers' // need to define custom function to use key as value pattern.onrender = function( rendered ) { rendered.addFilter( new Function( 'args', 'ptrn', `let sym = args[ 0 ], velocity = parseInt( sym, 16 ) / 15 if( isNaN( velocity ) ) { velocity = 0 } if( velocity !== 0 ) { ptrn.seq.target.__triggerLoudness = velocity } ptrn.output = { time : Gibberish.Clock.time( ${1/values.length} ), shouldExecute: sym !== '.' ? 1 : 0 } args[0] = ptrn.output return args` )) } return pattern } return Triggers }