| 146 | } |
| 147 | |
| 148 | public addGraceBeat(beat: Beat): void { |
| 149 | if (this.beats.length === 0) { |
| 150 | this.addBeat(beat); |
| 151 | return; |
| 152 | } |
| 153 | // remove last beat |
| 154 | const lastBeat: Beat = this.beats[this.beats.length - 1]; |
| 155 | this.beats.splice(this.beats.length - 1, 1); |
| 156 | // insert grace beat |
| 157 | this.addBeat(beat); |
| 158 | // reinsert last beat |
| 159 | this.addBeat(lastBeat); |
| 160 | this._isEmpty = false; |
| 161 | this._isRestOnly = false; |
| 162 | } |
| 163 | |
| 164 | public getBeatAtPlaybackStart(playbackStart: number): Beat | null { |
| 165 | if (this._beatLookup.has(playbackStart)) { |