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.
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.
Wow huge wall of text. How do you select a section of a song and loop just that section?
press l when you are at the part you want to loop and l again where you want it to end.
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.
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.
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.
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
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.
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.
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!
yeah could be a packaging bug.
Audacity is fine.
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.
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.
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.
VLC ?
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.
Section looping:
- right click on the bottom bar (where play and pause is)
- view
- checkbox Advanced Controls
- Now you see more buttons in the bottom bar one of which has the tooltip “Loop from point A to point B”
- Click it at start and again at end of the section
Pitch:
- in the top bar click “Tools”
- Effects and Filters
- Audio Effects
- Advanced
- Adjust pitch
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.
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.
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.