| |
|
|
Ludger Resing | ¡Hola Bin ya largo en el búsqueda después de midi Programierung ,y bin nun en euern Hilo [...] gestoßen. Leider es mi aktive Programierzeit ya largo zurück ,y yo weiß no mehr así viel darüber (muß mich sólo otra vez einarbeiten) Posesiones bajo Profano 6.6 algo programiert. Bin nun aber auch a Musik gekommen ,y quería me auch qué para Keyboard aprender escribir (nen kleines Prog) Yo spiele keyboard ,y möchte Sehen como sauber Yo spiele ,voluntad also direkt el länge el noten y Pausen anzeigenlassen.Nun Yo con Thru algo experimentiert y klappt ya super.Aber como kann Yo el Bits de readmidi en en Noten (werte )umwandeln.Oder Sebastian hast du algo como ya geschrieben. Yo habe ya ne halbe nacht rumgegugelt y viel a viele Progs installiert , aber bin Yo alles no con klargekommen Saludo Ludger |
|
|
| |
|
|
|
Sebastian Sprenger | ¡Hola Ludger,
Ludger Resing
Aber como kann Yo el Bits de readmidi en en Noten (werte )umwandeln.
si du Daten de deinem Keyboard einlesen willst, necesidad du primero veces el Bits 4-7. El posición para el MIDI-Nachricht, el eingegangen es, z.B. NoteOff ($80), NoteOn ($90), ProgramChange ($C0) etc.
El nächsten Bits son nachricht-abhängig. En una NoteOn/-Off posición el Bits 8-14 para el Note (60=mittleres C, 62=D, 64=E, 65=F, 67=G, 72=hohes C, 48=tiefes C).
Yo veces una kleines Demo geschrieben, tal vez hilft lo dir más: [...] (Profano 7 se benötigt, pero si du eh ya con Thru experimentiert hast... )
Ludger Resing
Oder Sebastian hast du algo como ya geschrieben.
Was media du con algo como? Ein Programa para Keyboard üben jedenfalls ya, sí. Genauer dijo para Nachspielen de MIDI-Archivos: [...] Saludo, 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 | ¡Hola Sebastian Erst veces besten Dank para la respuesta rápida Gibt lo irgendwo ne Liste de los Bits y deren Midi Función? Yo bin antes ca 3 Jahren angefangen Keyboard a aprender .Klappt auch eigentlich bastante bien, außer ,Yo siempre de el Takt komme.Also möchte Yo una Programa escribir, welches direckt el Noten (y deren länge para Tackt) anzeigt .Mit el Mitzählen bekomme Yo nähmlich no hin . Vieleicht todavía una Tipp a deinem Piano Lernspiel :Vileicht kanst du en el Taste el gedrückt se ,auch el Finger el benutzt voluntad se Mostrar dejar. Tuve bisher todavía no Tarea gefunden,Yo wohl Programieren podría, a I dieses Problema stieß y en Google nichts passendes fand. Yo habe bajo Profano 6.6 damals WinAfuGame programiert.(Un Amateurfunk Simulation) Kusiert auch aún en Netz ,como aber kein großes Interesse aufkam Yo el entwicklung dessen eingestellt Saludo Ludger |
|
|
| |
|
|
|
Sebastian Sprenger | ¡Hola Ludger, en Wikipedia hay algunos Listen, wo alles Wichtige abgedeckt es: [...] Wenn du neben el Notenwerten aber sólo el Longitud necesidad, entonces necesidad du el Listen eigentlich no - Yo todos Timing-Sachen siempre a &GetTickCount gemessen. Im Principio musst du así sólo el Tiempo messen, el zwischen una NoteOn y el zugehörigen NoteOff vergeht.
Falls du trotzdem otro MIDI-Messages empfangen willst, musst du a el Anfang su Programms necesariamente KompilierenMarcaSeparaciónescribir, porque ReadMidiIn sonst sólo NoteOn & -Off zurückgibt (Tuve damals así programmiert...). Saludo, 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 | ¡Hola Sebastian Hab nun ya ne weile con deinem demo rum experimentiert . [...] weiß aber todavía no genau Yo inerhalb el gedrückten Keyboardtaste abfragen kann,si ellos ya losgelassen wurde. KompilierenMarcaSeparación
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 puede ser el auch en deinem Piano Trainer einbauen Saludo Ludger |
|
|
| |
|
|
|
Sebastian Sprenger | ¡Hola Ludger, el debería el mientras que-Bucle korrekt ergänzen (Apéndice en 21:32: geändert y getestet!): KompilierenMarcaSeparaciónSaludo, 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 | ¡Hola Sebastian
Yo weiß no, si Profano a langsam para esta Tarea es, oder Yo sólo el falschen Weg gehe, pero yo bekomme lo así todavía no hin. Yo bin überzeugt su ,daß du auch todavía otro Sachen a tun hast, pero si du Tiempo hast schau mal en media Ver código fuente Er funktioniert zwar Ansatzweise , aber a träge.Mir es dieses Program muy wichtig , doch Yo en el netz todavía nichts ähnliches gefunden KompilierenMarcaSeparación $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
Saludo Lutz |
|
|
| |
|
|
|
Frank Abbing | Hier otra vez todos benötigten Archivos en uno Zip. Kann el veces alguien con Keyboard testen? |
|
|
| |
|
|
|
Sebastian Sprenger | Yo sehe sólo, dass lo hakt, si mehrere Tasten gleichzeitig gedrückt son (o. una neue Taste gedrückt se, bevor el alte losgelassen se), ansonsten se ejecuta alles flüssig.
Saludo, 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 ▲ |
|
|
|