Jump to content

Recommended Posts

Posted

hallo !

ich benutze den midio um ein analog drummodul zu triggern ...

die frage ist jetzt :

kann man den midio so einstellen das er bei jeder empfangenen note nur einen ganz kurzen impuls ausgiebt ?? so ~1ms wäre gut

denn sonst startet der eigentliche drum sound erst am note off   :-/

und so kurze midi noten sind nicht immer möglich

-> midibox seq min 2-3ms bei normalem tempo

kann wer helfen ??

hallucinogen

Posted

Ich würde Dir ein 2 Input and Gate empfehlen, Google mal danach.

So bist du unabhängig von der Notenlänge. Ich habe mal eine 909 Bassdrum nachgebaut und die ist sehr abhängig von der länge des triggerimpulses, und mit einem 2 Input and Gate kann man sehr gut mit dem Kondensatoren die richtige Länge einstellen.

Vielleicht ist das aber auch digital zu lösen.

chriss

Posted

Ich wuerde es digital loesen, doch das erfordert natuerlich ein paar kleinere Modifikationen an der MIDIO128.

Am einfachsten waere es, wenn Du USER_SR_Service_Finish alle DOUT Pins zuruecksetzt, die an das Drummodul angeschlossen sind.

Bspw. mit MIOS_DOUT_SRSet (setzt alle 8 Ausgaenge eines Shiftregisters)

Um die ersten drei Shiftregister zurueckzusetzen, muesstest Du die Funktion (in main.asm) wie folgt erweitern:

USER_SR_Service_Finish
        clrf    MIOS_PARAMETER1

        movlw  0x00
        call    MIOS_DOUT_SRSet
        movlw  0x01
        call    MIOS_DOUT_SRSet
        movlw  0x02
        call    MIOS_DOUT_SRSet
        return
[/code]

Das waere dann auch schon alles ;-)

Und so funktioniert es: eine Note On Meldung setzt das DOUT Register auf "1", der Wert wird mit dem naechsten SRIO Update Cycle (default periode: 1 mS) an die Shift Register uebertragen. Nachdem das geschehen ist, setzt die kleine Erweiterung in USER_SR_Service_Finish den Wert wieder auf 0 zurueck, und dieser wird beim naechsten Update Cycle uebertragen. Daraus folgt dann eine Pulslaenge von 1 mS.

Gruss,

        Thorsten.

/Edit: schreibfehler im programm gefixed

Posted

ja !!  ;D ;D ;D ;D,

suuupeeer

funk bestens aber nur mit:

CODE:

USER_SR_Service_Finish

clrf    MIOS_PARAMETER1      

movlw   0x00    

call    MIOS_DOUT_SRSet    

movlw   0x01    

call    MIOS_DOUT_SRSet    

movlw   0x02    

call    MIOS_DOUT_SRSet    

return    ;)

war wohn ne copy´n´paste fehler

danke Thorsten ! (auch für die mail ...)

hallucinogen

Posted

Fein! :)

(habe gestern wohl zuviel mit meinem KS0108 Display herumexperiemtiert ;-)

Gruss,

       Thorsten.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...