Domanda:
Ricerca di algoritmi di identificazione degli accordi basati su lettere e letteratura correlata
Von Huffman
2013-10-18 20:18:54 UTC
view on stackexchange narkive permalink

Sto cercando algoritmi di riconoscimento degli accordi che assegnino il nome di un accordo a un gruppo di note e la relativa letteratura.

A volte noto come identificazione degli accordi inversi, in cui si forniscono le note all'algoritmo e produrrà un elenco di nomi possibili.

Un esempio: se diamo all'algoritmo le note C, E, G, l'algoritmo dovrebbe nominare quel gruppo di note come "Triade di do maggiore in posizione fondamentale ".

Stai cercando qualcosa di più delle risposte che hai ottenuto su [questa domanda SO] (http://stackoverflow.com/q/17955486/2600278)?
@BenMiller Sì, lo sono. Sono particolarmente interessato alla metodologia e / o alla letteratura e / o alla ricerca sull'argomento. Mi interessa anche l'input dei musicologi, in contrasto con l'input degli ingegneri del software che SO fornisce.
Inoltre, dai un'occhiata a . Questi post forniscono soluzioni praticabili.
Cinque risposte:
kurto
2013-10-19 01:59:36 UTC
view on stackexchange narkive permalink

Oltre alle risposte già fornite, dovresti essere consapevole che l'uso dei nomi degli accordi generati dall'algoritmo può essere "musicalmente impreciso" nel contesto di un'analisi armonica.

A seconda del contesto, tu può avere per esempio BDF ("B dim") nel ruolo di GDBF ("G Major 7"). Se si risolve in un do maggiore, ti consigliamo di vedere BDF come un 7 dominante senza radici, non come una triade diminuita di Si.

I voicing senza radice sono solo un esempio: un software avrà difficoltà con queste piccole cose carine "implicite / ambigue" che fanno della musica un'arte :)

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

Forse puoi contattare lo sviluppatore di "Chords" ... l'app per Android che è quasi, ... quasi ... tutto ciò di cui chiunque abbia bisogno in termini di denominazione degli accordi, inversioni, posizioni sulla tastiera, ecc.

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

Qualche tempo fa ho lavorato su un modulo Python che esegue attività simili.

Dai un'occhiata al flag –triadType .

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

Lilypond è open source e ha la capacità di dare nomi di accordi dai toni. Quindi deve essere da qualche parte nel codice di base.

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

Il primo problema sarebbe decidere quale sia la nota fondamentale, altrimenti, come dice kurto, otterrai diverse risposte per un insieme di lettere della nota.

L'ordine delle lettere sarebbe importante? Forse potresti adottare una regola secondo cui la prima lettera è sempre la radice?

Supponendo che tu lo affronti in qualche modo (o semplicemente accetti più risposte), potresti ...

Assegna un numero a ogni lettera (presumibilmente stai accettando anche diesis e bemolle?) e usalo per calcolare l'intervallo tra le note, in semitoni, ad esempio quello che chiamiamo 4a = da A a D è in realtà 5 semitoni.

È quindi possibile utilizzare gli intervalli per abbinare una serie di schemi di accordi noti alla nota fondamentale:

CEG come nel tuo esempio, in semitoni = 1-4-7 = [nota fondamentale] maggiore = il modello relativo per una triade maggiore.

Do Eb G = 1-3-7 = pattern per accordo minore.

1-4-7-10 = Cmaj 7

Ogni volta che stai solo riportando la nota fondamentale con un commento su come sono disposte le altre note. Il limite sarebbe il punto in cui viene percepito un accordo ma manca la nota fondamentale, ma potrebbe comunque essere interpretato come un altro accordo.

Più modelli di pattern identifichi, meglio diventerà ma solo tu è necessario definirli rispetto a una nota fondamentale in numeri di semitono.

Se qualcosa non si adatta a nessuno dei pattern (forse non ne hai impostato uno per l'accordo A4), scrivi semplicemente il ritorno della nota fondamentale con extra numero di nota (non numero di semitono).

Quindi è necessario

  • un modo per convertire tutte le lettere (diesis e bemolle) in numeri = una tabella di ricerca / array associativo
  • un modo per identificare la nota fondamentale
  • un modo per identificare gli intervalli di tutte le lettere dalla nota fondamentale = trasformare in numeri e sottrarre il numero della nota fondamentale. Modulo di 13 per mantenerlo entro 1 ottava (o no se vuoi essere più avanzato e gestire intervalli negativi, per le note sotto la nota fondamentale)
  • un modo per definire modelli di pattern per accordi noti, con nome testo associato
  • un modo per confrontare i numeri di semitoni con i modelli (= un confronto di array)
  • un modo per trasformare gli intervalli di semitono in numeri di nota (ad esempio 5 semitoni = 4a nota sulla scala) in modo da poter restituire cose come A4

Se si desidera restituire tutte le possibilità per un insieme di note, è possibile restituire il risultato per la routine, utilizzando a turno ciascuna nota dell'accordo come fondamentale.

Sto pensando qui, ma penso che sia così che lo farei.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...