reaper-osc 0.3.0 → 0.4.0
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/dist/Handlers.js +4 -4
- package/dist/Messages.d.ts +22 -14
- package/dist/Messages.js +13 -36
- package/dist/Messages.js.map +1 -1
- package/dist/Reaper.js +2 -3
- package/dist/Reaper.js.map +1 -1
- package/dist/Transport.d.ts +57 -0
- package/dist/Transport.js +109 -1
- package/dist/Transport.js.map +1 -1
- package/package.json +1 -1
package/dist/Handlers.js
CHANGED
|
@@ -10,8 +10,8 @@ class TrackMessageHandler {
|
|
|
10
10
|
this.trackSelector = trackSelector;
|
|
11
11
|
}
|
|
12
12
|
handle(message) {
|
|
13
|
-
if (message.addressParts[
|
|
14
|
-
const trackNumber = parseInt(message.addressParts[
|
|
13
|
+
if (message.addressParts[0] === 'track') {
|
|
14
|
+
const trackNumber = parseInt(message.addressParts[1]);
|
|
15
15
|
// If NaN, probably means that it's a message for the selected track - ignore
|
|
16
16
|
if (isNaN(trackNumber)) {
|
|
17
17
|
return false;
|
|
@@ -41,8 +41,8 @@ class TrackFxMessageHandler {
|
|
|
41
41
|
this.fxSelector = fxSelector;
|
|
42
42
|
}
|
|
43
43
|
handle(message) {
|
|
44
|
-
if (message.addressParts[
|
|
45
|
-
const fxNumber = parseInt(message.addressParts[
|
|
44
|
+
if (message.addressParts[0] === 'track' && message.addressParts[2] === 'fx') {
|
|
45
|
+
const fxNumber = parseInt(message.addressParts[3]);
|
|
46
46
|
if (isNaN(fxNumber)) {
|
|
47
47
|
throw new Error('Expected an integer');
|
|
48
48
|
}
|
package/dist/Messages.d.ts
CHANGED
|
@@ -27,28 +27,36 @@ export declare enum OscArgumentType {
|
|
|
27
27
|
COLOR = "r",
|
|
28
28
|
MIDI = "m"
|
|
29
29
|
}
|
|
30
|
-
export
|
|
30
|
+
export interface OscArgument<T> {
|
|
31
31
|
readonly type: OscArgumentType;
|
|
32
|
-
|
|
33
|
-
constructor(type: OscArgumentType, value: T);
|
|
32
|
+
value: T;
|
|
34
33
|
}
|
|
35
|
-
export declare
|
|
36
|
-
|
|
34
|
+
export declare type SomeOscArgument = StringArgument | IntArgument | FloatArgument;
|
|
35
|
+
export interface StringArgument extends OscArgument<string> {
|
|
36
|
+
type: OscArgumentType.STRING;
|
|
37
|
+
readonly value: string;
|
|
37
38
|
}
|
|
38
|
-
export
|
|
39
|
-
|
|
39
|
+
export interface IntArgument extends OscArgument<number> {
|
|
40
|
+
type: OscArgumentType.INT;
|
|
41
|
+
readonly value: number;
|
|
40
42
|
}
|
|
41
|
-
export
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
export declare class FloatArgument extends OscArgument<number> {
|
|
45
|
-
constructor(value: number);
|
|
43
|
+
export interface FloatArgument extends OscArgument<number> {
|
|
44
|
+
type: OscArgumentType.FLOAT;
|
|
45
|
+
readonly value: number;
|
|
46
46
|
}
|
|
47
|
+
export declare const StringArgument: (value: string) => StringArgument;
|
|
48
|
+
export declare const IntArgument: (value: number) => IntArgument;
|
|
49
|
+
export declare const FloatArgument: (value: number) => FloatArgument;
|
|
50
|
+
export declare const BoolArgument: (value: boolean) => IntArgument;
|
|
51
|
+
export declare type RawOscMessage = {
|
|
52
|
+
readonly address: string;
|
|
53
|
+
readonly args?: SomeOscArgument[];
|
|
54
|
+
};
|
|
47
55
|
export declare class OscMessage {
|
|
48
56
|
readonly address: string;
|
|
49
57
|
readonly addressParts: string[];
|
|
50
|
-
readonly args:
|
|
51
|
-
constructor(address: string, args?:
|
|
58
|
+
readonly args: SomeOscArgument[];
|
|
59
|
+
constructor(address: string, args?: SomeOscArgument[]);
|
|
52
60
|
}
|
|
53
61
|
export declare class StringMessage extends OscMessage {
|
|
54
62
|
constructor(address: string, value: string);
|
package/dist/Messages.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FloatMessage = exports.IntegerMessage = exports.ToggleMessage = exports.ActionMessage = exports.BooleanMessage = exports.StringMessage = exports.OscMessage = exports.
|
|
3
|
+
exports.FloatMessage = exports.IntegerMessage = exports.ToggleMessage = exports.ActionMessage = exports.BooleanMessage = exports.StringMessage = exports.OscMessage = exports.BoolArgument = exports.FloatArgument = exports.IntArgument = exports.StringArgument = exports.OscArgumentType = void 0;
|
|
4
4
|
var OscArgumentType;
|
|
5
5
|
(function (OscArgumentType) {
|
|
6
6
|
/** 32-bit Integer */
|
|
@@ -28,54 +28,31 @@ var OscArgumentType;
|
|
|
28
28
|
OscArgumentType["COLOR"] = "r";
|
|
29
29
|
OscArgumentType["MIDI"] = "m";
|
|
30
30
|
})(OscArgumentType = exports.OscArgumentType || (exports.OscArgumentType = {}));
|
|
31
|
-
|
|
32
|
-
constructor(type, value) {
|
|
33
|
-
this.type = type;
|
|
34
|
-
this.value = value;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
exports.OscArgument = OscArgument;
|
|
38
|
-
class StringArgument extends OscArgument {
|
|
39
|
-
constructor(value) {
|
|
40
|
-
super(OscArgumentType.STRING, value);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
31
|
+
const StringArgument = (value) => ({ type: OscArgumentType.STRING, value: value });
|
|
43
32
|
exports.StringArgument = StringArgument;
|
|
44
|
-
|
|
45
|
-
constructor(value) {
|
|
46
|
-
super(OscArgumentType.INT, value);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
33
|
+
const IntArgument = (value) => ({ type: OscArgumentType.INT, value: value });
|
|
49
34
|
exports.IntArgument = IntArgument;
|
|
50
|
-
|
|
51
|
-
constructor(value) {
|
|
52
|
-
super(value ? 1 : 0);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
exports.BoolArgument = BoolArgument;
|
|
56
|
-
class FloatArgument extends OscArgument {
|
|
57
|
-
constructor(value) {
|
|
58
|
-
super(OscArgumentType.FLOAT, value);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
35
|
+
const FloatArgument = (value) => ({ type: OscArgumentType.FLOAT, value: value });
|
|
61
36
|
exports.FloatArgument = FloatArgument;
|
|
37
|
+
const BoolArgument = (value) => ({ type: OscArgumentType.INT, value: value ? 1 : 0 });
|
|
38
|
+
exports.BoolArgument = BoolArgument;
|
|
62
39
|
class OscMessage {
|
|
63
40
|
constructor(address, args) {
|
|
64
41
|
this.address = address;
|
|
65
42
|
this.args = args !== null && args !== void 0 ? args : [];
|
|
66
|
-
this.addressParts = address.split('/');
|
|
43
|
+
this.addressParts = address.split('/').slice(1);
|
|
67
44
|
}
|
|
68
45
|
}
|
|
69
46
|
exports.OscMessage = OscMessage;
|
|
70
47
|
class StringMessage extends OscMessage {
|
|
71
48
|
constructor(address, value) {
|
|
72
|
-
super(address, [
|
|
49
|
+
super(address, [exports.StringArgument(value)]);
|
|
73
50
|
}
|
|
74
51
|
}
|
|
75
52
|
exports.StringMessage = StringMessage;
|
|
76
53
|
class BooleanMessage extends OscMessage {
|
|
77
54
|
constructor(address, value) {
|
|
78
|
-
const args = [
|
|
55
|
+
const args = [exports.BoolArgument(value)];
|
|
79
56
|
super(address, args);
|
|
80
57
|
}
|
|
81
58
|
}
|
|
@@ -85,9 +62,9 @@ class ActionMessage extends OscMessage {
|
|
|
85
62
|
if (typeof commandId === 'number') {
|
|
86
63
|
commandId = commandId.toString();
|
|
87
64
|
}
|
|
88
|
-
const args = [
|
|
65
|
+
const args = [exports.StringArgument(commandId)];
|
|
89
66
|
if (value !== null) {
|
|
90
|
-
args.push(
|
|
67
|
+
args.push(exports.FloatArgument(value));
|
|
91
68
|
}
|
|
92
69
|
super('/action/str', args);
|
|
93
70
|
}
|
|
@@ -101,14 +78,14 @@ class ToggleMessage extends OscMessage {
|
|
|
101
78
|
exports.ToggleMessage = ToggleMessage;
|
|
102
79
|
class IntegerMessage extends OscMessage {
|
|
103
80
|
constructor(address, value) {
|
|
104
|
-
const args = [
|
|
81
|
+
const args = [exports.IntArgument(value)];
|
|
105
82
|
super(address, args);
|
|
106
83
|
}
|
|
107
84
|
}
|
|
108
85
|
exports.IntegerMessage = IntegerMessage;
|
|
109
86
|
class FloatMessage extends OscMessage {
|
|
110
87
|
constructor(address, value) {
|
|
111
|
-
const args = [
|
|
88
|
+
const args = [exports.FloatArgument(value)];
|
|
112
89
|
super(address, args);
|
|
113
90
|
}
|
|
114
91
|
}
|
package/dist/Messages.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Messages.js","sourceRoot":"","sources":["../src/Messages.ts"],"names":[],"mappings":";;;AAIA,IAAY,eAyBX;AAzBD,WAAY,eAAe;IACzB,qBAAqB;IACrB,4BAAS,CAAA;IACT,qBAAqB;IACrB,6BAAU,CAAA;IACV,4BAA4B;IAC5B,8BAAW,CAAA;IACX,4BAA4B;IAC5B,+BAAY,CAAA;IACZ,aAAa;IACb,+BAAY,CAAA;IACZ,uBAAuB;IACvB,6BAAU,CAAA;IACV,kBAAkB;IAClB,6BAAU,CAAA;IACV,wDAAwD;IACxD,6BAAU,CAAA;IACV,yDAAyD;IACzD,8BAAW,CAAA;IACX,wDAAwD;IACxD,6BAAU,CAAA;IACV,6FAA6F;IAC7F,gCAAa,CAAA;IACb,8BAAW,CAAA;IACX,6BAAU,CAAA;AACZ,CAAC,EAzBW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAyB1B;
|
|
1
|
+
{"version":3,"file":"Messages.js","sourceRoot":"","sources":["../src/Messages.ts"],"names":[],"mappings":"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"}
|
package/dist/Reaper.js
CHANGED
|
@@ -180,9 +180,8 @@ let Reaper = class Reaper {
|
|
|
180
180
|
this._osc.on('error', (err) => {
|
|
181
181
|
this._log('error', 'OSC error received', err);
|
|
182
182
|
});
|
|
183
|
-
this._osc.on('message', (
|
|
184
|
-
|
|
185
|
-
message = new Messages_1.OscMessage(message.address, message.args);
|
|
183
|
+
this._osc.on('message', (rawMessage) => {
|
|
184
|
+
const message = new Messages_1.OscMessage(rawMessage.address, rawMessage.args);
|
|
186
185
|
let handled = false;
|
|
187
186
|
for (const handler of this._handlers) {
|
|
188
187
|
if (handler.handle(message)) {
|
package/dist/Reaper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Reaper.js","sourceRoot":"","sources":["../src/Reaper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;GAGG;AACH,
|
|
1
|
+
{"version":3,"file":"Reaper.js","sourceRoot":"","sources":["../src/Reaper.ts"],"names":[],"mappings":"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"}
|
package/dist/Transport.d.ts
CHANGED
|
@@ -6,18 +6,25 @@ import { INotifyPropertyChanged } from './Notify';
|
|
|
6
6
|
import { ISendOscMessage, OscMessage } from './Messages';
|
|
7
7
|
/** The Reaper transport */
|
|
8
8
|
export declare class Transport implements INotifyPropertyChanged {
|
|
9
|
+
private _beat;
|
|
10
|
+
private _frames;
|
|
9
11
|
private _isFastForwarding;
|
|
10
12
|
private _isPlaying;
|
|
11
13
|
private _isRecording;
|
|
12
14
|
private _isRepeatEnabled;
|
|
13
15
|
private _isRewinding;
|
|
14
16
|
private _isStopped;
|
|
17
|
+
private _time;
|
|
15
18
|
private readonly _handlers;
|
|
16
19
|
private readonly _sendOscMessage;
|
|
17
20
|
/**
|
|
18
21
|
* @param sendOscMessage A callback used to send OSC messages to Reaper
|
|
19
22
|
*/
|
|
20
23
|
constructor(sendOscMessage: ISendOscMessage);
|
|
24
|
+
/** Indicates the current transport beat in format mm.bb.xx */
|
|
25
|
+
get beat(): string;
|
|
26
|
+
/** Indicates the current transport from in format h:m:s:f */
|
|
27
|
+
get frames(): string;
|
|
21
28
|
/** Indicates whether playback is active */
|
|
22
29
|
get isPlaying(): boolean;
|
|
23
30
|
/** Indicates whether playback is stopped */
|
|
@@ -30,6 +37,27 @@ export declare class Transport implements INotifyPropertyChanged {
|
|
|
30
37
|
get isFastForwarding(): boolean;
|
|
31
38
|
/** Indicates whether repeat is enabled */
|
|
32
39
|
get isRepeatEnabled(): boolean;
|
|
40
|
+
/** Indicates the current transport time in seconds */
|
|
41
|
+
get time(): number;
|
|
42
|
+
/** Jumps to the specified beat (absolute)
|
|
43
|
+
* @param beat The beat to jump to
|
|
44
|
+
*/
|
|
45
|
+
jumpToBeat(beat: Beat): void;
|
|
46
|
+
/** Jumps to the specified frame (absolute)
|
|
47
|
+
* @param frame Frame to jump to (in format h:m:s:f). Values in an invalid format will be ignored by Reaper
|
|
48
|
+
*/
|
|
49
|
+
jumpToFrame(frame: string): void;
|
|
50
|
+
/** Jumps to the specified time in seconds (absolute)
|
|
51
|
+
* @param time The time to jump to (in seconds). If this value is negative, Reaper will jump to 0
|
|
52
|
+
*/
|
|
53
|
+
jumpToTime(time: number): void;
|
|
54
|
+
/**
|
|
55
|
+
* Jumps to a relative time in seconds.
|
|
56
|
+
* Note that the absolute value to jump to is calculated by the library based on the currently known time,
|
|
57
|
+
* as Reaper does not appear to support jumping to a relative time via OSC
|
|
58
|
+
* @param time The relative time jump (in seconds)
|
|
59
|
+
*/
|
|
60
|
+
jumpToTimeRelative(time: number): void;
|
|
33
61
|
onPropertyChanged(property: string, callback: () => void): () => void;
|
|
34
62
|
/** Toggle pause */
|
|
35
63
|
pause(): void;
|
|
@@ -55,3 +83,32 @@ export declare class Transport implements INotifyPropertyChanged {
|
|
|
55
83
|
/** Toggle repeat on or off */
|
|
56
84
|
toggleRepeat(): void;
|
|
57
85
|
}
|
|
86
|
+
/** Represents a beat value in Reaper */
|
|
87
|
+
export declare class Beat {
|
|
88
|
+
private readonly _beat;
|
|
89
|
+
private readonly _fraction;
|
|
90
|
+
private readonly _measure;
|
|
91
|
+
/**
|
|
92
|
+
* @param measure The measure of the beat
|
|
93
|
+
* @param beat The beat in the measure
|
|
94
|
+
* @param fraction The beat fraction (must be >= 0 and < 100)
|
|
95
|
+
*/
|
|
96
|
+
constructor(measure: number, beat: number, fraction: number);
|
|
97
|
+
/** Indicates the beat portion of the beat (mm) */
|
|
98
|
+
get beat(): number;
|
|
99
|
+
/** Indicates the fraction portion of the beat (bb) */
|
|
100
|
+
get fraction(): number;
|
|
101
|
+
/** Indicates the measure of the beat (xx) */
|
|
102
|
+
get measure(): number;
|
|
103
|
+
/**
|
|
104
|
+
* Parses a string into a Beat
|
|
105
|
+
* @param value String value in the format mm.bb.xx
|
|
106
|
+
* @returns The parsed beat
|
|
107
|
+
* @throws Throws an error when the format is invalid
|
|
108
|
+
*/
|
|
109
|
+
static parse(value: string): Beat;
|
|
110
|
+
/**
|
|
111
|
+
* Converts the beat into its string representation in the format mm.bb.xx
|
|
112
|
+
*/
|
|
113
|
+
toString(): string;
|
|
114
|
+
}
|
package/dist/Transport.js
CHANGED
|
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.Transport = void 0;
|
|
9
|
+
exports.Beat = exports.Transport = void 0;
|
|
10
10
|
/**
|
|
11
11
|
* Contains classes for controlling Reaper's transport
|
|
12
12
|
* @module
|
|
@@ -20,12 +20,15 @@ let Transport = class Transport {
|
|
|
20
20
|
* @param sendOscMessage A callback used to send OSC messages to Reaper
|
|
21
21
|
*/
|
|
22
22
|
constructor(sendOscMessage) {
|
|
23
|
+
this._beat = '1.1.00';
|
|
24
|
+
this._frames = '00:00:00:00';
|
|
23
25
|
this._isFastForwarding = false;
|
|
24
26
|
this._isPlaying = false;
|
|
25
27
|
this._isRecording = false;
|
|
26
28
|
this._isRepeatEnabled = false;
|
|
27
29
|
this._isRewinding = false;
|
|
28
30
|
this._isStopped = false;
|
|
31
|
+
this._time = 0;
|
|
29
32
|
this._handlers = [
|
|
30
33
|
new Handlers_1.BooleanMessageHandler('/repeat', value => (this._isRepeatEnabled = value)),
|
|
31
34
|
new Handlers_1.BooleanMessageHandler('/record', value => (this._isRecording = value)),
|
|
@@ -33,9 +36,20 @@ let Transport = class Transport {
|
|
|
33
36
|
new Handlers_1.BooleanMessageHandler('/play', value => (this._isPlaying = value)),
|
|
34
37
|
new Handlers_1.BooleanMessageHandler('/rewind', value => (this._isRewinding = value)),
|
|
35
38
|
new Handlers_1.BooleanMessageHandler('/forward', value => (this._isFastForwarding = value)),
|
|
39
|
+
new Handlers_1.FloatMessageHandler('/time', value => (this._time = value)),
|
|
40
|
+
new Handlers_1.StringMessageHandler('/beat/str', value => (this._beat = value)),
|
|
41
|
+
new Handlers_1.StringMessageHandler('/frames/str', value => (this._frames = value))
|
|
36
42
|
];
|
|
37
43
|
this._sendOscMessage = sendOscMessage;
|
|
38
44
|
}
|
|
45
|
+
/** Indicates the current transport beat in format mm.bb.xx */
|
|
46
|
+
get beat() {
|
|
47
|
+
return this._beat;
|
|
48
|
+
}
|
|
49
|
+
/** Indicates the current transport from in format h:m:s:f */
|
|
50
|
+
get frames() {
|
|
51
|
+
return this._frames;
|
|
52
|
+
}
|
|
39
53
|
/** Indicates whether playback is active */
|
|
40
54
|
get isPlaying() {
|
|
41
55
|
return this._isPlaying;
|
|
@@ -60,6 +74,38 @@ let Transport = class Transport {
|
|
|
60
74
|
get isRepeatEnabled() {
|
|
61
75
|
return this._isRepeatEnabled;
|
|
62
76
|
}
|
|
77
|
+
/** Indicates the current transport time in seconds */
|
|
78
|
+
get time() {
|
|
79
|
+
return this._time;
|
|
80
|
+
}
|
|
81
|
+
/** Jumps to the specified beat (absolute)
|
|
82
|
+
* @param beat The beat to jump to
|
|
83
|
+
*/
|
|
84
|
+
jumpToBeat(beat) {
|
|
85
|
+
this._sendOscMessage(new Messages_1.StringMessage('/beat/str', beat.toString()));
|
|
86
|
+
}
|
|
87
|
+
/** Jumps to the specified frame (absolute)
|
|
88
|
+
* @param frame Frame to jump to (in format h:m:s:f). Values in an invalid format will be ignored by Reaper
|
|
89
|
+
*/
|
|
90
|
+
jumpToFrame(frame) {
|
|
91
|
+
this._sendOscMessage(new Messages_1.StringMessage('/frames/str', frame));
|
|
92
|
+
}
|
|
93
|
+
/** Jumps to the specified time in seconds (absolute)
|
|
94
|
+
* @param time The time to jump to (in seconds). If this value is negative, Reaper will jump to 0
|
|
95
|
+
*/
|
|
96
|
+
jumpToTime(time) {
|
|
97
|
+
this._sendOscMessage(new Messages_1.FloatMessage('/time', time));
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Jumps to a relative time in seconds.
|
|
101
|
+
* Note that the absolute value to jump to is calculated by the library based on the currently known time,
|
|
102
|
+
* as Reaper does not appear to support jumping to a relative time via OSC
|
|
103
|
+
* @param time The relative time jump (in seconds)
|
|
104
|
+
*/
|
|
105
|
+
jumpToTimeRelative(time) {
|
|
106
|
+
const newTime = Math.max(this._time + time, 0);
|
|
107
|
+
this._sendOscMessage(new Messages_1.FloatMessage('/time', newTime));
|
|
108
|
+
}
|
|
63
109
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
64
110
|
onPropertyChanged(property, callback) {
|
|
65
111
|
throw new Error('not implemented');
|
|
@@ -113,6 +159,12 @@ let Transport = class Transport {
|
|
|
113
159
|
this._sendOscMessage(new Messages_1.OscMessage('/repeat'));
|
|
114
160
|
}
|
|
115
161
|
};
|
|
162
|
+
__decorate([
|
|
163
|
+
Notify_1.notify('beat')
|
|
164
|
+
], Transport.prototype, "_beat", void 0);
|
|
165
|
+
__decorate([
|
|
166
|
+
Notify_1.notify('frames')
|
|
167
|
+
], Transport.prototype, "_frames", void 0);
|
|
116
168
|
__decorate([
|
|
117
169
|
Notify_1.notify('isFastForwarding')
|
|
118
170
|
], Transport.prototype, "_isFastForwarding", void 0);
|
|
@@ -131,8 +183,64 @@ __decorate([
|
|
|
131
183
|
__decorate([
|
|
132
184
|
Notify_1.notify('isStopped')
|
|
133
185
|
], Transport.prototype, "_isStopped", void 0);
|
|
186
|
+
__decorate([
|
|
187
|
+
Notify_1.notify('time')
|
|
188
|
+
], Transport.prototype, "_time", void 0);
|
|
134
189
|
Transport = __decorate([
|
|
135
190
|
Notify_1.notifyOnPropertyChanged
|
|
136
191
|
], Transport);
|
|
137
192
|
exports.Transport = Transport;
|
|
193
|
+
/** Represents a beat value in Reaper */
|
|
194
|
+
class Beat {
|
|
195
|
+
/**
|
|
196
|
+
* @param measure The measure of the beat
|
|
197
|
+
* @param beat The beat in the measure
|
|
198
|
+
* @param fraction The beat fraction (must be >= 0 and < 100)
|
|
199
|
+
*/
|
|
200
|
+
constructor(measure, beat, fraction) {
|
|
201
|
+
if (fraction < 0 || fraction >= 100) {
|
|
202
|
+
throw new Error(`Invalid fraction ${fraction}, must be >= 0 and < 100`);
|
|
203
|
+
}
|
|
204
|
+
this._beat = beat;
|
|
205
|
+
this._fraction = fraction;
|
|
206
|
+
this._measure = measure;
|
|
207
|
+
}
|
|
208
|
+
/** Indicates the beat portion of the beat (mm) */
|
|
209
|
+
get beat() {
|
|
210
|
+
return this._beat;
|
|
211
|
+
}
|
|
212
|
+
/** Indicates the fraction portion of the beat (bb) */
|
|
213
|
+
get fraction() {
|
|
214
|
+
return this._fraction;
|
|
215
|
+
}
|
|
216
|
+
/** Indicates the measure of the beat (xx) */
|
|
217
|
+
get measure() {
|
|
218
|
+
return this._measure;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Parses a string into a Beat
|
|
222
|
+
* @param value String value in the format mm.bb.xx
|
|
223
|
+
* @returns The parsed beat
|
|
224
|
+
* @throws Throws an error when the format is invalid
|
|
225
|
+
*/
|
|
226
|
+
static parse(value) {
|
|
227
|
+
const parts = value.split('.');
|
|
228
|
+
if (parts.length != 3) {
|
|
229
|
+
throw new Error('Must be in the format mm.bb.xx');
|
|
230
|
+
}
|
|
231
|
+
const numberParts = [];
|
|
232
|
+
parts.forEach(element => {
|
|
233
|
+
const intValue = parseInt(element);
|
|
234
|
+
numberParts.push(intValue);
|
|
235
|
+
});
|
|
236
|
+
return new Beat(numberParts[0], numberParts[1], numberParts[2]);
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Converts the beat into its string representation in the format mm.bb.xx
|
|
240
|
+
*/
|
|
241
|
+
toString() {
|
|
242
|
+
return `${this.measure}.${this.beat}.${this.fraction}`;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
exports.Beat = Beat;
|
|
138
246
|
//# sourceMappingURL=Transport.js.map
|
package/dist/Transport.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transport.js","sourceRoot":"","sources":["../src/Transport.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;;GAGG;AACH,qCAAiF;AACjF,
|
|
1
|
+
{"version":3,"file":"Transport.js","sourceRoot":"","sources":["../src/Transport.ts"],"names":[],"mappings":"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"}
|