Clip

returns: Array

notes {String | Array}

pattern {String}

accentMap {String | Array}

arpegiate {Boolean | Object}

通过这个方法可以创建一个音或者一小段音乐,或者是一小段和弦,可以通过字面量对象的形式来传递参数

var scribble = require('scribbletune');
// 创建一个c4的音阶,并且定义它的节拍
var clip = scribble.clip({
    notes: 'c4',        //音阶
    pattern: 'x________________'    //节拍
});
//渲染生成midi文件
scribble.midi(clip, 'hats.mid');

在钢琴窗中,我们可以看到一共有C0-C10的音区,这些包含了低音区,中音区,高音区,我们可以根据需要来调整数值,C4到C5之间还有D4,E4等

notes: 'c4',
pattern:'x___'

我们通过使用_来表示音的延续,使用-来表示音的断开

notes: 'c4 d4 e4', // Or ['c4',d4', 'e4']
pattern: 'x_x_x'
//可以看作是c4_d4_e4

通过设置accentMap可以告诉Clip当前音阶的强度。这是一个x和 - (连字符)字符串。一个x意味着力度更强,一个-(连字符)意味着力度变弱。

这是你如何使用accentMap。在下面的例子中,我们有一个模式,指示Scribbletune的Clip方法在16个节拍条的每个节拍上创建一个音符。然后,它继续设置一个accentMap参数,该参数指示哪个音符点击更难x,哪个点击更柔和-

var scribble = require('scribbletune');

var clip = scribble.clip({

    notes: 'c3',

    pattern: 'xxxxxxxxxxxxxxxx',

    accentMap: 'x---x-x-x---x-x-'

});

scribble.midi(clip, 'hats.mid');

accentMap也可以由单个音符值设置。您可以传递一组数值来表明当前音的强弱。

使用String.repeat功能,您可以快速将之前的设置重复

var scribble = require('scribbletune');



    var clip = scribble.clip({

        notes: 'c4',

        pattern: 'x'.repeat(16),    //将x重复16次,等价于xxxxxxxxxxxxxxxx

        accentMap: [5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 127, 127, 127]

    });



    scribble.midi(clip);

accentHi {Number} default 127

如果你使用一个字符串来设置一个accentMap,那么这个属性可以让你定义每个x的级别。

accentLow {Number} default 70

如果你使用的字符串设置一个accentMap,那么这个属性可以让你定义每个级别- 。

shuffle (Boolean) default: false

设置此属性将随机将您在Clip方法中设置notes的顺序排序。

sizzle {Boolean}

使音符更具有弹性感

noteLength {String}

恶意通过设置其属性来调节节拍,例如

var scribble = require('scribbletune');
//音符是节拍,四分音符为一排,一拍的长短会根据歌曲来调整


// 16分音符的节拍,也是默认节拍

var clip1 = scribble.clip({

    notes: 'c4',

    pattern: 'x'.repeat(12)

});



// 通过noteLength将默认的16分设置为32分

var clip2 = scribble.clip({

    notes: 'c4',

    pattern: 'x_xxx_x_',

    noteLength: '1/32'

});

scribble.midi(clip1.concat(clip2, 'music.mid'));

arpegiate {Boolean | Object}

将这个属性设置为true时,会自动把音符转换为八分音符

var scribble = require('scribbletune');

var clip = scribble.clip({

    notes: 'c3',

    pattern: 'x_'.repeat(8),

    arpegiate: true

});



scribble.midi(clip);

同时也可以通过设置对象的形式来设置其的节拍与间隔

var scribble = require('scribbletune');

var clip = scribble.clip({

    notes: 'c3',

    pattern: 'x_'.repeat(8),

    arpegiate: {

        distance: 7,

        steps: 11

    }

});

scribble.midi(clip);

scale/modereturns: Array

可以快速的构建notes

  • root {String}
  • scale {String}
  • octave {Number} default: 4
  • addRootFromNextOctave {Boolean} default: true
var scribble = require('scribbletune');

var cMinor = scribble.scale('c minor'); // [ 'c4', 'd4', 'd#4', 'f4', 'g4', 'g#4', 'a#4', 'c5' ]

cMinor = scribble.mode('c minor'); // [ 'c4', 'd4', 'd#4', 'f4', 'g4', 'g#4', 'a#4', 'c5' ]

cMinor = scribble.mode('c aeolian 4'); // [ 'c4', 'd4', 'd#4', 'f4', 'g4', 'g#4', 'a#4', 'c5' ]
// 默认是c4,以上直接获取c4-c5之间的音符

cMinor = scribble.mode('c', 'aeolian', 3); // [ 'c3', 'd3', 'd#3', 'f3', 'g3', 'g#3', 'a#3', 'c4' ]
// 获取c3-c4之间的音符

chord

可以直接通过和弦名来获取和弦

var scribble = require('scribbletune');


var clip = scribble.clip({
    // C和弦 F和弦 G和弦 C和弦,都是大三和弦

    notes: 'CMaj, FMaj, GMaj, CMaj',
    pattern: 'x---'.repeat(4)
});

scribble.midi(clip, 'chords.mid');

以下为钢琴窗中的显示,这种为柱式和弦

另外一个就是可以通过chord来获取单个和弦的值,返回数组

var scribble = require('scribbletune');

var cMajorChord = scribble.chord('CMaj'); // [ 'c4', 'e4', 'g4' ]

通过listChords来获取所有可以用的和弦

var scribble = require('scribbletune');

var availableChords = scribble.listChords(); 
// 列表里的所有和弦

以下是可以用的和弦列表以及名称替代:

  • 6th | Sixth | sixth
  • maj | Maj
  • min | Min | m
  • sus2 | Sus2
  • sus4 | Sus4
  • maj7 | Maj7
  • min7 | Min7
  • dom7 | Dom7 | 7th
  • dim | Dim
  • dim7 | Dim7
  • aug | Aug

results matching ""

    No results matching ""