UNPKG

gulp-nks-replace-mapping

Version:

Gulp plugin for replacing mapping chunk of NKSF file.

226 lines (200 loc) 4.61 kB
## gulp-nks-replace-mapping Gulp plugin for replacing the mapping chunk of NKSF file. ## Installation ``` npm install gulp-nks-replace-mapping --save-dev ``` ## Usage print mapping. ```javascript const replace = require('gulp-nks-replace-mapping'), { src, dest } = require('gulp'), beautify = require('js-beautify') function printMapping() { return src('src/**/*.nksf') .pipe(replace((file, mapping) => { console.log(beautify(JSON.stringify(mapping), { indent_size: 2 })) return undefined })) } ``` use exists template .nksf file as mapping ```javascript const replace = require('gulp-nks-replace-mapping') { src, dest } = require('gulp') function replaceMapping() { return src('src/Spier/**/*.nksf') .pipe(replace('Spire template.nksf', { type: 'NKSF' })) .pipe(dest('dist/Spire')) } ``` edit original mapping ```javascript const replace = require('gulp-nks-replace-mapping') { src, dest } = require('gulp') function swapPage1and2() { return src('src/**/*.nksf') .pipe(replace((file, mapping) => { const page1 = mapping.ni8[0] const page2 = mapping.ni8[1] mapping.ni8[0] = page2 mapping.ni8[1] = page1 return mapping }, { type: 'OBJECT' })) .pipe(dest('dist')) } ``` ## API ### replace(data [,options]) #### options [optional] Type: `Object` Defalut: {type: 'NKSF'} ##### options.type [optional] Type: `String`, Default: 'NKSF' ###### 'NKSF' The data arg should specify NKSF file path or function to provide NKSF file path. ###### 'JSON' The data arg should specify JSON file path or function to provide JSON file path. ###### 'OBJECT' The data arg should specify mapping object or function to provide mapping object. #### data Type: `String` or `Object` or `function(file, mapping [,callback])` The replacement source file path or mapping object or function. #### function (file, mapping [,callbak]) The function to provide file path or mapping object. ##### file Type: `vinyl` file ##### mapping Type: `Object` The mapping object of source file. ##### callback Type: `function(err, data)` The callback function to support non-blocking function. example mapping of .nksf ```javascript { "ni8": [ [{ "autoname": false, "id": 0, "name": "Level", "section": "Master", "vflag": false }, { "autoname": false, "id": 1, "name": "Tune", "vflag": false }, { "autoname": false, "id": 18, "name": "VCF Freq", "section": "Param", "vflag": false }, { "autoname": false, "id": 19, "name": "VCF Resonance", "vflag": false }, { "autoname": false, "id": 20, "name": "Lfo Speed", "vflag": false }, { "autoname": false, "id": 21, "name": "Vibrato Depth", "vflag": false }, { "autoname": false, "id": 22, "name": "VCF FM2", "vflag": false }, { "autoname": false, "id": 23, "name": "Env1 Decay", "vflag": false }], [{ "autoname": false, "id": 24, "name": "Left Reverb", "section": "Param", "vflag": false }, { "autoname": false, "id": 25, "name": "Right Reverb", "vflag": false }, { "autoname": false, "id": 26, "name": "Chorus Dry/Wet", "section": "FX", "vflag": false }, { "autoname": false, "id": 27, "name": "Delay Dry/Wet", "vflag": false }, { "autoname": false, "id": 28, "name": "Env2 Attack", "section": "Env", "vflag": false }, { "autoname": false, "id": 29, "name": "Width Osc1", "vflag": false }, { "autoname": false, "id": 30, "name": "Audio2 Vca", "vflag": false }, { "autoname": false, "id": 31, "name": "Env2 Release", "vflag": false }], [{ "autoname": false, "id": 32, "name": "Env1 Attack", "section": "Env", "vflag": false }, { "autoname": false, "id": 33, "name": "Env1 Decay", "vflag": false }, { "autoname": false, "id": 34, "name": "Env1 Sustain", "vflag": false }, { "autoname": false, "id": 35, "name": "Env1 Release", "vflag": false }, { "autoname": true, "vflag": false }, { "autoname": true, "vflag": false }, { "autoname": true, "vflag": false }, { "autoname": true, "vflag": false }] ] } ```