pxt-common-packages 10.4.4 → 10.4.6
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.
- package/built/common-sim.d.ts +18 -0
- package/built/common-sim.js +285 -0
- package/libs/azureiot/built/debug/binary.js +461 -461
- package/libs/color/built/debug/binary.js +8 -8
- package/libs/{game/docs/reference/scene → color-coded-tilemap/docs/reference/color-coded-tilemap}/get-tile.md +3 -3
- package/libs/color-coded-tilemap/docs/reference/color-coded-tilemap/get-tiles-by-type.md +65 -0
- package/libs/{game/docs/reference/scene → color-coded-tilemap/docs/reference/color-coded-tilemap}/on-hit-tile.md +4 -4
- package/libs/color-coded-tilemap/docs/reference/color-coded-tilemap/place-on-random-tile.md +61 -0
- package/libs/{game/docs/reference/scene → color-coded-tilemap/docs/reference/color-coded-tilemap}/place.md +2 -6
- package/libs/color-coded-tilemap/docs/reference/color-coded-tilemap/set-tile-at.md +61 -0
- package/libs/{game/docs/reference/scene → color-coded-tilemap/docs/reference/color-coded-tilemap}/set-tile-map.md +3 -3
- package/libs/{game/docs/reference/scene → color-coded-tilemap/docs/reference/color-coded-tilemap}/set-tile.md +1 -1
- package/libs/{game/docs/reference/scene → color-coded-tilemap/docs/reference/color-coded-tilemap}/tile-map.md +2 -2
- package/libs/{game/docs/types → color-coded-tilemap/docs/reference/color-coded-tilemap}/tile.md +9 -5
- package/libs/color-coded-tilemap/docs/reference/color-coded-tilemap.md +32 -0
- package/libs/color-coded-tilemap/tilemap.ts +7 -7
- package/libs/color-sensor/built/debug/binary.js +8 -8
- package/libs/controller/built/debug/binary.js +7118 -7118
- package/libs/controller---none/built/debug/binary.js +7098 -7098
- package/libs/datalogger/built/debug/binary.js +63 -63
- package/libs/edge-connector/built/debug/binary.js +8 -8
- package/libs/edge-connector/docs/reference/edge-connector.md +5 -0
- package/libs/esp32/built/debug/binary.js +462 -462
- package/libs/feather/docs/reference/feather.md +11 -0
- package/libs/game/_locales/game-jsdoc-strings.json +1 -0
- package/libs/game/built/debug/binary.js +7037 -7037
- package/libs/game/docs/reference/game/set-game-over-effect.md +47 -0
- package/libs/game/docs/reference/game/set-game-over-message.md +47 -0
- package/libs/game/docs/reference/game/set-game-over-playable.md +48 -0
- package/libs/game/docs/reference/game/set-game-over-scoring-type.md +78 -0
- package/libs/game/docs/reference/game.md +8 -0
- package/libs/game/game.ts +24 -0
- package/libs/game/info.ts +18 -8
- package/libs/lcd/built/debug/binary.js +8 -8
- package/libs/light-spectrum-sensor/built/debug/binary.js +8 -8
- package/libs/lora/built/debug/binary.js +8 -8
- package/libs/matrix-keypad/built/debug/binary.js +8 -8
- package/libs/mixer/docs/reference/music/create-song.md +38 -0
- package/libs/mixer/docs/reference/music/melody-playable.md +30 -0
- package/libs/mixer/docs/reference/music/play.md +132 -0
- package/libs/mixer/docs/reference/music/song-editor.md +92 -0
- package/libs/mixer/docs/reference/music/string-playable.md +41 -0
- package/libs/mixer/docs/reference/music/tone-playable.md +30 -0
- package/libs/mixer/docs/reference/music.md +12 -7
- package/libs/mixer/docs/types/playable.md +76 -0
- package/libs/mixer/instrument.ts +28 -9
- package/libs/mixer/melody.cpp +43 -0
- package/libs/mixer/melody.ts +1 -0
- package/libs/mixer/playable.ts +4 -0
- package/libs/mixer/sequencer.ts +116 -0
- package/libs/mixer/sim/music.ts +102 -0
- package/libs/mqtt/built/debug/binary.js +176 -176
- package/libs/multiplayer/player.ts +1 -0
- package/libs/net/built/debug/binary.js +176 -176
- package/libs/net-game/built/debug/binary.js +8626 -8626
- package/libs/palette/built/debug/binary.js +7036 -7036
- package/libs/pixel/built/debug/binary.js +8 -8
- package/libs/power/built/debug/binary.js +8 -8
- package/libs/proximity/built/debug/binary.js +8 -8
- package/libs/radio/built/debug/binary.js +8 -8
- package/libs/radio-broadcast/built/debug/binary.js +8 -8
- package/libs/rotary-encoder/built/debug/binary.js +8 -8
- package/libs/screen/_locales/screen-jsdoc-strings.json +2 -0
- package/libs/screen/built/debug/binary.js +50 -50
- package/libs/screen/image.cpp +226 -0
- package/libs/screen/image.ts +44 -0
- package/libs/screen/sim/image.ts +240 -0
- package/libs/servo/built/debug/binary.js +8 -8
- package/libs/sprite-scaling/_locales/sprite-scaling-jsdoc-strings.json +18 -1
- package/libs/sprite-scaling/_locales/sprite-scaling-strings.json +1 -0
- package/libs/sprite-scaling/built/debug/binary.js +7036 -7036
- package/libs/sprite-scaling/docs/reference/sprite-scaling.md +23 -0
- package/libs/sprite-scaling/docs/reference/sprites/scaling/scale-by-pixels.md +1 -1
- package/libs/sprite-scaling/docs/reference/sprites/scaling/scale-to-pixels.md +1 -1
- package/libs/sprite-scaling/scaling.ts +24 -0
- package/libs/storyboard/built/debug/binary.js +7036 -7036
- package/package.json +2 -2
package/libs/mixer/sim/music.ts
CHANGED
|
@@ -9,7 +9,109 @@ namespace pxsim.music {
|
|
|
9
9
|
|
|
10
10
|
export function stopPlaying() {
|
|
11
11
|
AudioContextManager.muteAllChannels()
|
|
12
|
+
|
|
13
|
+
if (sequencers) {
|
|
14
|
+
for (const seq of sequencers) {
|
|
15
|
+
seq.sequencer.stop();
|
|
16
|
+
seq.sequencer.dispose();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
12
19
|
}
|
|
13
20
|
|
|
14
21
|
export function forceOutput(mode: number) { }
|
|
22
|
+
|
|
23
|
+
export const SEQUENCER_STOP_MESSAGE = 3243;
|
|
24
|
+
export const SEQUENCER_TICK_MESSAGE = 3244;
|
|
25
|
+
export const SEQUENCER_STATE_CHANGE_MESSAGE = 3245;
|
|
26
|
+
export const SEQUENCER_LOOPED_MESSAGE = 3246;
|
|
27
|
+
|
|
28
|
+
interface SequencerWithId {
|
|
29
|
+
id: number;
|
|
30
|
+
sequencer: Sequencer;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
let sequencers: SequencerWithId[];
|
|
34
|
+
let nextSequencerId = 0;
|
|
35
|
+
|
|
36
|
+
export async function _createSequencer(): Promise<number> {
|
|
37
|
+
if (!sequencers) {
|
|
38
|
+
pxsim.AudioContextManager.onStopAll(() => {
|
|
39
|
+
for (const seq of sequencers) {
|
|
40
|
+
seq.sequencer.stop();
|
|
41
|
+
seq.sequencer.dispose();
|
|
42
|
+
}
|
|
43
|
+
sequencers = [];
|
|
44
|
+
})
|
|
45
|
+
|
|
46
|
+
sequencers = [];
|
|
47
|
+
}
|
|
48
|
+
const res = {
|
|
49
|
+
id: nextSequencerId++,
|
|
50
|
+
sequencer: new Sequencer()
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
sequencers.push(res)
|
|
54
|
+
|
|
55
|
+
await res.sequencer.initAsync();
|
|
56
|
+
res.sequencer.addEventListener("stop", () => {
|
|
57
|
+
board().bus.queue(SEQUENCER_STOP_MESSAGE, this.id);
|
|
58
|
+
});
|
|
59
|
+
res.sequencer.addEventListener("state-change", () => {
|
|
60
|
+
board().bus.queue(SEQUENCER_STATE_CHANGE_MESSAGE, this.id);
|
|
61
|
+
});
|
|
62
|
+
res.sequencer.addEventListener("looped", () => {
|
|
63
|
+
board().bus.queue(SEQUENCER_LOOPED_MESSAGE, this.id);
|
|
64
|
+
});
|
|
65
|
+
res.sequencer.addEventListener("tick", () => {
|
|
66
|
+
board().bus.queue(SEQUENCER_TICK_MESSAGE, this.id);
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
return res.id;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export function _sequencerState(id: number): string {
|
|
74
|
+
return lookupSequencer(id)?.state();
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export function _sequencerCurrentTick(id: number): number {
|
|
78
|
+
return lookupSequencer(id)?.currentTick();
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export function _sequencerPlaySong(id: number, song: RefBuffer, loop: boolean): void {
|
|
82
|
+
const decoded = decodeSong(song.data);
|
|
83
|
+
lookupSequencer(id)?.start(decoded, loop);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export function _sequencerStop(id: number): void {
|
|
87
|
+
lookupSequencer(id)?.stop();
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export function _sequencerSetVolume(id: number, volume: number): void {
|
|
91
|
+
lookupSequencer(id)?.setVolume(volume);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export function _sequencerSetVolumeForAll(volume: number): void {
|
|
95
|
+
for (const seq of sequencers) {
|
|
96
|
+
seq.sequencer.setVolume(volume);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export function _sequencerSetTrackVolume(id: number, trackIndex: number, volume: number): void {
|
|
101
|
+
lookupSequencer(id)?.setTrackVolume(trackIndex, volume);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export function _sequencerSetDrumTrackVolume(id: number, trackIndex: number, drumIndex: number, volume: number): void {
|
|
105
|
+
lookupSequencer(id)?.setDrumTrackVolume(trackIndex, drumIndex, volume);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export function _sequencerDispose(id: number) {
|
|
109
|
+
lookupSequencer(id)?.dispose();
|
|
110
|
+
sequencers = sequencers.filter(s => s.id !== id);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
function lookupSequencer(id: number) {
|
|
114
|
+
for (const seq of sequencers) if (seq.id === id) return seq.sequencer;
|
|
115
|
+
return undefined;
|
|
116
|
+
}
|
|
15
117
|
}
|