Español
Foro

Bits de readmidi en Noten (werte) umwandeln

 

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
 
11.07.2008  
 




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
 
12.07.2008  
 




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ón
whileloop 23,38

    byte mim#,&loop=$90  NOP

endwhil
escribir, 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
Vieleicht puede ser el auch en deinem Piano Trainer einbauen
Saludo
Ludger
 
18.08.2008  
 




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
 
20.08.2008  
 




Frank
Abbing
Hier otra vez todos benötigten Archivos en uno Zip.
Kann el veces alguien con Keyboard testen?

3 kB
Hochgeladen:21.08.2008
Ladeanzahl65
Descargar
 
21.08.2008  
 




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  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

3.508 Views

Untitledvor 0 min.
Sven Bader14.10.2021
Jörg Sellmeyer11.09.2014
Sebastian Sprenger19.03.2013
Paul Glatz15.03.2013

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie