Tux Guitar

Problems

Subject Tuxguitar Sequencer, en version CVS, se ralenta



Author Message
el_bot
Post: Aug 2nd 2007 at 3:23 AM

Bue, me tome el atrevimiento para haeer un nuevo thread; si no iba a tener postear en otro que hablaba de las soundfonts...
Bue, primero, la version CVS (al dia 28 de julio ) la pude compilar, luego de mucho luchar con errores de compilacion (justo antes de darme cuenta de que julian habia subido los cambios de los archivos de configuracion de ant... tuve que hacer los mismos ajustes para poder compilar en XP; con la diferencia que tengo cero idea de ant).
Tengo XP home edition, jdk 1.6.0.2; 128 mb de ram (este puede ser uno de los problemas) y compilar contra swt.jar que instalaba la version binaria estable 9.01 (supongo que esto no trae problemas o si?)
Lo que mas me interasaba de la verisn para window era poder seleccionar el port midi de salida (para liberarme de las soundbanks de java); y anda!!
-En Configuracion de Tuxguitar -> sonido; la opcion de salida port de midi me mostro:
1)Mapeador Microsoft MIDI (default)
2) Sint. SW de tabla de ondas GS
3) Java Sound synthetiser
el 1) anda de 10; mucho mejor que las soundbanks de java
el 2) me tiraba un error windows:"Ya se esta utilzando el controlador de especificado. Espere a que quede libre y vuelva a intetanrlo" Esto no creo que sea un problema de Tuxguitar, pero no pude saber cual que proceso lo estaba usando o como liberarlo (alguna sugerencia?)
el 3) anda como anda en la verion estable (con un snare de percusion que tapa todo :) )

Bueno, esas son la buenas; el problema que vi es que lo anterior funcionaba bien solo cuando se seleccionaba el Real Time Sequencer como sintetizador de midi; cuando se utiliza el Tuxguitar Sequencer se "ralenta" todo, pierde el tiempo (hablando un poco mas técnicamente, suena para el ort*... :); pero bueno, capaz que es un problema de poca ram (128 es muy poco , pero igual tendría que andar bien no? )

Otra cosa (que no se si es un problema de skin blue_serious; que es con el que lo alcance a testear, aunque no creo) es que dos por tres se ponen algunos compases en negro (exactamente igual que como si estuvieran seleccionados; y no se pueden desmarcar...)

Otra, que (esto es una cuestion de funcionalidad) cuando uno quiere agregar un compas vacio (clic derecho-> agregar compas) siempre agrega un compas A TODOS LOS TRACKS; la unidca manera de hacer los mismo es crear un compas vacio al final del track, compiarlo (y aca si me da la opcion de copiar el compas de un solo track) y al lugar en donde queria isertar el compas incialmete, y pegar; y claro, cuando lo pega lo pega en un solo track, no en todos (poco elegante, pero es la unica forma que halle de crear "espacios" en el medio de tracks).

Igual, es excelente que se puedan seleccionar los puertos midi de salida (Julian dijo que en linux desde java no se podía escanear los puertos, solo en Windows; pregunto si se pueden escanear los puertos desde C o otro lenguaje para compilar nativamente; si es así, se tendría que poder escanear indirectamente desde java a través de la interfaz de java de codigo nativo (JNI creo que se llama); pero ahora si que estoy recontra tocando de oido....)

Si puedo hacer correr en windows a Timidity o Fluidsynth como sintetizador de software para que los utlizen directamente Tuxguitar, les aviso y les pago un asado para todos los Developers :). Saludos.


Back to Top
 
Anonymous
Post: Aug 2nd 2007 at 11:37 AM

Veo que escribiste bastante.. asique voy por partes.

>Ya se esta utilzando el controlador de especificado
Esto parece ser un bug de java.
al parecer, no cierra bien el puerto anterior.
fijate que si te tira este error.. reinicias la aplicacion, y el puerto funciona. pero despues te va a tirar el mismo error si queres volver al que tenias antes.

>Tuxguitar Sequencer se "ralenta" todo
Bueno, este todavia esta en trabajo..
basicamente esta creado para runtimes de java que no implementen Java Sound Api. ( por ejemplo GCJ en linux )

>es que dos por tres se ponen algunos compases en negro
no el skin no tiene nada que ver con esto... (el skin son solo los iconos que se ven en el toolbar y algunos dialogos)
esto puede pasar por 2 motivos.. pero no sabria bien como explicarlos.
pero seria bueno, que si de alguna manera me podrias pasar el archivo para verlo.

>siempre agrega un compas A TODOS LOS TRACKS
esto no esta planeado cambiarlo... es completamente anti-musical tener una partitura con una pista de 10 compases, y otra de 8.. imaginate al director de una orquesta intentando leer la partitura.. se vuelve loco.
de echo.. eso esa posibilidad es algo que odio de powertab.
sin contar, de que para hacer algo asi, habria que cambiar practicamente toda la estructura del programa.

>pregunto si se pueden escanear los puertos desde C o otro
>lenguaje para compilar nativamente
Si se puede.. tal y como lo decis con JNI ( Java Native Interface). de la misma manera que esta echo el TuxGuitar-alsa (para linux) y el nuevo TuxGuitar-coreaudio ( para MacOs) se puede hacer para windows.


Back to Top
 
el_bot
Post: Aug 2nd 2007 at 3:11 PM

>>Ya se esta utilizando el controlador de especificado
>Esto parece ser un bug de java.

Parece que es asi, o algo asi. Como puse antes, me de da 3 opciones de para el sintetizador; dos que detecta externo (el mapper de windows y el SW) y el interno de java. Bueno, entre cualquiera de los externos y el de java siempre te permite cambiar; no te tira error (solo te pregunta si queres aplicar los cambios actualmente). Ahora, si cuando abrís tuxguitar, tenes configurado el port a uno de los externos y intentas cambiar a el otro externo, te tira el error de controlador (OJO, te permite cambiarlo, y te pregunta si queres aplicar los cambios; el error te lo tira recién cuando querés que suene algo). Un "workaround" temporal ( o no ) podría ser que cuando el usuario esta intentando cambiar a otro sintetizador externo, advertirle que ese cambio necesita reiniciar tuxguitar (asi por lo menos no presupone equivocadamente que ese por no lo puede usar)

>>Tuxguitar Sequencer se "ralenta" todo
>Bueno, este todavia esta en trabajo..
>basicamente esta creado para runtimes de java que no >implementen Java Sound Api. ( por ejemplo GCJ en linux )

Entonces esta perfecto! pero podría ponerse por defecto el otro (y si se puede detectar que el API de java no exite, claro, utilizar el de Tuxguitar). Un usuario común lo mas probable es que antes de darse cuenta que el problema es el sequencer, deje a tuxguitar pa siempre y se vaya a tomar unos mates :) (btw: no existe una implementación de la API de sonido de java alternativa?? toy casi seguro que existe, pero no se si es open source....)

>>es que dos por tres se ponen algunos compases en negro
>no el skin no tiene nada que ver con esto..

Que archivo? (y principalmente a quien???? jajaja ). No se porque pero me parece que el error tiene que venir cuando uno reproduce (el reproductor cambia la pantalla al mostrar la ejecución de las notas en tiempo real). Te detallo lo pasos de la ultima vez que pude reproducirlo
1. abro un file gp4 (creado en el tuxguitar estable); 3 tracks : bata, bajo y guitarra
2. pongo play, y empieza a reproducir lo mas bien
3. pongo pause y en ese mismo momento se me pone en negro todos los compases y también tab abajo del track del medio menos el compás actual (a veces me ha puesto en negro compases de distintos tracks también). En "negro" da la misma visualización que si un los hubiera seleccionado (el fondo blado se vuele negro; las lineas de la partitura y del tab en blanco y los numeros de los compases en rojo y cuando se reproduce, las notas en la partitura tambien en rojo); bue tengo un screenshot dando vueltas.
Hago click derecho, izquierdo, bi-diestro, lo que quieras y no se vuelve al fondo blanco normal. Solo parece desmarcase (y de a un solo compás ) cuando uno lo empezas a editar (pero no siempre; he tenido que borrar notas a "ciega")
(obs: NO instale swt... para poder compilarlo tuve que reutilizar los jars que tuxguitar estable puso en el directorio de instalación (subdir lib )y ponerlos en el subdirecotio lib de compilación (si no, claro, tiraba errores ant, ya que no encontraba las clases en ninguna lado); pero creo que esto no puede ser el problema, o si? Por lo que lei el build.xml en en xml/update antes de construir tuxguitar hace basicamente lo mismo.)

>>siempre agrega un compas A TODOS LOS TRACKS
>esto no esta planeado cambiarlo...

jaja, podriamos estar discutiendo un rato largo. Ponelo de esta manera: que a un track se lo agrege en el compas actual y a los demas en al final... Mas halla de esto, la verdadera funcionalidad que realmente creo necesaria es la siguiente:
alargar la duración de una nota o silencio "corriendo" todas las notas que estan adelante (dentro de un track, los otros track no se tocan, a lo sumo se alargan con silencios; las que están adelante de la alargada tienen que quedar igualitas; solo corridas en el tiempo); en caso de ser necesario alargar el track que se alarguen todos. Este es una foram de "modo insercion de notas" vs "modo edición de notas"; lo he visto en bastantes lados (en rosegarden por ej, creo) y te aseguro que puede ser bastante necesario (imaginate que trascribiste todo un track de percusión y otro de bajo, por separado; y después te das cuenta que te olvidastes trascribir el compás 5 del bajo y por lo tanto el 5 actual es el 6 real, el 6 el 7 , etc; el tema tiene 100 tracks... como lo solucionas?... me ha pasado...Sol: copias todos los compases solo del track del bajo desde el 5 hasta el final; y esto lo pegas en el compas 6 del bajo... creo que anda, pero bue...).

Bue, me parece que estoy escribiendo demasiado...

PD: por lo que estuve viendo es posible que el Mapeador MIDI de Windows ( que supongo que sera el Midi Mapper no?) permita no solo ser un sintetizador de software, si no también redirigir los mensajes midi a otro dispositivo salida (en mi caso otro sintetizador de soft)... En este caso para utilizar timidity o fluidsynth bajo windows capaz que no se deba hacer nada; solamente configurar correctamente timidity o fluidsynth (o el mapper) para que lo que se envíe al mapper en realidad vaya a ellos... en timidty (verision win32 , medio descontinuada) cuando uno lo ejecuta como server sintetizador, permite escoger como port Midi IN un tal "MIDI Mapper"; andar anduvo, pero como estoy medio pasado de rosca, cuando ejecuto tuxguitar no se si el que esta ejecutando los mens midi es Timidity o el Mapeador MIDI de WIndows... jajaja, no encuentro manera de verificarlo o no (haaaa ya se, pongo timidity con salida a wav, si el wav que genera suena lo qeu ejecuta tuxguitar, esta funcionando!!! despues comento). Después pruebo con fluidsynth (version win32 también descontinuada; del 2004 creo). Saludos (promete ser mas breve pa las próximas :) )


Back to Top
 
Julian
Post: Aug 2nd 2007 at 3:45 PM

Epa.. cada vez hay q leer mas :d

>no existe una implementación de la API de sonido de java alternativa??
>toy casi seguro que existe, pero no se si es open source
Yo por ejemplo conosco "tritonus".. pero esta basado en JRE-1.4..
el problema de jre1.4 y 1.5 o mayor.. es que hay una incompatibilidad muy importante en un puto metodo de 1.5 que 1.4 no tiene.. y por ese metodo.. tengo 2 opciones:
1_ el programa no compila en JRE1.4
2_ sacrificar cambios en tiempo real ( como cambiar volumen mientras suena la cancion) y seleccion de puertos midi (justamente lo que estas probando)..

hace tiempo que me decidi por la opcion 1.. y por eso se necesita java 1.5 o mayor.

conclusion.. no solo se necesita Java Sound Api.. sino tambien que sea para >=jre1.5
y por eso hice el secuenciador propio.. aunque lo tendre que depurar sobre windows para ver porque funciona mal.

>olvidastes trascribir el compás 5 del bajo
bueno.. pero esto es distinto a "agregar compas".
en este caso se necesita un "Mover notas X tiempos"
que "SI" esta planeado para hacer.. y en el caso de que el movimiento requiera agregar uno o mas compases.. se agregaran automaticamente al final.

>PD................
la verdad si te digo algo sobre timidity + windows, te mentiria.. hace 3 años que no uso win.. y mucho no me acuerdo.
pero yo supongo que timidity en win.. debe funcionar algo similar a como lo hace en linux..
prendes el demonio.. y luego te aparece en la lista de dispositivos para seleccionarlo... sera asi ?


Back to Top
 
Julian
Post: Aug 3rd 2007 at 1:59 PM

Estuve probando la version CVS en win con una maquina virtual..
el problema de los compases "negros" es por la version ( 3.2 ) de swt que estas usando ( aparentemente swt-3.2 para win, no termina de soportar del todo imagenes vectoriales.. ya vere si encuentro la manera de dar compatibilidad a ese problema ).. asique fijate de usar el ultimo 3.3 que es el que se esta usando para desarrollar la version CVS.

lo del "sequencer" no me pasa.. supongo que tendra que ver con algo de hardware a la hora del manejo de Threads.
que procesador tenes ?


Back to Top
 
el_bot
Post: Aug 3rd 2007 at 7:55 PM

Upps, perdona la demora, no vi el segundo post y una chica me secuestro por unas horas...(de paso, mataría que los post tengan fecha... a veces no se si estoy leyendo algo que se hablo hace 3 meses...)
Bue, tengo un Celeron de 2 Ghz (tipo Pentium IV, pero siempre tuve mis dudas si esta ultima denominación es correcta...igual lo de 2Ghz es seguro). Lo que si te remarco es que tengo 128Mb de ram (lo remarco porque se que es una guazada tener tan poco, pero siempre caigo en el error de no comprar mas ram cuando estan baratas..)... plan Mi Pc 2005 (con eso capaz que te dije todo,jaja). Hypper Threading (o como se llame ) toy casi seguro que no tiene, pero no creo que sea un problema de hardware...
En cuanto compile la ultima versión contra la ultima swt pruebo y te aviso (tal vez indirectametne se solucione lo del sequencer...). Itext lo tengo que instalar tambien?? me parecio ver que la version CVS no la utiliza (bue si no, pruebo y listo).


Back to Top
 
el_bot
Post: Aug 6th 2007 at 2:39 PM

Version CVS al 6 del 8, 12 p.m. Bueno, hice el checkout, construi el tarball, los descomprimi, copie el swt.jar que viene en el swt.zip para la version 3.3 para windows y la copia en el subdir lib/ (supongo que hay que hacer esto no?); modifique el buil.propieties para windows, corri ant y lo unico raro que me mostro es el sig warning
[javac] Note: Some input files use unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.
bue, supongo que no es importante (?)
No me genera el *exe (supongo que para que lo genere tambien tengo que copiar el jar de jane y las dlls a lib?? bue no se)
Testing:
ejcuto el .bat generado y lo primero raro que veo es que me da 3 opciones para el sequencer: el RealTime y el Tuxguitar Sequencer 2 veces (supongo que en realidad es el mismo, y que lo que esta mal es la gui?).
bueno; lo de los compases negros parece haber desaparecido (de paso, la version swt estable parece ser mas reciente que el tuxguitar estable... capaz que con esta los compaces negros tampoco aparecen).
El Tuxguitar sequencer parece aun ralentarse (pero esta vez no tanto como la vez anterior; en realidad bastante poco). Me dio la sensaión de que tiene a perder mas los tiempos tiempos de ejecución cuanto esta en modo multipista, linear y mostrando la paritura. Visualmente se ralenta en con los 2 sequencers (e.d se ralenta la reproducción visual). Lo extraño es que el archivos gp4 no parece ser muy complejo: solo 3 track,4/4, negra en 100, con a nota mas pequeña siendo la semicorchea y algunos contratiempos... Intente con otros mas complejos suponiendo que la ralentación iba a empeorar pero esto no ocurrio (claro que no se que signifca "mas complejo" desde el punto de vista del sequencer; asumí que mas tracks lo harían mas complejo, pero talvez no sea necesariamente asi...).
Tal vez sea que el RealTime sequencer es un poco mas eficiente que el Tuxguitar sequencer, y bajo condiciones extremas como poco ram o el sistema muy cargado la ralentación se haga mas evidente con el Tuxguitar Sequencer...
Si podes crear un maquina virtual con poca ram (128 - 8 mb de shared memory) y carga moderada (ponele Firefox con un par de pestañas abiertas y algun otro soft semi-pesado) capaz que empezas a notar la ralentacion...
Nota: si quiero forzar la ralentación de cualquiera de los dos sequencers lo logro facilmente simplemente abriendo un par de programas y swithching entre estos y tuxguitar... bue, pero esto es obvio ya que en cada switching el SO accede a disco como consecuencia de poca ram...
Bue, si queres te envio el gp4 especifico.


Back to Top
 
Julian
Post: Aug 6th 2007 at 3:13 PM

>No me genera el *exe
si es por el janel-ant.jar..
el build-windows.xml verifica si esta janel-ant y crea el .exe.. sino esta no hace nada.
asique si queres el exe.. solo tenes que modificar build.properties y agregar el path de ese jar.
igualmente, lo del exe es solo para que se vea mas lindo. (o sea sin la ventana del simbolo de sistema que abre el .bat)

>Tuxguitar Sequencer 2 veces
esto es porque cuando se genera el archivo tuxguitar.jar, se mete el archivo:
META-INF/services/org.herac.tuxguitar.player.base.MidiSequencer
que a su vez, tambien esta en /share/META-INF/services ..
el de share/ esta solo para facilitar el desarrollo.. pero en la version final, ese archivo no tiene que estar... en limpio.. borralo.

el problema del TuxGuitar-sequencer, no tiene que ver en si por la cantidad de pistas..
sino por la cantidad de notas simultaneas.
es algo relacionado con la "multitarea".. que se ve que no se ejecuta a tiempo, y por eso no suena como debe.
supongo que tendra que ver con los 128 de ram. teniendo en cuenta que java es un lenguaje que la necesita.
igualmente, no te preocupes demasiado por eso..
que por defecto va a estar activado el de secuenciador de Java (que usa JNI y va a ser siempre mas veloz).


Back to Top
 
io
Post: Feb 18th 2009 at 10:33 PM

no entendi nada


Back to Top
 
MARCOS
Post: Apr 17th 2009 at 11:56 PM

HOLA ALGUIEN ME PUEDE DECIR DONDE PUEDO BAJAR SOLOS DE MALMSTEEN O GIARDINO PARA TUXGUITAR


Back to Top