I’m looking for an audio app for learning tunes by ear. Ideally would have:

1- slow playback, without adjusting pitch.
2- loop selection - to play a segment of the audio over and over
3- pitch adjustment (some old recordings are out of tune)

Anyone have one they like? For android the closest I’ve found is Fossify music player, which offers feature 1.

For PC, audacity has all these features, but its pretty clunky to use.

  • toothbrush
    link
    fedilink
    arrow-up
    8
    ·
    7 months ago

    mpv can do all of these things, check the manual on how to do this: https://mpv.io/manual/stable/

    mpv also exists for android, however the controls are a bit different (because touch controls) and im not sure if you can do all of these things without a keyboard.

    • pr06lefs@lemmy.mlOP
      link
      fedilink
      arrow-up
      2
      ·
      7 months ago

      Wow huge wall of text. How do you select a section of a song and loop just that section?

      • toothbrush
        link
        fedilink
        arrow-up
        3
        ·
        edit-2
        7 months ago

        press l when you are at the part you want to loop and l again where you want it to end.

        • pr06lefs@lemmy.mlOP
          link
          fedilink
          arrow-up
          3
          ·
          7 months ago

          thx. and looks like you can set up an af-command for bumping the playback speed up and down with a keyboard shortcut. presumably that’s possible with pitch as well.

          seems like libmpv would be a great back end for a specialized music practice tool.

          • Andy@programming.dev
            link
            fedilink
            arrow-up
            3
            ·
            edit-2
            7 months ago

            By default you can use left and right bracket keys [] to adjust speed, and it should do adjustments to make the pitch sound the same.

            To adjust the pitch alone, you can have something like this in your input.conf, customized as you like:

            ALT+p af toggle @rb
            ALT+UP af-command rb multiply-pitch 1.25
            ALT+DOWN af-command rb multiply-pitch 0.8
            ALT+LEFT af-command rb set-pitch 1.0
            

            I haven’t looked at this in a long time. If you always need this there’s likely a conf option to always enable the “rubber band” (@rb) filter. And maybe other commands than multiply that would be better.


            EDIT: Sorry, I don’t have this quite right. Maybe someone can correct me.

  • tomcatt360@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    7 months ago

    Mixxx can do all of those things, it’s a free alternative to Serato DJ and similar. It’s super straightforward to playback audio slowed to the exact BPM you need, loop it, and/or play it in a different key. Give it a try!

    Let me know if you need any help.

    • pr06lefs@lemmy.mlOP
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      7 months ago

      It reset my monitors and I thought my system was rebooting! Then things came back up, with windows on different monitors than before, lol. Its stuck on a splash screen that says “MIXXX”. I’m running nixos, xmonad, pipewire. Output at the terminal:

      [nix-shell:~]$ mixxx
      ConfigObject: Could not read "/home/pr06lefs/.mixxx/mixxx.cfg"
      Loading resources from  "/nix/store/q9y3q43nq50wwx7zvq9wz3bj1hlji7w6-mixxx-2.4.0/share/mixxx/"
      ConfigObject: Could not read "/home/pr06lefs/.mixxx/mixxx.cfg"
      ConfigObject: Could not read "/home/pr06lefs/.mixxx/mixxx.cfg"
      No version number in configuration file. Setting to "2.4.0"
      BroadcastSettings - Profiles folder doesn't exist. Creating it.
      BroadcastSettings - No profiles found. Creating default profile.
      warning [Main] faad2::LibLoader - Failed to load  ("libfaad.so.2", "libfaad.so") ,  "Cannot load library libfaad.so: (libfaad.so: cannot open shared object file: No such file or directory)"
      warning [Main] SoundSourceProviderRegistry - SoundSource provider "Nero FAAD2" does not support any file extensions
      warning [Main] SoundSourceProxy - Failed to register SoundSource provider "Nero FAAD2"
      ALSA lib pcm_dmix.c:1000:(snd_pcm_dmix_open) unable to open slave
      ALSA lib pcm.c:2792:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
      ALSA lib pcm.c:2792:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
      ALSA lib pcm.c:2792:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
      ALSA lib pcm_route.c:878:(find_matching_chmap) Found no matching channel map
      ALSA lib pcm_dmix.c:1000:(snd_pcm_dmix_open) unable to open slave
      
      • tomcatt360@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        7 months ago

        Hmm, it looks like the first few messages there are doing initial setup. After that, it looks like it’s having trouble loading some of its libraries. Then it isn’t able to read your sound devices. I haven’t run Mixxx with nixos or pipewire, but maybe try the flatpak? Sorry it isn’t running out of the box for you.

        • pr06lefs@lemmy.mlOP
          link
          fedilink
          arrow-up
          2
          ·
          6 months ago

          Got it working. The problem was really dumb: I use xmonad. When I run mixx, it opens a modal dialog where you have to select a file, or cancel. I didn’t notice the dialog, maybe too many windows or it ended up behind the main window. Dialog never returns, program never gets off the splash screen. 😅 Still get the warnings and errors, but apparently that’s normal.

          Anyway, working now, definitely a lot of bells and whistles in this. Inspiring if I ever want to take up DJing.

          • tomcatt360@lemmy.world
            link
            fedilink
            English
            arrow-up
            1
            ·
            6 months ago

            Glad to hear it! Mixxx has been one of my favorite projects to use, and they always surprise me with new features whenever I open it up!

  • eyolf@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    7 months ago

    You can use Play it slowly, which is rather bare-bones, or Sonic Visualizer, which is something of the opposite, but quite powerful.

    My daily workhorse is Transcribe!, which I’ve been using for nearly 30 years, actually. Very powerful, and very intuitive, and with a lot of useful effects, such as filtering out the vocals (if possible), etc. I paid a one-time fee for a subscription back in the day. Money well spent.

    • pr06lefs@lemmy.mlOP
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      7 months ago

      I use that timestretch web one already! But an actual app would be nice.

      Sonic visualizer is pretty maximalist. Feels maybe not exactly designed for music practice but can do it and a lot else too.

  • reboot6675@sopuli.xyz
    link
    fedilink
    arrow-up
    1
    ·
    7 months ago

    Ohh. This is exactly the side project idea I’ve had on the back of my mind for a few years now. Something minimal and straightforward, just to sharpen my programming skills and learn a couple of things along the way. Maybe I’ll get around to building it some day.

    • pr06lefs@lemmy.mlOP
      link
      fedilink
      arrow-up
      2
      ·
      7 months ago

      Looks like you can adjust playback speed. But I don’t see where you can adjust pitch, nor do I see where you can select a section of a song for looping.

      • Deckweiss@lemmy.world
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        7 months ago

        Section looping:

        1. right click on the bottom bar (where play and pause is)
        2. view
        3. checkbox Advanced Controls
        4. Now you see more buttons in the bottom bar one of which has the tooltip “Loop from point A to point B”
        5. Click it at start and again at end of the section

        Pitch:

        1. in the top bar click “Tools”
        2. Effects and Filters
        3. Audio Effects
        4. Advanced
        5. Adjust pitch
  • Dymonika@beehaw.org
    link
    fedilink
    arrow-up
    1
    ·
    7 months ago

    For PC, audacity has all these features, but its pretty clunky to use.

    You could eliminate that clunkiness by building an AutoHotkey script to blaze through the menu to select and slow down the recording in one press.

    • SuperSpruce@lemmy.zip
      link
      fedilink
      arrow-up
      1
      ·
      7 months ago

      Audacity’s implementation is not just clunky, it isn’t good either. Compare that to Music Speed Changer on Android and you’ll hear a huge difference in quality.

    • pr06lefs@lemmy.mlOP
      link
      fedilink
      arrow-up
      1
      ·
      7 months ago

      Autohotkeys is cool but its a windows prog, so won’t work for me on linux.

      When you speed up/slow down the recording, it has to process the whole file. That takes a while. You can’t just slide a slider to different pitches to see what’s right. Then you have to save the file someplace, think of a file name, put it somewhere reasonable etc. Or remember the pitch and do everything over again next time.