11 July 2026

Soundcore Sport X20 review

My LG tones (HBS-730) had several different issues:

  • I had to glue one of the earbuds back together
  • It would randomly power cycle itself while I was listening to music
  • Battery indicator only had High, Medium, and Charge Soon and most of the time it was on medium so it was hard to tell when it needed charged
  • Earbuds would work themselves out while doing yard work
I found a good replacement in the Soundcore Sport X20 (by Anker) for $55.99 (plus tax)


Review

I overall like the earbuds and the negatives are largely nitpicks, but they could be deal breakers for others

Pros

  • Comfortable fit
  • Ear hooks keep them in place while mowing
  • Noise Cancelling/Isolation works well
    • Next door neighbor's electric mower could not be heard
    • Cut the noise of my electric mower in about half
    • Didn't really silence electric string trimmer
  • Battery life seems good so far with 2 hours of yard work leaving the earbuds with 80% remaining
  • Battery life indicator is in 10% increments (but is software only)
  • Case LED turns red when it needs charged
  • Supports Bluetooth multipoint (pairs to 2 devices at the same time, but only audio from one at a time)
  • IP68 water/sweat resistance

Cons

  • Earbuds lost Bluetooth connection once while mowing
  • No way to turn off the earbuds without placing in case
  • Only one button per earbud
    • Default controls work well enough for me
    • Single press to play/pause
    • While music is off long press to toggle pass-through/noise cancelling
  • Lack of AptX Support (likely causes higher latency)

Other Thoughts

  • Had to add a -100ms Bluetooth delay for audio in VLC for audio/video to sync


Appendix

Sources


05 July 2026

Local Audio Streaming

My significant other wanted a local streaming option where they could control the songs. So I started adding our music to Jellyfin.


Rip a CD

Install abcde and its requirements:

  • sudo apt-get install abcde eyed3 lame flac id3v2


Modify abcde with the latest patch:


The options I use with abcde:

  • -o
    • output types
    • flac (lossless audio)
    • mp3 (small portable version)
  • -p
    • leading 0s on track numbers
  • -G
    • get album art
  • -B
    • embed album art
  • -V
    • verbose
  • -N
    • don't prompt
  • -d
    • CD/DVD/Bluray device to use


Create a ripcd.sh script to automate the rip:

  • cd Music
  • echo -e '#!/usr/bin/sh\n\nabcde -o flac,mp3 -p -G -B -V -N -d "$@"\n' >> ripcd.sh


Run the rip:

  • cd Music
  • sh ripcd.sh /dev/sr0


If you only want to rip a specific track:

  • cd Music
  • sh ripcd.sh /dev/sr0 1


Add Album to Jellyfin

Add a Library of Music type

Jellyfin was doubling up tracks as it listed both the flac and mp3. To solve this, I created a .ignore file that contained *.mp3 and placed it in each album folder that had this issue


Appendix

Sources


Patch:

From 5437ee1345d6c0fddee0edc65b32af43fe493922 Mon Sep 17 00:00:00 2001
From: Gerard Lanois <gerard@lanois.com>
Date: Thu, 16 Feb 2023 22:56:29 -0800
Subject: [PATCH] #1 Omit genre ID 255 (no genre).
---
 abcde | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/abcde b/abcde
index b53593a..2f06a43 100755
--- a/abcde
+++ b/abcde
@@ -912,10 +912,13 @@ do_tag ()
  ${COMMENTOUTPUT:+--comment "$COMMENTOUTPUT"} \
  );;
  esac
+ if [ "${GENREID}" != 255 ]; then
+     addopts+=( -G "$GENREID" )
+ fi
  run_command "tagtrack-$OUTPUT-$1" nice $ENCNICE $TAGGER $TAGGEROPTS \
  -A "$DALBUM" \
  -a "$TRACKARTIST" -t "$TRACKNAME" \
- -G "$GENREID" -n "${TRACKNUM:-$1}" \
+ -n "${TRACKNUM:-$1}" \
  ${TRACKNUM:+-N "$TRACKS"} \
  "${addopts[@]}" \
  "${ABCDETEMPDIR}/track$1.$OUTPUT"