| |
|
|
Ludger Resing | allô suis déjà longtemps sur qui cherche pour midi Programierung ,et suis eh bien sur euern Fil [...] gestoßen. malheureusement ist mon aktive Programierzeit déjà longtemps zurück ,et je ne sais pas plus so viel par-dessus (doit mich seulement wieder einarbeiten) Habe sous Profan 6.6 la fois quoi programiert. suis eh bien mais aussi zur Musik gekommen ,et voulais mir aussi quoi zum Keyboard apprendre écrivons (nen kleines Prog) je spiele keyboard ,et voudrais voyons comment net je spiele ,veux alors direct qui länge qui noten et Pausen anzeigenlassen.eh bien habe je avec Thru quelque chose experimentiert et klappt déjà super.mais comment peux je qui Bits de readmidi dans dans Noten (werte )transformer.ou bien Sebastian la hâte du quelque chose comme déjà geschrieben. j'ai déjà ne halbe nuit rumgegugelt et viel trop viele Progs installiert , mais suis je alles pas avec klargekommen Salut Ludger |
|
|
| |
|
|
|
Sebastian Sprenger | allô Ludger,
Ludger Resing
mais comment peux je qui Bits de readmidi dans dans Noten (werte )transformer.
si du données de deinem Keyboard einlesen veux, brauchst du zunächst fois le Bits 4-7. qui stehen pour qui MIDI-nouvelle, qui eingegangen ist, z.B. NoteOff ($80), NoteOn ($90), ProgramChange ($C0) etc.
qui prochain Bits sommes nouvelle-dépendant. chez einem NoteOn/-Off stehen qui Bits 8-14 pour qui Note (60=mittleres C, 62=D, 64=E, 65=F, 67=G, 72=hohes C, 48=tiefes C).
je hab la fois un kleines Demo geschrieben, peut-être hilft es dir plus: [...] (Profan 7 wird nécessaire, mais si du eh déjà avec Thru experimentiert la hâte... )
Ludger Resing
ou bien Sebastian la hâte du quelque chose comme déjà geschrieben.
quoi meinst du avec quelque chose comme? un Programme zum Keyboard üben jedenfalls déjà, oui. Genauer dit zum Nachspielen de MIDI-Fichiers: [...] Salut, Sebastian |
|
|
| Profan² 7.0e, XProfan 9, 11.2a, FreeProfan32 Windows Vista Home Premium 32-Bit, 2.8 Ghz, 4 GB RAM Windows Me, 1.8 Ghz, 256 MB RAM | 11.07.2008 ▲ |
|
|
|
|
Ludger Resing | allô Sebastian seulement la fois besten Dank pour qui schnelle Antwort Gibt es irgendwo ne liste de den Bits et en Midi Funktion? je suis avant ca 3 Jahren angefangen Keyboard trop apprendre .Klappt aussi eigentlich droite bien, sauf ,qui je toujours aus dem la mesure viens.alors voudrais je mir un Programme écrivons, welches direckt qui Noten (et en länge zum Tackt) anzeigt .avec dem Mitzählen bekomme je nähmlich pas hin . Vieleicht encore un Tipp trop deinem Piano Lernspiel :Vileicht kanst du sur qui bouton qui gedrückt wird ,aussi den Finger qui benutzt volonté soll Montrer laisser. je hatte bisher encore aucun devoir trouvé,quoi je wohl Programieren pourrait, jusqu'à je sur cet Problem stieß et chez Google rien passendes fand. j'ai sous Profan 6.6 autrefois WinAfuGame programiert.(une Amateurfunk Simulation) Kusiert aussi encore im Netz ,là mais ne...aucune großes intérêt aufkam habe je qui entwicklung dessen eingestellt Salut Ludger |
|
|
| |
|
|
|
Sebastian Sprenger | allô Ludger, chez Wikipedia gibt es quelques Listen, wohin alles Wichtige abgedeckt ist: [...] si du près de den Notenwerten mais seulement qui Longueur brauchst, ensuite brauchst du qui Listen eigentlich pas - j'ai alle Timing-Sachen toujours à &GetTickCount gemessen. Im Prinzip musst du avec cela seulement qui Zeit messen, qui entre einem NoteOn et dem zugehörigen NoteOff vergeht.
si du quand même autre MIDI-Messages empfangen veux, musst du à den Anfang votre Programms absolument KompilierenMarqueSéparationécrivons, weil ReadMidiIn sonst seulement NoteOn & -Off zurückgibt (J'ai eu autrefois so programmiert...). Salut, Sebastian |
|
|
| Profan² 7.0e, XProfan 9, 11.2a, FreeProfan32 Windows Vista Home Premium 32-Bit, 2.8 Ghz, 4 GB RAM Windows Me, 1.8 Ghz, 256 MB RAM | 12.07.2008 ▲ |
|
|
|
|
Ludger Resing | allô Sebastian Hab eh bien déjà ne weile avec deinem demo rum experimentiert . [...] sais mais encore pas oui c'est ca comment je inerhalb qui gedrückten Keyboardtaste abfragen peux,si vous déjà losgelassen wurde. KompilierenMarqueSéparation
whilenot (%umessage=16) or (%scankey=27) Bis Alt-F4 oder ESC
readmidiin MIDI-Nachricht lesen
a&=&(0)
if a& >= 0 Gibt es eine?
Ja, Ist es ein NoteOff oder NoteOn? (Man beachte, dass
das 4. Bit in dieser If-Abfrage ausmaskiert ist und daher
beide Nachrichten gleichzeitig abgefragt werden :))
if (a& & $E0) = $80
Ja, Notenwert und Lautstärke berechnen
note% = (a& >> 8) & 127
vel% = (a& >> 16) & 127
Bei NoteOff gibts allerdings keine Lautstärke
casenot a& & $10: vel% = 0
Log
LOCATE 8,2
print "Die Taste",note$[note%],"(";note%;") wurde",
if vel%
print" gedrückt "
while ??????bis taste losgelassen wird
balken(9,&loop) , grafische darstellung der notenlänge also ein balken wird gemalt
schlafe (10) ,nur um die geschwindigkeit zu verringern
endwhile
else
print "losgelassen."
endif
endif
endif
endwhile
Vieleicht peux on cela aussi dans deinem Piano Trainer einbauen Salut Ludger |
|
|
| |
|
|
|
Sebastian Sprenger | allô Ludger, cela sollte qui tandis que-Boucle korrekt ergänzen (Nachtrag um 21:32: geändert et getestet!): KompilierenMarqueSéparationSalut, Sebastian |
|
|
| Profan² 7.0e, XProfan 9, 11.2a, FreeProfan32 Windows Vista Home Premium 32-Bit, 2.8 Ghz, 4 GB RAM Windows Me, 1.8 Ghz, 256 MB RAM | 19.08.2008 ▲ |
|
|
|
|
Ludger Resing | allô Sebastian
je ne sais pas, si Profan trop lente pour cet devoir ist, ou bien je seulement den falschen Weg vais, mais je bekomme es so encore pas hin. je suis überzeugt en ,qui du aussi encore autre Sachen trop 1faire la hâte, mais si du Zeit la hâte exposition la fois sur meinen Voir le texte source il funktioniert zwar Ansatzweise , mais trop träge.Mir ist cet Program très important , doch habe je im netz encore rien ähnliches trouvé KompilierenMarqueSéparation $I Interface.inc
declare a$,a&,note%,vel%,note$[127],laenge&,wonote%
windowstyle 31
Window 1,1-1100,800
SetTrueColor 0
Proc Notenbezeichnung
Array mit Notenbezeichnungen
a$="C-C#D-D#E-F-F#G-G#A-A#H-"
whileloop 0,127
note$[&loop]=mid$(a$,(&loop mod 12)*2+1,2);str$(&loop12)
endwhile
endproc
Proc Schlafe
Parameters N&
Declare Ende%
SetTimer N&
Clear Ende%
WhileNot Ende%
WaitInput
Case %wmTimer:Ende% = 1
EndWhile
KillTimer
EndProc
Proc Notenlinien
parameters zz% zz=zeile
declare z%
let z%=(zz%*120)-40 abstand der zeilen - 40 ist zum ausrichten
UsePen 0,1,@RGB(0,0,0)
line 50,(10+z%)-1000,(10+z%)
line 50,(20+z%)-1000,(20+z%)
line 50,(30+z%)-1000,(30+z%)
line 50,(40+z%)-1000,(40+z%)
line 50,(50+z%)-1000,(50+z%)
--------------------
line 50,(10+z%)-50,(50+z%) senkrechter Strich
line 1000,(10+z%)-1000,(50+z%) Senkrechter hinterer Strich
endproc
proc posnote
parameters eing$
if left$(eing$,1)="C"
wonote%=7
elseif left$(eing$,1)="D"
wonote%=6
elseif left$(eing$,1)="E"
wonote%=5
elseif left$(eing$,1)="F"
wonote%=4
elseif left$(eing$,1)="G"
wonote%=3
elseif left$(eing$,1)="A"
wonote%=2
elseif left$(eing$,1)="H"
wonote%=1
endif
let wonote%=wonote%-(((val(mid$(eing$,3,1)))-3)*7)+15 rem -3 ist die Oktave/*7 =sieben töne höher /+15 nur zum ausrichten
endproc
Proc balken
Parameters Wert%, dauer&
declare w%
let w%=wert%*5
UsePen 0,2,@RGB(31,0,0)
UseBrush 1,@RGB(0,0,0)
Ellipse (70+dauer&),(62+w%) - (83+dauer&),(70+w%)
endproc
notenlinien(1)
notenlinien(2)
openmidiin 0 mein USB Midieingang
openmidiout 1 mein Midiausgang
laenge&=0
wonote%=0
Notenbezeichnung
whilenot (%umessage=16) or (%scankey=27) Bis Alt-F4 oder ESC
readmidiin MIDI-Nachricht lesen
a&=&(0)
if a& >= 0 Gibt es eine?
Ja, Ist es ein NoteOff oder NoteOn? (Man beachte, dass
das 4. Bit in dieser If-Abfrage ausmaskiert ist und daher
beide Nachrichten gleichzeitig abgefragt werden :))
if (a& & $E0) = $80
Ja, Notenwert und Lautstärke berechnen
note% = (a& >> 8) & 127
vel% = (a& >> 16) & 127
Bei NoteOff gibts allerdings keine Lautstärke
casenot a& & $10: vel% = 0
Log
LOCATE 18,5
print "Die Taste",note$[note%],"(";note%;") wurde",
if vel%
posnote(note$[note%])
playmidiout a& & $7F7F90
print " gedrückt "
while readmidiin() & $7F0060
inc laenge&
balken(wonote%,laenge&)
chlafe (1)
endwhile
else
print "losgelassen."
endif
endif
ass=s1>endif
endwhile
closemidiin
closemidiout
Salut Lutz |
|
|
| |
|
|
|
Frank Abbing | ici nochmal alle nécessaire Fichiers dans einer Zip. peux cela la fois quelqu'un avec Keyboard testen? |
|
|
| |
|
|
|
Sebastian Sprenger | je vois seulement, dass es hakt, si plusieurs Tasten gleichzeitig gedrückt sommes (bzw. une neue bouton gedrückt wird, bevor qui vieille losgelassen wird), ansonsten fonctionne alles flüssig.
Salut, Sebastian |
|
|
| Profan² 7.0e, XProfan 9, 11.2a, FreeProfan32 Windows Vista Home Premium 32-Bit, 2.8 Ghz, 4 GB RAM Windows Me, 1.8 Ghz, 256 MB RAM | 21.08.2008 ▲ |
|
|
|