Hacker News new | ask | show | jobs
by johntraitor 1110 days ago
For Windows VST I use Yabridge, which is amazing with Wine. This week I have setup Native Instruments Komplete 14 (Kontakt and Komplete) working with Ardour connecting my Roland A-88 Mk2. Maybe i should do some videos to explain.
2 comments

How's the latency when doing live performances or just practicing piano? Because recently I've stopped doing much production and moved from using DAWs to lighter programs like Gig Performer since I'm more of a pianist than a producer, I use like 5 plugins max (a modeled piano with a few effects like reverb and comp) and I'd be interested in a Linux alternative if the delay isn't going to annoy me during practice.
For now using Native Instruments without any configuration i don't have a good enough latency for performance. However i didn't follow yet Archlinux's pro-audio tutorial to use realtime capabilities and improve latency (i didn't have time yet). Before i used a Yamaha p-125 with its internal sounds directly redirected through the usb connection to Ardour which was amazing for practicing and live performance (it was still under Jack I think, i switched to Pipewire this year). (Although need to be careful the p125-a removed all those nice features). With fewer, linux based virtual instrument/plugin, latency would be less of an issue, but honestly i didn't take enough time yet on it to give you a viable answer. I am also more of a pianist than a producer, i still prefer a real piano when i can over any virtual appliances for performance, although as I said a Yamaha p-125 is quite alright for that purpose too (i don't know well Roland's equivalents). I know Pianoteq has some Linux native virtual instruments which are very good i heard. If you only play piano i would look into that, before paying they must have some demo version.
If you want more information and help, we could stay in contact I would be pleased to help and see if we can find any ways to make it work for your needs. But basically what I would do is: based on the distro you want to use, configure it for real time and pro-audio according to the community recommendations. Then depending on your needs for the virtual instruments, see whether specific plugins increase latency to a level that is sustainable or not for your usage. I could do some testing if i have time. Anyway it was my next step to look into for my new native instruments setup.
Forget everything I said. I just spent an hour trying to fix things because you motivated me. I found out there was an issue with my Focusrite and my pipewire config. By setting the config to "Pro-Audio" in PAVU (Pulse-Audio Volume Control) in the configuration tab for my interface and disabling all others. As well as changing the the `jack.conf` with according node latency that I copied from `/usr/share/pipewire/jack.conf` to `/etc/pipewire/jack.conf`, restarting pipewire, wireplumber and disconnect/reconnect my inerface then running `pw-metadata -n settings 0 clock.force-quantum 256` (with the quantom value I set in the `jack.conf`. I have now amazing latency (5ms) even in Native Instrument. (of course I did overkill and did all i could find on internet, with more time we could pin down to the few things that really fixed the issue, sorry to send all those informations like that).
Do you think it'd be possible to make a shell script that anyone (running the same distro as you) could run to get all of this working? Alternatively just a readme detailing every single thing you did (and how you did it) would also make for an interesting read.
From the testing I did, the main culprit for the latency I was experiencing with my USB interface and my MIDI controller was the fact that my Pipewire profile wasn't set as `pro audio` (which can be set in PulseAudio Volume Control software in the `Configuration` tab for your USB audio interface). However as its a full profile, it must be one of the specific setting inside that fixes the issue, but I don't know which one. I might need to look into Wireplumber settings (the session manager I use for Pipewire instead of the default one `pipewire-sessions-manager`)

On another note, I found out that my focusrite was held back by factory defaults (3rd gen) and needed to follow a procedure to unlock higher samplerate. Now I am using 1024/192000 Hz and I reach 5.3ms latency without XRuns. (although when the pro audio profile isn't set Ardour would still say that the latency is 5.3 however you can clearly hear its not the case).

Good morning!(i am back from the dead). I think the best would be that I first pinpoint which parameter was the culprit (also given what I read it might be related to which sound card we use). Then we could see whether a short tutorial or a script would be the best. My first idea was to do an installation video of Archlinux fron scratch for Pro-audio, however i can understand that you would like to use your own distribution. I will try to see tonight (if i have time) what exactly was the issue and then explain how to solve it. Hopefully i could have a better understanding of what happened.
May I ask how you installed Kontakt and such? If I try to install some sound libraries using Native Access 1, it complains (something about ISOs can't be mounted and the data itself is stored within the ISO, but without file access). If I try to use Native Access 2 (the shitty electron app) it won't even install correctly.
Hey! Sure, I really think I will do a video about this (should I post on Youtube or other platform, any advice?). Yes you should use Native Access 1. Basically what I do: - Edit `/etc/udisks2/mount_options.conf` - uncomment `[default]` - search the lines starting with `udf` - uncomment the one starting with `udf_defaults`, append `,unhide` at the end. - uncomment the one starting with `udf_allow` - save&exit

Then, when you download any library which contains ISO files, it will fails but no worries, the ISO is downloaded in you `~/Downloads` folder! The issue is related to Wine that can't show hidden files or something like this when mounting disks. So the solution, now that you reconfigured your default mounting options (I need this under Archlinux because udisks2 auto mount after creating a loop, if you dont have this issue you could just ignore the previous steps and manually mount the loop with the `unhide` parameter). So, you go find you ISO in your `~/Downloads`, then you open a terminal and you do: - `udisksctl loop-setup -f ~/Downloads/LIBRARY.iso` - Now you will have a newly mounted (if there is auto-mount) disk in your `/run/media/$USER` directory. - You go there, you will see inside there is an `LIBRARY_NAME.exe` - You do `wine LIBRARY_NAME.exe`. It will prompt some windows UI, you do next, install, etc.. - After if finished, you go in your Native Access and you click the refresh button and TADA its installed!

tips: unmount the disk afterwards. also you can restart native access between installs if you install a lot of them. I dont know why but sometimes it told me that I had not enough disk space for install but after restarting it it didnt complain anymore.

Here, I made a quick video to show the process. Sorry for the video quality, I am a bit tired its late in Taiwan. https://peertube.tw.chapuis.ovh/w/3CPvFXfuZ4i6Y7ea6V6etQ (dont mind the audio, I just put the first thing that came under my hand in my old harddrive, its just a microphone test I did, the pitch isn't great)(And NativeAccess didnt like that I put scaling 200x for the video recording in order to better see the text for the rest of the UI)
Hey, thank you very much for your detailed explanation plus even a video! Much appreciated! I'll try it asap. :)
My pleasure, please let me know if you still have any issues or if there is anything else I can help with!
I finally had time to try this, but support for mount_options.conf was added to udisks2 in version 2.9.0. Sadly the Linux distribution I'm using for audio stuff is still Ubuntu 20.04 which ships with udisks2 version 2.8.4.

So I manually remounted the loop device using mount -o remount,unhide /mountpoint and now I'm seeing the hidden files.

Again, thank you very much for your guide! :)