Domanda

Mi rendo conto che ci sono alcune domande fieristiche qui già per quanto riguarda gli algoritmi di rilevamento degli accordi; Tuttavia, la maggior parte di questi sembrano relazionarsi di più per interpretare le canzoni in serie di accordi o trascrizione dell'accordo. Il mio problema dovrebbe essere molto più semplice perché sono interessato solo a registrare un singolo strum di un accordo di chitarra e quindi analizzarlo per restituire l'accordo che è stato giocato. E, se questo dimostra sia troppo difficile, sarebbe in qualche modo adeguato semplicemente essere in grado di dire se un particolare accordo viene giocato correttamente o meno, ad es. Un utente è presentato con un accordo per tentare di giocare e, dopo lo stronging, l'applicazione dirà loro se hanno giocato o meno l'accordo corretto (qualcosa di un gioco di memoria). Penserei che questa seconda opzione sarebbe più facile poiché l'applicazione sapresse già quale accordo aspettarsi.

Sto già utilizzando un FFT e lo spettro dei prodotti armonico per un sintonizzatore di chitarra come parte della stessa applicazione e vorrebbe davvero un consiglio su come potessi analizzare l'uscita dello spettro di frequenza da parte del FFT per riconoscere gli accordi della chitarra. Sono anche aperto a qualsiasi altro suggerimento sulla questione e apprezzerebbe davvero qualsiasi aiuto che possa ottenere.

Grazie

È stato utile?

Soluzione 2

Per chiunque si chieda come fare questo genere di cose, guarda in profili di spettro del prodotto armonico e profili di classe di lancio / vettori di Chroma.Una combinazione di queste è la chiave.Inoltre, utilizzando i termini di ricerca "stima multipla F0" al contrario di "Rilevamento di corda" garantirà risultati migliori :)

Altri suggerimenti

Potresti provare le impronte digitali gli accordi più comuni, quindi cercare lo spettro normalizzato corrispondente più vicino all'interno del set di impronte digitali.per esempio.Trattalo come un problema di corrispondenza del modello nel dominio della frequenza.

Anche se è troppo tardi per rispondere, spero che questo ti aiuterà ..

Se si sta programmando per chitarra elettronica o MIDI o qualsiasi altro strumento MIDI, c'è un pacchetto Java molto efficace JFUGUE per questi robas, come rilevare le note degli accordi, ecc ... Per qualsiasi strumento e c'è molta più funzionalità in questopacchetto. Ti suggerisco di dare un'occhiata a jfugue.org

Io stesso ho trovato difficile per identificare un intero accordo usando FFT.Ma per quanto riguarda il mio esperimento, sono stato in grado di creare un identificatore di corda della chitarra usando FFT come algoritmo di base per ottenere frequenze di un singolo suono sonoro.Il problema dei sintonizzatori FFT è che rilevano solo la nota di root di un suono.Mentre il mio esperimento ha dimostrato di poter prendere tutte le note delle corde giocate e utilizzare le note identificate per raccontare ciò che è stato giocato accordo.Per ora, la mia ricerca era ancora limitata a rilevare importanti accordi per chitarra e alcuni accordi minori come EM e sono per ulteriori studi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top