Postinstall & music production configuration

Autocompletion system-wide if not already done (happened once)

sudo apt install bash-completion
sudo nano /etc/bash.bashrc
# Add this at the end of the file to use auto-completion:
if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi

External music production repository

To install Librazik

Please follow instructions on the official website

Add the repository and the following meta-packages to have a complete audio environment to my liking.

sudo apt install librazik-optimisations-all librazik-banquesdeson-all librazik-base-logicielsaudio librazik-base-systemeaudiomidi librazik-mate-menu

# Installation of others audio software, non-included in the meta-packets of LBZ
sudo apt install ams vmpk supercollider puredata rakarrack solfege

Alternatively, KXStudio can be used

See here on kx.studio and follow the instructions.

At the moment, most package are older than Debian’s, so give a Pin-Priority: 1 to KXStudio repositories before doing anything with APT (see below).

Be carefull on the order of installation of the meta-packages.

jackdbus is used with KXstudio, the conf won’t work in Qjactl when it is run (automatically), the conf has to be done in Cadence.

Also be careful starting from Debian 12, with KXStudio it’s a specific JACK conf not working with PipeWire so: sudo apt purge pipewire (see second part).

Configuration and if a standard distribution is used

Pipewire is not usable in Debian 12, the next one should be ok.

First the configuration:

# Add the user account to the audio group via P.A.M. (Pluggable Authentication Module)
# Give the maximum of ressources to this group by calibrating the memlock (quantity of RAM an application can use) kernel's parameter and rtprio (maximum priority a program can have to access to the processor's ressources)
# First check if your user is already in the audio group with the command
groups
# If not, use this command and don't forget to replacer ''my_user'' by your user name
sudo gpasswd -a ''my_user'' audio
# You can also check the members of the audio group
fgrep -ie 'audio' /etc/group
# Then let's give real-time access to the audio group
# On Debian or derivatives like Ubuntu, it can be done by installing JACK
# The system will ask you during the installation
sudo apt install jackd
# If not, on Debian or derivatives, check with this command (on other distributions, localisation and name may change)
cat /etc/security/limits.d/audio.conf
# If you don't find the following line
@audio  -  rtprio   90
@audio  -  memlock  unlimited
# Add it to the file
# If you find this line
@audio   -  nice      -19
# Comment it with a # in at the beginning of the line, like this
#@audio   -  nice      -19
# Restart to complete
# Let's check if it's ok with this command
ulimit -l -r
# Which should output
max locked memory       (kbytes, -l) unlimited
real-time priority              (-r) 90

Now let’s configure JACK with a GUI, I use QjackCtl:

sudo apt install qjackctl
Launch it then click on the “Setup” button :
  • Server path shall be jackd

  • Driver shall be alsa

  • Real-time checkbox shall be checked

  • No memory lock checkbox shall be unchecked

  • MIDI drive shall be set to none

  • Priority shall be set to 70

  • Frames/Period shall be set to 512 (currently 1024 for me)

  • Sample rate shall be set to 48000 (Hz)

  • Periods/Buffer shall be set to 2 or 3 (according to your hardware, test it, I do 1 at 1024)

  • Start delay should be set to 2 (seconds, some sound cards need some time to initialize)

  • Audio shall be set to duplex

  • Input/Output Device/Channels shall let as it is by default (the automated selection is good)

  • Verbose messages checkbox could be checked

  • Interface shall be set to hw:X (X = the soud card you want to use)

Numbers associated to the sound cards can be found with the following command

cat /proc/asound/cards
You can also use the soud card name like this :

hw:xxx

It is usefull if you have several cards, the system can often change the order of the cards.

Caution

Whenever I change soundcard, even if I select the wanted one, I see sometimes that the former one is used when jackd is launched (usually, the internal soundcard for me). I need to stop the processus (killall jackd) and manually delete the configuarion file .jackdrc located in /home the relaunch.

Now validate the changes.

Let’s check if it works by clicking the Start button : RT should blink in yellow between Started and the sample rate.

Now you can do some connection test and lower the latency.

My .jackdrc is:

# /usr/bin/jackd -v -P70 -dalsa -dhw:PCH -r48000 -p1024 (internal soundcard)
# /usr/bin/jackd -v -P70 -dalsa -dhw:Audio -r48000 -p256 (music production soundcard)

Use JACK and PulseAudio

I also wish to use JACK and PulseAudio in the same time

# It is possible to use PulseAudio as a JACK Module
sudo apt install pulseaudio-module-jack
# In QjackCtl check the checkbox in 'Setup > Options > Execute script at Startup' and paste this command
pactl load-module module-jack-sink channels=2; pactl load-module module-jack-source; pacmd set-default-sink jack_out
# See here : https://askubuntu.com/questions/572120/how-to-use-jack-and-pulseaudio-alsa-at-the-same-time-on-the-same-audio-device

a2jmidid for MIDI

# a2jmidid is use to make compatible JACK-MIDI all the MIDI applications using ALSA-MIDI
sudo apt install a2jmidid
# In QjackCtl check the checkbox in 'Setup > Options > Execute script after Startup' and paste this command
a2jmidid -e &
# Restart your system

A few details on my setups

I use two different Linux distributions on a given computer:
  • One dedicated to music production and other creatives activities that I want to keep stable. I currently use KXStudio on it with a low pinning as most packages are older than Debian 12’s ones. On this one I updated to Debian 12 while keeping a classic pulseaudio/JACK configuration (the one of KXStudio).

  • One dedicated to any other things including testing new things. I configure it manually to still be able to do music production but use only Debian repositories. On this one I updated to Debian 12 with a full PipeWire configuration which wasn’t usable as expected with version 0.3.65 not including most music production improvements made later.

On my music production setup

To keep a working music production pulseaudio/JACK on my music production session when updated to Debian 12:

sudo apt purge pipewire

As most KXStudio packages are older than Debian 12’s ones, I put a low pinning (installation priority for two same name packages) on them (there is probably a shorter file with for example pinning on the release v=18.04 as this version scheme is unique to KXStudio but at list this one work for me as it):

sudo nano /etc/apt/preferences.d/99kxstudio
# With the following configuration
Package: *
Pin: origin kx.studio
Pin-Priority: 1

Package: *
Pin: release o=LP-PPA-kxstudio-debian-apps
Pin-Priority: 1

Package: *
Pin: release o=LP-PPA-kxstudio-debian-plugins
Pin-Priority: 1

Package: *
Pin: release o=LP-PPA-kxstudio-debian-music
Pin-Priority: 1

Package: *
Pin: release o=LP-PPA-kxstudio-debian-libs
Pin-Priority: 1

Package: *
Pin: release o=LP-PPA-kxstudio-debian-kxstudio
Pin-Priority: 1

Then I used different commands to seek for KXStudio packages to uninstall them then install the Debian version of them if newer:

apt-show-versions | grep kx | cut -d'/' -f1 |awk 1 ORS=' '
apt-show-versions |grep bionic | cut -d'/' -f1 |awk 1 ORS=' '
aptitude search '?narrow(?installed, ?archive(bionic))'

To list all the packages “inside” a meta package, use apt-cache:

apt-cache depends kxstudio-meta-audio-plugins-lv2

This setup still isn’t updated to Debian 13 as I want first to test PipeWire reliability toward XRUN and how it behaves when run together with JACK as some software packages still depend on it.

A few words on PulseAudio/JACK and PipeWire setup differences

From my understanding, PipeWire comes on top of ALSA and is a complete reimplementation of a PulseAudio server and a JACK server through these respective modules. It’s supposed to be transparent for an application which used to ask for JACK or PulseAudio, PipeWire will answer with the corresponding module. MIDI connections are also supported.

Thus PipeWire takes care of all the former configuration done to have a PulseAudio/JACK working system.

PipeWire is recommended to be used with the classic PulseAudio GUI : pavucontrol. Here in the “Configuration” tab you can choose a “Pro Audio” profile for your soundcard, more or less putting Pipewire in the JACK behavior.

JACK applications needs specific buffer/sample rate to work with enough low lantency.

With PipeWire, “buffer” is called “quantum” and “sample” remain the same. There is default settings (min, default and max quantum) and a temporary settings called “metadata”. It is recommended (and more practical) to change the metadata for a music production temporary configuration.

To set a specific sample rate and buffer size:

pw-metadata -n settings 0 clock.force-rate <samplerate>
pw-metadata -n settings 0 clock.force-quantum <buffersize>
#For example
pw-metadata -n settings 0 clock.force-rate 48000
pw-metadata -n settings 0 clock.force-quantum 128

To confirm the actuall sample rate and buffer size:

pw-metadata -n settings

To reset pipewire to the default configuration:

pw-metadata -n settings 0 clock.force-rate 0
pw-metadata -n settings 0 clock.force-quantum 0

Sound latency (in seconds) can be calculated with this formula:

quantum_size / sample_rate

To measure it in milliseconds, multiply the result by 1000:

quantum_size / sample_rate * 1000

The real sound latency should be a bit higher than the calculated value because of extra software overhead.

On my Debian PipeWire test setup

For my Debian PipeWire setup, I’m not going to detail exactly what I’ve done as of today on Debian 13 things are different. Debian has a specific wiki page for PipeWire.

It’s mostly enought to have installed the packages: pipewire (depends on the wireplumber session manager), pipewire-audio, pipewire-alsa, pipewire-pulse and pipewire-jack.

One thing to take into account was that they were dependency on JACK/JACK2 for some packages (and they are still there, for example supercollider still depends on jackd and qjackctl). I choose to delete them for the sake of a plain PipeWire test in Debian 12.

JACK could be run together with PipeWire according to the PipeWire wiki. The affected packages I had where : supercollider (through supercollider-server depending on jackd and qjackctl), din, rakarrack and qtractor. I don’t plan to use the 3 last soon but I’m learning SuperCollider from time to time so I installed it in Debian 13 and it seems to work through PipeWire even though JACK is installed and doesn’t seem to be running.

It is not a fresh install but an upgraded, everything relative to real time done in the first part is still there and I frankly don’t now if it has to be done or if it’s useless now. I will test it some day when I will do a fresh install.

There is by default a real time configuration for PipeWire in the same place as the one done for JACK though the memlock could be set as “unlimited”:

cat /etc/security/limits.d/25-pw-rlimits.conf
# This file was installed by PipeWire project for its libpipewire-module-rt.so

# It is up to the distribution/user to create the @pipewire group and to add the
# relevant users to the group.
#
# PipeWire will fall back to the RTKit DBus service when the user is not able to
# acquire RT priorities with rlimits.
#
# If the group is not automatically created, the match rule will never be true
# and this file will have no effect.
#
@pipewire   - rtprio  95
@pipewire   - nice    -19
@pipewire   - memlock 4194304

I’m already in the “pipewire” user groupe:

fgrep -ie 'pipewire' /etc/group

pipewire:x:129:locynaeh

If you’re not, do it the same way as for the audio group (see in the first part).

If you do not have audio crackling or popping or latency issues for your daily use (not including music production), then you don’t need any specific configuration. It wasn’t the case for me in Debian 12, now it doesn’t since updated to Debian 13 : when I read certain audio file or video, I notice a degradation.

My default settings are :

pw-metadata -n settings

Found "settings" metadata 32
update: id:0 key:'log.level' value:'2' type:''
update: id:0 key:'clock.rate' value:'48000' type:''
update: id:0 key:'clock.allowed-rates' value:'[ 48000 ]' type:''
update: id:0 key:'clock.quantum' value:'1024' type:''
update: id:0 key:'clock.min-quantum' value:'32' type:''
update: id:0 key:'clock.max-quantum' value:'2048' type:''
update: id:0 key:'clock.force-quantum' value:'0' type:''
update: id:0 key:'clock.force-rate' value:'0' type:''
I suspected the ‘clock.min-quantum’ value:’32’ to be the culprit as each application can choose one of the min, max or default value and 32 is way to low for my computer to handle. To change it and configure also the default for pipewire-pulse and pipewire-jack you need:
  • To see if there is any existing configuration at /etc/pipewire/

  • If the pipewire/ directory does not exist, create it in your home mkdir ~/.config/pipewire/ (for local changes or with /etc/pipewire for system-wide)

  • Then copy the configuration template files needed from /usr/share/pipewire/ : pipewire.conf, pipewire-pulse.conf and jack.conf with cp /usr/share/pipewire/pipewire.conf /usr/share/pipewire/pipewire-pulse.conf /usr/share/pipewire/jack.conf ~/.config/pipewire/ then edit according to your need.

  • For pipewire.conf, inside context.properties, you can find, uncomment and set the following to your need :
    • default.clock.rate to 48000 (it was already set to it)

    • default.clock.quantum to 1024 (it was already set to it)

    • default.clock.min-quantum to 1024 (it was 32)

    • default.clock.max-quantum to 1024 (it was 2048)

    • default.clock.quantum-limit if you want, I didn’t change it

  • For pipewire-pulse.conf, there is a context.modules “libpipewire-module-rt” if needeed for some real-time application outside of a JACK context (rythm game for example). Inside pulse.properties, you can find, uncomment and set the following to your need. Here “req” means “playback” and “frag” means “record”. You provide the quantum size and the sample rate:
    • pulse.min.req to 1024/48000 # 21.33ms (it was 128/48000 # 2.7ms)

    • pulse.default.req to 1024/48000 # 21.33ms (it was 960/48000 # 20 milliseconds)

    • pulse.min.quantum to 1024/48000 # 21.33ms(it was 128/48000 # 2.7ms)

  • Yes my computer is old, I set everything mostly to the same which is a bit high as it is the internal soundcard and not an external music production specialized one.

  • For jack.conf, there is also a context.modules “libpipewire-module-rt”. That said, I will always set the configuration needed manually with PipeWire metadata as I use my external sound card only when I do music production (and as it is recommended, so I don’t need to do a specific configuration. If you do want to configure it anyway, there you can find, uncomment and set the following to your need:
    • node.latency

    • node.quantum

Application graph/patchbay and GUI

Traditional JACK graph/patchbay applications such as Carla, qjackctl or Catia should still work with Pipewire according to the documentation but there are also specific applications for PipeWire.

I currently use qpwgraph as it is available in Debian repositories since Debian 12 and alternatively Helvum since it is also available now with Debian 13. That said, none of them can edit PipeWire metadata so I use a simple YAD File (depends on the “yad” package) shared by a fellow Linux musician for that:

#!/bin/bash
#Simple Yad Frontend to set Pipewire metadata
#broken out from AVLinux PipeWire Tools

IFS='|' read -ra output <<<\
$(yad\
 --form --columns=2\
 --field="Quantum (bytes):CB" ''!64!128!256!512!1024!2048\
 --field="Samples/sec.:CB" ''!44100!48000!88200!96000\
 --height=128\
 --width=480\
 --center\
 --title="Set PipeWire Metadata"\
 --window-icon=preferences\
 --text="<b>Select Quantum (buffer size) and Sample Rate.</b>"\
 --text-align=center)\

pw-metadata -n settings 0 clock.force-quantum ${output[0]}
pw-metadata -n settings 0 clock.force-rate ${output[1]}

pw-metadata -n settings 2>&1 |\
yad\
 --text-info\
 --width=540\
 --height=280\
 --center\
 --window-icon=preferences\
 --title="Current PipeWire Metadata Settings"\

exit

Save it as a .bash file and create a custom launcher in your desktop panel to use it as a simple application.

Here is a list without order of preference of softwares available and maintained at the time of writing (and I did not test everything):
  • Cable: a PyQt application to dynamically modify PipeWire and WirePlumber settings at runtime.

  • coppwr: low level control and diagnostic GUI for PipeWire.

  • Helvum: GTK-based patchbay for PipeWire, inspired by the JACK tool catia. Does not save wire sets.

  • pwvucontrol: Pipewire Volume Control. Alternative to pavucontrol.

  • qpwgraph: Qt-based Graph/Patchbay for PipeWire, inspired by the JACK tool QjackCtl. Saves wire sets.

  • sonusmix: Pipewire audio routing tool.

I plan to test Cable or coppwr in a near future.

Simple Wireplumber GUI is a GUI to Wireplumber. I did not test it.

Diverses applications, utilities, dev and multimedias

If missig from the repository, try to install them via flatpak.

Some utilities:

sudo apt install aptitude gnome-disk-utility gparted remmina lm-sensors simple-scan cups

Multimedia softwares:

sudo apt install hexchat krita krita-l10n gimp inkscape kolourpaint4 git retext pandoc freeplane geany geany-common geany geany-plugins geany-plugins-common vlc gajim zim parcellite thunderbird mpv

Few python utilities I like system wide:

sudo apt install python3-venv python3-pip python3-sphinx sphinx-doc
pip3 install docutils

Few games if you want

# If more advanced version wanted, try with flatpak
sudo apt install widelands megaglest wesnoth 0ad

Flatpak and Flathub for non-free software or FLOSS non-included in the repository

sudo apt install flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub com.valvesoftware.Steam com.mojang.Minecraft org.mypaint.MyPaint flathub net.sf.nootka flathub ar.com.tuxguitar.TuxGuitar com.discordapp.Discord com.github.PintaProject.Pinta

Emulators if wanted

flatpak install flathub io.mgba.mGBA com.snes9x.Snes9x ca._0ldsk00l.Nestopia io.github.m64p.m64p org.DolphinEmu.dolphin-emu org.libretro.RetroArch com.github.AmatCoder.mednaffe

Audio softwares I may want to use

Utilities

sudo apt install abcmidi nted polyphone

Audio softwares

sudo apt install aeolus ams amsynth ardour ardour-lv2-plugins audacity drumgizmo drumkv1 drumkv1-lv2 fluidsynth fluidsynth-dssi fomp guitarix guitarix-lv2 guitarix-ladspa hexter hydrogen hydrogen-drumkits-effects lmms meterbridge mma musescore puredata qsynth rakarrack solfege supercollider vkeybd vmpk yoshimi zynaddsubfx csound din bristol foo-yc20 freebirth horgand padthv1 phasex playmidi samplv1 setbfree swami synthv1 jamulus qtractor rosegarden sooperlooper zytrax

Audio plugins & soundfonts

sudo apt install avldrums.lv2 avldrums.lv2-soundfont fluid-soundfont-gm fluid-soundfont-gs invada-studio-plugins-lv2 ir.lv2 lsp-plugins-jack lv2vocoder mcp-plugins swh-plugins x42-plugins calf-plugins

Not among Debian package but wanted

ADLplug and OPNplug # From https://github.com/jpcima/ADLplug or https://kx.studio/Repositories:Plugins

Borderlands # From https://ccrma.stanford.edu/~carlsonc/256a/Borderlands/

Carla # From https://kx.studio/Applications:Carla

Dexed # From http://asb2m10.github.io/dexed/ or DISTRHO ports

DragonflyReverb # From https://michaelwillis.github.io/dragonfly-reverb/ or https://kx.studio/Repositories:Plugins

DrumGizmo # From https://drumgizmo.org/wiki/doku.php or kx.studio if not in the repo

Guitarix.vst # From https://github.com/brummer10/guitarix.vst

Helm # From the website https://tytel.org/helm/remind/linux64/

Hydrogen # From http://hydrogen-music.org/ if not in the repo

NeuralNote # From https://github.com/DamRsn/NeuralNote

Nils’K1V # From https://www.nilsschneider.de/wp/nils-k1v/

OBXD # From https://obxd.wordpress.com/ or https://kx.studio/Repositories:Plugins

OpenPiano # From https://github.com/michele-perrone/OpenPiano

Oxe FM Synth # From https://oxesoft.wordpress.com/ or https://kx.studio/Repositories:Plugins

PodcastPlugins # From https://github.com/trummerschlunk/PodcastPlugins

RaveGenerator2 # From https://blog.wavosaur.com/rave-generator-2-vst-audiounit-the-stab-machine-is-back-in-the-house/

Sfizz # From https://sfz.tools/sfizz/

Sunvox # From https://www.warmplace.ru/soft/sunvox/

Surge # From https://surge-synthesizer.github.io/ or https://kx.studio/Repositories:Plugins

Vex # From DISTRHO ports https://distrho.sourceforge.io/ports.php

VirtualAnalog # From https://socalabs.com/synths/virtualanalog/

Virtual ANS # From https://www.warmplace.ru/soft/ans/

Vitalium # Eventually from https://kx.studio/Repositories:Plugins

Xhip # From http://xhip.net/synth/

If not .deb file is available, Linux VST as a .so extension could go to /usr like /usr/lib/vst and LV2 bundle could go also to /usr/lib/lv2 but a user path is rather prefered like ~/.vst, ~/.vst3, ~/.clap and ~/.lv2.

For specific sofwares

If stable version of Mozilla Firefox is prefered to the ESR

# Download the choosen version of Mozilla Firefox on the official website (stable, dev...) then do:
sudo tar xjvf Téléchargements/firefox-65.0.tar.bz2 -C /opt/ # According to the version downloaded
sudo ln -s /opt/firefox/firefox /usr/local/bin/
sudo nano /usr/share/applications/firefox.desktop

# Add this in the .desktop to be created:
[Desktop Entry]
Name=Firefox
Comment=Navigue sur le web
GenericName=Navigateur Web
X-GNOME-FullName=Navigateur Web Firefox
Exec=/opt/firefox/firefox %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=/opt/firefox/browser/chrome/icons/default/default128.png
Categories=Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xm$
StartupWMClass=Firefox
StartupNotify=true

# If necessary according to the language (and if you miss your language for any software, it's probably the way to go)
sudo apt install firefox-l10n-fr

If official version of LMMS is prefered because of Carla integration (plugin host)

The official AppImage build is compatible (I don’t know how it is different from the Debian package) with a Carla integration from the KXStudio package.

# Make it executable
chmod +x lmms-1.2.2-linux-x86_64.AppImage

# Download the choosen AppImage version of LMMS on the official website (stable, dev...) then do:
sudo nano /usr/share/applications/lmms_appimage.desktop

# Add this in the .desktop to be created:
[Desktop Entry]
Name=LMMS AppImage
Comment=LMMS official AppImage build
GenericName=LMMS official
X-GNOME-FullName=LMMS official AppImage
Exec=/your/path/to/lmms-1.2.2-linux-x86_64.AppImage
Terminal=false
Type=Application
Icon=lmms
Categories=Qt;AudioVideo;Audio;Midi;
MimeType=application/x-lmms-project;

I also keep the original Debian LMMS, providing the icon in the .desktop (I didn’t seek for having it without at the moment).

# Install the carla and carla-data .deb packages got from the application page of KXStudio website (see above)
sudo apt install /your/path/to/carla_2.5.2b-1kxstudio3_amd64.deb /your/path/to/carla-data_2.5.2b-1kxstudio3_all.deb
# Then launch LMMS AppImage and you should see Carla Rack and Carla Patchbay in the instrument plugins

Dark theme

I always use dark theme, different way of doing it according to the desktop environment choosen.

If the desktop environment is LXQT

# Because of it beeing a bunch of things, Kvantum theme engine is interesting to use to configure theme
# Follow also the instruction here for Qt, Gtk and LXQT theming : https://wiki.manjaro.org/index.php/LXQt
# Basically to use Kvantum, select Kvantum under Widget Style and Color Scheme
# I tend to prefer GnomeDark kind of theme
sudo apt install qt5-style-kvantum qt5-style-kvantum-themes
# I use it also with Gtk based desktop environment like Mate
# Here you can apply it system wide by adding the following in your /etc/environment
export QT_STYLE_OVERRIDE=kvantum
# You need to logout and log in again in to see it in other Qt apps than Kvantum

If the desktop environment is MATE

In the theme configuration menu:
  • Windows’border is BlackMATE

  • Controls are Adwaita-dark

  • Icones are MATE-Faenza-Dark

Monokai theme to ReText

If not dark after system theming.

Add/replace files monokai.qss & ReText.conf to /home/you/.config/ReText project

The monokai.qss:

QTextEdit{background-color:#272822;color:#f8f8f2}

The ReText.conf configuration file:

[General] appStyleSheet=/home/locynaeh/.config/ReText project/monokai.qss autoSave=true defaultMarkup=reStructuredText highlightCurrentLine=true lineNumbersEnabled=true

[ColorScheme] blockquotes=#a1efe4 codeSpans=#a6e22e currentLineHighlight=#49483e htmlComments=#75715e htmlStrings=#a6e22e htmlTags=#f92672 infoArea=#383830 lineNumberArea=#272822 lineNumberAreaText=#f5f4f1 marginLine=#383830 markdownLinks=#fd971f statsArea=#383830 whitespaceOnEnd=#49483e

Diverse issues

If two GNU/Linux OS or more are installed next to each other, there is a chance that they are not really aware of it.

You can see it if starting before the login/password prompt takes a long time (1min30 rather than 10sec).

Your OS is probably seeking to find what’s happen.

You need to edit your /etc/fstab to have the correct UUID for your partitions, espacially swap if its UUID has changed.

There are lots of guides around the Internet to explain how to do it (get UUID, modify fstab, etc.).

sudo nano /etc/fstab

After that you probably need to rebuild your initramfs and then update grub:

sudo update-initramfs -u
sudo update-grub

The same steps goes if you did some partition modifications with a live USB, your OS wont be aware of it, having its old fstab.