frame-of-mind/src/dev-util/music_mixer.gd

50 lines
741 B
GDScript

@tool
class_name MixedAudioStream extends AudioStream
enum TransIn {
HARD,
FROM_START,
SOFT
}
enum TransOut {
HARD,
TO_END,
SOFT
}
enum Loop {
HARD_IN_OUT,
HARD_IN_TO_END,
HARD_IN_SOFT_END,
HARD_OUT
}
enum Jump {
HARD,
SOFT
}
@export var tracks: Array[AudioTrack]:
set(dict):
tracks = dict
@export var transitions: Array[FillerTrack]
var _playback: AudioStreamPlaybackPolyphonic
func is_meta_stream():
return true
func is_monophonic():
return false
func initialize_mix(from_position: float, playback: AudioStreamPlaybackPolyphonic):
_playback = playback
func get_stream_by_id(id: int) -> AudioStream:
return tracks[id].audio
func fadeout(stream_id: int, delay: float):
var tween: Tween
tween = _playback.pla