Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
01/29/02 10:41
Read: times


 
#19188 - RE: Midi Patch Change
Hallo again Mr.Bores !

Here are two examples for handling MIDI
PGM Change events for the 8052 uC.
The original Code from a friend of mine.

I´ll hope that helps ..


First Example:

; ***********************************************
; NAME : PRG_CHG
; Call by: CALL
; IMPORT: MIDI-Byte in B
; EXPORT: MIDI-Byte in B
; Used REG: Acc
; STACK: 2
;
; Saves the Program-Change-Event to: (up to M_I)
; M0: STATUS | M1: Program-Nummer
;
PRG_CHG:
MOV A,M_I ; get MIDI-Index for jump
CJNE A,#0,M_NO40 ; Is M_I=0? -> No, than NOT40
INC M_I ; M_I:=M_I + 1
MOV B,M0 ; save MIDI-Byte in M0
SETB MIDI_ON
RET ; = STATUS
;
M_NO40:
MOV M_I,#1 ; M_I=1 -> M1
MOV B,M1 ; save MIDI-Byte in M1
; = PROGRAM-NR.


; At this Area is a complete MIDI Event in
; Program-Change-Event reseived and stored in
; M0: STATUS , M1: PROGRAM
;
;
CLR MIDI_ON
;
RET




*******************************************



Second Example:

; ***********************************************
; NAME : PRG_CHG
; AUFRUF: CALL
; IMPORT: xx
; EXPORT: xx
; BENUTZTE REG: Acc
; STACKBEDARF: 2
;
; Merge of a MIDI Event to Program-Change
;
PRG_CHG:
;
CLR IE ; disable Interrupts
;
MOV A,#1FH ; KEY 1F = 32d pressed ?
CJNE A,TASTE,P_STD ; if < 1F => Standard
P_PAN ; Panickey
MOV B,#0B0H ; Channel 1
ACALL MIDI_OUT
MOV B,#07BH ; ALL NOTES OFF
ACALL MIDI_OUT
MOV B,#00
ACALL MIDI_OUT
;
MOV B,#0B1H ; Channel 2
ACALL MIDI_OUT
MOV B,#07BH ; ALL NOTES OFF
ACALL MIDI_OUT
MOV B,#00
ACALL MIDI_OUT
;
MOV A_WERT,#0FFH
;
SJMP P_RUN
;
P_STD MOV B,#0CEH ; Program Change
ACALL MIDI_OUT ; to Puffer
;
MOV A,TASTE
MOV DPTR,#T_LIST ; List Pointer
MOVC A,@A+DPTR ; Value from List
MOV B,A ; to B and
MOV A_WERT,A ; for Display
ACALL MIDI_OUT ;to Buffer
;
P_RUN MOV A,M0 ; restore old Status
MOV B,A ; und merge
ACALL MIDI_OUT ; for "Running-Modus"
;
CLR TASTE_NEU ; clear Value
;
MOV A_ORT,#0
ACALL HEXAUS ; Display
;
SETB IE ; enable Interups
;
RET
;


*******************************************



So I´ll hope that helps...


Have a nice Day

Stefan





List of 9 messages in thread
TopicAuthorDate
Midi Patch Change            01/01/70 00:00      
RE: Midi Patch Change            01/01/70 00:00      
RE: Midi Patch Change            01/01/70 00:00      
RE: Midi Patch Change            01/01/70 00:00      
RE: Midi Patch Change            01/01/70 00:00      
RE: Midi Patch Change            01/01/70 00:00      
RE: Midi Patch Change            01/01/70 00:00      
RE: Midi Patch Change            01/01/70 00:00      
to Mr. Phillip M Gallo            01/01/70 00:00      

Back to Subject List