This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.


Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
The Tranposer (Betatester gesucht!)
Fetzi_die_Tretmine Offline
Godfather of Music
********

Beiträge: 1,134
Themen: 84
Registriert seit: Mar 2006
#16
 
Brauchst dich doch nicht rechtfertigen ^^

Sind nur Vorschläge!
--
[Bild: dance2.gif] GitarrenWorkshops [Bild: dance2.gif]
18-02-2008, 20:24
Suchen Zitieren
Mjchael Offline
Godfather of Music
********

Beiträge: 2,662
Themen: 116
Registriert seit: Aug 2003
FT 2017 in KastellaunFT 2012 auf Burg WaldeckFT 2010 in WolfshausenFT 2009 in WolfshausenFT 2005 in Seitenstetten - ATFT 2004 in Braunschweig
#17
 
Komme gerade (wegen Gateprotect) nicht auf deine Seite.

Für deine Analyse:

Verwende ein Array:

Mal hier als Pseudocode als Mitschmatsch aus Java, Actionscript, C und PHP;

var Quintenzirkel = new Array{\"Fb\", \"Cb\", \"Gb\", \"Db\", \"Ab\", \"Eb\", \"Bb\"};
Quintenzirkel.push(\"F\", \"C\", \"G\", \"D\", \"A\", \"E\", \"B\");
Quintenzirkel.push(\"F#\", \"C#\", \"G#\", \"D#\", \"A#\", \"E#\", \"B#\");

Wie du die einzelnen Akkorde und Basstöne von den Intervallen isolierst weiß ich zwar nicht, aber ich gehe einfach mal davon aus, dass es eine String-Analyse ist.

Wenn du aber eine String-Analyse hast, dann sollte das Austauschen von H und B langfristig gesehen auch zu bewältigen sein.

Vermutlich würde ich mit Objekten arbeiten:

Akkordliste[i] = new Akkord(Grundton, Intervalle, Basston ){

...
var Ausgabe = \"\";
Ausgabe += Grundton;
Ausgabe += Intervalle;
Ausgabe += Basston;
return Ausgabe;
...

}

Und wenn ein Akkord unklar ist, dann könnte man ja eine Anfrage starten, die zur Eingabe des Akkordes auffordert:

Der Akkord \"Hmaj5b7\" ist mir unbekannt, wie soll ich diesen interpretieren.

Mit dem oben genannten Array lässt sich die Tonart recht einfach ermitteln, und auch bei Fehlern ist dieses Array sehr tolerant.
Man kann sogar mit einigen Tests die wahrscheinlichste Tonart herausfinden. (Wenn man die Enharmonischen Verwechslungen zuerst einmal gleich setzt, und dann das wahrscheinlichste durchgeht. )

Dieses war mein Abschlussprojekt zum Fachinformatiker. Jedoch hatte ich mich auf xml dtd xslt und die PHP-Verarbeitung mit Sablotron begrenzt, (obwohl das Projekt für die Prüfung viel zu groß war. Es hat aber trotzdem noch für eine gute 3 gereicht.)

Man kann nach ein paar Standard-Trennzeichen suchen...

( und )
[ und ]
<und>
<sup> und </sup>

Wenn die Standrard-Trenner nicht da sind, dann kann man die Zeilen durchgehen. Eine über die andere Zeile bzw. Wieviele Elemente lassen sich als Akkorde umwandeln. > 50% warscheinlich Akkordzeile.



Ich kenne jetzt nicht deinen Ansatz, aber ich hoffe du kannst etwas damit anfangen. Wenn nicht, vielleicht bringt es dich auf eine neue Idee.


Ich habe den Ansatz mit dem Quintenzirkel-Array schon in ähnlicher Weise in kleineren Java-Projekten, VC++-Projekten und Flash eingesetzt.

Und weiterhin viel Erfolg beim Gelingen deines Projektes.

Gruß Mjchael





--
Mein Gitarrenkurs bei den Wikibooks und die besten Lern-Threads
18-02-2008, 21:55
Homepage Suchen Zitieren
WS64 Offline
Klampfer
***

Beiträge: 142
Themen: 30
Registriert seit: Jun 2007
#18
 
Danke Mjchael für all die Ausführungen.

Was ich bisher mache:
Ich habe drei Arrays
a) die Noten der C-Dur Tonleiter
b) BLANK, #, b
c) alle möglichen Akkorde, zB BLANK, m, m7, maj7, 7-5

Alle Möglichen Kombinationen von abc (in dieser Reihenfolge) speicher ich mir als Whitelist ab.

Die Usereingaben speicher ich zeilenweise ab, und in diesen Zeilen vergleiche ich alle \"Wörter\" auf Vorhandensein in der Whitelist.
Damit kann mir Hmaj5b7 nicht begegnen, es sei denn ich speicher maj5b7 in c)

Nach einem mehr oder weniger komplizierten Verfahren analysier ich dann die Zeilen ob die mir wie Akkord oder Textzeilen vorkommen. Wenn Akkordzeilen (und nur dann! Bzw, später gehe ich nochmal drüber und interpretiere alles in eckigen Klammern als Akkord) dann markiere ich mir alle Whitelisttreffer in dieser Zeile.

Damit habe ich (auch ohne Quintenzirkel) alle vorkommenden Akkorde und kann diese +/- n Tonarten transponieren.
Soweit klappt das alles, und ist Deinem Ansatz auch recht ähnlich (halt ohne Quintenzirkel)

Die Akkorde müsste ich jetzt gewichten und daraus eine Haupttonart basteln (ich würde enharmonische Verwechslungen und parallele Dur/Molltonarten erstmal zusammenfassen und dann hoffen, die häuftigsten 3 Akkorde genau einer Tonart als TSD zuorden zu können...
Anschliessend zählen ob mehr DUr oder Moll, daraus entscheiden ob C-Dur oder A-Moll, und damit weiss ich auch die Vorzeichen.

DANN könnte ich dem User anbieten nicht nur plus 3 Tonarten zu transponieren sondern auch \"von Am nach Cm\" zu transponieren.


Das mit dem H und B hat ganz andere Probleme. Das H selber (und auch das Bb) sind dabei egal, aber das B ist und bleibt zweideutig.
Wenn das B und weder Bb noch H vorkommen muss ich schon den ganzen Rest analysieren auf vorkommen von zB Eb und E um zu entscheiden, was daieses B ist.. Ich denke die bisherige Lösung (Checkbox \"Use H and B instead of B and Bb.\") ist ziemlich passend.

Probleme machen mir jetzt noch Kleinbuchstaben (heisst g nun G-Moll oder schreibt hier jemand alle Akkorde einfach aus Faulheit klein?) und die Gewichtung ob eine Zeile eine Akkordzeile ist oder nicht.
PAradebeispiel ist die Zeile
A B C D E F G H I J K...
Sind das nun Akkorde oder nicht?

Egal, ich denke bis jetzt klappt das ganz gut.

Jetzt muss ich noch sehen wie ich die Akkorde Griffbildren zuweise (einfach) und diese dann auch anzeige (nicht mehr so einfach, obwohl ich da durchaus Erfahrung habe, siehe http://chordfind.com oder http://ws64.com/guitarPHP )
--
http://Chordfind.com - http://EarlyWolf.com - http://youtube.com/ws64
18-02-2008, 23:23
Homepage Suchen Zitieren
Eifeljanes Offline
Godfather of Music
********

Beiträge: 2,630
Themen: 108
Registriert seit: Dec 2003
FT 2023 in BrakelFT 2022 in SonsbeckFT 2021 in BrakelFT 2019 in BliensbachFT 2018 in SonsbeckFT 2017 in KastellaunFT 2016 in HohegeißFT 2015 in der AhrhütteFT 2014 in BliensbachFT 2013 in HattingenFT 2012 auf Burg WaldeckFT 2011 in Achenkirch - ATFT 2010 in WolfshausenFT 2009 in WolfshausenFT  2008  in Mannenbach - CHFT 2007 in BergneustadtFT 2006 in NeuerburgFT 2005 in Seitenstetten - ATFT 2004 in Braunschweig
#19
 
hi ws64: habs gerade mal mit zwei selbstransponierten capo-songs probiert - und zwar in der eifeljanes-schreibweise*
[song] (F) Ehtrtw n ernsp woeeon in sy (A) diirwetp. (F#) Eryon ei wnwet how (E) eost.
(B) Woeh how stehylnetd (A) wnndwoch. (F#) Htw n wnlkong cliehtw- (E) lont.
(B) Nnd htrt cistw eht bowhipw (A) dnughetr. (F#) In eht iehtr (E) wodt.
(B) Nnd wht liikw n eroflt (A) jtnliuw. (F#) Whtw bttn nn iuecnwe nll htr (E) loft.
[/song]

scheint zu funzen, weiter so - ich kann so was seeeeehr gut brauchen! Respekt

* text aus ©-gründen verfremdet
--
\"Ein Eifler Junge macht erst mit 6 Monaten die Augen auf, aber dann sieht er alles.\"
(Jaques Berndorf)


Justin Bieber: "God sent me to sing." Keith Richards: "No, I did not."
19-02-2008, 19:03
Homepage Suchen Zitieren
WS64 Offline
Klampfer
***

Beiträge: 142
Themen: 30
Registriert seit: Jun 2007
#20
 
So, es gibt ein großes Update.

Es werden jetzt Akkorde grafisch dargestellt, bisher für Gitarre und Ukulele in C-Stimmung (da kommen aber noch mehr).

Bei den Gitarrenakkorden bin ich ziemlich sicher das sie stimmen, da ich diese direkt aus meinen http://Chordfind.com übernehmen konnte.
Bei der Ukulele ging das nicht da dort die Akkorde berechnet werden und nicht einfach so als File vorlagen, daher musste ich hier einmal die Datenbank per Hand füttern, und da sind mir ziemlich sicher Fehler passiert, bitte melden bei falschen Akkorden!

Was noch fehlt sind Akkorde in Kleinbuchstaben (da baue ich noch einen Button ein ala \"Akkorde in Kleinbuchstaben als Moll betrachten\"Wink. Bisher werden die zwar transponiert (das kann ich ja unabhängig davon was genau das eigentlich ist), aber eben nicht angezeigt.

Akkorde der Form Am7-5 werde noch nicht erkannt.

In einen anderen Forum wurden die Akkorde E7/4 und Eb7/-5 erwähnt, die sind gar nicht im System, da fehlt mir noch eine grundsätzliche Idee (bisher brauche ich den / für Sachen wie C/G, wenn da plötzlich eine Zahl hinter kommt muss ich mir was neues überlegen, und da mir die Akkorde in der From noch nie begenet sind schieb ich das erstmal zurück).
--
http://Chordfind.com - http://EarlyWolf.com - http://youtube.com/ws64
24-02-2008, 21:53
Homepage Suchen Zitieren
mazza24 Offline
Schlagerfuzzi

Beiträge: 1
Themen: 0
Registriert seit: Sep 2008
#21
 
Hallo WS64,
bin neu im Forum, habe leider nicht geschafft dein Transposer in meiner Linksamm zu speichern, vielleicht kannst Du ihn noch einmal posten.

Danke
23-09-2008, 12:07
Suchen Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste

Kontakt | Impressum | gitarrenboard.de | Nach oben | | Archiv-Modus | RSS-Synchronisation