🎬 tracks
tracks
The tracks
module provides a way to setup and control tracks in the
soir engine. A track has an instrument type and a set of parameters
and effects. Once a track is created, loops can be scheduled on
it. Tracks can be added & removed in real-time using the setup()
function, existing tracks are untouched.
Cookbook
Setup tracks
tracks.setup({
'bass': tracks.mk_sampler(fxs={
'reverb': fx.mk_reverb(mix=0.2),
}),
'melody': tracks.mk_sampler()
})
Get current tracks
Reference
Classes:
Name | Description |
---|---|
Track |
Representation of a Soir track. |
Functions:
Name | Description |
---|---|
layout |
Get the current tracks. |
mk |
Creates a new track. |
mk_midi |
Creates a new midi track. |
mk_sampler |
Creates a new sampler track. |
setup |
Setup tracks. |
Track(name='unnamed', instrument='unknown', muted=None, volume=1.0, pan=0.0, fxs=None, extra=None)
dataclass
Representation of a Soir track.
Attributes:
Name | Type | Description |
---|---|---|
name |
str
|
The track name. |
instrument |
str
|
The instrument type. |
muted |
bool | None
|
The muted state. Defaults to None. |
volume |
float | Control
|
The volume in the [0.0, 1.0] range. Defaults to 1.0. |
pan |
float | Control
|
The pan in the [-1.0, 1.0] range. Defaults to 0.0. |
fxs |
dict | None
|
The effects. Defaults to None. |
extra |
str | None
|
Extra parameters, JSON encoded. Defaults to None. |
layout()
Get the current tracks.
Returns:
Type | Description |
---|---|
dict[Track]
|
dict[Track]: The current tracks. |
Raises:
Type | Description |
---|---|
InLoopException
|
If called from inside a loop. |
mk(instrument, muted=None, volume=1.0, pan=0.0, fxs=None, extra=None)
Creates a new track.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
instrument
|
str
|
The instrument type. |
required |
muted
|
bool
|
The muted state. Defaults to None. |
None
|
volume
|
float | Control
|
The volume in the [0.0, 1.0] range. Defaults to 1.0. |
1.0
|
pan
|
float | Control
|
The pan in the [-1.0, 1.0] range. Defaults to 0.0. |
0.0
|
fxs
|
dict
|
The effects to apply to the track. Defaults to None. |
None
|
extra
|
dict
|
Extra parameters. Defaults to None. |
None
|
mk_midi(muted=None, volume=1.0, pan=0.0, midi_out='', audio_in='', audio_chans=None, fxs=None)
Creates a new midi track.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
muted
|
bool
|
The muted state. Defaults to None. |
None
|
volume
|
float | Control
|
The volume in the [0.0, 1.0] range. Defaults to 1.0. |
1.0
|
pan
|
float | Control
|
The pan in the [-1.0, 1.0] range. Defaults to 0.0. |
0.0
|
midi_out
|
int
|
The output midi device. Defaults to 0. |
''
|
audio_in
|
int
|
The input audio device. Defaults to 0. |
''
|
audio_chans
|
list[int]
|
The audio channels. Defaults to [0, 1]. |
None
|
fxs
|
dict
|
The effects to apply to the track. Defaults to None. |
None
|
mk_sampler(muted=None, volume=1.0, pan=0.0, fxs=None)
Creates a new sampler track.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
muted
|
bool
|
The muted state. Defaults to None. |
None
|
volume
|
float | Control
|
The volume in the [0.0, 1.0] range. Defaults to 1.0. |
1.0
|
pan
|
float | Control
|
The pan in the [-1.0, 1.0] range. Defaults to 0.0. |
0.0
|
fxs
|
dict
|
The effects to apply to the track. Defaults to None. |
None
|
setup(tracks)
Setup tracks.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
tracks
|
dict[str, Track]
|
The tracks to setup. |
required |
Raises:
Type | Description |
---|---|
InLoopException
|
If called from inside a loop. |