Gulp plugin for rewriting metadata of NKS (Naitive Kontrol Standard) preset file.
npm install gulp-nks-rewrite-metaGulp plugin for rewriting metadata of NKS(Native Kontrol Standard) preset file.
npm install gulp-nks-rewrite-meta --save-dev
`Usage
using the static data.
`coffeescript
rewrite = require 'gulp-nks-rewrite-meta'gulp.task 'dist', ->
gulp.src ['src/Piano/*/.nksf']
.pipe rewrite
modes: ['Sample-based']
types: [
['Piano/Keys']
['Piano/Keys', 'Electric Piano']
]
.pipe gulp.dest 'dist'
`using the function to provide data.
`coffeescript
rewrite = require 'gulp-nks-rewrite-meta'gulp.task 'dist', ->
gulp.src ['src/Velvet/*/.nksf'], read: true
.pipe rewrite (file, metadata) ->
folder = path.relative 'src/Velvet', path.dirname file.path
# using folder as preset bank
bankchain: ['Velvet', folder, '']
.pipe gulp.dest 'dist'
`using the non-blocking function to provide data.
`coffeescript
rewrite = require 'gulp-nks-rewrite-meta'gulp.task 'dist', ->
gulp.src ['src/*/.nksf'], read: true
.pipe rewrite (file, metadata, done) ->
# create data in non-blocking
nonblockingfunction metadata, (err, data) ->
done err, data
.pipe gulp.dest 'dist'
`API
$3
#### data
Type:
Object or function(file, metadata [,callback])The data or data provider to rewrite for.
##### data.author [optional]
Type:
String##### data.bankchain [optional]
Type:
Array of StringThe length of array should be 3.
##### data.comment [optional]
Type:
String##### data.modes [optional]
Type:
Array of String##### data.name [optional]
Type:
String##### data.types [optional]
Type: 2 dimensional
Array of StringThe length of inner array should be 1 or 2
examle:
[
['Piano/Keys'],
['Piano/Keys', 'Electric Piano']
]
#### function (file, metadata [,callbak])
The functoin to provide data.
##### file
Type: instance of
vinyl file##### metadata
Type:
ObjectThe metadata of source file.
##### callback
Type:
function(err, data)The callback function to support non-blocking data provider.
example metadata of .nksf
`javascript
{
"UUID": "7E256217-47DA-4746-0001-A4656EF12290",
"author": "C.Pitman",
"bankchain": ["Mini V2", "", ""],
"comment": "",
"deviceType": "INST",
"modes": ["Long Release", "Synthetic"],
"name": "poly5",
"types": [
["Synth Pad", "Basic Pad"],
["Synth Pad", "Bright Pad"]
],
"uuid": "",
"vendor": "Arturia"
}
``javascript
{
"author": "",
"bankchain": ["Velvet", "MKII", ""],
"comment": "",
"deviceType": "INST",
"modes": ["Sample-based"],
"name": "69 MKII Spooky Ring Mod",
"types": [
["Piano/Keys"],
["Piano/Keys", "Electric Piano"]
],
"uuid": "b9d0a3da-3603-45b9-b5e9-99207f131991",
"vendor": "AIR Music Technology"
}
``