Skip to content

wachin/kmid3

Repository files navigation

kmid3

Port de KMid 2.4.0 actualizado para compilar y funcionar en 2026 con Qt5, KDE Frameworks 5 y drumstick moderno:


Dependencias de compilación

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-modules

Si también quieres los manuales HTML de KDE:

sudo apt-get install -y libkf5doctools-dev

Cómo compilar e instalar

cd /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.


Requisito: sintetizador de software

KMid necesita un sintetizador MIDI para producir sonido. En Linux la opción más común es TiMidity++ con una soundfont.

Instalar TiMidity y la soundfont

sudo apt-get install timidity fluid-soundfont-gm alsa-utils

El 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.

Cargar el soporte de secuenciador ALSA

modprobe snd_seq

Este comando activa el módulo del kernel que crea los puertos MIDI virtuales internos, necesarios para que KMid y TiMidity se comuniquen.

Arrancar TiMidity en modo servidor

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 -l

Deberías ver client 128: 'TiMidity' en la lista.

Lanzar KMid

kmid

KMid detectará automáticamente los puertos ALSA de TiMidity y cargará el backend. Si /usr/local/bin no está en tu PATH:

/usr/local/bin/kmid

Detener TiMidity cuando termines

killall timidity

Qué se cambió en el árbol (resumen)

  • CMake / KDE: rutas KDE_INSTALL_* al estilo KF5; documentación opcional con KF5DocTools (libkf5doctools-dev si quieres los manuales HTML).
  • Drumstick: includes <drumstick/…>, using namespace drumstick::ALSA, drumstick::File::QSmf, #include <drumstick/sequencererror.h>, -fexceptions en el plugin ALSA.
  • Tipos: Settings de KConfig es global (no KMid::Settings); KDE_EXPORT eliminado en ALSABackend; VERSION en config.h desde @PROJECT_VERSION@.
  • Qt5/KF5 UI: cabeceras tipo KColorButton, QFontComboBox/QSpinBox donde KF5 ya no expone el widget antiguo; QListWidget + conexión en código para la lista MIDI.
  • main.cpp: añadido KLocalizedString::setApplicationDomain("kmid") y QCoreApplication::addLibraryPath para que Qt encuentre los plugins instalados en /usr/local.
  • Otros: QProcess en sustitución de KProcess/KUrl; sendSeqEvent para no chocar con QObject::sendEvent; setRotation, itemAt(..., QTransform()), Qt5::Svg, etc.

Notas

  • Los avisos de iconos (hi16-app-kmid.png frente al formato que espera ecm_install_icons) son cosméticos; se pueden renombrar más adelante si quieres silenciar ECM.
  • Si al ejecutar falta algún .so o plugin en tiempo de ejecución, indica el mensaje exacto de la terminal y se puede resolver ajustando el prefijo de instalación o con LD_LIBRARY_PATH / QT_PLUGIN_PATH.
  • Si instalas con -DCMAKE_INSTALL_PREFIX=/usr/local y el sistema no encuentra kmid en el PATH, añade /usr/local/bin a tu PATH: export PATH="/usr/local/bin:$PATH".

Para continuar con el desarrollo el Roadmap

Si eres desarrollador lee el Roadmap para continuar mejorando el programa:

ROADMAP.md


About

KMid 2.4.0 ported to Qt5 / KDE Frameworks 5 — MIDI/Karaoke player for Linux (2026)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors