Make sure loop is set correctly when replacing audio. Also check playback tempo.
This commit is contained in:
@@ -89,11 +89,14 @@ class Playback(Event):
|
||||
self._gain = 10**(gain/10) # Convert from dB to linear gain
|
||||
self._fadecurve = None
|
||||
self._fadeframe = None
|
||||
if (tempo is not None) != (beats is not None):
|
||||
raise ValueError("Playback object must have both tempo and beats, or neither.")
|
||||
|
||||
def __repr__(self):
|
||||
return '{}(at={}, media={}, device={}, tempo={}, beats={}, leadin={}, loop={}, gain={})'.format(type(self).__name__, self._at, self._media, self._device, self._tempo, self._beats, self._leadin, self._loop, self._gain)
|
||||
|
||||
def prepare(self):
|
||||
if self._tempo is not None:
|
||||
self._at._timings.register_tempo(self._tempo, self._beats, self._at)
|
||||
|
||||
# def start(self):
|
||||
@@ -183,12 +186,12 @@ class Playback(Event):
|
||||
# We really should check that the media is the sampe shape as the
|
||||
# existing playback. But for now, let's trust the user. *cough*
|
||||
|
||||
def notify(self, message, fadetime=10, db=30, media=None, delay=False, setmark=None, *args, **kwargs):
|
||||
def notify(self, message, fadetime=10, db=30, media=None, delay=False, loop=False, setmark=None, *args, **kwargs):
|
||||
if message == 'fadeout':
|
||||
self._fadecurve = np.logspace(0, -db/10, fadetime * self._fs)
|
||||
self._fadeframe = 0
|
||||
elif message == 'replaceplayback':
|
||||
self.replace(media, delay, setmark=setmark)
|
||||
self.replace(media, delay, loop=loop, setmark=setmark)
|
||||
elif message == 'endloop':
|
||||
self._loop = False
|
||||
|
||||
|
||||
Reference in New Issue
Block a user