Intentando crear un piano para móviles, varios problemas - Forum

Forum Navigation
You need to log in to create posts and topics.

Intentando crear un piano para móviles, varios problemas

Hola!

Intentaré ser breve y explicarme lo mejor posible... paciencia, que soy nuevo :)

Estoy intentando crear un piano para convertilo en apk.

a modo de prueba, he creado 2 objetos:
- un texto donde crear el reproductor de audio
- una tecla con un elemento "botón", llamado "notaDO"

He creado esta subrutina para la nota do:
SetVar [nota] "C:\Users\dskmu\Desktop\notas\DO.mp3"
Refresh
AudioPlayerPlay "piano"
Esto se supone que carga el archivo de sonido, refresca la variable [nota] del reproductor de audio y lo reproduce.

En los eventos de page-enter he creado esto:
CreateAudioPlayer "piano" "[nota]" false false false
OnTouchEvent "notaDO" "touchstart" "playdo"
lo que se supone que hará que al pulsar el botón "notaDO" se ejecute la subrutina que hace sonar la tecla

No funciona :/
por un lado, al definir los archivos de las notas por variables, los archivos no se copian en la carpeta de la app...
he probado con media"/notaDO.mp3" y varias combinaciones para la variable, pero nada.
alguna idea o consejo???

por otro lado, hice una prueba sin variable poniendo la ruta completa al archivo y así si funciono, pero cuando apretaba la tecla en el movil tenia que esperar a que terminara de reproducirse el sonido para volver a "dispararlo", impidiendo tocar otras notas a la vez.

Help!!!!!!

nadie?? :/

@dskmusic

por un lado, al definir los archivos de las notas por variables, los archivos no se copian en la carpeta de la app...

Para que se copien los archivos debes incluir la ruta del archivo en el propio comando. Si lo haces a través del valor de una variable, como no existe fuera del tiempo de ejecución, no puede saber de que archivo se trata y eres tu quien debes incluirlos manualmente en ese caso.

por otro lado, hice una prueba sin variable poniendo la ruta completa al archivo y así si funciono, pero cuando apretaba la tecla en el movil tenia que esperar a que terminara de reproducirse el sonido para volver a "dispararlo", impidiendo tocar otras notas a la vez.

¿Has probado a parar el sonido con AudioPlayerStop antes de ejecutarlo de nuevo? Es posible reproducir varios archivos de sonido simultáneamente, pero un mismo archivo en un mismo audio player no puede sonar varias veces de manera simultánea. Si ya está en Play, simplemente seguirá hasta el final.

Saludos

Quote from luishp on May 25, 2020, 4:45 pm

Para que se copien los archivos debes incluir la ruta del archivo en el propio comando. Si lo haces a través del valor de una variable, como no existe fuera del tiempo de ejecución, no puede saber de que archivo se trata y eres tu quien debes incluirlos manualmente en ese caso.

Y como hago eso? me refiero a incluirlos manualmente... como los incluyo y los "llamo" luego?

 

¿Has probado a parar el sonido con AudioPlayerStop antes de ejecutarlo de nuevo? Es posible reproducir varios archivos de sonido simultáneamente, pero un mismo archivo en un mismo audio player no puede sonar varias veces de manera simultánea. Si ya está en Play, simplemente seguirá hasta el final.

entiendo... eso limita un poco el tema de "tocar" el piano, pero puede ayudar a entender comjo hacerlo..

Me va a tocar investigar mucho. Gracias! A ver si puedes ayudarme con lo de incluir los archivos y llamarlos :)

Me va a tocar investigar mucho. Gracias! A ver si puedes ayudarme con lo de incluir los archivos y llamarlos :)

@dskmusic simplemente utiliza direcciones relatives en lugar de absolutas y recuerda compilar el proyecto para ejecutarlo.
Por ejemplo:

CreateAudioPlayer "Container1" "./media/myfile.mp3" true false false

Una vez compilado el proyecto, tendrías que copiar el archivo myfile.mp3 dentro de la carpeta "media" en tu proyecto compilado. Si por el contrario utilizas una dirección absoluta como:

CreateAudioPlayer "Container1" "C:\Users\sinli\Music\myfile.mp3" true false false

Entonces VisualNEO Web se encargará de copiar el archivo a su ubicación final y además podrás probar tu app sin necesidad de compilarla. Lo importante es entender como funciona y organizarte como mejor te venga.

En función del interés e temas musicales podemos dar mayor prioridad a plugins específicos para ello. Esta es probablemente la librería JavaScript más famosa, pero me faltan conocimientos musicales para entender bien como implementarla en VisualNEO Web:

https://tonejs.github.io/

Saludos

 

Quote from luishp on May 26, 2020, 6:13 pm

cesidad de compilarla. Lo importante es entender como funciona y organizarte como mejor te venga.

En función del interés e temas musicales podemos dar mayor prioridad a plugins específicos para ello. Esta es probablemente la librería JavaScript más famosa, pero me faltan conocimientos musicales para entender bien como implementarla en VisualNEO Web:

https://tonejs.github.io/

Saludos

 

Yo puedo echarte una mano en lo que quieras, relacionado con temas musicales.. aunq de programación ando cortito!

@dkmusic, esta otra libreria me parece más sencilla de entender ¿crees que cuenta con suficientes funcionalidades? Échale un vistazo a los ejemplos y me dices:
https://alemangui.github.io/pizzicato/

Gracias!

Quote from luishp on May 26, 2020, 6:13 pm

@dskmusic simplemente utiliza direcciones relatives en lugar de absolutas y recuerda compilar el proyecto para ejecutarlo.
Por ejemplo:

CreateAudioPlayer "Container1" "./media/myfile.mp3" true false false
CreateAudioPlayer "Container1" "./media/myfile.mp3" true false false

 

genial! no imaginaba q soportara rutas relativas, gracias ;)

Parece que hemos publicado en el mismo instante :)

Quote from luishp on May 26, 2020, 8:27 pm

@dkmusic, esta otra libreria me parece más sencilla de entender ¿crees que cuenta con suficientes funcionalidades? Échale un vistazo a los ejemplos y me dices:
https://alemangui.github.io/pizzicato/

Gracias!

hombre, no es ni de lejos tan completa como la otra.

La clave sería que permitiera tocar grupos de notas a la vez, y repetir la misma nota si se diera el caso, como harías en un piano normal. Sin eso, todo "lo demás" por muy completo que esté el js, no va a servir de nada...

Lo primero sería eso, asegurarse de que es posible tocar, y a ser posible con muy baja latencia (eso es el tiempo desde que se presiona la nota en el teclado hast que suena).

Quote from luishp on May 26, 2020, 8:27 pm

@dkmusic, esta otra libreria me parece más sencilla de entender ¿crees que cuenta con suficientes funcionalidades? Échale un vistazo a los ejemplos y me dices:
https://alemangui.github.io/pizzicato/

Gracias!

uff, echa un vistazo a este ejemplo de la primera libreria:

https://tonejs.github.io/examples/polySynth.html

a eso me refiero con un buen comportamiento del teclado.

Quote from luishp on May 26, 2020, 8:27 pm

@dkmusic, esta otra libreria me parece más sencilla de entender ¿crees que cuenta con suficientes funcionalidades? Échale un vistazo a los ejemplos y me dices:
https://alemangui.github.io/pizzicato/

Gracias!

Este ejemplo si que es exactamente lo que pretendo:
https://tonejs.github.io/examples/sampler.html