-
Posts
15,247 -
Joined
Content Type
Profiles
Forums
Blogs
Gallery
Everything posted by TK.
-
Yes, USB MIDI is "only" supported from Tiger (MacOSX 10.4) upwards Problem: Layer C button is also used to quickly check the layer activities (therefore the lower line displays VU meters) I already see many dummy bug reports like "Layer selection goes wild when pressing C button" made by people who are not aware about this mechanism. So, I built an alternative solution into Beta13: By pressing&holding Layer C button you can increment/decrement the layer with A/B button. This isn't a complete replacement for your request, but I find it very useful for myself. fixed in Beta13 Multi Triggers have been replaced by the Roll function which can be assigned to an individual layer. Advantage: now multi triggers also change their velocity. Another advantage: higher granularity for Length parameter (1..96 ticks) Beta13 allows you to define the pulse width in your MBSEQ_HW.V4 file Best Regards, Thorsten.
-
In your configuration: BPM_Mode 2 MIDI_IN_MClock_Ports 0x000f0c01 MIDI_OUT_MClock_Ports 0x7ffffef0 [/code] - MIDI Slave mode (2) is selected - only USB1 MIDI In is enabled for receiving the MIDI Clock - no USB MIDI Out is enabled for transmitting the MIDI Clock Is this really the setup which leads to an extremely high BPM rate in Ableton Live? Best Regards, Thorsten.
-
windows 7 midi driver and core32 not working again
TK. replied to ultra's topic in Testing/Troubleshooting
If somebody notices this again: please try an external power supply, or power the module from an USB hub with a "strong" PSU. A weak USB supply can lead to unstable USB transfers - Windows will find the device, but the enumeration won't pass, so that an "unknown device" will be reported. Best Regards, Thorsten. -
A very nice - and especially small - design! :) Could you please download this into the Gallery? MIDI Clock Master issue: please generate a System and Globals report as described Especially the Globals report will contain informations that I need to reproduce the issue. Best Regards, Thorsten.
-
Replace the mb64_meta.inc file by following code, and you will be able to send this type of SysEx message with meta events ;; -------------------------------------------------------------------------- ;; This function is called by mb64_midi.inc when a meta event (Fx xx) has ;; been assigned to a pot or button ;; You can use this handler to enhance the firmware by your own MIDI events. ;; Here you are able to send more than one MIDI event (i.E. two Note On ;; Events to control Cakewalk via MIDI remote with one button), or a ;; SysEx/NRPN string to your synthesizer, or just to toggle PIC pins ;; in order to switch relays... ;; IN: ;; on pot events (entry point: MB64_META_Handler_Pot): ;; o Pot number in MB64_CURRENT_POT (BANKED access required!) ;; o first MIDI byte in MIDI_EVNT0 (no BANKED access required) ;; o second MIDI byte in MIDI_EVNT1 (no BANKED access required) ;; o pot value in MIDI_EVNT_VALUE (no BANKED access required) ;; ;; on button events (entry point: MB64_META_Handler_Button): ;; o Pot number in MB64_CURRENT_BUTTON (BANKED access required!) ;; o first MIDI byte in MIDI_EVNT0 (no BANKED access required) ;; o second MIDI byte in MIDI_EVNT1 (no BANKED access required) ;; o button value in MIDI_EVNT_VALUE (no BANKED access required) ;; -------------------------------------------------------------------------- MB64_META_Handler_Pot ;; THIS IS JUST AN EXAMPLE META EVENT HANDLER ;; ADAPT IT FOR YOUR NEEDS! ;; we are using the same handler for pots and buttons here rgoto MB64_META_Handler MB64_META_Handler_Button ;; THIS IS JUST AN EXAMPLE META EVENT HANDLER ;; ADAPT IT FOR YOUR NEEDS! ;; we are using the same handler for pots and buttons here rgoto MB64_META_Handler ;; -------------------------------------------------------------------------- ;; THIS IS JUST AN EXAMPLE META EVENT HANDLER ;; ADAPT IT FOR YOUR NEEDS! ;; HINT: if a large number of SysEx strings with the same structure (means: ;; for the same synth) should be sent, it would be more advantageous to ;; use a table which contains the parameter values and refers to the ;; sending routines ;; -------------------------------------------------------------------------- MB64_META_Handler ; F0 (sysex start) ; 01 (factory brand ID) ; 20 (synth type or ID) ; 01 (file version) ; 01 (program parameter) ; xx (parameter number) varies fom 0 to 127 (in decimal) but is dedicated to one control ie one pot for instance ; yy (parameter value = LSB nibble) ; zz (parameter value = MSB nibble) ; F7 (sysex end) movlw 0xf0 call MIOS_MIDI_TxBufferPut movlw 0x01 call MIOS_MIDI_TxBufferPut movlw 0x20 call MIOS_MIDI_TxBufferPut movlw 0x01 call MIOS_MIDI_TxBufferPut movlw 0x01 call MIOS_MIDI_TxBufferPut movf MIDI_EVNT1, W ; parameter number == number of meta event (e.g. Meta Event 0xf0 0x01 -> MIDI_EVNT1 == 0x01) call MIOS_MIDI_TxBufferPut movf MIDI_EVNT_VALUE, W ; extract lower nibble andlw 0x0f call MIOS_MIDI_TxBufferPut swapf MIDI_EVNT_VALUE, W ; extract upper nibble andlw 0x0f call MIOS_MIDI_TxBufferPut andlw 0xf7 call MIOS_MIDI_TxBufferPut return [/code] Checksum: as you can see, this generic approach allows you to generate *any* kind of checksum ;) In fact, you are able to send *any* kind of MIDI message this way, not only SysEx Best Regards, Thorsten.
-
writing NES controller-to-midi function for MBHP Core (pic)?
TK. replied to yatagarasu's topic in MIOS programming (C)
You could try following example: http://www.ucapps.de/mios_c_send_ain.html with following code in AIN_NotifyChange() unsigned int last_pin_value; void AIN_NotifyChange(unsigned char pin, unsigned int pin_value) __wparam { if( pin == 0 ) { if( pin_value >= 700 && last_pin_value < 700 ) { // Rising Edge at ca. 70% of 5V (-> 3.5V) // Send MIDI Start Event MIOS_MIDI_TxBufferPut(0xfa); } else if( pin_value < 300 && last_pin_value >= 300 ) { // Falling Edge at ca. 30% of 5V (-> 1.5V) // Send MIDI Stop Event MIOS_MIDI_TxBufferPut(0xfc); } last_pin_value = pin_value; } } [/code] Thats all. There are also other methods to do this (e.g. using J5 pins as digital inputs), but you asked for the AIN solution, and I want to demonstrate how this can be done. There is no real disadvantage by using an analog pin for this function - in distance, you get the advantage that you are able to define the hysteresis (as demonstrated above). So, your idea doesn't match with the standard approach, but it isn't so bad! :) More details about C programming can be found here: http://www.ucapps.de/mios8_c.html Best Regards, Thorsten. -
No, this isn't supported by the editor. But there aren't so many parameters, you could write them down on a paper and transfer it manually to another drum instrument. I'm not exactly sure what you mean, but drum sounds are using a special sound engine... it isn't possible to transfer a patch which gets use of the Multi/Bassline or Lead engine into a patch which uses the drum engine. In order to create a new drum kit, just open a new patch and select the drum engine. On the MBSID CS: press SHIFT and select the drum engine with the first GP button. Best Regards, Thorsten.
-
thanks for the feedback! Altitude noticed the same issue under Vista; we should collect more informations in this thread before I contact Ploytec (again). To all Vista/Windows7 users: it would be helpful if you could try the new driver and report if MIDI Ports are visible in your MIDI application (e.g. your DAW, MIDI-Ox, MIOS Studio, etc.) or not. Best Regards, Thorsten.
-
-
Here a short (incomplete) remix of "Home by the Sea" by Genesis (the DIY acapella of Phil Collins' part has been downloaded from this site). I used Arp17, Arp16 and the "Analog Dream 3" preset + some Stylus RMX drumloops and Logic AUs. -> http://www.ucapps.de/mp3/midibox_sid/mbsid_genesis_home_by_the_sea_remix.mp3 Feel inspired to do similar things - it's fun! :) Best Regards, Thorsten. P.S.: Reminder: please post your own arp patches
-
Ploytec released a new GM5 Windows driver (v1.0.9, 32bit and 64bit version), it can be downloaded from http://www.ucapps.de/mbhp_usb_gm5.html With this version, Windows shouldn't crash anymore if multiple GM5 modules are connected. Best Regards, Thorsten.
-
Are you using Clock Master or Auto mode? Best Regards, Thorsten.
-
windows 7 midi driver and core32 not working again
TK. replied to ultra's topic in Testing/Troubleshooting
The development environment of MacOS provides an USB Sniffer which allows to trace USB traffic in different verbose modes. Is something similar available for Win7? Best Regards, Thorsten. -
Interesting observation! This probably means, that there is (just only) a bad soldering joint to the ground plane of your MBHP_CORE module. Check all pins which are connected to ground, or add some solder to all pins if you are unsure that the connection is good enough. yes No! Best Regards, Thorsten.
-
MIDI mapping & control on only* 1 MIDI channel
TK. replied to protofuse's topic in MIOS programming (C)
Why are you not doing this? Best Regards, Thorsten. -
Ok, now I understand the issue. No, nobody implemented a MTC to MIDI Clock converter yet. Best Regards, Thorsten.
-
The clockbox firmware with 9 MIDI OUTs and MTC support is called "clockbox_enhanced_v1c" Best Regards, Thorsten.
-
The details are explained here: http://www.ucapps.de/cmios8_fun.html#MIOS_HLP_Dec2BCD MIOS_LCD_BCD* uses MIOS_HLP_Dec2BCD internally, and removes the leading zeroes by spaces. If you want to output leading zeroes, just print the original BCD code (binary coded digits, each digit is coded in 4 bits) with MIOS_LCD_PrintHex2 (to print the rightmost binary coded digits) resp. MIOS_LCD_PrintHex1 (to print a single (the leftmost) binary digit) I changed the C example code (removed the bitshifting), so that it matches with the example given in the documentation. Best Regards, Thorsten.
-
P.S.: I added the MIOS32 variant...
-
; -------------------------------------------------------------------------- ;; print dec value -64..63 CS_MENU_PRINT_PMDec7 movwf TMP1 movlw ' ' ; space or "-"? btfss TMP1, 6; (if value <= 0x3f (6th bit cleared), print "-" movlw '-' call MIOS_LCD_PrintChar CS_MENU_PRINT_PMDec7_WO_Sign movf TMP1, W ; calc: 0x40-value sublw 0x40 btfsc WREG, 7 ; negate value if negative to get absolute value negf WREG, ACCESS goto MIOS_LCD_PrintBCD2 ; and print it [/code] The same in C: [code] if( value < 64 ) { MIOS_LCD_PrintChar('-'); MIOS_LCD_PrintBCD2(64-value); } else { MIOS_LCD_PrintChar(' '); MIOS_LCD_PrintBCD2(value-64); } The same for MIOS32: MIOS32_LCD_PrintFormattedString("%3d", (int)value - 64); [/code] [code] ; -------------------------------------------------------------------------- ;; print dec value patted with 0 CS_MENU_PRINT_Dec000 clrf MIOS_PARAMETER1 call MIOS_HLP_Dec2BCD movf MIOS_PARAMETER2, W call MIOS_LCD_PrintHex1 movf MIOS_PARAMETER1, W goto MIOS_LCD_PrintHex2 The same in C: MIOS_HLP_Dec2BCD(value); MIOS_LCD_PrintHex1(MIOS_PARAMETER2); MIOS_LCD_PrintHex2(MIOS_PARAMETER1); [/code] The same for MIOS32: [code] MIOS32_LCD_PrintFormattedString("%03d", value); Best Regards, Thorsten.
-
Shipped today: Furlao carpin Best Regards, Thorsten.
-
this message is sent by MIOS Studio to restart the core module. It's an outgoing message (therefore the timestamp is [unknown]). Apparently this command doesn't get a reply for the PIC... I would propose to go through the MIDI troubleshooting guide. E.g., with TEST INOUT1 you can ensure that GM5, the optocouplers, the MIDI cables, your MIOS Studio configuration, etc... are working. The other tests might help to find the issue as well before we assume that the PIC is really fried (unlikely) GM5 LED: did you consider the polarity of the LED? Best Regards, Thorsten.
-
You could take a common RS422 converter chip, e.g. a MAX489E (I used this chip years ago for the same purpose) The connection diagram can be found in the datasheet. Best Regards, Thorsten.
-
470 Ohm should be fine as a short circuit protection. Please give feedback if this is compatible with your gear once you tested this. Best Regards, Thorsten.
-
The sign bit is located at bit #31, which means, so long the value is within the 0..2^31-1 range, it will stay 0 and there is no danger. And even if the totally unexpected would happen (a 2 GB file has been read successfully ;)) the return value would be negative, which means: error Best Regards, Thorsten.