Appearance
步进
步进器用于按照指定的节奏模式生成时间片段。按照以下方式导入:
ts
import { Stepper } from "zaff";基本用法
初始化步进器时,既可以传入一个配置对象,也可以直接传入一个 Timing:
ts
const stepper = new Stepper({
time: 2333,
bpm: 185,
beats: 4
});
// const timing = Aff.timing(...);
const stepper = new Stepper(timing);在步进器上挂载了一个核心方法 generate(),如果我们想生成 332 的节奏型,则可以这么做:
ts
const it = stepper.generate([3, 3, 2], {
noteValue: 8,
timeEnd: 7777
});第一个参数 pattern 即为期望的节奏型数组,它表示依次按照 3 个音符、3 个音符、2 个音符的模式循环生成时间戳。第二个参数为配置对象,其中 noteValue 属性表示音符值,如 noteValue: 8 表示以 8 分音符为前者的基准,如果缺省则默认取步进器上的 beats 属性值。
这个方法实际上是一个 Generator 函数,使用 for ... of ... 来运行返回的遍历器对象,便可以生成相应的时间片段了:
ts
for (const time of it) {
console.log(Math.floor(time));
}
// 2333, 2819, 3305, 3630, 4116, 4603, 4927...