Guten Mittag, hat sowas jemand zufällig in der Schublade liegen? Ich bräuchte einen Lilypond-Parser, der mir dann mehrstimmig mehrere DDS anwirft, um hübsche Melodien abzuspielen und das muss natürlich auf einem µC laufen - also nicht unbedingt AVR, aber Cortex M3 schon ;-) Ah sorry, heute ist ja noch garnicht Freitag xD
Und MIDI magst du nicht?
Joe F. schrieb: > Und MIDI magst du nicht? Gute Frage, und du hast absolut recht ... Ich hab mir mftext von abcmidi angeschaut und das Programm ist äußerst schlank und dumpt quasi nur das Midi auf die Console. Verwendet (so gut wie) keine dynamische Speicherverwaltung und lässt sich ohne große Kunstkniffe direkt auf dem STM32L1 kompilieren. Das ganze File-I/O lässt sich direkt aus einem Array bedienen, wenn man der Library eine 4-zeilige Funktion übergibt, die jeweils ein Zeichen linear hintereinander aus dem Array zurück liefert ... mftext legt netterweise auch gleich Arrays an, die man dann nur abspielen muss (Timestamp, Note-On, Note-Off, Pitch, ...) - genau das, was ich gesucht hab :) Dachte erst, ein Lilypond-Parser wäre einfacher, aber das ist es nicht wirklich, weil man das Timing über die Notenlängen rekonstruieren muss ... Midi ist da viel viel simpler.
Mampf F. schrieb: > Midi ist da viel viel simpler. So siehts aus. Und daher gibt's dann auch zu jedem "Greatest Hit" irgendwo ein MIDI File, mit dem man dann ganz prima die Fahrstühle und Hotellobbys der Welt akustisch verseuchen kann. Besonders beliebt so um die Weihnachtszeit.
Hmm, könnte mir jemand bitte erklären, was der obere Block der Ausgabe zu heißen hat? Wofür braucht man dieses microseconds-per-MIDI-quarter-note-Gedöhns? :)
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
Reicht nicht der untere Teil? Da steht doch alles, was man wissen muss, oder etwa nicht?
Midi war der richtige Weg! Danke Joe :) https://www.youtube.com/watch?v=Z4Sc5Gkq_4Y&feature=youtu.be
Mampf F. schrieb: > Wofür braucht man dieses microseconds-per-MIDI-quarter-note-Gedöhns? Damit du weißt, wie schnell du es abspielen musst. > division=480 Also 480 Ticks pro quarter-note. > microseconds-per-MIDI-quarter-note=416666 Damit kannst du dann die Länge eines Ticks ausrechnen. ("quarter-note" entspricht nicht notwendigerweise einer 'echten' Viertelnote; es ist hier nur eine Zeiteinheit.) > Time=719 ... Alle Zeitstempel sind in Ticks. > Time=125280 Tempo, microseconds-per-MIDI-quarter-note=967741 Und dass sich das Tempo zwischendurch ändert, macht das Ganze natürlich besonders interessant. Und auf einem µC, der die MIDI-Kommandos in Echtzeit empfängt, brauchst du das alles nicht ...
Clemens L. schrieb: > Damit kannst du dann die Länge eines Ticks ausrechnen. > > ("quarter-note" entspricht nicht notwendigerweise einer 'echten' > Viertelnote; es ist hier nur eine Zeiteinheit.) > >> Time=719 ... > > Alle Zeitstempel sind in Ticks. > >> Time=125280 Tempo, microseconds-per-MIDI-quarter-note=967741 > > Und dass sich das Tempo zwischendurch ändert, macht das Ganze natürlich > besonders interessant. Oh! Ah krass ... Hmmhmm ... Ob ich mir soetwas antue ... :) Clemens L. schrieb: > Und auf einem µC, der die MIDI-Kommandos in Echtzeit empfängt, brauchst > du das alles nicht ... Das tut er nicht - soll eher eine Midi-Melodie als Alarm-Sound abspielen. Ist ein Armbanduhr-Projekt :) Aber jetzt funktionierts so, wie es soll ... :)
Gast
#5129694
Elm Chan's Spieldose lief 6Stimmig Polyphone mit DDS. Im Projekt sind auch ein, zwei Phyton-Scripte für die Melodie. läuft aufm Tiny45. StromTuner
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.