From b8250cf240dfa443f78dcfc15cba50ae1bad9bba Mon Sep 17 00:00:00 2001 From: Marcel van der Veldt Date: Tue, 3 Aug 2021 10:33:48 +0200 Subject: [PATCH] some fixes - auto select quality for queue stream - improve detection of alert finish --- music_assistant/constants.py | 3 +- music_assistant/helpers/alert.mp3 | Bin 37241 -> 0 bytes music_assistant/helpers/audio.py | 21 ++-- music_assistant/managers/players.py | 108 ++++++++---------- music_assistant/models/player_queue.py | 31 ++--- music_assistant/resources/alert_announce.flac | Bin 0 -> 99609 bytes music_assistant/resources/alert_finish.flac | Bin 0 -> 424 bytes music_assistant/web/api.py | 2 + music_assistant/web/stream.py | 30 +++-- 9 files changed, 95 insertions(+), 100 deletions(-) delete mode 100644 music_assistant/helpers/alert.mp3 create mode 100644 music_assistant/resources/alert_announce.flac create mode 100644 music_assistant/resources/alert_finish.flac diff --git a/music_assistant/constants.py b/music_assistant/constants.py index 3926751d..c213513b 100755 --- a/music_assistant/constants.py +++ b/music_assistant/constants.py @@ -1,6 +1,6 @@ """All constants for Music Assistant.""" -__version__ = "0.2.2" +__version__ = "0.2.3" REQUIRED_PYTHON_VER = "3.8" # configuration keys/attributes @@ -55,7 +55,6 @@ EVENT_TRACK_ADDED = "track added" EVENT_PLAYLIST_ADDED = "playlist added" EVENT_RADIO_ADDED = "radio added" EVENT_TASK_UPDATED = "task updated" -EVENT_ALERT_FINISHED = "alert finished" # player attributes ATTR_PLAYER_ID = "player_id" diff --git a/music_assistant/helpers/alert.mp3 b/music_assistant/helpers/alert.mp3 deleted file mode 100644 index 133b3ac7004e52b61f569ffc16e7d532005217b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37241 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%0ASZnrcg<2js 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 48000: filter_args += ["rate", "-v", str(resample)] + elif resample: + filter_args += ["rate", str(resample)] # TODO: still not sure about the order of the filter arguments in the chain # assumption is they need to be at the end of the chain return input_args + output_args + filter_args diff --git a/music_assistant/managers/players.py b/music_assistant/managers/players.py index aac1829d..5fe9e4c1 100755 --- a/music_assistant/managers/players.py +++ b/music_assistant/managers/players.py @@ -9,7 +9,6 @@ from music_assistant.constants import ( CONF_CROSSFADE_DURATION, CONF_POWER_CONTROL, CONF_VOLUME_CONTROL, - EVENT_ALERT_FINISHED, EVENT_PLAYER_ADDED, EVENT_PLAYER_REMOVED, ) @@ -29,6 +28,11 @@ from music_assistant.models.provider import PlayerProvider, ProviderType POLL_INTERVAL = 30 LOGGER = logging.getLogger("player_manager") +RESOURCES_DIR = ( + pathlib.Path(__file__).parent.resolve().parent.resolve().joinpath("resources") +) +ALERT_ANNOUNCE_FILE = str(RESOURCES_DIR.joinpath("alert_announce.flac")) +ALERT_FINISH_FILE = str(RESOURCES_DIR.joinpath("alert_finish.flac")) class PlayerManager: @@ -297,6 +301,13 @@ class PlayerManager: QueueOption.NEXT -> Play item(s) after current playing item QueueOption.ADD -> Append new items at end of the queue """ + # turn on player + player = self.get_player(player_id) + if not player: + raise FileNotFoundError("Player not found %s" % player_id) + if not player.calculated_state.powered: + await self.cmd_power_on(player_id) + player_queue = self.get_active_player_queue(player_id) # a single item or list of items may be provided if not isinstance(items, list): items = [items] @@ -332,22 +343,10 @@ class PlayerManager: for track in tracks: if not track.available: continue - queue_item = QueueItem.from_track(track) - # generate url for this queue item - queue_item.stream_url = "%s/queue/%s/%s" % ( - self.mass.web.stream_url, - player_id, - queue_item.queue_item_id, - ) + queue_item = player_queue.create_queue_item(track) queue_items.append(queue_item) - # turn on player - player = self.get_player(player_id) - if not player: - raise FileNotFoundError("Player not found %s" % player_id) - if not player.calculated_state.powered: - await self.cmd_power_on(player_id) + # load items into the queue - player_queue = self.get_active_player_queue(player_id) if queue_opt == QueueOption.REPLACE: return await player_queue.load(queue_items) if queue_opt in [QueueOption.PLAY, QueueOption.NEXT] and len(queue_items) > 100: @@ -377,14 +376,6 @@ class PlayerManager: if item: return await self.play_media(player_id, item, queue_opt) raise FileNotFoundError("Invalid uri: %s" % uri) - # fallback to regular url - queue_item = QueueItem(item_id=uri, provider="url", name=uri, uri=uri) - # generate url for this queue item - queue_item.stream_url = "%s/queue/%s/%s" % ( - self.mass.web.stream_url, - player_id, - queue_item.queue_item_id, - ) # turn on player player = self.get_player(player_id) if not player: @@ -393,6 +384,9 @@ class PlayerManager: await self.cmd_power_on(player_id) # load items into the queue player_queue = self.get_active_player_queue(player_id) + queue_item = player_queue.create_queue_item( + item_id=uri, provider="url", name=uri, uri=uri + ) if queue_opt == QueueOption.REPLACE: return await player_queue.load([queue_item]) if queue_opt == QueueOption.NEXT: @@ -459,50 +453,42 @@ class PlayerManager: # load alert items in player queue queue_items = [] if announce: - alert_announce = ( - pathlib.Path(__file__) - .parent.resolve() - .parent.resolve() - .joinpath("helpers", "alert.mp3") - ) - queue_item = QueueItem( - item_id="alert_announce", - provider="url", - name="alert", - duration=3, - uri=str(alert_announce), + queue_items.append( + player_queue.create_queue_item( + item_id="alert_announce", + provider="url", + name="alert_announce", + uri=ALERT_ANNOUNCE_FILE, + ) ) - queue_item.stream_url = "%s/queue/%s/%s" % ( - self.mass.web.stream_url, - player_queue.queue_id, - queue_item.queue_item_id, + queue_items.append( + player_queue.create_queue_item( + item_id="alert", provider="url", name="alert", uri=url ) - queue_items.append(queue_item) - - queue_item = QueueItem( - item_id="alert_sound", - provider="url", - name="alert", - duration=10, - uri=url, ) - queue_item.stream_url = "%s/queue/%s/%s" % ( - self.mass.web.stream_url, - player_queue.queue_id, - queue_item.queue_item_id, + queue_items.append( + # add a special (silent) file so we can detect finishing of the alert + player_queue.create_queue_item( + item_id="alert_finish", + provider="url", + name="alert_finish", + uri=ALERT_FINISH_FILE, + ) ) - queue_items.append(queue_item) - # load queue items await player_queue.load(queue_items) # add listener when playback of alert finishes - async def restore_queue_listener(event: str, event_data: str): - """Restore queue after the alert was played.""" - if event_data != queue_item.queue_item_id: - return - # player stopped playing - remove_cb() + async def restore_queue(): + count = 0 + while count < 30: + if ( + player_queue.cur_item == queue_items[-1] + and player_queue.cur_item_time > 2 + ): + break + count += 1 + await asyncio.sleep(1) # restore queue if volume: await self.cmd_volume_set(player_id, prev_volume) @@ -520,9 +506,7 @@ class PlayerManager: await self.cmd_power_off(player_id) player_queue.signal_update() - remove_cb = self.mass.eventbus.add_listener( - restore_queue_listener, EVENT_ALERT_FINISHED - ) + create_task(restore_queue) @api_route("players/{player_id}/cmd/stop", method="PUT") async def cmd_stop(self, player_id: str) -> None: diff --git a/music_assistant/models/player_queue.py b/music_assistant/models/player_queue.py index 6682fd98..8eaebd78 100755 --- a/music_assistant/models/player_queue.py +++ b/music_assistant/models/player_queue.py @@ -10,7 +10,6 @@ from typing import Any, Dict, List, Optional, Set, Tuple, Union from music_assistant.constants import ( CONF_CROSSFADE_DURATION, - EVENT_ALERT_FINISHED, EVENT_QUEUE_ITEMS_UPDATED, EVENT_QUEUE_UPDATED, ) @@ -371,7 +370,7 @@ class PlayerQueue: """Load (overwrite) queue with new items.""" for index, item in enumerate(queue_items): item.sort_index = index - if self._shuffle_enabled and len(queue_items) > 2: + if self._shuffle_enabled and len(queue_items) > 5: queue_items = self.__shuffle_items(queue_items) self._items = queue_items if self.use_queue_stream: @@ -396,7 +395,7 @@ class PlayerQueue: insert_at_index = self.cur_index + offset for index, item in enumerate(queue_items): item.sort_index = insert_at_index + index - if self.shuffle_enabled and len(queue_items) > 10: + if self.shuffle_enabled and len(queue_items) > 5: queue_items = self.__shuffle_items(queue_items) if offset == 0: # replace current item with new @@ -527,18 +526,7 @@ class PlayerQueue: prev_item_time = int(self._cur_item_time) self._cur_item_time = int(track_time) if self._last_playback_state != self.state: - # handle special usecase where an alert is played - if ( - self._last_playback_state == PlayerState.PLAYING - and self.state == PlayerState.IDLE - and self.cur_item - and self.cur_item.name == "alert" - ): - self.mass.eventbus.signal( - EVENT_ALERT_FINISHED, - self.cur_item.queue_item_id, - ) - # fire regular event with updated state + # fire event with updated state self.signal_update() self._last_playback_state = self.state elif abs(prev_item_time - self._cur_item_time) > 3: @@ -641,6 +629,19 @@ class PlayerQueue: self._cur_index = cache_data.get("cur_index", 0) self._queue_stream_next_index = self._cur_index + def create_queue_item(self, *args, **kwargs): + """Create QueueItem including correct stream URL.""" + if args and isinstance(args[0], (Track, Radio)): + new_item = QueueItem.from_track(args[0]) + else: + new_item = QueueItem(*args, **kwargs) + new_item.stream_url = "%s/queue/%s/%s" % ( + self.mass.web.stream_url, + self.queue_id, + new_item.queue_item_id, + ) + return new_item + # pylint: enable=unused-argument async def _save_state(self) -> None: diff --git a/music_assistant/resources/alert_announce.flac b/music_assistant/resources/alert_announce.flac new file mode 100644 index 0000000000000000000000000000000000000000..d14bfc8d6cb0141caaebd48284341b000302b474 GIT binary patch literal 99609 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

BT_bQV_g&Z1*%25{WJ~jZo2qYpLO` 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 str: """Return image URL for given media item.""" + if provider == "url": + return None return await get_image_url(mass, item_id, provider, media_type) diff --git a/music_assistant/web/stream.py b/music_assistant/web/stream.py index b160b89f..7dc5020d 100644 --- a/music_assistant/web/stream.py +++ b/music_assistant/web/stream.py @@ -54,8 +54,20 @@ async def stream_queue(request: Request): await resp.prepare(request) player_conf = player_queue.player.config - pcm_format = "f64" - sample_rate = min(player_conf.get(CONF_MAX_SAMPLE_RATE, 96000), 96000) + # determine sample rate and pcm format for the queue stream, depending on player capabilities + player_max_sample_rate = player_conf.get(CONF_MAX_SAMPLE_RATE, 48000) + sample_rate = min(player_max_sample_rate, 96000) + if player_max_sample_rate > 96000: + # assume that highest possible quality is needed + # if player supports sample rates > 96000 + # we use float64 PCM format internally which is heavy on CPU + pcm_format = "f64" + elif sample_rate > 48000: + # prefer internal PCM_S32LE format + pcm_format = "s32" + else: + # fallback to 24 bits + pcm_format = "s24" args = [ "sox", @@ -80,7 +92,7 @@ async def stream_queue(request: Request): # feed stdin with pcm samples async def fill_buffer(): """Feed audio data into sox stdin for processing.""" - async for audio_chunk in get_queue_stream( + async for audio_chunk in get_pcm_queue_stream( mass, player_queue, sample_rate, pcm_format ): await sox_proc.write(audio_chunk) @@ -235,7 +247,7 @@ async def get_media_stream( ) -async def get_queue_stream( +async def get_pcm_queue_stream( mass: MusicAssistant, player_queue: PlayerQueue, sample_rate=96000, @@ -247,16 +259,14 @@ async def get_queue_stream( queue_index = None # get crossfade details fade_length = player_queue.crossfade_duration - if pcm_format in ["s64", "f64"]: + if "64" in pcm_format: bit_depth = 64 - elif pcm_format in ["s32", "f32"]: + elif "32" in pcm_format: bit_depth = 32 - elif pcm_format == "s16": - bit_depth = 16 - elif pcm_format == "s24": + elif "24" in pcm_format: bit_depth = 24 else: - raise NotImplementedError("Unsupported PCM format: %s" % pcm_format) + bit_depth = 16 pcm_args = [pcm_format, "-c", "2", "-r", str(sample_rate)] sample_size = int(sample_rate * (bit_depth / 8) * channels) # 1 second buffer_size = sample_size * fade_length if fade_length else sample_size * 10 -- 2.34.1