Ayuda con una aplicación web de armonía

SergioGonzalez
#16 por SergioGonzalez el 03/12/2015
Yo de programación no sé pero he encontrado una cosilla a mejorar

C Húngara mayor I
Grados de la escala

CI - EbIIIm - EIII - GbIVaug - GVJ - AVI - BbVIIm

En los grados, en vez de mostrar Eb como 2ª Aumentada, lo muestra como 3ª Menor (que sonar suenan igual) pero si hablamos de grados ahí no hay segundo grado jejeje

Muy chula la aplicación!!
Subir
OFERTASVer todas
  • -37%
    Behringer SU9920
    69 €
    Ver oferta
  • -10%
    Komplete Kontrol M32 edición limitada
    98 €
    Ver oferta
  • -49%
    GForce OB-X
    66 €
    Ver oferta
supertorpe
#17 por supertorpe el 03/12/2015
#15 =D>
A ver si te animas a subirlo a github.

Ahora ya es un poco tarde, pero tal vez esta librería te hubiera venido de perlas:

https://github.com/saebekassebil/teoria

Implementa abstracciones sobre entidades musicales (notas, intervalos, acordes, escalas) y operaciones sobre los mismos.
Subir
Jota Arkham
#18 por Jota Arkham el 03/12/2015
#16

Gracias, también había detectado otros errores en el nombre de los grados en otras escalas. El nombre de los grados es una de las cosas más difíciles de determinar "matemáticamente"... yo puedo tener un patrón de semitonos para cualquier escala, y es muy fácil construir las notas que la componen, pero partir de ese mismo patrón de semitonos e inferir el nombre de los grados... eso es más complicado.

Quizá deba abordar las escalas de otra manera, en lugar de partir de un patrón de semitonos, partir de un patrón de grados. Ése es un cambio gordo tal cual tengo montado el código, pero antes o después tendré que hacerlo.
Subir
Jota Arkham
#19 por Jota Arkham el 03/12/2015
#17

Sí, al final subiré todo a GitHub en cuanto termine con esta beta y corrija todo lo posible. Qué guapa la librería, me habría ahorrado mucha codificación, porque al fin y al cabo hacemos más o menos lo mismo. De todas formas, me va a servir para restructurar el código y crear algunas funciones un poco más atomizadas e independientes.
Subir
supertorpe
#20 por supertorpe el 03/12/2015
Javi Arce escribió:
Quizá deba abordar las escalas de otra manera, en lugar de partir de un patrón de semitonos, partir de un patrón de grados. Ése es un cambio gordo tal cual tengo montado el código, pero antes o después tendré que hacerlo.

Si lo haces, no dejes de revisar la librería que te comentaba en #17 :
Alguien escribió:
Note#scaleDegree(scale)

Returns this note's degree in a given scale (Scale). For example a D in a C major scale will return 2 as it is the second degree of that scale. If however the note isn't a part of the scale, the degree returned will be 0, meaning that the degree doesn't exist. This allows this method to be both a scale degree index finder and an "isNoteInScale" method.

scale - An instance of Scale which is the context of the degree measuring

Scale#notes()

Returns an array of Notes which is the scale's notes


Scale#get(index)

Returns the note at the given scale index

index - Can be a number referring to the scale step, or the name (string) of the scale step. E.g. 'first', 'second', 'fourth', 'seventh'.


Y si haces la reestructuración del código, también podrías sacar la generación de los fragmentos HTML de la librería y abordar el enlace entre modelo y presentación con AngularJS (por ejemplo).

Qué fácil es dar ideas, ¿eh? :desdentado:
Subir
Jota Arkham
#21 por Jota Arkham el 03/12/2015
Ya he subido una nueva versión con Web Audio. Ahora, cuando haces click en cualquier acorde de cualquier tabla de la web, dicho acorde suena (de momento al piano, ya iremos extendiendo a otros instrumentos).

http://coda.eu.pn/

#20

Genial, al final no habrá que programar nada, sólo incluir scripts y llamar a initialize() :desdentado:
Subir
Jota Arkham
#22 por Jota Arkham el 03/12/2015
supertorpe escribió:
Y si haces la reestructuración del código, también podrías sacar la generación de los fragmentos HTML de la librería y abordar el enlace entre modelo y presentación con AngularJS (por ejemplo).

Qué fácil es dar ideas, ¿eh? :desdentado:


Eso me interesa mucho. Estos últimos tiempos he trasteado con React pero esta aplicación ya la tenía empezada. Angular JS no la he tocado, pero la tengo en lista de pendientes desde hace tiempo. Ahora separo Vista-Controlador "a manubrio", a base de dejar la presentación a funciones que incluyen en su firma la palabra "genera", pero que duda cabe que es mucho mejor integrarlo en un framework sólido.
Subir
supertorpe
#23 por supertorpe el 03/12/2015
Otra idea más para la lista: hacerla adaptable, por ejemplo con bootstrap.
Si aprendes AngularJS, el siguiente paso lógico sería Ionic, y lanzar la app. móvil correspondiente. Casi ná.
Subir
Emilio
#24 por Emilio el 03/12/2015
Javi Arce escribió:
Quizá deba abordar las escalas de otra manera, en lugar de partir de un patrón de semitonos, partir de un patrón de grados.


Yo no me atreví a decir nada, porque comparado con vosostros soy un ignorante casi absoltuto, pero me dí cuenta de que, aunque enarmónicamente es lo mismo, armónicamente no lo es...Debería existir la noción de enarmomía: no es lo mismo el II aumentado que el III (menor), aunque enearmónicamente sean lo mismo...

Un ejejmplo: Cuando eliges pulsar o bien # o bien bemol se puede producir el error (para quien no esté suficiente al tanto en armonía) de eligir pulsar # en una tonalidad como Do Menor, con lo que se produce los siguiente errores conceptuales:

CI - DII - D#IIIm - FIVJ - GVJ - G#VIm - A#VIIm

El III de Do menor no es re# sino mib, el VI es la, no sol# , y el VII es sib, no la#

Enarmónicamente suena igual pero armónicamente no es correcto indicar un mib como un re#, etc.

Matemáticamente es correcto: entre el II y el IIImenor hay un semitono. Pero en sentido de armonía, de la tonalidad y su escritura no lo es.

Disculpad si esto es demasiado obvio y si se supone que debe ser tal como está en el programa, pues el que lo use ya sabe que debe elegir pulsar bemol y no sostenido en ese caso.
Subir
1
Emilio
#25 por Emilio el 03/12/2015
Emilio Galsán escribió:
El III de Do menor no es re# sino mib, el VI es la, no sol# , y el VII es sib, no la#


El VI es lab, quise decir.
Subir
Epiphone
#26 por Epiphone el 03/12/2015
#24

Al ser una aplicación que genera las notas que componen un acorde, programar un algoritmo que discrimine si ha de mostrar, Re# o Mib por ejemplo requiere bastantes lineas de código.
Subir
Lh
#27 por Lh el 03/12/2015
Hola

Me parece un esfuerzo y una aplicación increíble.

Desde el punto de vista técnico poco te puedo ayudar. La programación no tiene mucho conmigo (por mi formación) pero la otra cuestión, la musical sí.

Intento explicarte en un email, si está disponible. Aquí sería un poco largo.

Saludos.
Subir
Emilio
#28 por Emilio el 03/12/2015
#26 Es lo que supuse...En cualquier caso reitero que lo que dije es sobre todo para no confundir a quien no sabe hacer la discriminación entre elegir # o b .

De todas maneras también señalé que tal vez lo que dije es demasiado obvio y se supone que el que use el programa no eligirá los # que componen la escala de Do menor.
Subir
Epiphone
#29 por Epiphone el 03/12/2015
Bueno me voy a contradecir, acabo de idear un algoritmo bastante simple que resolvería el problema, luego describo el diagrama de flujo en el que se basaría, hace tiempo que no practico el javascript
Subir
Epiphone
#30 por Epiphone el 03/12/2015
Es bastante más sencillo de lo que pensé en un principio, consiste en generar una escala de notas naturales, a partir de la nota base.

Por una parte tendríamos la escala Real y por otra una escala Guia que serviría para decidir en su caso que nota enarmonica es la que pertenece.

Ejemplo :

Se genera la escala Real, por ejemplo Mi Mayor (Mi , Fa#/Solb, Sol#/LaB, La, Si, Do#/Reb, Re#/Mib)

Se genera la escala Guia, ( Mi, Fa, Sol, La, Si, Do, Re)

Y se escoge la nota enarmonica en función de la nota de la Escala Guia

Por otra parte en el circulo de quintas las tonalidades mayores de las notas alteradas deberían ser todas en Bemoles, el Fa# debería cambiarse por Solb, y la escala menor relativa es Mib, el resto de alteraciones esta bien.
Subir
Hilos similares
Nuevo post

Regístrate o para poder postear en este hilo