@blibliki/engine 0.1.13 → 0.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -15,7 +15,6 @@ export default class Sequencer extends Module<DummnyInternalModule, ISequencer>
|
|
|
15
15
|
static moduleName: string;
|
|
16
16
|
midiOutput: Output;
|
|
17
17
|
private part;
|
|
18
|
-
private barParts;
|
|
19
18
|
constructor(name: string, props: Partial<ISequencer>);
|
|
20
19
|
get props(): ISequencer;
|
|
21
20
|
set props(value: ISequencer);
|
|
@@ -35,6 +34,5 @@ export default class Sequencer extends Module<DummnyInternalModule, ISequencer>
|
|
|
35
34
|
private updateBarParts;
|
|
36
35
|
private get loopEnd();
|
|
37
36
|
private onPartEvent;
|
|
38
|
-
private onSequenceEvent;
|
|
39
37
|
}
|
|
40
38
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { now, Part
|
|
1
|
+
import { now, Part } from "tone";
|
|
2
2
|
import Module, { DummnyInternalModule } from "./Base";
|
|
3
3
|
import MidiEvent from "../MidiEvent";
|
|
4
4
|
const InitialProps = () => ({
|
|
@@ -10,7 +10,6 @@ export default class Sequencer extends Module {
|
|
|
10
10
|
static moduleName = "Sequencer";
|
|
11
11
|
midiOutput;
|
|
12
12
|
part;
|
|
13
|
-
barParts = [];
|
|
14
13
|
constructor(name, props) {
|
|
15
14
|
super(new DummnyInternalModule(), {
|
|
16
15
|
name,
|
|
@@ -64,9 +63,6 @@ export default class Sequencer extends Module {
|
|
|
64
63
|
this.part = new Part(this.onPartEvent, []);
|
|
65
64
|
this.part.loop = true;
|
|
66
65
|
this.part.loopEnd = this.loopEnd;
|
|
67
|
-
this.sequences.forEach((_, i) => {
|
|
68
|
-
this.part.add(`${i}:0:0`, i);
|
|
69
|
-
});
|
|
70
66
|
}
|
|
71
67
|
adjust() {
|
|
72
68
|
if (!this.part)
|
|
@@ -107,37 +103,23 @@ export default class Sequencer extends Module {
|
|
|
107
103
|
}
|
|
108
104
|
else {
|
|
109
105
|
const index = sequences.length;
|
|
110
|
-
sequences.push({ active: false, time:
|
|
106
|
+
sequences.push({ active: false, time: `${bar}:0:${index}`, notes: [] });
|
|
111
107
|
}
|
|
112
108
|
allSequences[bar] = sequences;
|
|
113
109
|
this.sequences = allSequences;
|
|
114
110
|
this.adjustNumberOfSteps(bar);
|
|
115
111
|
}
|
|
116
112
|
updateBarParts() {
|
|
117
|
-
this.barParts = this.sequences.map((barSeqs, _) => {
|
|
118
|
-
const part = new Part(this.onSequenceEvent, []);
|
|
119
|
-
barSeqs.forEach((seq) => part.add(seq.time, seq));
|
|
120
|
-
return part;
|
|
121
|
-
});
|
|
122
113
|
this.part.clear();
|
|
123
|
-
this.
|
|
124
|
-
this.part.add(
|
|
114
|
+
this.sequences.forEach((barSeqs, i) => {
|
|
115
|
+
barSeqs.forEach((seq) => this.part.add(seq.time, seq));
|
|
125
116
|
});
|
|
126
117
|
this.part.loopEnd = this.loopEnd;
|
|
127
118
|
}
|
|
128
119
|
get loopEnd() {
|
|
129
120
|
return `${this.bars}:0:0`;
|
|
130
121
|
}
|
|
131
|
-
onPartEvent = (time,
|
|
132
|
-
if (bar === null)
|
|
133
|
-
return;
|
|
134
|
-
const part = this.barParts[bar];
|
|
135
|
-
if (!part)
|
|
136
|
-
return;
|
|
137
|
-
part.start(time);
|
|
138
|
-
part.stop(time + Time("1m").toSeconds());
|
|
139
|
-
};
|
|
140
|
-
onSequenceEvent = (time, sequence) => {
|
|
122
|
+
onPartEvent = (time, sequence) => {
|
|
141
123
|
if (!sequence.active)
|
|
142
124
|
return;
|
|
143
125
|
const event = MidiEvent.fromSequence(sequence, time);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sequencer.js","sourceRoot":"","sources":["../../src/Module/Sequencer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"Sequencer.js","sourceRoot":"","sources":["../../src/Module/Sequencer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/Module/Sequencer.ts
CHANGED
|
@@ -27,8 +27,7 @@ export default class Sequencer extends Module<
|
|
|
27
27
|
> {
|
|
28
28
|
static moduleName = "Sequencer";
|
|
29
29
|
midiOutput: Output;
|
|
30
|
-
private part: Part<
|
|
31
|
-
private barParts: Part<ISequence>[] = [];
|
|
30
|
+
private part: Part<ISequence>;
|
|
32
31
|
|
|
33
32
|
constructor(name: string, props: Partial<ISequencer>) {
|
|
34
33
|
super(new DummnyInternalModule(), {
|
|
@@ -93,13 +92,9 @@ export default class Sequencer extends Module<
|
|
|
93
92
|
}
|
|
94
93
|
|
|
95
94
|
private initializePart() {
|
|
96
|
-
this.part = new Part(this.onPartEvent, [] as
|
|
95
|
+
this.part = new Part(this.onPartEvent, [] as ISequence[]);
|
|
97
96
|
this.part.loop = true;
|
|
98
97
|
this.part.loopEnd = this.loopEnd;
|
|
99
|
-
|
|
100
|
-
this.sequences.forEach((_, i) => {
|
|
101
|
-
this.part.add(`${i}:0:0`, i);
|
|
102
|
-
});
|
|
103
98
|
}
|
|
104
99
|
|
|
105
100
|
private adjust() {
|
|
@@ -145,7 +140,7 @@ export default class Sequencer extends Module<
|
|
|
145
140
|
sequences.pop();
|
|
146
141
|
} else {
|
|
147
142
|
const index = sequences.length;
|
|
148
|
-
sequences.push({ active: false, time:
|
|
143
|
+
sequences.push({ active: false, time: `${bar}:0:${index}`, notes: [] });
|
|
149
144
|
}
|
|
150
145
|
allSequences[bar] = sequences;
|
|
151
146
|
this.sequences = allSequences;
|
|
@@ -154,17 +149,12 @@ export default class Sequencer extends Module<
|
|
|
154
149
|
}
|
|
155
150
|
|
|
156
151
|
private updateBarParts() {
|
|
157
|
-
this.
|
|
158
|
-
const part = new Part(this.onSequenceEvent, [] as Array<ISequence>);
|
|
159
|
-
barSeqs.forEach((seq) => part.add(seq.time, seq));
|
|
152
|
+
this.part.clear();
|
|
160
153
|
|
|
161
|
-
|
|
154
|
+
this.sequences.forEach((barSeqs, i) => {
|
|
155
|
+
barSeqs.forEach((seq) => this.part.add(seq.time, seq));
|
|
162
156
|
});
|
|
163
157
|
|
|
164
|
-
this.part.clear();
|
|
165
|
-
this.barParts.forEach((_, bar) => {
|
|
166
|
-
this.part.add(`${bar}:0:0`, bar);
|
|
167
|
-
});
|
|
168
158
|
this.part.loopEnd = this.loopEnd;
|
|
169
159
|
}
|
|
170
160
|
|
|
@@ -172,17 +162,7 @@ export default class Sequencer extends Module<
|
|
|
172
162
|
return `${this.bars}:0:0`;
|
|
173
163
|
}
|
|
174
164
|
|
|
175
|
-
private onPartEvent = (time: number,
|
|
176
|
-
if (bar === null) return;
|
|
177
|
-
|
|
178
|
-
const part = this.barParts[bar];
|
|
179
|
-
if (!part) return;
|
|
180
|
-
|
|
181
|
-
part.start(time);
|
|
182
|
-
part.stop(time + Time("1m").toSeconds());
|
|
183
|
-
};
|
|
184
|
-
|
|
185
|
-
private onSequenceEvent = (time: number, sequence: ISequence) => {
|
|
165
|
+
private onPartEvent = (time: number, sequence: ISequence) => {
|
|
186
166
|
if (!sequence.active) return;
|
|
187
167
|
|
|
188
168
|
const event = MidiEvent.fromSequence(sequence, time);
|