Domanda:
Generazione di triadi da un numero di nota MIDI
Grumpy-Mike
2020-06-08 11:00:06 UTC
view on stackexchange narkive permalink

Ho una singola nota da uno strumento MIDI (controller del vento) e vorrei generare una triade maggiore dal numero di nota. A quanto ho capito, la quinta viene generata aggiungendo sempre sette al numero di nota MIDI e la terza viene generata aggiungendo quattro. Tuttavia, non penso che funzioni così perché l'aggiunta di un numero fisso risulterà in una triade maggiore o minore a seconda della nota iniziale. Esiste un modo per generare tutte le triadi maggiori (o minori) per una data nota fondamentale?

Nota che non sono un musicista, il che mi impedisce di capire come farlo. Se necessario, posso implementare una tabella di ricerca per elaborare questa nota centrale.

Da una data nota, il suo P5 (quinta) è sempre 7 semitoni più alto, il suo M3 (terza maggiore) è sempre 4 semitoni più alto e il suo m3 (terza minore) è sempre 3 semitoni più alto.
Grazie per questo. Mi dispiace ma non credo di aver indicato correttamente le mie esigenze. Per aggiungere qualche ulteriore informazione. Il mio controller esce nella tonalità di do maggiore. Per trasporlo a qualsiasi tonalità aggiungo un numero costante alle note MIDI. Inoltre, quando sono in questa tonalità, voglio un interruttore per dare la possibilità di generare una triade minore o una triade maggiore insieme alla nota suonata. Pertanto credo di dover considerare la distanza della nota suonata rispetto alla nota fondamentale della tonalità in cui mi trovo. Per aggiungere contesto sto producendo strumenti per disabili facili da suonare.
@Grumpy-Mike Ho aggiunto il supporto per gli accordi su un controller del vento per un progetto personale. Non sto cercando di pubblicizzarlo, ma ci sono [alcuni accordi] (https://github.com/tomcombriat/TES_e-sax/blob/master/software/SAX/chord.h) che sono stati implementati (vedi fine questa vita). Tutto è relativo alla nota fondamentale (quella attualmente suonata). Nel caso in cui possa aiutare ...
Quattro risposte:
topo Reinstate Monica
2020-06-08 12:28:52 UTC
view on stackexchange narkive permalink

Da quanto ho capito, la quinta viene generata aggiungendo sempre sette al numero di nota MIDI e la terza viene generata aggiungendo quattro.

Corretto, anche più specificamente, la quinta perfetta viene generata aggiungendo sempre sette al numero di nota MIDI e la terza maggiore viene generata aggiungendo quattro.

Tuttavia , Non penso che funzioni così perché l'aggiunta di un numero fisso risulterà in una triade maggiore o minore a seconda della nota iniziale.

Non preoccuparti, funziona così - iniziando con una nota fondamentale e aggiungendo intervalli con un numero fisso di semitoni , che è ciò che rappresentano i numeri di nota MIDI, risulterà sempre nello stesso accordo.

Quando parli di "maggiore o minore a seconda della nota iniziale", forse stai pensando a intervalli tra i gradi della scala diatonica, come "una terza", che può avere dimensioni diverse. Ad esempio, sulla scala maggiore, la terza tra i gradi 1 e 3 è una terza maggiore e la terza tra 2 e 4 è una terza minore. Un altro modo di vedere questo è che la scala diatonica "salta" alcune note nella scala cromatica, motivo per cui ottieni diversi numeri di semitoni e perché le triadi basate su diversi gradi di una scala maggiore sono a volte maggiori, a volte minori.

Ma i numeri di nota MIDI non sono basati sui gradi della scala diatonica - sono puramente numeri di semitoni. La formula per ogni tipo di accordo in termini di numero di semitoni è sempre la stessa.

C'è un modo per generare tutte le triadi maggiori (o minori) per una data nota fondamentale?

Hai già la formula per generare le triadi principali. Per le triadi minori, aggiungi 3 per ottenere la terza minore e 7 per ottenere la quinta perfetta.

Non sono sicuro di quale sia il tuo caso d'uso per la generazione di tutti gli accordi maggiori o minori, ma tieni presente che una tonalità minore non utilizza sempre accordi minori e una tonalità maggiore non utilizza sempre accordi maggiori!

Per aggiungere ulteriori informazioni. Il mio controller esce nella tonalità di Do maggiore. Per trasporlo a qualsiasi tonalità aggiungo un numero costante alle note MIDI. Inoltre, quando sono in questa tonalità, voglio un interruttore per dare la possibilità di generare una triade minore o una triade maggiore insieme alla nota suonata. Pertanto credo di dover considerare la distanza della nota suonata rispetto alla nota fondamentale della tonalità in cui mi trovo.

Quindi tutto ciò che abbiamo detto finora su come generare accordi maggiori e minori è corretto, ma se ho capito bene, vuoi anche generare l'accordo "giusto" in base al grado della scala. Per fare ciò, dobbiamo fare alcune ipotesi su quali siano gli accordi "giusti", ma un punto di partenza comune nella musica occidentale è assumere gli accordi diatonici della scala.

Dici che sai che il tuo controller emette sempre nella tonalità di Do maggiore, quindi potresti risparmiarti un po 'di logica se risolvi gli accordi a quel punto, perché sai che la' nota fondamentale 'della scala è C - nota midi 60, che è, facilmente, anche un multiplo del numero di semitoni nell'ottava cromatica.

Supponiamo di utilizzare la scala maggiore, in modo da voler generare gli accordi diatonici della scala maggiore.

se (numero nota% 12) = 0, suoni un accordo maggiore.
if (numero nota% 12) = 2, suoni un accordo minore.
if ( nota numero% 12) = 4, suoni un accordo minore.
se (nota numero% 12) = 5, suoni un accordo maggiore.
se (nota numero% 12) = 7, suoni una maggiore accordo.
se (numero nota% 12) = 9, suoni un accordo minore.
se (numero nota% 12) = 11, suoni un d finito accordo (fondamentale, fondamentale + 3, fondamentale + 6)

Da quel punto, puoi eseguire la trasposizione generale per spostare l'output sulla chiave giusta.

Ovviamente questo lascia ancora alcune domande senza risposta. Avrai un modo separato in cui il musicista può indicare le tonalità minori, o dovrà solo impostare adeguatamente la trasposizione e suonare partendo da LA? E se un musicista suona una nota che non è nella scala diatonica, o vuole un accordo che non è nella serie diatonica di accordi? Non ci sono risposte "corrette" a queste domande: dovrai trovare il giusto equilibrio tra flessibilità e facilità d'uso.

MMazzon
2020-06-08 11:23:27 UTC
view on stackexchange narkive permalink

Se la nota iniziale è la fondamentale dell'accordo, aggiungi +4 (terza maggiore) e +7 (quinta perfetta) per generare un accordo maggiore in posizione fondamentale. Per esempio. 60 +4 +7 = 60 64 67 = DO MI SOL (DO maggiore)

Per generare una triade minore, +3 (terza minore) +7, ad es. 60 +3 +7 = 60 63 67 = Do Eb G (Do minore)

Se con "genera tutte le triadi maggiori / minori per una data nota" intendi generare altre inversioni dell'accordo, allora per esempio (prendendo sempre 60 = C4 come nota iniziale):

prima inversione = +4 +7 +12 = 64 67 72 = EGC (Do maggiore, prima inversione)

seconda inversione = +7 +12 +16 (12 + 4) = 67 72 76 = SOL (Do maggiore, seconda inversione)

ottava successiva = +12 (12 + 0) +16 (12 + 4) +19 (12 + 7) = 72 76 79 = CEG (Do maggiore, posizione fondamentale, ottava successiva)

Per le triadi minori, usa +3 invece di +4

Per le triadi minori ottave, sottrai 12, 24, ecc.

Per triadi aumentate: ROOT +4 +8

Per triadi diminuite: ROOT +3 +6

E così su ... è tutto abbastanza semplice e diretto, come una tastiera in cui ogni tasto è un numero diverso, con il Do centrale che è 60.

piiperi Reinstate Monica
2020-06-08 14:37:21 UTC
view on stackexchange narkive permalink

l'aggiunta di un numero fisso risulterà in una triade maggiore o minore a seconda della nota iniziale

Sbagliato I numeri di nota MIDI sono semitoni e aggiungendo un numero fisso di semitoni si ottiene sempre esattamente lo stesso tipo di accordo indipendentemente dalla nota iniziale.

Ma come viene interpretato l'accordo quando suonato in un contesto musicale reale può essere molto diverso. In una canzone nella tonalità di La minore, suonare un accordo di Fa maggiore crea un effetto completamente diverso rispetto a un Mi maggiore, anche se entrambi sono accordi maggiori con esattamente gli stessi intervalli in semitoni (cioè valori del numero di nota MIDI) rispetto alla fondamentale.

badjohn
2020-06-08 19:28:52 UTC
view on stackexchange narkive permalink

Sembra esserci un po 'di confusione su cosa intendi per "generare tutte le triadi maggiori (o minori)". Le inversioni sono state menzionate, quindi non lo ripeterò, ma potresti significare qualcos'altro.

Immagina di suonare una semplice forma di accordo su una chitarra e poi spostarla verso l'alto, tasto per tasto, con una sbarra o un capo. La fondamentale si sposterà di un semitono verso l'alto ogni volta e il numero di semitoni tra ogni nota dell'accordo rimarrà fisso. Se fosse iniziato come una triade maggiore, sarebbe rimasto così. Aggiungi 1 a tutte le tue note midi per ottenere questo effetto.

Ora suona un semplice accordo su un pianoforte, ad es. Do centrale e Mi e Sol sopra; questa è una triade importante. Ora spostati verso l'alto di una nota bianca e otterrai D F A. Due differenze rispetto alla chitarra sono che la fondamentale si è spostata verso l'alto di un tono e ora hai una triade minore. Sposta un'altra nota bianca e hai MI SOL SI; la radice è salita di nuovo di un tono e hai un'altra triade minore. Ora su F A C, la fondamentale è salita solo di un semitono e hai di nuovo una triade maggiore. Quando arrivi a B D F, avrai una triade diminuita. Ciò richiederà un pattern più complesso per i numeri MIDI. Se questo è quello che vuoi, aggiungerò qualche dettaglio in più.



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