org.soundsofscala.transport

Members list

Type members

Classlikes

final case class NoteScheduler(tempo: Tempo, lookAheadMs: LookAhead, scheduleAheadTimeSeconds: ScheduleWindow)

The NoteScheduler is responsible for scheduling the notes of a single track. It uses the ScheduleStatus to determine if the next note should be scheduled. We can start them at a precise time with the currentTime property of the AudioContext. The method of scheduling notes in the browser is derived from the following: https://web.dev/articles/audio-scheduling https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API/Advanced_techniques#playing_the_audio_in_time

The NoteScheduler is responsible for scheduling the notes of a single track. It uses the ScheduleStatus to determine if the next note should be scheduled. We can start them at a precise time with the currentTime property of the AudioContext. The method of scheduling notes in the browser is derived from the following: https://web.dev/articles/audio-scheduling https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API/Advanced_techniques#playing_the_audio_in_time

Value parameters

lookAheadMs

The time in milliseconds to look ahead to determine if the next note should be scheduled

scheduleAheadTimeSeconds

The time window in seconds in which to schedule notes ahead of time

tempo

The tempo of the song. This is needed to determine the how many seconds a note is played for

Attributes

Source
NoteScheduler.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Attributes

Source
ScheduleStatus.scala
Supertypes
trait Enum
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
case class Sequencer()

The sequencer is responsible for scheduling the notes of every track in the song in parallel. It uses a NoteScheduler which responsible for scheduling the notes of a single track.

The sequencer is responsible for scheduling the notes of every track in the song in parallel. It uses a NoteScheduler which responsible for scheduling the notes of a single track.

Value parameters

song

The song to be played.

Attributes

Source
Sequencer.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all