Port de KMid 2.4.0 actualizado para compilar y funcionar en 2026 con Qt5, KDE Frameworks 5 y drumstick moderno:
Instala los paquetes necesarios en Debian/Ubuntu:
sudo apt-get install -y \
libkf5coreaddons-dev \
libkf5i18n-dev \
libkf5xmlgui-dev \
libkf5kio-dev \
libkf5parts-dev \
libkf5config-dev \
libkf5configwidgets-dev \
libkf5widgetsaddons-dev \
libkf5textwidgets-dev \
libkf5iconthemes-dev \
libkf5notifications-dev \
libdrumstick-dev \
libasound2-dev \
qtbase5-dev \
qttools5-dev \
extra-cmake-modulesSi también quieres los manuales HTML de KDE:
sudo apt-get install -y libkf5doctools-devcd /ruta/a/kmid3
mkdir -p build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local
cmake --build . -j"$(nproc)"
sudo cmake --install .Para instalar en el mismo prefijo que el resto de KDE/Qt del sistema, muchos empaquetadores usan -DCMAKE_INSTALL_PREFIX=/usr y ajustan CMAKE_INSTALL_PREFIX según su política.
Con cmake --install, el ejecutable kmid, libkmidbackend.so, kmid_alsa.so y kmid_part.so quedan en las rutas estándar del prefijo para que se carguen el backend ALSA y el KPart.
KMid necesita un sintetizador MIDI para producir sonido. En Linux la opción más común es TiMidity++ con una soundfont.
sudo apt-get install timidity fluid-soundfont-gm alsa-utilsEl paquete fluid-soundfont-gm es necesario para que TiMidity tenga los instrumentos virtuales. Sin él aparece este error al arrancar:
/etc/timidity/fluidr3_gm.cfg: No such file or directory
timidity: Error reading configuration file.
modprobe snd_seqEste comando activa el módulo del kernel que crea los puertos MIDI virtuales internos, necesarios para que KMid y TiMidity se comuniquen.
timidity -iA -Os -B2,8 &Esto lanza TiMidity en segundo plano como sintetizador virtual con puertos ALSA abiertos. Deberías ver algo como:
Requested buffer size 2048, fragment size 1024
ALSA pcm 'default' set buffer size 2048, period size 1024 bytes
TiMidity starting in ALSA server mode
Opening sequencer port: 128:0 128:1 128:2 128:3
Puedes verificar que los puertos están activos con:
aconnect -lDeberías ver client 128: 'TiMidity' en la lista.
kmidKMid detectará automáticamente los puertos ALSA de TiMidity y cargará el backend. Si /usr/local/bin no está en tu PATH:
/usr/local/bin/kmidkillall timidity- CMake / KDE: rutas
KDE_INSTALL_*al estilo KF5; documentación opcional con KF5DocTools (libkf5doctools-devsi quieres los manuales HTML). - Drumstick: includes
<drumstick/…>,using namespace drumstick::ALSA,drumstick::File::QSmf,#include <drumstick/sequencererror.h>,-fexceptionsen el plugin ALSA. - Tipos:
Settingsde KConfig es global (noKMid::Settings);KDE_EXPORTeliminado enALSABackend;VERSIONenconfig.hdesde@PROJECT_VERSION@. - Qt5/KF5 UI: cabeceras tipo
KColorButton,QFontComboBox/QSpinBoxdonde KF5 ya no expone el widget antiguo;QListWidget+ conexión en código para la lista MIDI. - main.cpp: añadido
KLocalizedString::setApplicationDomain("kmid")yQCoreApplication::addLibraryPathpara que Qt encuentre los plugins instalados en/usr/local. - Otros:
QProcessen sustitución deKProcess/KUrl;sendSeqEventpara no chocar conQObject::sendEvent;setRotation,itemAt(..., QTransform()),Qt5::Svg, etc.
- Los avisos de iconos (
hi16-app-kmid.pngfrente al formato que esperaecm_install_icons) son cosméticos; se pueden renombrar más adelante si quieres silenciar ECM. - Si al ejecutar falta algún
.soo plugin en tiempo de ejecución, indica el mensaje exacto de la terminal y se puede resolver ajustando el prefijo de instalación o conLD_LIBRARY_PATH/QT_PLUGIN_PATH. - Si instalas con
-DCMAKE_INSTALL_PREFIX=/usr/localy el sistema no encuentrakmiden el PATH, añade/usr/local/bina tu PATH:export PATH="/usr/local/bin:$PATH".
Si eres desarrollador lee el Roadmap para continuar mejorando el programa:
