Jump to content

Antichambre

Programmer
  • Posts

    1,291
  • Joined

  • Last visited

  • Days Won

    101

Everything posted by Antichambre

  1. Hello, Try also to change the speed: https://community.nxp.com/t5/LPCXpresso-IDE/Change-emualtor-speed-in-quot-program-flash-quot/m-p/566246 Brest regards Bruno
  2. Hi Flavio, The enclosure is still one of the two prototypes Adrian sent me. They are not *perfect* ;) Don't worry, the first *perfect* one is for you... I know it's long but I currently have a lot of work and the covid don't make things easy. Best regards Bruno PS: And thank you I love Gus Gus, that's a great compliment
  3. Quick test for CC automation. The HAARP is only connected to my laptop and Ableton Live is running. Live gives the sync. Only the Drum Track is programmed. I play with 4 differents clips. There's 3 synth used, BAss, Saw and Choir they are some of the basic provided with Ableton, no sequence, direct input are activated on the synth tracks. Preset, Mute change, and some of the parameters of the HAARP are automated, by a previous MIDI record.
  4. Thanks! I spent my free time of the two last month to get the firmware I wanted for it, that's done I started to write the manual during few days before leaving France for work but it seems coding in C is easier than setting a page or a column break in word software! ahah! Best regards Bruno
  5. Did you add the module in the makefile? # WS2812 RGB LED strip driver include $(MIOS32_PATH)/modules/ws2812/ws2812.mk
  6. Antichambre

    midiphy MatriX :)

    Sympa! Ca a de la gueule! It's a beauty But still afraid this extension will be too much expensive for me :/
  7. I didn't touch that Be sure the MIOS32_LCD is universal, I know you put the values in MIOS32_config but try also to set them with booloader updater help, set lcd_type too...
  8. #define MIOS32_UART_NUM 1 This line is enough.
  9. Please pull changes from repo and retry... I did something wron last time but corrected it. There was an issue with usb decriptor.
  10. You can use the routine of the Seq: No need of a string variable. ///////////////////////////////////////////////////////////////////////////// // Returns the 8bit pattern of a hexadecimal 4bit value // The dot will be set if bit 7 of this value is set ///////////////////////////////////////////////////////////////////////////// s32 SEQ_LED_DigitPatternGet(u8 value) { const u8 led_digits_decoded[16] = { // a // --- // ! ! // f! g !b // --- // ! ! // e! !c // --- // d h // 1 = on, 0 = off // NOTE: the dod (h) will be set automatically by the driver above when bit 7 is set // habc defg 0x7e, // 0111 1110 0x30, // 0011 0000 0x6d, // 0110 1101 0x79, // 0111 1001 0x33, // 0011 0011 0x5b, // 0101 1011 0x5f, // 0101 1111 0x70, // 0111 0000 0x7f, // 0111 1111 0x7b, // 0111 1011 0x77, // 0111 0111 0x1f, // 0001 1111 0x4e, // 0100 1110 0x3d, // 0011 1101 0x4f, // 0100 1111 0x47, // 0100 0111 }; return led_digits_decoded[value & 0xf] | (value & 0x80); } ///////////////////////////////////////////////////////////////////////////// // This hook is called before the shift register chain is scanned ///////////////////////////////////////////////////////////////////////////// void APP_SRIO_ServicePrepare(void) { static u8 led_digit_ctr = 0; if( ++led_digit_ctr >= 7 ) led_digit_ctr = 0; u8 inversion_mask = (COMMON_PIN_DIGITx==CATHODE) ? 0xff : 0x00; u8 common_enable = (COMMON_PIN_DIGITx==CATHODE) ? 1 : 0; float bpm = SEQ_BPM_EffectiveGet(); if( led_digit_ctr == 0 ) { u8 sr_value = SEQ_LED_DigitPatternGet(((int)(bpm*10)) % 10); MIOS32_DOUT_SRSet(SEGMENTs_REG, sr_value ^ inversion_mask); MIOS32_DOUT_PinSet(COMMON_PIN_DIGIT1, common_enable); MIOS32_DOUT_PinSet(COMMON_PIN_DIGIT2, !common_enable); MIOS32_DOUT_PinSet(COMMON_PIN_DIGIT3, !common_enable); MIOS32_DOUT_PinSet(COMMON_PIN_DIGIT4, !common_enable); } else if( led_digit_ctr == 1 ) { //u8 sr_value = SEQ_LED_DigitPatternGet((int)bpm % 10) | 0x80; // +dot u8 sr_value = SEQ_LED_DigitPatternGet((int)bpm % 10) ; // no dot MIOS32_DOUT_SRSet(SEGMENTs_REG, sr_value ^ inversion_mask); MIOS32_DOUT_PinSet(COMMON_PIN_DIGIT1, !common_enable); MIOS32_DOUT_PinSet(COMMON_PIN_DIGIT2, common_enable); MIOS32_DOUT_PinSet(COMMON_PIN_DIGIT3, !common_enable); MIOS32_DOUT_PinSet(COMMON_PIN_DIGIT4, !common_enable); } else if( led_digit_ctr == 2 ) { u8 sr_value = SEQ_LED_DigitPatternGet(((int)bpm / 10) % 10); MIOS32_DOUT_SRSet(SEGMENTs_REG, sr_value ^ inversion_mask); MIOS32_DOUT_PinSet(COMMON_PIN_DIGIT1, !common_enable); MIOS32_DOUT_PinSet(COMMON_PIN_DIGIT2, !common_enable); MIOS32_DOUT_PinSet(COMMON_PIN_DIGIT3, common_enable); MIOS32_DOUT_PinSet(COMMON_PIN_DIGIT4, !common_enable); } else if( led_digit_ctr == 3 ) { u8 sr_value = SEQ_LED_DigitPatternGet(((int)bpm / 100) % 10); MIOS32_DOUT_SRSet(SEGMENTs_REG, sr_value ^ inversion_mask); MIOS32_DOUT_PinSet(COMMON_PIN_DIGIT1, !common_enable); MIOS32_DOUT_PinSet(COMMON_PIN_DIGIT2, !common_enable); MIOS32_DOUT_PinSet(COMMON_PIN_DIGIT3, !common_enable); MIOS32_DOUT_PinSet(COMMON_PIN_DIGIT4, common_enable); } else { // not displaying bpm digit in this cycle, disable common pins MIOS32_DOUT_PinSet(COMMON_PIN_DIGIT1, !common_enable); MIOS32_DOUT_PinSet(COMMON_PIN_DIGIT2, !common_enable); MIOS32_DOUT_PinSet(COMMON_PIN_DIGIT3, !common_enable); MIOS32_DOUT_PinSet(COMMON_PIN_DIGIT4, !common_enable); } } For you to give the right values to the registers and pins depending on your diagram. Also the "DOT" can be added. Follow the pinout for the SEGMENTs register this one: http://www.ucapps.de/midibox_seq/mbseq_v4_bpm_digits.pdf, or adapt led_digits_decoded array to your own pinout. Always have a look in the repo cause what you're looking for is often already done somewhere ;) That's the magic here :) Best regards Bruno
  11. No problem I thought your SSL channel strip was an hardware one, but it's a plug-in, no need of any VCA here ;) So you can use pots or encoders. Pots need AIN modules, Encoders need DIN modules. About pots changes, there's some mode you can choose Direct/Snap/Relative/Parallax they are explained somewhere here: http://www.ucapps.de/midibox_ng_manual.html DIN module for switches and encoders. DOUT for leds if required. AIN module for faders and pots.
  12. Hi, It will be difficult to replace the rotating pots of the EQ and Busses sections. There's some motorised pots but the cost will be hudge, and they are very big. Another way is to replace them by VCA or something else like digital pots, but it depends on the mixer circuits, anyway it will be very expensive, and VCA will need AOUT to be controlled. You can use DIN modules for switches and DOUT for LEDs, you can also use matricing too, to save some money and limit the size of your project. You don't need so much AIN modules and Cores. Keep the AIN modules for the faders... And for the pots if you decide to use VCA(or other) to automate your EQ and Busses sections. Best regards Bruno
  13. http://m.bareille.free.fr/midithrubox/midithrubox.htm One buffer can support 12 input buffers, without too much capacitive load. Almost if it's on the same board, I'm pretty sure.
  14. Except that I pretty sure you can remove some of the schmitt inverter buffers, you can do this. ;) If the target MIDI devices have different MIDI channels they will receive separated Voices messages. If the target MIDI devices are some midibox cores then just change their ID, as they can receive different SYSEX too.
  15. MIDI Machine Control is not supported by the SEQ, it's a sub layer of the MIDI norm which is not implemented. Of course the SEQ can receive/send SPP and Realtime messages like start stop continue, midi clock etc.. More than that I think the MPC is not a regular USB MIDI Device and if it's the case it's via an internal USB HUB that the seq does not support. Then just use regular MIDI DIN connection between the seq and the MPC, this will work.
  16. yes VBAT smd jumper, just put a bit of solder to close it.
  17. @Phatline close the VBAT jumper, on the bottom side if you use the pin 32 as 3v3 output.
  18. for J16 which is a SPI port MIOS32_DONT_USE_SDCARD MIOS32_DONT_USE_SPI0 Init // common GPIO_InitTypeDef GPIO_InitStructure; GPIO_StructInit(&GPIO_InitStructure); GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; // J16.RC2 as GPIO (PA4) GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; GPIO_Init(GPIOA, &GPIO_InitStructure); // J16.RC1 as GPIO (PC4) GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; GPIO_Init(GPIOC, &GPIO_InitStructure); then to set or clear the pins you can use the macro: // MIOS32_SYS_STM_PINSET(port, pin_mask, value) // e.g. MIOS32_SYS_STM_PINSET(GPIOA, GPIO_Pin_4, 0) MIOS32_SYS_STM_PINSET(GPIOC, GPIO_Pin_4, 1)
  19. You can use any pin, they are all GPIO(General Purpose In/Out). You just need declare the port of the pin as not used (MIOS32_DONT_USE_XXX) and use the GPIO_InitTypeDef.
  20. Hi! It's not the subject here, but I can explain a few quickly. Phatline is right, the M16 is a 16x16 midi I/O interface, the plan is to build a expandable router using the MCAN bus to interconnect multiple couple of Core32+M16. Nx(16x16) I/O, 16x16, 32x32, 48x48 etc... The project is called "BANDMASTER", The two prototypes I've made are working... I will come back on this project once the HAARP is finished.
  21. Thanks! Wiki updated! http://www.midibox.org/dokuwiki/doku.php?id=dipcoref4#download
  22. Sorry not the good lib! This one is fine: USB1(old) FS, Device/Host, this is the one you have to use, ID is floating for Device Mode, ID to GND for HOST 41 - USB1.ID = ID pin for USB1 46 - VBUS = VBUS for USB1 43 - USB1.DP = USB1 D+ 48 - USB1.DM = USB1 D- USB2(new) HS in FS Mode, Host only. 44 - USB2.DM = USB2 D- 45 - USB2.DP = USB2 D+ 49 - USB2.OC = Input for external overcurrent sensor. 50 - USB2.EN = Ouput for external power switcher dipCoreF4_v2c.lbr
×
×
  • Create New...