Jump to content

robinfawell

Programmer
  • Posts

    292
  • Joined

  • Last visited

Everything posted by robinfawell

  1. Dear Thorsten Are you referring to simulation in MPLAB? Otherwise apart from seeing the results on the LCD I dont see how you can check step by step. Regards Robin
  2. Dear Thorsten I have revised the Din.inc file for Midio_128. This includes the code including the Table containing the addresses and counts for the Sysex messages stored in EEprom. I believe that this should enable me to send the appropriate Sysex messages on Mdi Out. I have shown my modifications in Red. Please check the program for errors. There is a fair amount of repetitive code! I do appreciate that this is a major task for you! and I really appreciate your help. ;; in difference to other MIDIboxes the MIDIO128 stores the mode in a 4-bit field call MIDIO_BANK_Read ;; select nibble SET_BSR MIDIO_BASE btfsc MIDIO_CURRENT_DIN, 0, BANKED swapf WREG, W andlw 0x0[color=Red]F JUMPTABLE_2BYTES_0x0B ;[/color] rgoto MIDIO_DIN_OnOff rgoto MIDIO_DIN_OnOnly rgoto MIDIO_DIN_Toggle [color=Red]rgoto MIDIO_DIN_RADGRP1 rgoto MIDIO_DIN_RADGRP2 rgoto MIDIO_DIN_RADGRP3 rgoto MIDIO_DIN_RADGRP4 rgoto MIDIO_DIN_RADGRP5 rgoto MIDIO_DIN_RADGRP6 rgoto MIDIO_DIN_RADGRP7 rgoto MIDIO_DIN_Sysex_OnOnly[/color] ;; (DIN value stored in TMP1) MIDIO_DIN_OnOff ;; save status of DIN rcall MIDIO_DIN_Hlp_SaveStat rgoto MIDIO_DIN_Send ;; (DIN value stored in TMP1) MIDIO_DIN_OnOnly ;; save status of DIN rcall MIDIO_DIN_Hlp_SaveStat ;; when on: send DIN value defined in dump ;; when off: send nothing IFSET TMP1, 0, rgoto MIDIO_DIN_DontSend rgoto MIDIO_DIN_Send ;; (DIN value stored in TMP1) MIDIO_DIN_Toggle ;; when on: toggle between 0x00 and the DIN value defined in dump ;; when off: send nothing IFSET TMP1, 0, rgoto MIDIO_DIN_NotifyChangeEnd ;; toggle appr. bit in DIN_VALUE register call MIDIO_FSR_DINValue SET_BSR MIDIO_BASE movf MIDIO_CURRENT_DIN, W, BANKED call MIOS_HLP_GetBitORMask xorwf INDF0, F [color=Red]MIDIO_DIN_RADGRP1 ;; checks whether current Din number is equal to this RADGRP Last Din Number. If not, send Din No Sysex. If so get table entry No of this RADGRP Cancel Sysex. SET_BSR MIDIO_BASE movf MIDIO_CURRENT_DIN, W, BANKED cpfseq MIDIO_LAST_DIN_RADGRP1 rgoto MIDIO_BANKSTICK_DUMP_GET movlw 0x22; Table entry No of RADGRP1 Cancel rgoto MIDIO_BANKSTICK_DUMP_GET MIDIO_DIN_RADGRP2 ;;Same comments as under MIDIO_DIN_RADGRP1 Label SET_BSR MIDIO_BASE movf MIDIO_CURRENT_DIN, W, BANKED cpfseq MIDIO_LAST_DIN_RADGRP2 rgoto MIDIO_BANKSTICK_DUMP_GET movlw 0x23; This is the table entry No of RADGRP2 Cancel rgoto MIDIO_BANKSTICK_DUMP_GET MIDIO_DIN_RADGRP3 ;;Same comments as under MIDIO_DIN_RADGRP1 Label SET_BSR MIDIO_BASE movf MIDIO_CURRENT_DIN, W, BANKED cpfseq MIDIO_LAST_DIN_RADGRP3 rgoto MIDIO_BANKSTICK_DUMP_GET movlw 0x24; This is the table entry No of RADGRP3 Cancel rgoto MIDIO_BANKSTICK_DUMP_GET MIDIO_DIN_RADGRP4 ;;Same comments as under MIDIO_DIN_RADGRP1 Label SET_BSR MIDIO_BASE movf MIDIO_CURRENT_DIN, W, BANKED cpfseq MIDIO_LAST_DIN_RADGRP4 rgoto MIDIO_BANKSTICK_DUMP_GET movlw 0x25; This is the table entry No of RADGRP4 Cancel rgoto MIDIO_BANKSTICK_DUMP_GET MIDIO_DIN_RADGRP5 ;;Same comments as under MIDIO_DIN_RADGRP1 Label SET_BSR MIDIO_BASE movf MIDIO_CURRENT_DIN, W, BANKED cpfseq MIDIO_LAST_DIN_RADGRP5 rgoto MIDIO_BANKSTICK_DUMP_GET movlw 0x26; This is the table entry No of RADGRP5 Cancel rgoto MIDIO_BANKSTICK_DUMP_GET MIDIO_DIN_RADGRP6 ;;Same comments as under MIDIO_DIN_RADGRP1 Label SET_BSR MIDIO_BASE movf MIDIO_CURRENT_DIN, W, BANKED cpfseq MIDIO_LAST_DIN_RADGRP6 rgoto MIDIO_BANKSTICK_DUMP_GET movlw 0x27; This is the table entry No of RADGRP6 Cancel rgoto MIDIO_BANKSTICK_DUMP_GET MIDIO_DIN_RADGRP7 ;;Same comments as under MIDIO_DIN_RADGRP1 Label SET_BSR MIDIO_BASE movf MIDIO_CURRENT_DIN, W, BANKED cpfseq MIDIO_LAST_DIN_RADGRP7 rgoto MIDIO_BANKSTICK_DUMP_GET movlw 0x28; This is the table entry No of RADGRP7 Cancel rgoto MIDIO_BANKSTICK_DUMP_GET MIDIO_DIN_Sysex_OnOnly ;; sends Reset, Tremelo(S&F), (No Radio Group cancels are sent) SET_BSR MIDIO_BASE movf MIDIO_CURRENT_DIN, W, BANKED clrwdt ;; Reset count 16470 X .000320 = 5.2 secs ;;Trem[FS] count both 2756 X .000320 = 0.9 secs rgoto MIDIO_BANKSTICK_DUMP_GET ;;---------------------------------------------------------------------- ;;IN: Index (Table Entry Number) in WREG ;;OUT: Bankstick Address in MIOS_PARAMETER [12] Dump Size (Count) in TMP [12] Bankstick Number in TMP3 ;;---------------------------------------------------------------------- MIDIO_BANKSTICK_DUMP_GET Mullw 6 ; the addresses jump in increments of 6 bytes ;; result of multiplication is in PROD[HL] ;; Add Offset to base address of table 16 bit addition) ;; copy result to TBLPTR[HL] movlw (BANKSTICK_DUMP_TABLE & 0xFF) addwf PRODL, W movwf TBLPTRL movlw (BANKSTICK_DUMP_TABLE >>8) & 0xFF addwfc PRODH, W mvwf TBLPTRH ;; First Entry: Bankstick Number tblrd*+ movff TABLAT, TMP3 ;; Second Entry: dummy, not used tblrd*+ ;; Third & Fourth Entry: Bankstick Address tblrd*+ movff TABLAT, MIOS_PARAMETER1 tblrd*+ movff TABLAT, MIOS_PARAMETER2 ;; Fifth & Sixth Entry; Count tblrd*+ movff TABLAT, TMP1 tblrd*+ movff TABLAT, TMP2 return call SYSEX_Send_Block SYSEX_SendBlock Movf TMP3,W Call MIOS_BANKSTICK_CtrlSet SYSEX_SendBlockLoop Call MIOS_BANKSTICK_Read ;; Expects Addr in MIOS_PARAMETER[12], ;;read byte from BS Call MIOS_MIDI_TxBufferPut ;; Decrement 16 bit loop counter, loop until counter is zero decf TMP1, F skpc decf TMP2, F bc SYSEX_SendBlockLoop return BANKSTICK_DUMP_TABLE ;;BS No Addr Count 0x0000, 0x0000, 0x04CA, 0x0000, 0x04CA, 0x02F4, 0x0000, 0x07BE, 0x02F4, 0x0000, 0x0AB2, 0x04CA, 0x0000, 0x0F7C, 0x02F4, 0x0000, 0x1270, 0x0490, 0x0001, 0x0000, 0x04CA, 0x0001, 0x04CA, 0x0574, 0x0001, 0x0A3E, 0x03A0, 0x0001, 0x0DDE, 0x04CA, 0x0001, 0x12A8, 0x03A0, 0x0001, 0x1648, 0x03A0, 0x0001, 0x19E8, 0x02F4, 0x0001 0x1CDC, 0x04CA, 0x0001, 0x21A6, 0x04CA, 0x0001, 0x2670, 0x04CA, 0x0001, 0x2B3A, 0x03A0, 0x0001, 0x2EDA, 0x04CA, 0x0001, 0x33A4, 0x0574, 0x0001, 0x3918, 0x0574, 0x0002, 0x0000, 0x04D4, 0x0002, 0x04D4, 0x04D4, 0x0002, 0x09A8, 0x04D4, 0x0002, 0x0E7C, 0x09A8, 0x0002, 0x1824, 0x04D4, 0x0002, 0x1CF8, 0x04D4, 0x0002, 0x21CC, 0x04D4, 0x0003, 0x0000, 0x0AC4, 0x0003, 0x0AC4, 0x0AC4, 0x0003, 0x1588, 0x4056, 0x0003, 0x55DE, 0x01E0, 0x0003, 0x57BE, 0x032C, 0x0003, 0x5AEA, 0x028C, 0x0003, 0x5D76, 0x01E0, 0x0003, 0x5F56, 0x0218, 0x0003, 0x616E, 0x03A0, 0x0003, 0x650E, 0x02AC, [/color] ;; rgoto MIDIO_DIN_Send MIDIO_DIN_Send ;; send event Regards Robin
  3. Dear Thorsten I have read your comments on where to store the table. I have completed the coding to include the revised jumptable which now includes my radio button groups and a further mode (an On only Sysex mode). I have added the BANKSTICK_DUMP_Get kindly provided by you. The data table you say can be added to the revised Din.inc. This table has about 40 entries of 12 bytes. Do I just add it anywhere in the Din.inc file? Do I need to record the existence of BANKSTICK_DUMP_TABLE elsewhere in MIDIO_128, ie in App defines h?. Do I need to have a specific starting address? I had a question about Serge's Tools. I was not thinking clearly. The data table will, of course, be entered in the Midio 128 files. (In my case I will use Din.inc). Regards Robin
  4. Dear Thorsten Thanks for Bankstick _Dump_Get. I think that I understand the code. There are a few supplementary questions . BANKSTICK_DUMP_TABLE I assume that I will need to define its base location. In which*.inc file? Also connected to the above, how do I show that the table addresses have been used or reserved?. Is this by entering the BS No, Addresses and Count in the table or some other method? Again in which*.inc document? Are there reasons why a given table should be located in either BS, EEprom or Flash? How do you keep a check or display which memory locations are used. Regards Robin PS Can I use Serges Tool to upload the data?
  5. Dear TK Here are some first attempts on the button handler. This shows the changes in Red and my questions and comments in blue. I have some need of help on how to proceed. Regards Robin
  6. Dear Thorsten After a long time away from my organ project I hope to make some progress during the winter months. Button Handler I propose modifying the Midio_Din.inc file of Midio_128 for the second core module. (The first core will be used with two keyboards of 62 notes) The jump table currently has 3 modes. I propose to add 7 further Radio Group Modes. This should allow another 5 modes for other button behaviours. I believe that I may need to use the 4 byte version of the Jumptable, please confirm or not. This will allow me to store the last Din number for each of the 7 Radio Button Groups. You may recall that I need to send a Group Cancel Sysex message when the Input button is pressed twice. I will need to retain the Midio_Din_Toggle mode because I have 32 Pedal Din Numbers to send the Midi Note On/Off messages. How do I associate the Din numbers with the Din Modes? I think that this is through the Presets.inc files, perhaps? Thanking you in advance Robin
  7. For some time I have been involved in a project also using the SC 8850 and the MIOS system to utilise the SCPOP sounds (without a PC). Progress is slow and recently I have been occupied with household projects and unfortunately I cannot return to the project until mid January. So far I have stored the SCPOP files in EEPROM and have more or less figured out how to do the button control to generate the data files to drive the SC 8850. Lots of further work is needed! It is comforting to know that someone else has experience of this task! I agree with you that the simulations are very impressive. Regards Robin Fawell
  8. Have a look at the book reviews that I have entered in the WIKI section. http://www.avishowtech.com/midibox/wiki/ Regards Robin
  9. Thanks for the reply. This query concerns the LED display pattern for a particular Radio Button Group. Depending on the particular Din for that Radio Button Group and whether this is a repeat (or second Press) I want to display the appropriate LED pattern for that group to record the Din (or not). In the group only one LED is lit or if second press then all LED's off. I will enter the SR number in WREG and the appropriate binary pattern in MOIS_ Para'1. Is this concept OK? I hope this is clear. Regards Robin
  10. In the absence of TK I would be obliged if anyone could clarify the use of the above function. Can I use this function to enter any binary input pattern into any of the DOUT registers (0-15)? Can I regard MIOS_PARAMETER1 as a temporary register? Could I, for example, in the program use it to enter the current Din and then subsequently use it to enter the value of the shift register pattern in MIOS_DOUT_SRSET? Regards Robin
  11. Would anyone be willing to check my modified MIDIO128 Din.inc file for errors in both the logic and syntax? I would post it on this forum except that it is specific to my own particular needs and not of general interest. I will be very grateful. Regards Robin
  12. Thanks Per S You have helped me to understand both the distinction between WREG and other files and the EQU command. I am now going to try to modify the Din.inc file. Regards Robin
  13. Dear Thorsten or anyone else. Please ignore my message Reply #4. I am studying the Midio128_Din.inc file in detail because I hope that it can be modified together with Midio128_Dout.inc etc to give me what I want. What is the function of Midio_Base and Midio_CFG0?? When are they set and do they change? I also am having difficulty with the following, from the Midio_fsr.inc The text in Green shows my comments. This function returns a FSR0 pointer to the button value depending on ;; MIDIO_CURRENT_DIN ;; -------------------------------------------------------------------------- MIDIO_FSR_DINValue ;; (status of 8 buttons stored in a SR register) SET_BSR MIDIO_BASE ; needed for indirect addressing lfsr FSR0, MIDIO_DIN_VALUES_SR0 ; assume that initially this is 0x000. This is 12 bit address. rrf MIDIO_CURRENT_DIN, W, BANKED ;(A) copy current din into WREG, shift R into WREG rrf WREG, F ; (B) copy WREG into F = current din, shift R rrf WREG, W ; © copy WREG into WREG, shift R andlw 0x07 ; (D) mask last 3 bits WREG, result into WREG addwf FSR0L, F ; (E) add WREG to low address of FSR0 Assume that current din = b,0101,0111 =0x57 After (A) this becomes = b, 010,1011 into W After (B) this becomes = b, 1,0101 into Curr Din After © this becomes = b, 1,0101 into W After (D) this becomes = b, 101 into W After (E) this becomes = b,0000,0101 into FSR0L This assumes that initially FSR0L was 0x00 I still do not understand the logic of the above. Please check my working. When are the values set for MIDIO_DIN_VALUES_SR0 ? Regards Robin
  14. Dear Jim Here are the anwers to your questions. Yes, I need to do that because I am using momentary action Push buttons with integral LED's. The LED will confirm that a given stop or control has been selected. However I would imagine that the system would allow further DOUT modules to be used outside of the Scan Matrix needs. I have purchased the Roland Sound Module SC8850 that is recommended.  The button action behaviour is determined by the needs of the Sound Module. Yes, all the organ stops are set up by Sysex messages.  The stops are complex layered sounds. Coupling manuals is a fairly simple concept.  All that happens is that the keyboard Midi Note On and Off messages are  duplicated and the Midi Channel changed on the second message. The Pedal sub Octave does the same but transposes the note by one octave. The SCPOP organ original design is PC based.  However my organ will be used in a church by organists.  I decided that it would better to avoid a Monitor , keyboards and a mouse.  I have the therefore decided to try to make a non PC version of the SCPOP.  Most of my decisions spring from the basic one to copy the SCPOP organ see http://www.scpop.de/ Regards Robin
  15. Dear Jim I am going to postpone the decision about whether to use a scan matrix or not. I know that both solutions will work. My main problem at present is the button handler. This is proving very difficult for me due to my ignorance of MIOS and lack of assembler programming ability But thanks for your kind offer. Diode Placement If you draw a diagram showing Thorsten's circuit . You will see that between the DOUT terminals (C0 - C7) and the common buss there is a switch and then a diode. In my suggestion there is a diode followed by a switch. It does not really matter. Regards Robin
  16. Dear Jim Thanks for your input. My system could probably be handled by a 16 X 16 Matrix. I have 2 keyboards with 61 notes with 5 busses of 12 and 1 buss with 1 note (highest) C? I have a 32 note pedal board (individual switches, no buss). Total so far 154 The Console has 51 push buttons associated with Stops including Couplers, Tremelo, Reset. I have allowed 10 Presets plus 4 controls for Memory. I estimate to use no more than 10 additional Push Buttons for Controlling the Display Grand Total 229 If you read my Push Button Handling Thread you will get an idea of the way I hope the button handling is to be achieved. Do you think that the system musical performance would be better? One reason for asking is that I have already wired up one manual, with 2 DIN modules  one right and one left of the keys. Using ribbon cable, the wiring seems fairly minimal and neat. The Pedalboard can be wired using only 1 DIN module.  I have already constructed and tested the DIN modules. I have plenty of room in the keyboard to mount diodes. However these could alternatively be mounted in the DOUT modules if I adopt the Scan Matrix approach. Thank you for your interest. Regards Robin
  17. Dear John Your project is about the same as mine. Before the question about scan matrix and improved latency came up I had decided on two core modules divided in the same way as your configuration. I cannot relate latency to the organ performance in a practical sense. I'm not convinced that is so important in my case. If you or anyone has some comments I will be appreciative. Regards Robin
  18. Dear Thorsten My keyboards have 61 keys. The switches are formed with a common buss serving 12 keys. Â The depression of the key bends a sprung wire to make contact to make a connection to the common buss. Â Every contact is gold plated. The connections required although different to your diagram should be OK . If convenient the diodes could be mounted on the DOUT modules. This means that I am unable to use an 8 X 8 scan matrix. Have you any thoughts? Regards Robin
  19. Dear Thorsten I have spent many hours trying to understand the seq_buttons.inc and seq_leds.inc. Unfortunately, I do not understand the control functions of the sequencer and this makes things seem very difficult. However, I am sure I've gained some knowledge. I think that my requirements are much simpler. I have 7 button groups which behave the same. Each button operates in a radio button manner. Except that there is no cancel button. This is achieved by a repeat or "toggle" of the last button pressed (in this group). I require a shift register LED_PATTERN_ (1-7) for each group with 8 inputs (not all will be used). There will be another Register LAST_INPUT_STATE_(1-7) for each group. I will need a statement in the app_defines.h file. I will need a routine that examines the button number to determine which of the 7 LAST_INPUT_STATE registers should be used. I am not sure how to organise this. Then...... movf MIOS_PARAMETER1, W ; get button No cpfseq LAST_INPUT_STATE ; checks for 2nd press of button in this group 2ND_PRESS_ROUTINE_(1-7) ; There will be 7 of these call MIOS_HLP_GETBITORMASK ; provides appropriate pattern of LED Group movwf LED_PATTERN (1-7) .... .... ;send this input Sysex message 2ND_PRESS_ROUTINE_(1-7) clrf LED_PATTERN_(1-7) .... .... ;send the Group(1-7) Cancel Sysex message. I am not sure how the LED Patterns will be sent to the DOUT's. I know that there are lots of code missing. However I will appreciate your comments. Regards Robin
  20. Dear John Its good to hear of your progress. Im in the thick of it trying to design a button handler. Rgards Robin
  21. Dear Thorsten I have spent a few hours looking at the sequencer files Seq_buttons.inc main.asm. and seq_led.inc I am a complete novice in the use of assembler, however I have retained a small knowledge of digital logic design from about 30 years ago. To help me understand MPASM I have purchased (not recently) two books on the subject one by John Morton PIC Your  Personal Introductory Course, and Embedded Design PIC 18F452 Microcontroller by John Peatman. Queries Seq_buttons.inc Page 1 Refers to a file CS_MENU_DIN_TABLE in "cs_menu_io_tables"  I cannot find this.  Maybe it is called by another name. I have tried using the books mentioned above to find out the meaning of xorlw    (DEFAULT_GP_DIN_SR0 - 1) << 3 I understand the xorlw.  However (DEFAULT_GP_DIN_SR0 - 1) << 3 is not understood. I believe that there are 2 GP shift registers. (8 bits each) SR0 equivalent to SR#7 and SR1 to SR#10;  this was from:- Is (DEFAULT_GP_DIN_SR0 - 1)  7 -1 = 6 ? << 3 Does this mean Shift Binary value 3 places left? I am trying to relate the Input Pins to the GP Buttons and the Left, Right,Scrub etc. buttons. Please confirm that GP Buttons are nothing to do with Left, Right,Scrub etc. To gain a an understanding of the button handler should I concentrate on the GP Buttons  or the Left, Right,Scrub etc. Buttons or both? Thanks Robin
  22. Dear Thorsten Button Handlers for Organ The push buttons on the console are all momentary action.  Nearly all have integral LED's of various colours. Sysex Buttons The majority are associated with triggering the stored Sysex messages.There are 7 groups. There are 2 keyboards.  Each of these have 3 groups each (Flutes, Mutations and Reeds).  There is also a pedal group. Only one instrument from each group ie only 1 Flute, 1 Mutation and 1 Reed may be selected. If a selection was made from each group then 7 instruments would sound. The numbers of instruments in each group varies from 1 to 7. (1) Sysex Button behaviour Assume that there are 3 instruments in a group A, B and C. Also assume initially that no selections have been made. Select B.  The Sysex Message B would be triggered, this will be transmitted followed immediately by either 2 or 3 CC Midi Messages to the sound module. The LED in Button B would be illuminated. Select A. The Sysex file A would be sent as above and a new sound would be available. LED A would light and LED B would be extinguished. Select A again. This would cause the "Group Cancel" Sysex message to be sent.  LED A would extingish and therefore all LED's in this group would be out. Only one LED may be lit at any time otherwise all are out. This is a form of Radio Button I suppose. (2) Reset and Panic Button Behaviour These are not toggled.  They are leading edge triggered. The Sysex messages are sent each time the momentary Push buttons are pressed. The Reset Sysex should also be sent on Power Up. (3) Mute / (Restore) Button Behaviour There are 4 of these. Assume initially that they are in the Restore state.  The integral LED will be "Out" Press Mute Push Button.  The Mute Sysex message will be sent to the Sound Module. The LED will be "On". Press button again.  The Restore Sysex message will be sent and the LED will be "Out" (4) Coupler, Tremelo and Sub Octave Button behaviour There are 7 of these.  In this case no Sysex messages are sent. Either Double Note on / Note Off messages are sent triggered from the keyboards or CC messages are sent.  In all cases the LED's toggle. General Comment I assume that the Midio 128.ini file will need to be modified. Also the Midio_DIN.inc file will need changes. Where and how do I store the  table which will include the Name Location and Length of the stored Sysex Files/ I am out of my depth here. Please help. Best Regards  Robin PS.  I hate to complicate this query but I should add that I will need to store up to 10 different setups of the stops and 10 fader values .  This my have a bearing on how the button handling can be achieved.
  23. Dear Thorsten or anyone else. I have returned to my SCPOP (Sound Canvas Pipe Organ Project) based design after a few weeks doing other tasks. I have now stored all the Sysex messages successfully into my Bankstick module and have started producing a table (on paper) with the Sysex file name, the BS No, the Start Offset Address and the length in bytes. Before starting the next phase - the Button handler for the stops, I would like some advice on two matters. Diode Matrix I have wired up one 61 note keyboard (without diodes). This has two DIN Modules at either end. I have built and tested 5 DIN Modules. The Pedal board and the 2nd Keyboard are as yet unwired. I have calculated that I need 2 core modules. The first will be used for the two keyboards and the second will be used for the pedalboard note inputs (32) and the Stops (revised to about 35) . I need about another 20 DIN inputs for the Memory Presets to store the Stops and Fader setups. There will be, I'm sure, a few more stops to use with the LCD display. Is the any advantage, in my case, to reducing the No of Core Modules to one? Obviously there is a cost implication but I have already incurred this cost. MIOS Version 1.7 Should I update to the above? (hardware and program) Regards Robin
  24. Dear Thorsten We are overlapping messages. I will check out the upload methods again and report back. Regards Robin
  25. Thanks Thorsten I will give up trying to test using Midiox and concentrate on push button behaviour and try to link your suggested program. Regards Robin
×
×
  • Create New...