Copio y pego el mensaje enviado a Vuott, es que sé que a Vuott le gusta el tema de los midis.
Tu sabes que uso Python y me gusta "un poco" el tema de los videojuegos, crear pequeños ejemplos de estos. Muy sencillos.
Hace unos días he retomado el tema de la librería Pygame para Python. En realidad intento llevar cosas a gambas y comprender como
funciona en un lenguaje para llevarlo a otro.
En principio la librería Pygame es un "traductor" de SDL1. Estaba viendo el tema de reproducir sonidos usando la librería Pygame.
Hace bastante que me funcionaba sin problema reproducir archivos midis usando la librería PyGame. Llevo mucho tiempo sin volver a usarlos.
De buenas a primera ya no reproduce midis.Era el único formato que se le resistía estos días.
Pero debe ser más bien algún problema de la librería pygame, algún cambio que ha tenido.
Primero no encontraba el archivo timidity.cfg en /etc. Realmente se encuentra en /etc/timidity/
Eso lo solucioné creando un enlace simbólico.
Pero ahora surgió otro problema, un error sintáctico cuando intentaba abrir la canción midi.
Tu sabes que en timidity.cfg se tiene que configurar los bancos de instrumentos. En este caso son sound font 2, o sf2
En mi caso:
Estos son los bancos de instrumentos:
Citar:
Y en el timidity.cfg los localiza de esta forma:
Citar:
No he activado esta parte:
Citar:
Al final acabé compilando de cero la librería Pygame.
https://www.pygame.org/wiki/CompileUbuntu?parent=
La página olvidaba añadir alguna dependencia. La añadí manualmente.
Cuando fui a comprobar que todos los ejemplos de test de la librería funcionaban, vi error en el "mixer",
cuando fue a usar "midis".
Spoiler: [ Mostrar ]
Al crear la compilación a mano, automáticamente la versión de la librería pygame se ha puesto en la versión 2 y está usando sdl2.
Pero yo no paré ahí. Un ex-cónsul romano no se rinde tan fácilmente sin presentar batalla.
Así que fui al ejemplo que tenia creado hace tiempo y quise probar la reproducción de los archivos midis.
Y....el midi comenzó a sonar!.
No obstante la consola mostraba un error de que no encontraba algo que quería, te lo añado:
Citar:
¿ sf3 ?. Creía que el estandar era sf2.
Logicamente ni la extensión que tengo de los bancos de instrumentos es sf2 ni el directorio es el mismo.
Pero estaba sonando....
Fui de paso a ver el código fuente de timidity para compilarlo manualmente...antiguo, antiguo..no hay nada nuevo de este.
Da como a entender que los midis son algo del pasado.
Te he escrito este mensaje por que sé que te gusta el tema de los mdis.
No te estoy solicitando que me hables de algo que no conoces, Python y la librería PyGame.
Pero si en lo común que sea de midis, formatos, versiones.
Parece como si los midis hayan perdido mucho en los tiempos actuales.
Así que no te extrañes que "un día" los ejemplos ya no vengan con midis y ya incorporen el audio en formatos "mp3" o parecido.
He encontrado esto en el gestor de paquetes del sistema:
Citar:
Y esto es mejor aun:
Citar:
Todos son cambios que no todos los llevan igual y luego las cosas no funcionan.
Actualizas en plan "me tiro a la piscina", pero es que no deberías desconfiar, sobre todo cuando algo ha funcionado siempre....
No sé nada de soluciones, la más próxima que encontré fue esta:
https://github.com/pygame/pygame/issues/343
Tema cerrado hace 29 dias.
"Closing because this doesn't seem to happen with SDL2.".....
..actualicen a SDL2..
¿ Realmente los programadores van acorde ?.
Cosas que se quedan atrasadas, autores que no ponen al día los ejemplos, que den soluciones..
Puede que PyGame este ahora tomando el camino hacia SDL2.
De todas formas si llevan bastante tiempo con una versión de SDL, no siempre los cambios son para mejor...ataque de bichos!.
Puede que este aun la cosa verde.
Saludos