Skip to content

Commit eacbf5f

Browse files
authored
Merge pull request #21 from AudioKit/sequencer-note-length
Demonstrate sequencer bugs
2 parents f90cde9 + 8f87d26 commit eacbf5f

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

Tests/AudioKitEXTests/SequencerEngineTests.swift

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,32 @@ class SequencerEngineTests: XCTestCase {
122122
XCTAssertEqual(events.map { $0.timeStamp }, [0, 157, 34, 191, 136, 37, 170, 71, 16, 173, 50, 207, 152, 53, 186, 87, 32, 189, 66, 223])
123123
}
124124

125+
func testLoopLongNote() {
126+
var seq = NoteEventSequence()
127+
128+
// Our test will loop 4 beats. Try to loop a note that is longer.
129+
seq.add(noteNumber: 60, position: 0, duration: 5.0)
130+
131+
// Each render call will generate one beat. Render two bars.
132+
let events = observerTest(sequence: seq, frameCount: 22050, renderCallCount: 8)
133+
134+
// We exepct an even number of note events!
135+
XCTAssertEqual(events.count, 4)
136+
}
137+
138+
func testLoopNoteNearEnd() {
139+
var seq = NoteEventSequence()
140+
141+
// Our test will loop 4 beats. Extend a note beyond the bar.
142+
seq.add(noteNumber: 60, position: 3, duration: 2.0)
143+
144+
// Each render call will generate one beat. Render two bars.
145+
let events = observerTest(sequence: seq, frameCount: 22050, renderCallCount: 8)
146+
147+
// We exepct an even number of note events!
148+
XCTAssertEqual(events.count, 4)
149+
}
150+
125151
func testOverlap() {
126152

127153
var seq = NoteEventSequence()

0 commit comments

Comments
 (0)