Local file plays poorly through MA

What version of Music Assistant has the issue?
Latest beta
What version of the Home Assistant Integration have you got installed?
Latest beta
Have you tried everything in the Troubleshooting FAQ and reviewed the Open and Closed Issues and Discussions to resolve this yourself?

[X] Yes

The problem
I have a simple wav file that i loop over ighr for white noise. It plays flawlessly through LMS (squeezelite player) thats installed on a picoreplayer of mine but barely plays through MA.   Ive tried volume normalization on/off, changed tje negative number, tried different file extensions, tried converting it to mp3 but nothing seems to play well when i play it theough an automation.
How to reproduce
Have an automation set volume, repeat, and start playing a file. Notice that there is clipping, dostortion and eventually the file stops playing.
Music Providers
Local HA file, but i also have spotify integration.
Player Providers
Squeezelite.
Full log output
No response
Additional information
No response
What version of Home Assistant Core are your running
2024.3.1
What type of installation are you running?
Home Assistant Container
On what type of hardware are you running?
Linux

We will need the full log attached

Thanks @OzGav. You're talking about MA logs and not HA logs correct? I am anonymizing them currently. Is there a way to do that automatically? That would be a nice feature for debugging purposes. By the looks of the errors in the logs, im getting a bunch of authz errors. This is my automation. Keep in mind i also tried different files so the one in the automation is different than the one in the MA logs. Curious if i should be trying to use the MA service instead of the built in HA media_player services? Everything works perfectly with regular old LMS. Would love the UI improvements of MA vs LMS.
alias: Play White Noise In Noahs Room In the Morning
description: ""
trigger:
  - platform: time
    at: "20:00:00"
  - platform: time
    at: "09:00:00"
    id: "off"
condition: []
action:
  - if:
      - condition: trigger
        id:
          - "off"
    then:
      - service: media_player.media_pause
        target:
          entity_id: []
          area_id: []
          device_id:
            - 567aab518b3f8031517ba1e052ac1bff
            - cd63028b604a32be5410ba488f6111e9
        data: {}
      - service: media_player.repeat_set
        metadata: {}
        data:
          repeat: "off"
        target:
          device_id:
            - 567aab518b3f8031517ba1e052ac1bff
            - cd63028b604a32be5410ba488f6111e9
    else:
      - service: media_player.volume_set
        data:
          volume_level: 0.39
        target:
          device_id:
            - cd63028b604a32be5410ba488f6111e9
            - 567aab518b3f8031517ba1e052ac1bff
      - service: media_player.repeat_set
        metadata: {}
        data:
          repeat: all
        target:
          device_id:
            - 567aab518b3f8031517ba1e052ac1bff
            - cd63028b604a32be5410ba488f6111e9
      - service: media_player.play_media
        target:
          entity_id: media_player.gretas_room
        data:
          media_content_id: media-source://media_source/local/brown-noise.wav
          media_content_type: audio/x-wav
        metadata:
          title: brown-noise.wav
          thumbnail: null
          media_class: music
          children_media_class: null
          navigateIds:
            - {}
            - media_content_type: app
              media_content_id: media-source://media_source
      - service: media_player.play_media
        target:
          entity_id: media_player.noahs_room
        data:
          media_content_id: media-source://media_source/local/brown-noise.wav
          media_content_type: audio/x-wav
        metadata:
          title: brown-noise.wav
          thumbnail: null
          media_class: music
          children_media_class: null
          navigateIds:
            - {}
            - media_content_type: app
              media_content_id: media-source://media_source
mode: single

musicassistant.log
musicassistant.1.log

Any reason why you are using device_id? The docs say to use entity_id https://www.home-assistant.io/integrations/media_player/
I see the authorisation error. The question is why are you trying to send a random wave file to a MA player? If you want to just play the track then just send it to the HA player. If you want to use MA then the file needs to be in the MA library. In order for that to happen you will need to add some basic tags to it, name, album, artist, album artist. You can just use Various Artists for the last two if you wish. Just make up an album name.

I currently have spotify integrated and plex for local music. I can try and add the files to plex and access them through MA that way. Just odd that it works flawlessly in LMS.

You can’t have the LMS server running at the same time as MA. So disable LMS

There is a possibility that this is caused by sending a wave file from HA, that scenario was never tested (as normally you just play music from the MA library or an incidental TTS mp3). We'll have to test this scenario where the WAV files are stored in HA.

You can’t have the LMS server running at the same time as MA. So disable LMS

You can, as long as you dont use the slimproto provider in MA. Both servers cant be active at the same time

Yep, ive never ran the at the same time. I was just explaining how i did things while each backend was running. I also tried with an mp3 file and while it worked better, i still had issues with sound cutting/clipping/stopping.

Try importing the file into the MA library (please note the tagging I mentioned before) and then try playing it from the UI

You mention the sound clipping/distorted ? How are your volume normalization settings setup ?
Also, can you maybe send me one of those files so I can try to reproduce it here ?
BTW: Please make sure to run on the latest beta 124, the betas 120..122 were flawed with a performance issue

I added it to my plex server and its playing better. What im trying to replicate now is to play this track on repeat, but when using the MA service to play the track it disregards the call to set the volume and repeat on the devices. It just plays the single track and completes. I also tried putting the mass.play_media call as the last action but that didnt matter either. I'd really prefer not to make a playlist of 12hrs of the 9 second wav file. I think the repeat and volume set should be honored. I can try device_id for as opposed to entity_id and will report back but hopefully someone has a solution.
HA Automation snippet:
else:
  - service: mass.play_media
    metadata: {}
    data:
      media_type: track
      media_id:
        - Brown Noise
      enqueue: play
      artist: Various Artists
      album: Various Artists
    target:
      entity_id:
        - media_player.gretas_room
        - media_player.noahs_room
  - service: media_player.volume_set
    data:
      volume_level: 0.39
    target:
      entity_id:
        - media_player.gretas_room
        - media_player.noahs_room
  - service: media_player.repeat_set
    metadata: {}
    data:
      repeat: all
    target:
      entity_id:
        - media_player.gretas_room
        - media_player.noahs_room

Oh sweet, device_id is honored and its repeating.

Another update. I tried adding the file to the local file system music provider and it plays once but replay doesnt seem to work like it did with plex. I'll try with entity_id and see if that works (device_id seemed to work with plex).
2024-03-26 19:27:58.963 INFO (MainThread) [music_assistant.music] Sync task for Filesystem (local disk) completed
2024-03-26 19:35:48.533 ERROR (MainThread) [music_assistant.webserver] Error handling message: players/queue/play_pause: Resume queue requested but queue d8:3a:dd:ba:cd:16 is empty

I cant imagine creating a playlist or enqueuing thousands of the same file is gonna be super performant.

device vs entity didnt solve this. Very odd i was able to get it working with plex as a media source but not local file.
Does this look appropriate:
service: mass.play_media
target:
  device_id:
    -<PHONE_NUMBER>d7bc8602d6218484758b15
    - 474a13f1497e8f1bdc483e84c5485c1e
data:
  media_id: 10795
  media_type: track

It would be great if we could add repeat and other things to the data section to tell MA to repeat like the Media Player integration does in HA.

So if i select a the file in MA and select "Play Now", and then set the repeat button in the player it doesnt repeat the file so i think my HA automations are correct. Any ideas why the repeat functionality wouldnt work?

Could this be related to https://github.com/music-assistant/hass-music-assistant/issues/1967 ? I know @OzGav mentioned he cant repro on slimproto, but thats what im using and i cannot for the life of me get a file to repeat either via the HA integration or via MA directly.
I bumped down the logging to verbose to see if i can catch anything odd happening:
2024-03-26 20:52:28.122 DEBUG (MainThread) [music_assistant.audio] Using cached streamdetails for filesystem_local--MHnmpHLE/brown-noise.mp3
2024-03-26 20:52:28.123 DEBUG (MainThread) [music_assistant.audio] Using cached streamdetails for filesystem_local--MHnmpHLE/brown-noise.mp3
2024-03-26 20:52:28.134 DEBUG (MainThread) [music_assistant.players] Handling command cmd_volume_set for player Noahs Room
2024-03-26 20:52:28.134 DEBUG (MainThread) [music_assistant.players] Handling command cmd_volume_set for player Gretas Room
2024-03-26 20:52:28.281 DEBUG (MainThread) [music_assistant.streams] Got GET request to /single/d8:3a:dd:ba:cd:16/ed4400f08d9e47e491a2926d0942e387.flac from <IP_ADDRESS>
headers: <CIMultiDictProxy('Host': '<IP_ADDRESS>:8098', 'Connection': 'close', 'Accept': '*/*', 'Cache-Control': 'no-cache', 'User-Agent': 'VLC/3.0.9 LibVLC/3.0.9', 'Range': 'bytes=0-')>

2024-03-26 20:52:28.281 DEBUG (MainThread) [music_assistant.streams] Start serving audio stream for QueueItem library://track/1 to Noahs Room
2024-03-26 20:52:28.283 DEBUG (MainThread) [music_assistant.streams.media_stream] start media stream for: filesystem_local--MHnmpHLE://track/brown-noise.mp3
2024-03-26 20:52:28.334 DEBUG (MainThread) [music_assistant.streams] Got GET request to /single/d8:3a:dd:ba:cd:d1/386a293a01e9497cb6588b1a9fa3936c.flac from <IP_ADDRESS>
headers: <CIMultiDictProxy('Host': '<IP_ADDRESS>:8098', 'Connection': 'close', 'Accept': '*/*', 'Cache-Control': 'no-cache', 'User-Agent': 'VLC/3.0.9 LibVLC/3.0.9', 'Range': 'bytes=0-')>

2024-03-26 20:52:28.334 DEBUG (MainThread) [music_assistant.streams] Start serving audio stream for QueueItem library://track/1 to Gretas Room
2024-03-26 20:52:28.337 DEBUG (MainThread) [music_assistant.streams.media_stream] start media stream for: filesystem_local--MHnmpHLE://track/brown-noise.mp3
2024-03-26 20:52:28.466 VERBOSE (MainThread) [music_assistant.streams] Input #0, mp3, from '/data/media/brown-noise.mp3':
2024-03-26 20:52:28.466 VERBOSE (MainThread) [music_assistant.streams] Metadata:
2024-03-26 20:52:28.466 VERBOSE (MainThread) [music_assistant.streams] title           : Brown Noise
2024-03-26 20:52:28.466 VERBOSE (MainThread) [music_assistant.streams] album           : Varioius Artists
2024-03-26 20:52:28.466 VERBOSE (MainThread) [music_assistant.streams] album_artist    : Various Artists
2024-03-26 20:52:28.466 VERBOSE (MainThread) [music_assistant.streams] track           : 1
2024-03-26 20:52:28.466 VERBOSE (MainThread) [music_assistant.streams] disc            : 1
2024-03-26 20:52:28.466 VERBOSE (MainThread) [music_assistant.streams] artist          : Various Artists
2024-03-26 20:52:28.466 VERBOSE (MainThread) [music_assistant.streams] lyrics-eng      :
2024-03-26 20:52:28.466 VERBOSE (MainThread) [music_assistant.streams] date            : 2024
2024-03-26 20:52:28.467 VERBOSE (MainThread) [music_assistant.streams] Duration: 00:00:09.55, start: 0.023021, bitrate: 67 kb/s
2024-03-26 20:52:28.467 VERBOSE (MainThread) [music_assistant.streams] Stream #0:0: Audio: mp3, 48000 Hz, mono, fltp, 64 kb/s
2024-03-26 20:52:28.467 VERBOSE (MainThread) [music_assistant.streams] Stream mapping:
2024-03-26 20:52:28.467 VERBOSE (MainThread) [music_assistant.streams] Stream #0:0 -> #0:0 (mp3 (mp3float) -> pcm_s16le (native))
2024-03-26 20:52:28.467 VERBOSE (MainThread) [music_assistant.streams] Press [q] to stop, [?] for help
2024-03-26 20:52:28.473 VERBOSE (MainThread) [music_assistant.streams] Output #0, s16le, to 'pipe:':
2024-03-26 20:52:28.473 VERBOSE (MainThread) [music_assistant.streams] Metadata:
2024-03-26 20:52:28.473 VERBOSE (MainThread) [music_assistant.streams] title           : Brown Noise
2024-03-26 20:52:28.473 VERBOSE (MainThread) [music_assistant.streams] album           : Varioius Artists
2024-03-26 20:52:28.473 VERBOSE (MainThread) [music_assistant.streams] album_artist    : Various Artists
2024-03-26 20:52:28.473 VERBOSE (MainThread) [music_assistant.streams] track           : 1
2024-03-26 20:52:28.473 VERBOSE (MainThread) [music_assistant.streams] disc            : 1
2024-03-26 20:52:28.473 VERBOSE (MainThread) [music_assistant.streams] artist          : Various Artists
2024-03-26 20:52:28.473 VERBOSE (MainThread) [music_assistant.streams] lyrics-eng      :
2024-03-26 20:52:28.473 VERBOSE (MainThread) [music_assistant.streams] date            : 2024
2024-03-26 20:52:28.473 VERBOSE (MainThread) [music_assistant.streams] encoder         : Lavf60.3.100
2024-03-26 20:52:28.474 VERBOSE (MainThread) [music_assistant.streams] Stream #0:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
2024-03-26 20:52:28.474 VERBOSE (MainThread) [music_assistant.streams] Metadata:
2024-03-26 20:52:28.474 VERBOSE (MainThread) [music_assistant.streams] encoder         : Lavc60.3.100 pcm_s16le
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] Input #0, mp3, from '/data/media/brown-noise.mp3':
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] Metadata:
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] title           : Brown Noise
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] album           : Varioius Artists
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] album_artist    : Various Artists
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] track           : 1
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] disc            : 1
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] artist          : Various Artists
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] lyrics-eng      :
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] date            : 2024
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] Duration: 00:00:09.55, start: 0.023021, bitrate: 67 kb/s
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] Stream #0:0: Audio: mp3, 48000 Hz, mono, fltp, 64 kb/s
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] Stream mapping:
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] Stream #0:0 -> #0:0 (mp3 (mp3float) -> pcm_s16le (native))
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] Press [q] to stop, [?] for help
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] Output #0, s16le, to 'pipe:':
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] Metadata:
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] title           : Brown Noise
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] album           : Varioius Artists
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] album_artist    : Various Artists
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] track           : 1
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] disc            : 1
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] artist          : Various Artists
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] lyrics-eng      :
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] date            : 2024
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] encoder         : Lavf60.3.100
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] Stream #0:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
2024-03-26 20:52:28.579 VERBOSE (MainThread) [music_assistant.streams] Metadata:
2024-03-26 20:52:28.580 VERBOSE (MainThread) [music_assistant.streams] encoder         : Lavc60.3.100 pcm_s16le
2024-03-26 20:52:28.770 VERBOSE (MainThread) [music_assistant.streams] size=       0kB time=-577014:32:22.77 bitrate=  -0.0kbits/s speed=N/A
size=    1783kB time=00:00:09.59 bitrate=1521.7kbits/s speed=31.6x
2024-03-26 20:52:28.771 VERBOSE (MainThread) [music_assistant.streams] video:0kB audio:1783kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%
2024-03-26 20:52:28.777 VERBOSE (MainThread) [music_assistant.streams] size=       0kB time=-577014:32:22.77 bitrate=  -0.0kbits/s speed=N/A
size=    1783kB time=00:00:09.59 bitrate=1521.7kbits/s speed=36.1x
2024-03-26 20:52:28.777 VERBOSE (MainThread) [music_assistant.streams] video:0kB audio:1783kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%
2024-03-26 20:52:28.790 DEBUG (MainThread) [music_assistant.streams.media_stream] stream finished for: filesystem_local--MHnmpHLE://track/brown-noise.mp3 (9.510479166666666 seconds streamed, exitcode 0)
2024-03-26 20:52:28.791 DEBUG (MainThread) [music_assistant.streams.media_stream] Loudness measurement for filesystem_local--MHnmpHLE://track/brown-noise.mp3: LoudnessMeasurement(integrated=-25.24, true_peak=-1.61, lra=0.3, threshold=-35.24)
2024-03-26 20:52:28.795 DEBUG (MainThread) [music_assistant.streams.media_stream] stream aborted for: filesystem_local--MHnmpHLE://track/brown-noise.mp3 (8.0 seconds streamed, exitcode None)
2024-03-26 20:52:30.302 DEBUG (MainThread) [music_assistant.audio] Using (pre)cached streamdetails from queue_item for library://track/1
2024-03-26 20:52:30.302 DEBUG (MainThread) [music_assistant.audio] Using (pre)cached streamdetails from queue_item for library://track/1
2024-03-26 20:52:30.619 DEBUG (MainThread) [music_assistant.audio] Using (pre)cached streamdetails from queue_item for library://track/1
2024-03-26 20:52:30.620 DEBUG (MainThread) [music_assistant.audio] Using (pre)cached streamdetails from queue_item for library://track/1

That issue is unrelated.
repeat works for everyone using MA.
Are you 100% sure you are using the entity id's of the MA players ?
Also, you dont need to set repeat every time. Its a setting of the queue attached to a player. So if enabled, it will do repeat until you disable it again.
Maybe there is some regression in the last couple of betas. We had a fair share of annoying issues in the betas 129..124.
The latest beta (125) should be pretty solid again. I'll do a quick test of repeat on slimproto tomorrow but I'm 99% that works as expected.
I would add the files to the local provider btw in MA, there really is no advantage of plex in between.

Yeah after i added it back to plex the repeat isnt working any longer. Ill add it back to the local provider and test some more. The point about repeat being set once is good to know. I can try and remove that. I would assume if you try and set it again that it should just stick or be ignored if already set. If you were to set up an HA automation for a single song to be played on repeat, would it look any different than what i have pasted in the few posts above? Ive wiped my MA config directory a couple times now and started fresh but it doesnt seem to change anything. Was hoping i had some corrupted data causing repeat to fail.

What happens in the queue? Does the track moved to played items? Is it an mp3? If not can you convert it to mp3 and try again?This works perfectly for me on a picoreplayer

Its an mp3. Here is a clip of the playlist after i add the file to the playlist.
https://github.com/music-assistant/hass-music-assistant/assets/1872087/d3f47346-bb68-4d70-ae46-d9527e272e8b

Thats interesting as it behaves as if the setting is off. Have you tried all your other players to see what happens with them?

Yep. Same happens with the two other players in my kids rooms.

And what sort of players are those?

they're all picoreplayers. piCorePlayer v8.2.0 | www v00017 | linux 5.15.35-pcpCore-v7 (32) | piCore v13.2 | Squeezelite v1.9.9-1392-pCP
Keep in mind, these devices all play as expected when using LMS installed on a pi. I dont change the picoreplayers at all, just switch between MA and LMS. When i turn LMS off and reconfigure MA is the only time i cant get these things to repeat as expected.
Here is a config for the player.
# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details

[PI0]
initramfs rootfs-pCP-13.2.gz,modules-5.15.35-pcpCore.gz followkernel
kernel kernel51535.img

[PI02]
initramfs rootfs-pCP-13.2.gz,modules-5.15.35-pcpCore-v7.gz followkernel
kernel kernel51535v7.img

[PI1]
initramfs rootfs-pCP-13.2.gz,modules-5.15.35-pcpCore.gz followkernel
kernel kernel51535.img

[PI2]
initramfs rootfs-pCP-13.2.gz,modules-5.15.35-pcpCore-v7.gz followkernel
kernel kernel51535v7.img

[PI3]
initramfs rootfs-pCP-13.2.gz,modules-5.15.35-pcpCore-v7.gz followkernel
kernel kernel51535v7.img

[PI4]
initramfs rootfs-pCP-13.2.gz,modules-5.15.35-pcpCore-v7l.gz followkernel
kernel kernel51535v7l.img

[CM4]
otg_mode=1

[ALL]

cmdline cmdline.txt

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
#disable_overscan=1

# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16

# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720

# uncomment if hdmi display is not detected and composite is being output

# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes

# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4

# uncomment for composite PAL
#sdtv_mode=2

#----------------------------------------------------
dtparam=i2c_arm=on,i2s=on

#---pCP----------------------------------------------
# pCP does not use graphics chip by default, free up most memory
#gpu_mem=16
initial_turbo=60

# onboard audio overlay
dtparam=audio=on
audio_pwm_mode=2

# For Jivelite use with HDMI screens
# Comment out the lines above
#   gpu_mem=xx
#   dtparam=audio=on
# Then uncomment the following line.
#dtoverlay=vc4-kms-v3d
#

#Disable Bluetooth on both rpi3 and rpi0W
dtoverlay=disable-bt

# uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=
#gpu_freq=
#core_freq=
#sdram_freq=
#over_voltage=
force_turbo=1

# Remove audio hiss
# disable_audio_dither=1

#If booting from USB or network, enable this option to reduce CPU load looking for a non-existing card.
#dtparam=sd_poll_once

# Screen rotation 0 => 0 degrees, 2 => 180 degrees
lcd_rotate=2

#Custom Configuration Area, for config settings that are not managed by pCP.
#pCP will retain these settings during insitu-update
#---Begin-Custom-(Do not alter Begin or End Tags)-----
#---End-Custom----------------------------------------

Its a tough one as I have excactly the same setup and mine works fine except I don't have LMS on the network. ALso I have not changed anything in the PCP settings so if you have then I would look carefully at those. If you have the option perhaps try a fresh install of PCP on one of the devices, do nothing with it except have it discovered by MA and then try it?

Again, I only run MA or LMS at a time, never both. I have updated some settings according to some post i found. Mostly around performance like pinning cores and force turbo. Its odd that it plays fine with LMS though but not MA.

I did a clean flash on one of my players and its still just playing once. I did notice that there is a new version of pcp that released this past week. I wonder if anyone has been running that new version and whether or not it has a fix or something in it? The fact that it doesnt exhibit this behavior via lms directly though and only through MA makes me think somethings going on with MA still.

I think this is a bug on our side with repeat of the full queue. I think/hope that single track repeat will work.
I will reproduce it here and fix.
I'll let you know here when there's progress

Please keep an eye out for beta 134 and test again and report back once that is released.

@janstadt Please advise if this is still a problem for you in beta 134

Pulled latest with a clean install (no configs/providers/players configured). This was installed the same way as i used to install it:
  mass:
    image: ghcr.io/music-assistant/server
    container_name: music-assistant
    network_mode: host
    restart: unless-stopped
    privileged: true
    ports:
      - 8095:8095
    volumes:
      - ${ROOT}/config/music-assistant:/data

When i run it like this, i cannot add the slimproto provider as it says that a port is already in use. I look at my ports and its indeed being used, but its tied back to music assistant. If I take down the container the ports are no longer in use (9000 and 3483). If i start the container up without a network_mode im able to add slimproto, but the IP that gets configured in MA is the docker container IP and not my host IP. I can change the webserver address, but the slimproto service doesnt discover any speakers. Has anything changed with this kinda behavior? I cant figure out why it would do this on my end when nothing has changed.

Only happens when i start with network_mode: host
Seems like its spinning up the slimserver but then it doesnt properly get it all the way set up to a state where the provider is enabled. When i try and enable the provider it throws that error.
2024-04-11 13:32:47.817 ERROR (MainThread) [music_assistant] Error loading provider(instance) Slimproto (Squeezebox players)
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/music_assistant/server/providers/slimproto/__init__.py", line 253, in handle_async_init
    await self.slimproto.start()
  File "/usr/local/lib/python3.12/site-packages/aioslimproto/server.py", line 75, in start
    await self.cli.start()
  File "/usr/local/lib/python3.12/site-packages/aioslimproto/cli.py", line 176, in start
    await self._tcp_site.start()
  File "/usr/local/lib/python3.12/site-packages/aiohttp/web_runner.py", line 119, in start
    self._server = await loop.create_server(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/asyncio/base_events.py", line 1572, in create_server
    raise OSError(err.errno, msg) from None
OSError: [Errno 98] error while attempting to bind on address ('<IP_ADDRESS>', 9000): address already in use

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/music_assistant/server/server.py", line 536, in load_provider
    await self.load_provider(prov_conf)
  File "/usr/local/lib/python3.12/site-packages/music_assistant/server/server.py", line 452, in load_provider
    provider = await prov_mod.setup(self, prov_manifest, conf)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/music_assistant/server/providers/slimproto/__init__.py", line 143, in setup
    await prov.handle_async_init()
  File "/usr/local/lib/python3.12/site-packages/music_assistant/server/providers/slimproto/__init__.py", line 255, in handle_async_init
    raise SetupFailedError(
music_assistant.common.models.errors.SetupFailedError: Unable to start the Slimproto server - is one of the required TCP ports already taken ?

Yeah ok that error is saying that something else on your network is using port 9000. We had a report the other day from someone whose portainer was using that port? So have a think about what might be blocking

Ok i figured this out. my reverse proxy (linuxserver SWAG) when running in host mode somehow uses up port 9000. When i use the default docker network, it doesnt. Super weird. I changed my SWAG config to host mode so that i didnt have to allowlist some trusted proxy config in homeassistant all the time. Quite weird its using ports only in host mode.

Im still having issues with spotify and plex playing anything. I presume i have to wait for each provider to be fully synchronized, but i found a song that has been added to my library and i tried playing it on a few speakers and it wont play. It tries to start then stops. Logs look like this:
2024-04-11 20:42:38.340 VERBOSE (MainThread) [music_assistant.streams.media_stream] Input #0, ogg, from 'fd:':
2024-04-11 20:42:38.340 VERBOSE (MainThread) [music_assistant.streams.media_stream] Duration: N/A, start: 0.000000, bitrate: 320 kb/s
2024-04-11 20:42:38.340 VERBOSE (MainThread) [music_assistant.streams.media_stream] Stream #0:0: Audio: vorbis, 44100 Hz, stereo, fltp, 320 kb/s
2024-04-11 20:42:38.343 VERBOSE (MainThread) [music_assistant.streams.media_stream] Stream mapping:
2024-04-11 20:42:38.343 VERBOSE (MainThread) [music_assistant.streams.media_stream] Stream #0:0 -> #0:0 (vorbis (native) -> flac (native))
2024-04-11 20:42:38.343 VERBOSE (MainThread) [music_assistant.streams.media_stream] [Parsed_aresample_1 @ 0x55806921fa80] Cannot select channel layout for the link between filters Parsed_aresample_1 and format_out_0_0.
2024-04-11 20:42:38.343 VERBOSE (MainThread) [music_assistant.streams.media_stream] Error reinitializing filters!
2024-04-11 20:42:38.343 VERBOSE (MainThread) [music_assistant.streams.media_stream] Failed to inject frame into filter network: Invalid argument
2024-04-11 20:42:38.343 VERBOSE (MainThread) [music_assistant.streams.media_stream] Error while processing the decoded data for stream #0:0
2024-04-11 20:42:38.343 VERBOSE (MainThread) [music_assistant.streams.media_stream] Conversion failed!
2024-04-11 20:42:38.350 DEBUG (MainThread) [music_assistant.streams.media_stream] Process ffmpeg with PID 200 stopped with returncode 1
2024-04-11 20:42:38.350 DEBUG (MainThread) [music_assistant.streams.media_stream] stream finished (with code 1) for spotify--jfAEKTRa://track/5gCruy9T6XJcy4tSKf5em8
2024-04-11 20:42:38.350 DEBUG (MainThread) [music_assistant.streams.media_stream] Process ffmpeg with PID 200 stopped with returncode 1
2024-04-11 20:42:41.352 DEBUG (MainThread) [music_assistant.streams] Got GET request to /single/b8:27:eb:e4:f5:0b/f6cdf0782d17443b80616264b7383b9f.flac from <IP_ADDRESS>
headers: <CIMultiDictProxy('Host': '<IP_ADDRESS>:8098', 'Connection': 'close', 'Accept': '*/*', 'Cache-Control': 'no-cache', 'User-Agent': 'VLC/3.0.9 LibVLC/3.0.9', 'Range': 'bytes=0-')>

2024-04-11 20:42:41.352 DEBUG (MainThread) [music_assistant.streams] Start serving audio stream for QueueItem spotify://track/3ycnLH0vm7D9K2QHA4cAnq to The Kitchen
2024-04-11 20:42:41.352 DEBUG (MainThread) [music_assistant.streams.media_stream] start media stream for: spotify--jfAEKTRa://track/3ycnLH0vm7D9K2QHA4cAnq
2024-04-11 20:42:41.354 DEBUG (MainThread) [music_assistant.streams.media_stream] Process ffmpeg started with PID 206
2024-04-11 20:42:42.351 VERBOSE (MainThread) [music_assistant.streams.media_stream] Input #0, ogg, from 'fd:':
2024-04-11 20:42:42.351 VERBOSE (MainThread) [music_assistant.streams.media_stream] Duration: N/A, start: 0.000000, bitrate: 320 kb/s
2024-04-11 20:42:42.351 VERBOSE (MainThread) [music_assistant.streams.media_stream] Stream #0:0: Audio: vorbis, 44100 Hz, stereo, fltp, 320 kb/s
2024-04-11 20:42:42.354 VERBOSE (MainThread) [music_assistant.streams.media_stream] Stream mapping:
2024-04-11 20:42:42.354 VERBOSE (MainThread) [music_assistant.streams.media_stream] Stream #0:0 -> #0:0 (vorbis (native) -> flac (native))
2024-04-11 20:42:42.354 VERBOSE (MainThread) [music_assistant.streams.media_stream] [Parsed_aresample_1 @ 0x55db8bc46a80] Cannot select channel layout for the link between filters Parsed_aresample_1 and format_out_0_0.
2024-04-11 20:42:42.354 VERBOSE (MainThread) [music_assistant.streams.media_stream] Error reinitializing filters!
2024-04-11 20:42:42.355 VERBOSE (MainThread) [music_assistant.streams.media_stream] Failed to inject frame into filter network: Invalid argument
2024-04-11 20:42:42.355 VERBOSE (MainThread) [music_assistant.streams.media_stream] Error while processing the decoded data for stream #0:0
2024-04-11 20:42:42.355 VERBOSE (MainThread) [music_assistant.streams.media_stream] Conversion failed!
2024-04-11 20:42:42.364 DEBUG (MainThread) [music_assistant.streams.media_stream] Process ffmpeg with PID 206 stopped with returncode 1
2024-04-11 20:42:42.364 DEBUG (MainThread) [music_assistant.streams.media_stream] stream finished (with code 1) for spotify--jfAEKTRa://track/3ycnLH0vm7D9K2QHA4cAnq
2024-04-11 20:42:42.364 DEBUG (MainThread) [music_assistant.streams.media_stream] Process ffmpeg with PID 206 stopped with returncode 1

Looks like there is another hotfix for something sounding similar. will pull that down and try again.

Play is working on 235 now, but repeat still doesnt work. I tested on a squeezebox and tried with and without flow mode enabled.
https://streamable.com/mwoock link to a screen recording. Let me know if you want more logs.

2024-04-11 21:06:19.391 DEBUG (MainThread) [music_assistant.streams] Got GET request to /single/b8:27:eb:e4:f5:0b/1a1f4bec4db040efa254b57d1a691079.flac from <IP_ADDRESS>
headers: <CIMultiDictProxy('Host': '<IP_ADDRESS>:8097', 'Connection': 'close', 'Accept': '*/*', 'Cache-Control': 'no-cache', 'User-Agent': 'VLC/3.0.9 LibVLC/3.0.9', 'Range': 'bytes=0-')>

2024-04-11 21:06:19.391 DEBUG (MainThread) [music_assistant.streams] Start serving audio stream for QueueItem library://track/7100 to The Kitchen
2024-04-11 21:06:19.392 DEBUG (MainThread) [music_assistant.streams.media_stream] start media stream for: filesystem_local--P7JjijKM://track/brown-noise.mp3
2024-04-11 21:06:19.393 DEBUG (MainThread) [music_assistant.streams.media_stream] Process ffmpeg started with PID 935
2024-04-11 21:06:19.399 DEBUG (MainThread) [aioslimproto.client.The Kitchen] RESP received - Response received at player.
2024-04-11 21:06:19.399 DEBUG (MainThread) [aioslimproto.client.The Kitchen] send CODC for contenttype audio/flac: b'f????'
2024-04-11 21:06:19.542 VERBOSE (MainThread) [music_assistant.streams.media_stream] Input #0, mp3, from '/media/brown-noise.mp3':
2024-04-11 21:06:19.542 VERBOSE (MainThread) [music_assistant.streams.media_stream] Metadata:
2024-04-11 21:06:19.542 VERBOSE (MainThread) [music_assistant.streams.media_stream] title           : Brown Noise
2024-04-11 21:06:19.542 VERBOSE (MainThread) [music_assistant.streams.media_stream] album           : Varioius Artists
2024-04-11 21:06:19.542 VERBOSE (MainThread) [music_assistant.streams.media_stream] album_artist    : Various Artists
2024-04-11 21:06:19.542 VERBOSE (MainThread) [music_assistant.streams.media_stream] track           : 1
2024-04-11 21:06:19.542 VERBOSE (MainThread) [music_assistant.streams.media_stream] disc            : 1
2024-04-11 21:06:19.542 VERBOSE (MainThread) [music_assistant.streams.media_stream] artist          : Various Artists
2024-04-11 21:06:19.542 VERBOSE (MainThread) [music_assistant.streams.media_stream] lyrics-eng      :
2024-04-11 21:06:19.542 VERBOSE (MainThread) [music_assistant.streams.media_stream] date            : 2024
2024-04-11 21:06:19.542 VERBOSE (MainThread) [music_assistant.streams.media_stream] Duration: 00:00:09.55, start: 0.023021, bitrate: 67 kb/s
2024-04-11 21:06:19.542 VERBOSE (MainThread) [music_assistant.streams.media_stream] Stream #0:0: Audio: mp3, 48000 Hz, mono, fltp, 64 kb/s
2024-04-11 21:06:19.543 VERBOSE (MainThread) [music_assistant.streams.media_stream] Stream mapping:
2024-04-11 21:06:19.543 VERBOSE (MainThread) [music_assistant.streams.media_stream] Stream #0:0 -> #0:0 (mp3 (mp3float) -> flac (native))
2024-04-11 21:06:19.543 VERBOSE (MainThread) [music_assistant.streams.media_stream] Press [q] to stop, [?] for help
2024-04-11 21:06:19.547 VERBOSE (MainThread) [music_assistant.streams.media_stream] [flac @ 0x55b817010800] encoding as 24 bits-per-sample, more is considered experimental. Add -strict experimental if you want to encode more than 24 bits-per-sample
2024-04-11 21:06:19.547 VERBOSE (MainThread) [music_assistant.streams.media_stream] Output #0, flac, to 'pipe:':
2024-04-11 21:06:19.547 VERBOSE (MainThread) [music_assistant.streams.media_stream] Metadata:
2024-04-11 21:06:19.547 VERBOSE (MainThread) [music_assistant.streams.media_stream] title           : Brown Noise
2024-04-11 21:06:19.547 VERBOSE (MainThread) [music_assistant.streams.media_stream] album           : Varioius Artists
2024-04-11 21:06:19.547 VERBOSE (MainThread) [music_assistant.streams.media_stream] ALBUMARTIST     : Various Artists
2024-04-11 21:06:19.547 VERBOSE (MainThread) [music_assistant.streams.media_stream] TRACKNUMBER     : 1
2024-04-11 21:06:19.547 VERBOSE (MainThread) [music_assistant.streams.media_stream] DISCNUMBER      : 1
2024-04-11 21:06:19.547 VERBOSE (MainThread) [music_assistant.streams.media_stream] artist          : Various Artists
2024-04-11 21:06:19.547 VERBOSE (MainThread) [music_assistant.streams.media_stream] lyrics-eng      :
2024-04-11 21:06:19.547 VERBOSE (MainThread) [music_assistant.streams.media_stream] date            : 2024
2024-04-11 21:06:19.547 VERBOSE (MainThread) [music_assistant.streams.media_stream] encoder         : Lavf60.3.100
2024-04-11 21:06:19.548 VERBOSE (MainThread) [music_assistant.streams.media_stream] Stream #0:0: Audio: flac, 48000 Hz, stereo, s32 (24 bit), 128 kb/s
2024-04-11 21:06:19.548 VERBOSE (MainThread) [music_assistant.streams.media_stream] Metadata:
2024-04-11 21:06:19.548 VERBOSE (MainThread) [music_assistant.streams.media_stream] encoder         : Lavc60.3.100 flac
2024-04-11 21:06:19.610 DEBUG (MainThread) [aioslimproto.client.The Kitchen] STMl received - Buffer threshold reached.
2024-04-11 21:06:19.610 DEBUG (MainThread) [aioslimproto.client.The Kitchen] STMr received - resume confirmed.
2024-04-11 21:06:19.748 VERBOSE (MainThread) [music_assistant.streams.media_stream] [flac @ 0x55b817004b00] unable to rewrite FLAC header.
2024-04-11 21:06:19.748 VERBOSE (MainThread) [music_assistant.streams.media_stream] size=     955kB time=00:00:09.60 bitrate= 814.8kbits/s speed=46.9x
2024-04-11 21:06:19.748 VERBOSE (MainThread) [music_assistant.streams.media_stream] video:0kB audio:947kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.871899%
2024-04-11 21:06:19.748 VERBOSE (MainThread) [music_assistant.streams.media_stream] [Parsed_loudnorm_0 @ 0x55b81701d500]
2024-04-11 21:06:19.748 VERBOSE (MainThread) [music_assistant.streams.media_stream] {
2024-04-11 21:06:19.748 VERBOSE (MainThread) [music_assistant.streams.media_stream] "input_i" : "-25.24",
2024-04-11 21:06:19.748 VERBOSE (MainThread) [music_assistant.streams.media_stream] "input_tp" : "-1.61",
2024-04-11 21:06:19.748 VERBOSE (MainThread) [music_assistant.streams.media_stream] "input_lra" : "0.30",
2024-04-11 21:06:19.748 VERBOSE (MainThread) [music_assistant.streams.media_stream] "input_thresh" : "-35.24",
2024-04-11 21:06:19.748 VERBOSE (MainThread) [music_assistant.streams.media_stream] "output_i" : "-20.94",
2024-04-11 21:06:19.748 VERBOSE (MainThread) [music_assistant.streams.media_stream] "output_tp" : "-1.50",
2024-04-11 21:06:19.748 VERBOSE (MainThread) [music_assistant.streams.media_stream] "output_lra" : "1.00",
2024-04-11 21:06:19.748 VERBOSE (MainThread) [music_assistant.streams.media_stream] "output_thresh" : "-30.94",
2024-04-11 21:06:19.748 VERBOSE (MainThread) [music_assistant.streams.media_stream] "normalization_type" : "dynamic",
2024-04-11 21:06:19.748 VERBOSE (MainThread) [music_assistant.streams.media_stream] "target_offset" : "3.94"
2024-04-11 21:06:19.748 VERBOSE (MainThread) [music_assistant.streams.media_stream] }
2024-04-11 21:06:19.759 DEBUG (MainThread) [music_assistant.streams.media_stream] stream finished (with code 0) for filesystem_local--P7JjijKM://track/brown-noise.mp3 - seconds streamed: 9.6
2024-04-11 21:06:19.759 DEBUG (MainThread) [music_assistant.streams.media_stream] Loudness measurement for filesystem_local--P7JjijKM://track/brown-noise.mp3: LoudnessMeasurement(integrated=-25.24, true_peak=-1.61, lra=0.3, threshold=-35.24, target_offset=3.94)
2024-04-11 21:06:19.759 DEBUG (MainThread) [music_assistant.streams.media_stream] Process ffmpeg with PID 935 stopped with returncode 0
2024-04-11 21:06:19.770 DEBUG (MainThread) [aioslimproto.client.The Kitchen] No handler for dsco
2024-04-11 21:06:19.810 DEBUG (MainThread) [aioslimproto.client.The Kitchen] STMs received - playback of new track has started
2024-04-11 21:06:20.562 DEBUG (MainThread) [aioslimproto.client.The Kitchen] STMd received - decoder ready.
2024-04-11 21:06:21.356 DEBUG (MainThread) [aioslimproto.client.The Kitchen] play url (enqueue: True): http://<IP_ADDRESS>:8097/single/b8:27:eb:e4:f5:0b/1a1f4bec4db040efa254b57d1a691079.flac?ts=1712869581
2024-04-11 21:06:21.377 DEBUG (MainThread) [aioslimproto.client.The Kitchen] play url (enqueue: True): http://<IP_ADDRESS>:8097/single/b8:27:eb:e4:f5:0b/1a1f4bec4db040efa254b57d1a691079.flac?ts=1712869581
2024-04-11 21:06:30.177 DEBUG (MainThread) [aioslimproto.client.The Kitchen] STMu received - end of playback.

Are you testing with an actual hardware squeezebox perhaps ?
Those have issues transitioning to the next track (so that includes repeat) - the best way to fix it is to enable "flow mode" in the player settings.
 Please check again

Ok repeat is working now. I do notice one interesting thing. If i play this mp3 with the volume normalization setting on the mp3 sounds off. Like its pulsing or going in and out. If i turn off volume normalization it plays just fine.  Any ideas what would cause that?
brown-noise.mp3.zip

D@mn, i take it back. It repeats for like 5 repetitions and then stops. Just stops.
2024-04-14 14:39:40.672 DEBUG (MainThread) [music_assistant.streams] Got GET request to /single/00:00:00:00:00:00/baa9561338124cdab6b073c672b5c3ec.flac from <IP_ADDRESS>
headers: <CIMultiDictProxy('Host': '<IP_ADDRESS>:8098', 'Connection': 'close', 'Accept': '*/*', 'Cache-Control': 'no-cache', 'User-Agent': 'VLC/3.0.9 LibVLC/3.0.9', 'Range': 'bytes=0-')>

2024-04-14 14:39:40.673 DEBUG (MainThread) [music_assistant.streams] Start serving audio stream for QueueItem library://track/7100 to The Deck
2024-04-14 14:39:40.673 DEBUG (MainThread) [music_assistant.audio.ffmpeg] starting ffmpeg with args: -hide_banner -loglevel info -nostats -ignore_unknown -protocol_whitelist file,hls,http,https,tcp,tls,crypto,pipe,data,fd,rtp,udp -readrate 1.2 -ac 2 -channel_layout stereo -ar 48000 -acodec pcm_s24le -f s24le -i - -af aresample=resampler=soxr:precision=28 -f flac -ar 48000 -ac 2 -
2024-04-14 14:39:40.674 DEBUG (MainThread) [music_assistant.audio.ffmpeg] Process ffmpeg started with PID 3787
2024-04-14 14:39:40.674 DEBUG (MainThread) [music_assistant.streams.media_stream] start media stream for: filesystem_local--P7JjijKM://track/brown-noise.mp3
2024-04-14 14:39:40.674 DEBUG (MainThread) [music_assistant.streams.media_stream] starting ffmpeg with args: -hide_banner -loglevel info -nostats -ignore_unknown -protocol_whitelist file,hls,http,https,tcp,tls,crypto,pipe,data,fd,rtp,udp -filter_threads 2 -i <FILE> -acodec pcm_s24le -f s24le -ar 48000 -ac 2 -
2024-04-14 14:39:40.675 DEBUG (MainThread) [music_assistant.streams.media_stream] Process ffmpeg started with PID 3788
2024-04-14 14:39:40.708 DEBUG (MainThread) [aioslimproto.client.The Deck] RESP received - Response received at player.
2024-04-14 14:39:40.708 DEBUG (MainThread) [aioslimproto.client.The Deck] send CODC for contenttype audio/flac: b'f????'
2024-04-14 14:39:40.708 DEBUG (MainThread) [aioslimproto.client.The Deck] STMc received - connected.
2024-04-14 14:39:45.498 DEBUG (MainThread) [aioslimproto.client.The Deck] STMs received - playback of new track has started
2024-04-14 14:39:45.626 DEBUG (MainThread) [music_assistant.streams.media_stream] Process ffmpeg with PID 3788 stopped with returncode 0
2024-04-14 14:39:45.626 DEBUG (MainThread) [music_assistant.streams.media_stream] stream finished (with code 0) for filesystem_local--P7JjijKM://track/brown-noise.mp3 - seconds streamed: 14.26571875
2024-04-14 14:39:46.463 DEBUG (MainThread) [music_assistant.webserver] Handling command music/item_by_uri
2024-04-14 14:39:46.630 DEBUG (MainThread) [aioslimproto.client.The Deck] play url (enqueue: True): http://<IP_ADDRESS>:8098/single/00:00:00:00:00:00/baa9561338124cdab6b073c672b5c3ec.flac?ts=1713105586
2024-04-14 14:39:46.637 DEBUG (MainThread) [music_assistant.webserver] Handling command music/item_by_uri
2024-04-14 14:39:46.838 DEBUG (MainThread) [aioslimproto.client.The Deck] play url (enqueue: True): http://<IP_ADDRESS>:8098/single/00:00:00:00:00:00/baa9561338124cdab6b073c672b5c3ec.flac?ts=1713105586
2024-04-14 14:39:48.766 DEBUG (MainThread) [music_assistant.audio.ffmpeg] Process ffmpeg with PID 3787 stopped with returncode 0
2024-04-14 14:39:48.766 DEBUG (MainThread) [aioslimproto.client.The Deck] No handler for dsco
2024-04-14 14:39:48.782 DEBUG (MainThread) [aioslimproto.client.The Deck] STMd received - decoder ready.
2024-04-14 14:39:48.782 DEBUG (MainThread) [aioslimproto.client.The Deck] play url (enqueue: False): http://<IP_ADDRESS>:8098/single/00:00:00:00:00:00/baa9561338124cdab6b073c672b5c3ec.flac?ts=1713105586
2024-04-14 14:39:48.783 DEBUG (MainThread) [aioslimproto.client.The Deck] STMf received - connection closed.
2024-04-14 14:39:48.823 DEBUG (MainThread) [aioslimproto.client.The Deck] STMc received - connected.
2024-04-14 14:39:48.866 DEBUG (MainThread) [music_assistant.streams] Got GET request to /single/00:00:00:00:00:00/baa9561338124cdab6b073c672b5c3ec.flac from <IP_ADDRESS>
headers: <CIMultiDictProxy('Host': '<IP_ADDRESS>:8098', 'Connection': 'close', 'Accept': '*/*', 'Cache-Control': 'no-cache', 'User-Agent': 'VLC/3.0.9 LibVLC/3.0.9', 'Range': 'bytes=0-')>

2024-04-14 14:39:48.867 DEBUG (MainThread) [music_assistant.streams] Start serving audio stream for QueueItem library://track/7100 to The Deck
2024-04-14 14:39:48.867 DEBUG (MainThread) [music_assistant.audio.ffmpeg] starting ffmpeg with args: -hide_banner -loglevel info -nostats -ignore_unknown -protocol_whitelist file,hls,http,https,tcp,tls,crypto,pipe,data,fd,rtp,udp -readrate 1.2 -ac 2 -channel_layout stereo -ar 48000 -acodec pcm_s24le -f s24le -i - -af aresample=resampler=soxr:precision=28 -f flac -ar 48000 -ac 2 -
2024-04-14 14:39:48.868 DEBUG (MainThread) [music_assistant.audio.ffmpeg] Process ffmpeg started with PID 3820
2024-04-14 14:39:48.868 DEBUG (MainThread) [music_assistant.streams.media_stream] start media stream for: filesystem_local--P7JjijKM://track/brown-noise.mp3
2024-04-14 14:39:48.868 DEBUG (MainThread) [music_assistant.streams.media_stream] starting ffmpeg with args: -hide_banner -loglevel info -nostats -ignore_unknown -protocol_whitelist file,hls,http,https,tcp,tls,crypto,pipe,data,fd,rtp,udp -filter_threads 2 -i <FILE> -acodec pcm_s24le -f s24le -ar 48000 -ac 2 -
2024-04-14 14:39:48.868 DEBUG (MainThread) [music_assistant.streams.media_stream] Process ffmpeg started with PID 3821
2024-04-14 14:39:48.870 DEBUG (MainThread) [aioslimproto.client.The Deck] RESP received - Response received at player.
2024-04-14 14:39:48.870 DEBUG (MainThread) [aioslimproto.client.The Deck] send CODC for contenttype audio/flac: b'f????'
2024-04-14 14:39:53.796 DEBUG (MainThread) [music_assistant.streams.media_stream] Process ffmpeg with PID 3821 stopped with returncode 0
2024-04-14 14:39:53.796 DEBUG (MainThread) [music_assistant.streams.media_stream] stream finished (with code 0) for filesystem_local--P7JjijKM://track/brown-noise.mp3 - seconds streamed: 14.26571875
2024-04-14 14:39:54.446 DEBUG (MainThread) [music_assistant.webserver] Handling command music/item_by_uri
2024-04-14 14:39:55.428 DEBUG (MainThread) [aioslimproto.client.The Deck] STMs received - playback of new track has started
2024-04-14 14:39:56.966 DEBUG (MainThread) [music_assistant.audio.ffmpeg] Process ffmpeg with PID 3820 stopped with returncode 0
2024-04-14 14:39:56.966 DEBUG (MainThread) [aioslimproto.client.The Deck] No handler for dsco
2024-04-14 14:39:56.998 DEBUG (MainThread) [aioslimproto.client.The Deck] STMd received - decoder ready.
2024-04-14 14:40:04.434 DEBUG (MainThread) [aioslimproto.client.The Deck] STMu received - end of playback.

I see you attached the file here, I will check it out.
BTW:
I notice one small issue in your log, which is the player ID being 00:00:00:00:00:00 that is super weird.
Is this a real squeezebox or a squeezelite based setup ?

This is a squeezelite setup (picoreplayer).

piCorePlayer v8.2.0 | www v00017 | linux 5.15.35-pcpCore-v7l (32) | piCore v13.2 | Squeezelite v1.9.9-1430-pCP

This is a squeezelite setup (picoreplayer).

Ah OK, There is a known issue with picoreplayer starting too soon so that it does not yet have the mac address, hence the 00 address. That will cause issues if you once decide to add another picoreplayer. In discord it was mentioned last week that there is a "network wait" option to delay the startup of squeezelite a bit on picoreplayer until the network is ready. You can also just use the -m option and specify the mac address yourself.

I reproduced the issue with that brown noise file - looks like the volume normalization is completely tripping on the file.
I'll investigate more. Maybe I didnt account enough for the fact that the input fie is mono

I'll take a look at the picore settings. Thanks for the heads up on the network wait stuff.

Also reproduced the stop, that is just a race condition due to the file being this short. I will also look at fixing that

Im curious if you would have a preference between airplay or squeezelite for playing music on these picoreplayers? I have shairport sync configured on them all but i noticed weird issues jumping between playing music to Airplay devices from spotify vs things like home assistant automations. I decided on going with just squeezelite but am wondering if all my issues would go away if i just used airplay? I know its an inferior protocol for playback and whatnot, but im not a huge audiophile and i think it would make my wife and kids' lives easier if they could just use airplay to play stuff. Unsure if that would really solve everything but who knows.

Oh weird, just one of my devices are showing the 00: mac addresses. Even with the wait time modification. I'll need to look at that and see why the player is showing zeroes for its mac.

squeezelite should work great - you just have an edge case with this short brown noise file playing on repeat.
A LOT of people are running squeezelite based players with the slimproto provider in MA just fine for their daily playback.
As for Airplay: that is also a great protocol and I actually prefer it over slimproto because it has great accurate sync being a timestamped protocol vs the crappy serverside compensation of slimproto.
Airplay is limited to redbook CD quality only (44.1/16bits) but that is sufficient for everyone.
Only on 50K speakers you may be able to tell the difference between higher sample rates but still I highly doubt that.
So, both are fine. Airplay is great, slimproto is also great.
I use Airplay a lot myself as it allows me to stream to a variation of speakers I have.

Another update. A short track on single repeat was just bound to fail. The squeezelite player has a buffer of about 10 seconds and loads the clip (super fast) into memory, then asks the server for a next track but that has no idea that the player even started playing already because the request comes in only a few milliseconds after actually sending the request to start playback. Its a good old race condition. The MA server is optimized to allow players to buffer more for smoother playback while LMS tends to be a bit slower so the race condition trips not as easy there but it also does exist.
I have put in a bandaid in the code and in my testing its now working fine.
Then to the next issue. The volume normalization was not working correctly on this brown noise audio clip because the limiter would exceed the bounds (the clip has a super high dynamic range) - I have now optimized our code to auto detect this and dynamically adjust the target loudness level to account for more headroom. The file might play crappy the first time but then the measurement is received and it will use the adjusted values in the subsequent runs.
So, long story short, the issues should be solved in the next update.

Thanks for the info. I havent had an issue with LMS at all with the file so i wonder if im just getting lucky? I could maybe join the file to itself a bunch of times to make the clip longer. Would that further limit the race condition? For reference, i pulled the original wav file from https://moodist.app/ and then converted it to an mp3 after adding metadata to the file in order for it to play in MA.

Yeah, its just a race condition of a few milliseconds so maybe LMS just loads the file quicker or feeds the audio slower or whatever. I handled it now on our side so should be good. But yeah, joining the file is actually even better.
I quickly joined it for you, see attachment.

Thanks for the zip! I'll close this out when i test out the next release. Thanks again for all the help!

@janstadt beta139 is released

Thanks for the heads up. Replay is working longer than 5 replays now, but i still had to turn of Volume Normalization on the speakers in order for it to sound appropriate. If it is on, the volume spikes and muffles and isnt a constant stream of audio. It also wouldnt replay appropriately. This is on 138 though, i'll try and update and see if that helps

I also notice that when i have repeat all on over airplay or squeezelite its not seamless even with crossfade one. Audible silence for a second or two and them it starts playing again.

The first time you play a file like this (which is really bad recorded btw!) - it will have some difficulties to to the huge peaks vs low baseline but the subsequent runs of this file will run in lineair mode and should then run fine from now on. If it keeps giving issues, I can remaster that file for you.

repeat ALL will loop back the queue, it will stop the stream so it will never be continuous and I have no intention of changing that tbh as its a nightmare to support for all scenarios. repeat single (or just queued tracks) will not stop the output and keep going continuously.

you said that it seemed to ignore repeat while playing - was that a very short track again perhaps and only one track in the queue ? Also, was that with full repeat or single track ?

Excellent information, thanks. I was not aware that was how repeat all vs single worked. I just tried repeat single with that file (with and without crossfade) and its still gapping with an audible break. If you think remastering that file would fix it, yeah that'd be awesome if you could do that for me. Much appreciated. The ignoring of repeat was on full repeat but i think it was a short track so that might be that race condition cropping up. The file you sent me that was twice as long doesnt have a problem repeating, it just 1) still playing oddly with normalization and 2) gapping on each replay when i have it on repeat single (and all but thats i suppose the same as repeat single if all i have is 1 song in the playlist).

I've found quite a few different brown noise files online that seem to all exhibit that muffled pulsing sound where they just dont sound correct when going through volume normalization. Unsure about how to share these kinda files but i found some on archive dot org: https://shorturl.at/brtKL Tested out the 10hr one and its doing that odd playback as well.

Yeah in testing I am also seeing unusual playback with my countdown test track. Repeat works fine but the sound level is off. If I go to the track view and press the preview button then it sounds fine.
countdwn-23609.zip

LMS doesn't do EBU based volume normalization but just plain old replay gain, it can not be compared.
I have identified the ffmpeg loudnorm filter acting up on this brown noise file while in the first pass (dynamic mode) but it should be fixed once it has a measurement collecte din the db and do any second phase runs (so any time you play the track after the first run). At least in my case when I test with your file it sounds good and no more muffled pulsing sounds.
The other way I can think of is just detecting these sound effects files and completely disable volume normalization when we detect these. This can be as simple as adding something to the ID3 tags.

Our entire enqueing logic is not really optimized for gapless repeat of short sound effects as we're built with music in mind. I will have another look if I can improve it without making the code too horrible.
Having gapless repeat for the entire queue (even with just one track in it) is something I'm not going to support as its much cleaner and maintainable to just restart the queue. Its also considered such an edge case of an edge case I don't think I should spend energy on it.
What should work is a continuous repeat of a single track but its a bit player dependent as we already figured out. MA does not only support slimproto (like LMS) but needs to support all modern protocols and player types so its a bit more of a challenge sometimes to satisfy everybody. For example we focus on having large buffers and allow players to buffer as much ahead as they want/can which prevents glitches/artifacts so the best possible playback of MUSIC is ensured.
That does not play well with super short audio clips on repeat where the player itself already filled its buffer before we can even think of feeding a next track.
Long story short, I will have another look at the repeat single track scenario.
Can you confirm that playing the brown noise file on next attempts has no more  muffled sound ?

Yeah in testing I am also seeing unusual playback with my countdown test track. Repeat works fine but the sound level is off. If I go to the track view and press the preview button then it sounds fine.

explain "sound level is off" - you mean the volume ?

Yes  the sound level is low (compared to the preview playback) and it varies throughout the playback.

Our entire enqueing logic is not really optimized for gapless repeat of short sound effects as we're built with music in mind. I will have another look if I can improve it without making the code too horrible.
Having gapless repeat for the entire queue (even with just one track in it) is something I'm not going to support as its much cleaner and maintainable to just restart the queue. Its also considered such an edge case of an edge case I don't think I should spend energy on it.
What should work is a continuous, gapless repeat of a single track but its a bit player dependent as we already figured out. MA does not only support slimproto (like LMS) but needs to support all modern protocols and player types so its a bit more of a challenge sometimes to satisfy everybody. For example we focus on having large buffers and allow players to buffer as much ahead as they want/can which prevents glitches/artifacts so the best possible playback of MUSIC is ensured.
That does not play well with super short audio clips on repeat where the player itself already filled its buffer before we can even think of feeding a next track.
Long story short, I will have another look at the repeat single track scenario.
Can you confirm that playing the brown noise file on next attempts has no more muffled sound ?

Muffling is present no matter how many times the file has repeated.

@marcelveldt I figure i'd ask here before submitting a new discussion. I have MA running and detecting my airplay speakers. If i cast music to one of the airplay speakers from my iphone, the track information (all information) doesnt seem to make it to MA (and therefore not to HA). The speakers in MA show off or idle even though they're playing audio from my phone. Is this by design? Is the goal for all music requests to originate from MA in order to get that kinda information into MA (and HA)?
FWIW this same thing happens with LMS with airplay speakers, but i recently found the Shairtunes2 plugin for LMS which is a daapd fork. So what i do is on all my pcp players i disable shairtunes/airplay and just keep them as squeezelite players, but then with the Shairtunes2 plugin, it recognizes those squeezelite players and exposes them as Airplay devices. Now when i cast my music from my phone, the information is populated in LMS and HA which is what i want. Have you considered this approach to Airplay devices or is there something wrong with my setup that MA and HA arent getting audio metadata when i cast audio directly to Shairport sync on a pi? Any ideas would be great.

If MA doesn’t initiate the stream then it doesn’t have control of the device and thus doesn’t know the state. The convoluted solution you have with LMS I don’t think has been considered, MA is not trying to be a LMS clone. What has been requested before and is being considered for the future is to make MA an Airplay target itself.

That is effectively what Shairtunes2 does so that would be a nice future feature.

Muffling is present no matter how many times the file has repeated.

I think we have no other way than to just disable volume normalization on these effect files, the ffmpeg loudnorm filter clearly has issues with it while it works brilliant for all other content. What I observed in these files is that they're full of junk with high peaks and such, probably a result of the "noise". Now I need to figure a way how to determine this in an automatic way so loudnorm is disabled for effect files, while enabled for music.
What I can do I can do is fallback to a standard gain control (like LMS) when we detect a file with these values.

Hey @marcelveldt. Any updates on this issue? Also, im curious if you had a chance to remaster that wav (or mp3) file so that it doesnt have all the junk in it? I've tested out disabling normalization and im stil hearing that muffling as @OzGav mentioned as well. If a remastered file is all it takes to get things running smoothly that should be enough for me.

Sorry this will be low priority at the moment

Hey @marcelveldt. Any updates on this issue? Also, im curious if you had a chance to remaster that wav (or mp3) file so that it doesnt have all the junk in it? I've tested out disabling normalization and im stil hearing that muffling as @OzGav mentioned as well. If a remastered file is all it takes to get things running smoothly that should be enough for me.

Well, I have just accidentally discovered why this was failing and fixed it right on time for the 2.0 RC.
Still, the first time you play the effect it will still be dancing (as it is measuring the file) but then it will do a linear run in all subsequent runs. I just listened to it with headphones and now the linear adjusted volume leveled one sounds exactly the same as the one without volume normalizatton enabled.
Case closed ;-)

Great news! Thanks @marcelveldt for the update!

If you are satisfied then please close this one.

I was hoping to test it out first but it says it'll be in a RC and not the latest Beta.

Oh yep. So much going on. Please close when you are happy.

@janstadt Have you tested this?

Playback sounds much better. I am still unable to get gapless playback though unfortunately, even when selecting Repeat 1. I know that @marcelveldt mentioned that its player dependent, so i wonder if there are any secrets on making gapless playback for airplay devices.

Have you got flow mode enabled?
On 14 May 2024 12:14:19 pm AEST, Jake Anstadt @.***> wrote:

Playback sounds much better. I am still unable to get gapless playback though unfortunately, even when selecting Repeat 1. I know that @marcelveldt mentioned that its player dependent, so i wonder if there are any secrets on making gapless playback for airplay devices.
--
Reply to this email directly or view it on GitHub:
https://github.com/music-assistant/hass-music-assistant/issues/2059#issuecomment-2109146106
You are receiving this because you were mentioned.
Message ID: @.***>

Yes. Flow Mode is enabled.

If the original issue is resolved I would like to close this and you could enquire on Discord about the gapless repeat as I am not aware of anything that can help with that. Sorry.


Allow interactive selection of source and sinks in new

Is your feature request related to a problem? Please describe.
Meteor gen command right now expects the name of plugins as flags.
Describe the solution you'd like
Meteor can be extended to Interactively ask for names of plugins from the available list of plugins to generate recipes.

@ravisuhag we have to keep the non-interactive mode as well, right? if yes, shall we keep a boolean flag to enable interactive mode?

Yes.


Add a possibility not to strip binaries

In Fedora, we strip them ourselves post-build and we keep the debuginfo.

Closing for https://github.com/3MFConsortium/lib3mf/pull/310


Preparations for UMAP 0.4 release

https://github.com/theislab/scanpy/issues/779
Also i see some changes in the internal nnescent of umap and it is problematic for Ingest.

Do you think we also need to check if the umap version is >= 0.4 or so?

Nah, if it returns a tuple, we take the first element, if not, we assume it’s a sparse matrix

Did anyone run scanpy tests with umap 0.4 branch?

Not me, but I checked the current and old umap code and found that this PR will only fix things and not cause problems. IDK if umap 0.4 causes further problems


SDK-6415: [1.28.4] Dummy plugin crashes SDKService when Inspection is launched

JIRA: https://neurala.atlassian.net/browse/SDK-6415
Changelog

add ResultsOutput implementation to dummy plugin

Reviewer Checklist

Should be edited by reviewers only

[ ] Does this implement the story reqs?
[ ] Does this match the coding standard?

[ ] Are all TODO's in the proper format?
[ ] Have JIRA tickets been made for all TODO's?

[ ] Does this include tests that exercise the altered/added code?
[ ] If it modifies a public API, is the documentation updated?

Finally able to reproduce it, this doesn't quite fix it yet.


KCV Launches game but doesn't display connection.

http://pre14.deviantart.net/ec3d/th/pre/f/2016/294/9/8/kcv_glitch_by_michell_vall-dalrobl.png
Earlier today the build of KCV I was using inexplicably stopped working and closed with the general Windows "X has stopped working" message even after clearing cache or setting cookies. I was relieved to see there was a newer build, and so assumed that was my issue, but upon loading KanColle in the new build the game works fine but KCV no longer can tell it's connected. I tried clearing the cache and using the cookie function again but no luck.
Windows has sent out a few updates recently but I don't think any between the last time I played and today, although AMD is telling me to update right now so I'll give that a shot.
edit
As expected AMD update had no effect. KCV still manages to launch and run the game fine so it's not like this is a huge issue, I miss the quick mute more than anything.

I'm afraid this may be an issue on your side. Have you tried removing the AppData folders referenced in the FAQ under “My PC crashed” etc.? Both the underscore and white-space ones.

Unfortunately that didn't change it, thanks for the help anyway mate.

I'm having the same problem and don't know what to do about it.
Until today it worked just fine.

The game was updated.
I cannot update KCV right now due to health issues; I'll release a new version in a few days.


scrublet histogram is not bimodal

Hi @swolock,
thanks for this tool! It's blazing-fast and looks promising on the 10x PBMC data.
However, when working on a larger dataset of T cells, the histograms don't have the nice bimodal shape any more and therefore very few doublets are detected (see below). Do you have any clue what could be the problem or what I have to tune?

How I ran scrublet
scrub = scr.Scrublet(adata.X)
scores, doublets = scrub.scrub_doublets()

adata.X is a sparse matrix containing raw UMI counts (not log-transformed, not normalized)
About the dataset:

from Lambrechts et al. 2018
Processed from raw data myself using cell ranger -> no prior doublet filtering
33k cells after filtering for 200 < n_detected_genes < 600 and percent_mitochondrial < 10%

Hi @grst,
There are likely several factors at a play here. Apologies in advance for the lengthy response.
First, a couple of asides:

The automatic thresholding of the simulated doublet histogram is definitely not perfect. Even though your histogram isn't bimodal, I think that manually setting the threshold at 0.4 would be better (predicted_doublet_mask = scrub.call_doublets(threshold=0.4)), since this cuts off the long right tail of the distribution. That said, your UMAP plot shows no co-localization of high-scoring observed transcriptomes, so simply lowering the threshold isn't going to solve your problem.
The Lambrechts paper includes data from from multiple samples from different individuals, run on different 10x lanes. Because doublets only form from cells from the same sample, it's usually best to apply Scrublet separately to each sample. This helps avoid issues with variable cell type composition across samples, as well as batch effects.

Back to your issue: the simulated doublet score distribution is bimodal only if the simulated doublets include an appreciable fraction of each of the two "types" of doublets, neotypic (high scoring, distinct from singlets) and embedded (low scoring, similar to singlets). The fact that your simulated doublet score distribution only has a left mode suggests that for your data and method of analysis (in this case, the default preprocessing used by scrub_doublets()), most doublets are embedded and therefore not detectable. This typically happens when there isn't much complexity in the sample, i.e., most random pairs of cells are similar to each other and create doublets that resemble themselves.
That said, your UMAP plot shows fairly distinct cell states, so we would expect to have a higher neotypic doublet fraction than you've observed. I'm guessing that the preprocessing you used to generate the UMAP plot is different from that used by the default Scrublet preprocessing pipeline. To confirm this, you could build a new UMAP embedding using the Scrublet PCA as input:
scrublet_umap = scr.get_umap(scrub.manifold_obs_, n_neighbors=10, min_dist=0.3)

This will probably look more like a blob than your other UMAP. If it does, you can try to tweak the scrub_doublet() parameters (for instance, use log-transformation or change the gene filtering) to more closely match your previous analysis. It's also possible to use a totally custom preprocessing pipeline -- if you're interested, let me know. I've been meaning to add an example notebook showing how to do this.
Lastly, if you want to share the data, I'd be happy to take a look.

Thanks for your comprehensive explanation.
I think the main problem was that I ran scrublet on all samples and not for each sample independently.
For a single sample it looks like this (for some not as good, but the second peak is there now in general):

And also the detected doublets look more sensible now.
You pointed out that the processing steps could differ and therefore the UMAP plots could look significantly different, and they do (see below). You mentioned that it is possible to run scrublet on
custom preprocessed data.

In what way could that effect the results?
Does it make sense to do it?

my umap (scanpy)
sc.pp.normalize_per_cell(adata_vis, counts_per_cell_after=1e4)
sc.pp.log1p(adata_vis)
sc.pp.filter_genes(adata_vis, min_cells=1)
sc.tl.pca(adata_vis, svd_solver='arpack')
sc.pp.neighbors(adata_vis, n_neighbors=10, n_pcs=40)
sc.tl.umap(adata_vis)
sc.pl.umap(adata_vis, color=["is_doublet", "doublet_score"])

scrublet umap
scrublet_umap = scr.get_umap(scrub.manifold_obs_, n_neighbors=10, min_dist=0.3)
adata_vis.obsm["X_umap"] = scrublet_umap
sc.pl.umap(adata_vis, color=["is_doublet", "doublet_score"])

Great, those Scrublet results seem much better. The Scrublet UMAP does look a bit pathological... I wonder if re-running it (with a different random state) or simply zooming in on the bulk of the cells in the upper right would reveal similar structure to what you see with the Scanpy version.
Regarding custom preprocessing:

In what way could that effect the results?

If the two preprocessing methods gave substantially different PCA results, there's a chance one of them would resolve doublets better than the other. As an extreme example, if you only used 2 PCs in one and 20 in the other, the 20-PC version would probably resolve more doublets (and more structure in general), since these doublets would be indistinguishable from  singlets in the 2-PC version. Similar things could happen with other choices in preprocessing (e.g., number of variable genes, log transformation, z-scoring).

Does it make sense to do it?

For your example dataset above, I probably wouldn't bother with the custom preprocessing, since most of the predicted doublets are clustered/distinguishable in the Scanpy UMAP embedding. This suggests that both preprocessing pipelines are giving similar enough results.

Hi grst,
Thanks a lot to point this out. I was about to ask a similar question. I think it make more sense to predicted the doublets in individual sample sets rather than treat them as a whole, consider different batch of experiment may introduce different rate of doublet contaminations.
I have questions for you is that do you use the same setting for all individuals or different? do you run scrublet before or after you filter cells with gene numbers?
Thanks a lot.
Y

Hi ysu2015,
I used the same setting (including manual threshold) for all samples of the
same dataset.
I ran scrublet after filtering cells for the number of detected genes and
the fraction of mitochondrial reads.
Maybe @swolock can comment on if that's the proper way to do it.
Best,
Gregor
On Thu, 21 Mar 2019 at 19:20 ysu2015<EMAIL_ADDRESS>wrote:

Hi grst,
Thanks a lot to point this out. I was about to ask a similar question. I
think it make more sense to predicted the doublets in individual sample
sets rather than treat them as a whole, consider different batch of
experiment may introduce different rate of doublet contaminations.
I have questions for you is that do you use the same setting for all
individuals or different? do you run scrublet before or after you filter
cells with gene numbers?
Thanks a lot.
Y
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/swolock/scrublet/issues/3#issuecomment-475347526, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AGuY1yf9J63MnN0kKgFb9WUImOHOhP4rks5vY811gaJpZM4ZPurF
.

Hi Gregor,
Thanks for your quick reply. I assumed that you filter cells with Seurat? I thought to use scrublet for my analysis as well. I have already created a Seurat object and planning to filter cells as what you did and get the raw counts of those"kept cells" as input for scrublet. Is that possible for you to share how you put the cells singlet/doublet info back to Seurat object in @meta.data?
Thanks a lot.
Y

I've been using scanpy, sorry...

That is OK. Thanks anyway.
Y

Hi Gregor, Thanks for your quick reply. I assumed that you filter cells with Seurat? I thought to use scrublet for my analysis as well. I have already created a Seurat object and planning to filter cells as what you did and get the raw counts of those"kept cells" as input for scrublet. Is that possible for you to share how you put the cells singlet/doublet info back to Seurat object in @meta.data? Thanks a lot. Y

Were you able to do this?


pipenv shell activating incorrect python3

As you can see below, I have a command which works via pipenv run but not after entering the virtualenv with pipenv shell.
rl_sat local # pipenv run python3 src/test.py
✔ 1s

rl_sat local # pipenv shell                                                                                Launching subshell in virtual environment. Type 'exit' or 'Ctrl+D' to return.

rl_sat local # python3 src/test.py                                                                                Traceback (most recent call last):
  File "src/test.py", line 2, in <module>
    import main
  File "/Users/wujeff/Documents/Projects/rl_sat/src/main.py", line 1, in <module>
    from pyrsistent import PVector
ModuleNotFoundError: No module named 'pyrsistent'
✘ [1] 1s

I verified the problem is to do with replacing the python links/path.
rl_sat local # pipenv shell                                                                                Launching subshell in virtual environment. Type 'exit' or 'Ctrl+D' to return.

rl_sat local # which python3
/usr/local/bin/python3
✔ 0s

(As a side note, I find this slightly weird:
rl_sat local # pipenv run which python3
The command (/Users/wujeff/.local/share/virtualenvs/rl_sat-a4OaVrmj/bin/which) was not found within the virtualenv!
✘ [1] 1s

)
while using the virtualenv itself directly works:
rl_sat local # source /Users/wujeff/.local/share/virtualenvs/rl_sat-a4OaVrmj/bin/activate
(rl_sat-a4OaVrmj) ✔ 1s

rl_sat local # which python3
/Users/wujeff/.local/share/virtualenvs/rl_sat-a4OaVrmj/bin/python3
(rl_sat-a4OaVrmj) ✔ 0s

rl_sat local # python3 src/test.py
(rl_sat-a4OaVrmj) ✔ 0s

This all is not a huge deal and could have to do with weirdness of my system.  However, I spent some non-trivial time debugging, and it feels like pipenv shell should at least have some kind of error message.

I can’t offer anything to the problem with shell, but the which part is expected. pipenv run only runs things in your virtualenv, so that there’s zero chance for you to accidentally execute anything else, e.g. running a command with a wrong version because it’s installed globally, and you forgot to install a copy into the local environment. This is a common mistake when using virtualenv, and similar tools from other languages work similarly to Pipenv.

you have PATH issues. we have a patch in the next release which will help this.
try calling 'python' instead of 'python3' in your shell.

python doesn't work either.  it then gives invalid syntax

@WuTheFWasThat can you post the command and output?

rl_sat local # pipenv shell
Launching subshell in virtual environment. Type 'exit' or 'Ctrl+D' to return.

rl_sat local # python src/test.py
  File "src/test.py", line 8
    def parse_clauses(n: int, succinct_rep: ProblemRepresentation) -> List[Clause]:
                       ^
SyntaxError: invalid syntax
✘ [1] 0s

rl_sat local # which python
/usr/local/bin/python
✔ 0s

rl_sat local # ls -lah /usr/local/bin/python
lrwxr-xr-x  1 wujeff  admin    36B Nov  3  2016 /usr/local/bin/python -> ../Cellar/python/2.7.12_2/bin/python
✔ 0s

@WuTheFWasThat Python2 doesn't support type hinting, but PEP484 does address how to do it in python2.  When you created the virtualenv with pipenv did you specify pipenv --three or pipenv --python python3?  That should create the virtualenv using your systems python3 executable as a base.

I am fairly sure I did pipenv --three.  How would I check?  It doesn't seem to specified in either the Pipfile nor Pipfile.lock

When I activate the virtualenv manually python --version returns Python 3.6.2

@WuTheFWasThat I think you have a $PATH issue as @kennethreitz mentioned above.  When I enter into a subshell and do which python I get /Users/erin/.local/share/virtualenvs/pipenv-_3lJS9mX/bin/python and an ls -lah shows it's symlinked to python3 which would make sense as I used the --three option to create the virtualenv.  When you did which python in the subshell it is showing that it is symlinked to python2.7.  Activating the virtualenv manually modifies your $PATH to place python3.6 at the front.  I would check your path when you are not in the virtualenv.

Also I would try and unisntall pipenv and install it using the fancy way.  This seems to avoid the $PATH issues that people have.  The Pew docs can be of help there!

ok.  FWIW, nothing seems particularly strange about my $PATH:
/Developer/NVIDIA/CUDA-8.0.61/bin:/Users/wujeff/.yarn/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/Users/wujeff/.multirust/toolchains/stable/cargo/bin:/Users/wujeff/.multirust/toolchains/1.5.0/cargo/bin:/Users/wujeff/Library/Haskell/bin:/Applications/Postgres.app/Contents/Versions/9.5/bin/:/Users/wujeff/.fzf/bin:/usr/local/go/bin:/opt/local/bin:/opt/local/sbin:/usr/local/cuda/bin```

then in the virtual env when I source it manually:

rl_sat local # echo $PATH
/Users/wujeff/.local/share/virtualenvs/rl_sat-a4OaVrmj/bin:/Developer/NVIDIA/CUDA-8.0.61/bin:/Users/wujeff/.yarn/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/Users/wujeff/.multirust/toolchains/stable/cargo/bin:/Users/wujeff/.multirust/toolchains/1.5.0/cargo/bin:/Users/wujeff/Library/Haskell/bin:/Applications/Postgres.app/Contents/Versions/9.5/bin/:/Users/wujeff/.fzf/bin:/usr/local/go/bin:/opt/local/bin:/opt/local/sbin:/usr/local/cuda/bin

But when I do `pipenv shell`, and `echo $PATH`, it's unchanged

The pipenv/pew .local location should be in front of any system level paths when outside of your virtual environment.  The Pew docs can help you out with the correct $PATH settings.
Here are the first two entries from my $PATH
/Users/erin/.local/bin:/usr/local/bin

I haven't tried the pipsi installation yet, but I read the code a bit and discovered that PIPENV_SHELL_COMPAT=true pipenv shell causes things to work also.
This actually seems like a bug in pew, since the command pew workon rl_sat-a4OaVrmj doesn't work for me

COMPAT mode does use source to activate the virtualenv, I forgot that was an option.  I'd encourage you to place a bug report with the Pew team with your use case.  I'm gonna close this issue for now!

I'm still curious - what is the reasoning for using pew by default?  I'm guessing not many people use pew so maybe COMPAT mode should be default instead?
I submitted an issue there, but I'm not too confident the bug will get fixed.  I don't want to be too critical but since my evidence is a bit weak, but:

I hit another bug in pew immediately while playing around with it
The pew repository isn't too maintained, with the last commit being in January and a number of open PRs, including one that fixes the aforementioned bug

Your shell is configured incorrectly. Pew is working fine.

sorry, you're right.  I figured it out

Pew is a learning experience for all :) ✨🍰✨


CSS: td.h3 style

Compare the word "Torsion" on
legacy: https://ocw.mit.edu/courses/mechanical-engineering/2-001-mechanics-materials-i-fall-2006/readings/
nextgen: https://ocwnext.odl.mit.edu/courses/2-001-mechanics-materials-i-fall-2006/pages/readings/
If possible, we should write a narrowly applied style to style these h3 tags similar to the legacy site.

@pdpinch I didn't get this: we should write a narrowly applied style to style these h3 tags.
Just to confirm, are you referring to this text?

If yes:
then in legacy course, its font-style seems to be italic, so are you willing to have something like this?

and if we also match the font-family and font-weight like in the legacy course, then we will have something like this:

If yes:
then I guess this change can be applied to all the h3 tags which are inside td. Right?

That’s is all correct. Thank you for the screenshots.
I think it’s ok to apply this to all h3 in a td, as long as it doesn’t have side effects on navigation, footer, etc.
.

Thank you for the screenshots.

No problem

I think it’s ok to apply this to all h3 in a td, as long as it doesn’t have side effects on navigation, footer, etc.

Sure, I'll look into it


Stuck after training

Hi,
I was running the example described in section CodeBERT/GraphCodeBERT/translation to convert Java to C#.
However, after the training epoch is concluded, the program does not seem to finalize.

My terminal is stuck in this state without exiting.
Do you have any idea of what might be going on ?
Can this be caused by a wrong package version (transformers,torch) , does my machine not have enough memory to save the trained model ? (Or if I Ctrl+C the model will be saved without any kind of corruption ?). Even if it is one of the two causes mentioned above I think the program should throw an error instead of being stuck forever after training
At the moment I am using:
transformers 4.8.1
torch 1.5.0
Thanks a lot

Nevermind, I just did Ctrl+C to interrupt the program and the models were saved uncorrupted and I was able to perform inference.


NWC payments are succeeding but showing as error

Tested with Mutiny Wallet's NWC. Zap a track on the full screen player, zap button switches to loader animation, then error toast pops-up. Payment however is successful (confirmed via Mutiny and on Wavlake track)

Some improvement with https://github.com/wavlake/mobile/pull/108


--test-only

So this is a very crude implementation that should work once https://github.com/scalacenter/bloop/pull/2360 is merged and bleep uses mainline bloop.
However the cli interface is not great as it will look like bleep test project -o TestSuiteOne -o TestSuiteTwo ... and so on. I don't think it's possible to combine Option and arguments in decline? So I'm guessing here we have to use arguments and just do some parsing to make it look nice?
Update:
It is now possible to specify which test suites to run using the -o or
--only syntax.
The tests can be specified using the class name of the test suite or by
using the fully qualified name.
Example:
bleep test app-tests -o TestSuiteOne --only TestSuiteTwo
fully qualified:
bleep test app-tests -o com.foo.TestSuiteThree

Great start! I'll follow bloop development and switchover once there is a new release of mainstream 👍

@oyvindberg See the updated top comment. This works, I have not written any tests for it, but I tried it on a dummy project. The question remaining is the CLI interface. I personally don't mind the -o syntax for each suite, in practice I never use this functionality for more than one suite at a time anyway, but opinions may differ. Different syntax is not well supported by decline and requires more manual parsing on our end.

Also if no matching test is found it runs all tests. This might not be desired and can easily be changed to no tests are run if the build has no suite matching the one passed in using --only

Another fun and maybe useful thing we could add here is an --ignore or --not which could ignore test suites. Could be useful if you want to e.g. ignore some slow test but not move it to a separate test module

Also if no matching test is found it runs all tests. This might not be desired and can easily be changed to no tests are run if the build has no suite matching the one passed in using --only

Can we change this to what you suggested? I would be irritated if i tried to use --only and bleep would just start to run everything without any further feedback

Another fun and maybe useful thing we could add here is an --ignore or --not which could ignore test suites. Could be useful if you want to e.g. ignore some slow test but not move it to a separate test module

this is a great idea. maybe it could take the form of --include / -i (instead of -o) or --exclude / -x for test suites maybe?

Another fun and maybe useful thing we could add here is an --ignore or --not which could ignore test suites. Could be useful if you want to e.g. ignore some slow test but not move it to a separate test module

this is a great idea. maybe it could take the form of --include / -i (instead of -o) or --exclude / -x for test suites maybe?

I think the --only -o syntax is good because it is close to what scala-cli, bloop and sbt uses, the --exclude -x seems very intuitive. I actually think this could be really useful for CI stuff as you could exclude tests that don't run on certain platforms and so on.

Also if no matching test is found it runs all tests. This might not be desired and can easily be changed to no tests are run if the build has no suite matching the one passed in using --only

Can we change this to what you suggested? I would be irritated if i tried to use --only and bleep would just start to run everything without any further feedback

Fixed
If no tests-suites in the project match the specified test suites
provided by the user no tests will run at all. If any of the tests
match, but not all the matching tests will run.

Another fun and maybe useful thing we could add here is an --ignore or --not which could ignore test suites. Could be useful if you want to e.g. ignore some slow test but not move it to a separate test module

this is a great idea. maybe it could take the form of --include / -i (instead of -o) or --exclude / -x for test suites maybe?

I have added support for this in the latest commit. It's a bit iffy as the -x and -o options are mutually exclusive, but this is not enforced by the CLI.

ok, let's test this now with the current predicate. we can always iterate more later


(WebView) Sometimes login page doesn't follow system theme

As I already described in the title, sometimes (probably when MicroG login service it's invoked in a new instance) login page appears white instead dark (as my system theme).
This bug is 100% reproducible (one time) during login on a new MicroG installation.

Are you referring to the webview login?
Yes, this bug has already been noticed, currently checks the app theme status instead of the system, was defined this way to prevent a reload that causes a pile of errors and then the webview closes.
You can reproduce this alternate system theme with the webview page open
Then check through the themedContext.getResources instead of uiModeManager.systemIsDark and based on that force dark mode in webview. #76d0869
Despite the logs I couldn't find a good solution to solve this sudden closure, but following the application theme made it happen less frequently.
It's been a while since I did this so I might as well look at it again, I just stayed like this to avoid the flashbangs XD

Are you referring to the webview login?

Exactly.

An alternative could be a fully Material page to login, which interact with webview to fetch the web links to complete the login. 🤷♂

I was just thinking about fixing the theme transition, which is likely what's causing this to happen.

Apparently it was fixed, check f4cbcd5 tested on avd sdk 29 and my personal device HyperOS sdk 34

Apparently it was fixed, check f4cbcd5 tested on avd sdk 29 and my personal device HyperOS sdk 34

Sorry for the late answer, but I can't try it anymore because I uninstalled it a month ago, due to a high battery drain compared to the ReVanced MicroG.
Maybe you can try to check what's wrong, by using my personal YouTube client (you'll found the patcher in my repository). 🤷♂

I tried it on my emulator (I had free time to do), but unfortunately the bug is not fixed.
It happens once after a new installation. 🤷♂


Fix int8 overflow on MPS (Apple Silicon)

bool tensors on MPS apparently are represented as int8, so the cumsum operation can overflow.

thank you!