Daniele Varrazzo wrote: > On 2014-09-23 13:53, Giuseppe Amato wrote: >> Il giorno 23 settembre 2014 14:41, Daniele Varrazzo >> <p...@develer.com> ha >> scritto: > >>> Per curiosita', avevo anche io provato a trasporre gli accordi [1] >>> in quel >>> programmino di cui parlavo qualche giorno fa. Non ho il problema >>> della >>> spaziatura perche' gli accordi non li definisco per posizione ma >>> sono >>> inseriti nel testo [C]cosi'. Ma il risultato non e' corretto perche' >>> non >>> gestisce le note enarmoniche (scrivo C#, ma a volte dovrebbe essere >>> Db, a >>> seconda della chiave della canzone). Tu sai come si fa? >>> >> >> Avevo visto :) . Bisognerebbe appunto conoscere la chiave della >> canzone, ma >> con i soli accordi la vedo dura. > > E se la conosci? (ad es. direi "--xpose C -3" per dire al mio > programma che la canzone e' in Do e la voglio tre semitoni piu' bassa) > C'e' un algoritmo? > > -- Daniele
In questa libreria: http://code.google.com/p/mingus/wiki/mingusIndex sono presenti molte funzionalità utili a questo scopo. Ad occhio sapendo la tonalità farei prima la conversione in grado della scala e poi la trasposizione... sono metodi già presenti in mingus. Più o meno una cosa di questo tipo: import mingus.core.progressions as progressions import mingus.core.chords as chords mychords = ['C', 'E', 'D'] mychords_as_notes = [chords.from_shorthand(c) for c in mychords] myprog = [g[0] for g in progressions.determine(mychords_as_notes, "C", True)] new_chords = progressions.to_chords(myprog, "A") print mychords print myprog print new_chords print [chords.determine(c) for c in new_chords] Chiaramente possono andare storte molte cose :) -- Riccardo Lemmi _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python