[–] [S] 1 point 1 week ago (1 child)

Ahhh! I considered getting that player last year, but it doesn't support the libopus codec, which is basically all my library. I need one that can run rockbox, as I want to be able to use it for my podcasts as well. It looks beautiful though, I would buy it just to contemplate it <3

  • source
  • parent
  • context
  • [–] [S] 1 point 1 week ago (3 children)

    I actually replaced it! That's why I'm positive that the issue is with the underlying filesystem driver. At the end of the day, it's just running a basic Android KitKat with the Rockbox app on top. What player do you have? I'm considering getting a new one but have no clue what to get yet XD

  • source
  • parent
  • context
  • [–] [S] 1 point 1 week ago (5 children)

    It's an Innioasis Y1, which I'm in the process of changing for another player because the filesystem gets stuck buffering many songs (like 1/5 or even more).

    We don't have thrift stores here, so I get my recommendations from friends! Algorithmic exploration is one thing I do miss from YouTube. Even though it was still on the safe side it got me to find many great albums. Nowadays I browse wikipedia pages for genres I'm interested in, the /mu/ essential charts (fuck 4chan but wow what a great resource) and conversations with friends and fedi <3

  • source
  • parent
  • context
  • [–] [S] 2 points 2 weeks ago (7 children)

    I added some context here. The thing is that it still took ages because stating every file is still very slow in my target player, so if I cache the status I can automatically create a script that just performs the required operations and run that.

    And yes, I do enjoy writing small utilities :p Thanks!

  • source
  • parent
  • context
  • [–] [S] 2 points 2 weeks ago

    My issue atm is that the destination filesystem is very slow, so just querying it every file's timestamp add a very significant delay. Since I can treat my ~/Music directory as the source of truth, I am considering writing a program that saves the status of the local filesystem at a point in time and then generates a diffing script when comparing it to a new status so I can use my fast, local computer to run the update checks.

  • source
  • parent
  • context
  • [–] [S] 1 point 2 weeks ago (9 children)

    I don't save FLAC files, as I don't have that much space (my library is 82GB big with 17629 tracks atm). What I do is that I have a script I wrote to convert all the files to Opus. I still have some old mp3s laying around that I convert or find better sources over time.

    As for rsync command, it's taken far longer than I would like to sync all the files. I've gotten an idea about caching the filesystem status for later uses to speed up the process, so I may end up writing a script after all!

  • source
  • parent
  • context
  • [–] [S] 7 points 2 weeks ago (2 children)

    Stop googling and just read the rsync man page

    Fair enough, sometimes you get tunnel vision with a problem.

    For what I see the command doing, thanks for the progress flag, it seems to be doing what I need. Reading the manual, it also looks like it's not copying files that have the same size and timestamp in the source and destination, which is also what I wanted, even though I didn't make it explicit. I'll have to take a look to making the command parallel, probably by running it on every subdirectory of ~Music at once.

    Thank you for your help!

  • source
  • parent
  • context
  • submitted 2 weeks ago* (last edited 2 weeks ago) by to c/linuxquestions@lemmy.zip
     

    Hey all!

    Let me go stratight to the point:

    I have an audio player in which I want to clone my ~/Music directory when I connect it to my computer. The only relevant thing about it is that it's a barebones filesystem and I cannot run cool stuff like Syncthing on the player (otherwise this question would already have a solution). Right now, my solution is that I connect the player to the computer and manually copy file to and delete files in the player. As you may have guessed, this is an error prone process. In order to solve that, I want to run a single command that clones ~/Music (src) into /path/to/player/Music (dst).

    My requirements are:

    • All new files in src MUST be copied into dst.
    • All files no longer present in src MUST be deleted from dst.
    • All files present in both src and dst that have more recent modifications in src MUST be copied and overwritten into dst.

    As you can see, my player's filesystem is a strict replica of my main computer's. Now, I know I can write a Python script in an afternoon to do just that, but I want to know if there are any good tools first to do this. I searched the web in hope that rsync would help me here, but the only answers I can find are for buffier cp. It may be that I have a vocabulary problem and I'm not searching for the correct terms.

    I'd love to read your ideas! A note about LLMs: I'm not interested at all in any comments about how llm-of-the-week coded this in a moment, I asked fake-chat and here's what it said or whatever. If you are not a human that can be bothered to write an answer, I won't be bothered to read it.

    Thank you!

    [–] 7 points 11 months ago* (4 children)

    At my previous workplace we had a C macro that was something like

    #define CheckWhatever(x__, true__, false__) \
        whatever(x) ? (true__) : (false__)
    

    I don't remember this shit, so I'm just paraphrasing cursed C. The question one would ask is... why? Well, because you also want to do

    #define CheckWhatever2(x__, true__, false__) \
        CheckWhatever((x__ ##1), (true__), (false__)) \
        CheckWhatever((x__ ##2), (true__), (false__))
    

    And, of course

    #define CheckWhatever3(x__, true__, false__) \
        CheckWhatever2((x__ ##1), (true__), (false__)) \
        CheckWhatever2((x__ ##2), (true__), (false__))
    

    Long story short, someone wanted to CheckWhatever6 inside another macro. While debugging code old enough to vote, my editor suggested expanding the macro, which expanded to ~1400 lines for a single ternary operator chain. Fun times!

  • source
  • view more: next ›