Question:
Recherche d'algorithmes d'identification d'accords basés sur des lettres et de la littérature connexe
Von Huffman
2013-10-18 20:18:54 UTC
view on stackexchange narkive permalink

Je recherche des algorithmes de reconnaissance d'accords qui attribueront un (des) nom (s) d'accord à un groupe de notes et à la littérature associée.

Parfois connu sous le nom d'identification d'accord inverse, où vous alimentez des notes à l'algorithme, et il produira une liste de noms possibles.

Un exemple: si nous donnons à l'algorithme les notes C, E, G, l'algorithme devrait nommer ce groupe de notes comme "Triade C majeur en position racine ".

Cherchez-vous quelque chose de plus que les réponses que vous avez obtenues sur [cette question SO] (http://stackoverflow.com/q/17955486/2600278)?
@BenMiller Oui, je le suis. Je suis particulièrement intéressé par la méthodologie et / ou la littérature et / ou la recherche sur le sujet. Je m'intéresse également à l'apport des musicologues, contrairement à l'apport des ingénieurs en logiciel que SO fournit.
Jetez également un œil à . Ces messages fournissent des solutions viables.
Cinq réponses:
kurto
2013-10-19 01:59:36 UTC
view on stackexchange narkive permalink

En plus des réponses déjà apportées, vous devez être conscient que l'utilisation des noms d'accords générés par des algorithmes peut être "musicalement inexacte" dans le contexte d'une analyse harmonique.

En fonction du contexte, vous peut avoir par exemple BDF ("B dim") jouer le rôle de GDBF ("G Major 7"). S'il s'agit d'une résolution en do majeur, vous voudrez voir BDF comme une dominante 7 sans racine, et non comme une triade diminuée en B.

Les voix sans racine ne sont qu'un exemple: un logiciel aura du mal avec ces petites choses "implicites / ambiguës" qui font de la musique un art :)

kelly johnson
2013-10-19 01:55:47 UTC
view on stackexchange narkive permalink

Peut-être pouvez-vous contacter le développeur de "Chords" ... l'application Android qui est presque, ... presque ... tout ce dont tout le monde a besoin en matière de dénomination des accords, inversions, emplacements sur le manche, etc.

https://play.google.com/store/apps/details?id=com.rabugentom.chord&hl=en

grimmdude
2013-10-22 21:13:49 UTC
view on stackexchange narkive permalink

Il y a quelque temps, j'ai travaillé sur un module Python qui effectue des tâches similaires.

Jetez un œil à l'indicateur –triadType .

Meaningful Username
2014-04-30 18:49:18 UTC
view on stackexchange narkive permalink

Lilypond est open source et a la capacité de donner des noms d'accord à partir de tons. Il doit donc être quelque part dans la base de code.

user2808054
2014-04-30 19:20:39 UTC
view on stackexchange narkive permalink

Le premier problème serait de décider quelle est la note fondamentale, sinon, comme le dit Kurto, vous obtiendrez plusieurs réponses pour un ensemble de lettres de note.

L'ordre des lettres importerait-il? Peut-être pourriez-vous adopter une règle selon laquelle la première lettre est toujours la racine?

En supposant que vous vous y attaquiez d'une manière ou d'une autre (ou que vous acceptiez simplement plusieurs réponses), vous pourriez ...

Attribuer un numéro à chaque lettre (vous acceptez probablement les dièses et les bémols aussi?) et utilisez cela pour calculer l'intervalle entre les notes, en demi-tons, par exemple ce que nous appelons un 4ème = de A à D fait en fait 5 demi-tons.

Vous pouvez ensuite utiliser les intervalles pour faire correspondre un ensemble de modèles d'accords connus à la note fondamentale:

CEG comme dans votre exemple, en demi-tons = 1-4-7 = [note de racine] major = le modèle relatif pour une triade majeure.

Do Eb G = 1-3-7 = motif pour accord mineur.

1-4-7-10 = Cmaj 7

Chaque fois que vous signalez simplement la note fondamentale avec un commentaire sur l'organisation du reste des notes. La limitation serait là où un accord est perçu mais la note fondamentale est manquante - mais cela pourrait être interprété comme un autre accord de toute façon.

Plus vous identifiez de modèles de motif, mieux cela deviendra mais vous seulement besoin de les définir par rapport à une note fondamentale en nombres de demi-tons.

Si quelque chose ne correspond à aucun des motifs (peut-être que vous n'en avez pas défini un pour l'accord A4), vous écrivez simplement le retour de la note fondamentale avec un supplément numéro de note (pas un demi-ton).

Il vous faut donc

  • un moyen de convertir toutes les lettres (dièses et bémols) en nombres = une table de recherche / un tableau associatif
  • un moyen d'identifier la note fondamentale
  • un moyen d'identifier les intervalles de toutes les lettres de la note fondamentale = transformer en nombres et soustraire le numéro de note fondamentale. Module par 13 pour le maintenir à 1 octave (ou pas si vous voulez être plus avancé et gérer les intervalles négatifs, pour les notes sous la note fondamentale)
  • un moyen de définir des modèles de motifs pour les accords connus, avec un nom texte associé
  • un moyen de comparer des nombres de demi-tons à des motifs (= une comparaison de tableaux)
  • un moyen de transformer des intervalles de demi-tons en numéros de notes (par exemple 5 demi-tons = 4e note sur l'échelle) afin que vous puissiez renvoyer des choses comme A4

Si vous souhaitez renvoyer toutes les possibilités pour un ensemble de notes, vous pouvez renvoyer le résultat de votre routine, en utilisant chaque note de l'accord comme racine, tour à tour.

Je pense debout ici mais je pense que c'est comme ça que je procéderais.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...