Antichambre

Programmer
  • Content count

    976
  • Joined

  • Last visited

Everything posted by Antichambre

  1. The HAARP, an Hardware Advanced Arpeggiator.

    Yes for CAN, J18 is always the one. But Andy's wCore and Disco platform have only One-Wire connection. This one has Power pins for transceiver supply, RX and TX are separated. But you can add the regular Resistor and a Diode on the dipBoardF4 to link others Cores directly and easily with the One-Wire. This MCAN connector may be called J18E for 'extended' I suppose... A small transceiver module will be created to link the CAN bus with the external world, internally I planned to use the Euro Power connector, the power ribbon by using BUS1 and BUS2(last pins of the 16pins IDC) called CV and GATE sometime but never used in fact. Best regards Bruno
  2. Hello, This is an introduction for my new baby, a really funny toy, the HAARP (yes I like conspiracy theory ;) It's a pure MIDIbox Project, just a dedicated CS and some coding. It works with any STM32F4 Core.   Why? Many synths have an integrated arpeggiator, the SH-101 is well known for that, but the available parameters are still limited. There is also some good plug-in I think especially of the Ableton live's one but it's software. So I designed an hardware one, "LIVE" oriented, starting from the @TK.'s arp example. No encoder(except for MENU section Data entry), all parameters are directly accessible and are potentiometers. The screen is a small color TFT with a resolution of 128x160(sorry for picture, colors are better in real). It's 8 independent voices. 8 banks of 8 Presets. Session are saved/loaded from the SD Card. The Arpeggio parameters are divided in 3 sections: First is the TIMING Section (Purple pots): On/Off button, HOLD Button, it holds or releases the Notes in the notestack. The MODE Pot, it's UP, DOWN, UP-DOWN and AS-PLAYED, fr the moment but I will implement more. The RATE, from slowest to fastest, from 4 Bar to 32nd with dotted and Triplet value. The RESYNC, it retriggers the arpeggio, values are the same as RATE parameter. The OFFSET, it will shift left or right the starting step(note). Is Note Stack and MODE dependent. The DELAY, it will delay the whole arpeggio within the step range(duration), is RATE dependent. The GATE, the length of the Note, max is STEP length, is RATE dependent. The SHUFFLE, it will delay all the odd steps, in the range of an half step, is RATE dependent. Second is the TRANSPOSITION Section (Yellow, Orange, Red): Simple Transposition On/Off (Yellow). Simple OCTave Transposition, +/- 10. Simple SEMItone Transposition, +/-12 Repeat On/Off. Repeat, LOOPS number, 1 to 8. Repeat, SHIFTing on each loop, +/-32 semitones. Force to Scale On/Off Force To Scale, SCALE, list is the same as the Force to Scale example from the repo. Force To Scale, ROOT from C to B semitone. Third is the VELOCITY Section. REGEN Pre/Post(Target process) button. REGEN, +/- 100% Target process On/Off. TIME, the time to reach the target value, in PRE initial value is the regenerated value. in POST initial value is the one stored in the Note Stack. TARGET is the targetted value, 0 to 127. RETRIG, if on the TIME is retriggered by the RESYNC parameter.   The main page of the screen represents an octave range, the note color changes depending on the octave, there's a Velocity section on the bottom, it's like a piano-roll. In the code, the arpeggio processing is ready, it remains me to complete the MENU section, I was waiting for the CS PCB to write it, now I can... ;)   This little guy is to much fun, so I can't keep it for me. Then i will propose it to you ASAP. and I hope it will help me to finance some other bigger projects I've got in my back-pocket ;) I will try to make it available in two format, I'm currently working on a PCB for USB host/device, sdCard MIDI etc.. which will fit for both version and will be reuse for other small toys like that. An Eurorack version for the patching addicts. I used a MCP3204(4 channels) instead of a MCP3208(8 channels) for the AINSER, it's an AINSER32. I use only 2 channels for the 16 pots(8Multiplexed lines * 2 channels), it remains 16 analog Inputs which are accessible to connect some CV In Modules, thanks to @Hawkeye for making me think about this. The SRIO Chain is available too, you can connect GATE In (DIN) easily. You will be able to connect the MIDIPHY CV/GATE Out Modules which will be available soon. @latigid on is working on it. MCAN will be available, for an internal MIDI bus within your Eurorack, I reuse the BUS1 and 2 from the Euro Power connector for that purpose.   A Desktop version, for MIDI purpose only(except if i find a way to add some CV/Gate without designing a too much big box).   Voilà! More information will be available soon. For the moment this is a small video I made, I seem a little febrile but it's because I continue to discover it every day.   I really love this little toy, it is very effective and musical, even in LIVE and if the Force To Scale is activated, there's no wrong note ;) Best regards Bruno  
  3. The HAARP, an Hardware Advanced Arpeggiator.

    Autocad is my best friend since a long tilme now ;)  
  4. The HAARP, an Hardware Advanced Arpeggiator.

    Hi, This is some update about the Core part of the project, I just finished to design it, artwork is not perfect but PCB and assembly are ready. I achieve the size of 12 HP and a depth which doesn't exceed 45mm, overall with IDC connectors present at the back. I can reduce it to the previous 11 HP but result is less clean at the front and assembly is more complicated then it will be 12 HP. The features: Euro Module 12 HP x 45mm. 2 MIDI In/Out. 2 independent USB, one Device, one Host. Micro-SD Card. Reset and User Button. 2 leds. Power switch, acts on both external and USB power. It is optional. Automatic switching between the Power sources, EXT/USB. Priority to external first. Can be connected to a regular Euro power connector (IDC16), regulation from 12V. Can use 5V from your skiff or provide it to the bus. 'Regular' MIDIbox ports In the order: J4, IIC A and B. J5, internal ADC for 2 analogue Inputs. J8/9, SPI 5V(SRIO). J11(2xMIDI IO). J15, displays(serial only, 2 CS lines). J16E, SPI 3,3V, Reset and User buttons, 2 leds(. J18. MCAN, Ready for CAN transceiver or 'One-Wire' CAN connection. J19, SPI 5V.   Some 3D render:   The PCB, all SMD will be assembled by manufacturer. It can be used for small desktop project too.   I designed this module for the HAARP but it can be used for other application, you can use it with the MIDIPHY Analog modules to create the perfect interface for your modular system. And you can create your own Surface Control and/or your hybrid analogue modules. Voilà Best regards Bruno
  5. 1910-dipCoreF4-Euro-Assembly-Front.png

    From the album The HAARP

  6. 1910-dipCoreF4-Euro-Assembly-dim.png

    From the album The HAARP

  7. 1910-dipCoreF4-Euro-Assembly-3dfront.png

    From the album The HAARP

  8. 1910-dipCoreF4-Euro-Assembly-3dback.png

    From the album The HAARP

  9. 1910-dipCoreF4-Euro.png

    From the album The HAARP

  10. NRPN issues - can't go past NRPN #256

    Thanks man for having checking it. We can now put TK in the loop... @TK. ;) if you confirm it too, it can be modified in the repo. Best regards Bruno
  11. Speed up writing OLEDs

    What is the solution that you retain from this? You can use bitmaps, one for each screen, first you write into it then you transfer the whole bitmap to the screen one by one( cs by cs) and maybe only the one which has changed using some flag, the problem with this is that you will use a some of the RAM, 128*64*9/8=9216 bytes(9K), maybe not bad depending on your app. Best regards Bruno  
  12. [Pending Sale] MidiBox Seq V4 with BLM 16x4 and CV/Gate

    Yes just remember you also built a SeqV4+. ;)  
  13. [Pending Sale] MidiBox Seq V4 with BLM 16x4 and CV/Gate

    Beautiful design for both! No doubt you will sell it fastly!
  14. It was not all the time but more than other people for sure, electrostatic thing maybe, we never knew.
  15. I know a guy I used to work with who can't touch any computer because they hang. Yep it's strange sometimes ;)
  16. You're welcome, you can mark this topic as [SOLVED] ;) Best regards Bruno
  17. USB midi driver maybe and try all others USB ports.
  18. Yes this is disabling midi monitoring too, this can't help. it seems you're not alone I found more than 10 threads like this: https://www.steinberg.net/forums/viewtopic.php?t=117590 Unfortunately I didn't read any concrete solution.  
  19. Try also to desactive MIDI THRU in cubase midi settings... And if your midibox has regular MIDI and you own a midi interface try with it instead of USB directly. Note: if your're connected with usb there's no running status then Note Off must be received. Running status is only for regular midi connection(DIN) and MIOS studio marks the Note Off as "optimized" when it's the case.  
  20. Try with with an other midi monitor like midiOx(pc) or snoize(mac) depending on your separate music computer. And share the result...
  21. A Note On with a 0 velocity is always considered as a Note Off by most of midi gear, this is for the running status, to avoid its constantly change, and optimize the midi traffic. Are you sure Cubase receives 0 velocity first?
  22. NRPN issues - can't go past NRPN #256

    Anyway we will do a small debug test... For that you will need to recompile the MBNG app after modification... in mbng_file_c.c at line 812 replace this: //////////////////////////////////////////////////////////////////////////////////////////////// } else if( strcasecmp(parameter, "nrpn") == 0 ) { int value; if( (value=get_dec(value_str)) < 0 || value >= 16384 ) { #if DEBUG_VERBOSE_LEVEL >= 1 DEBUG_MSG("[MBNG_FILE_C:%d] ERROR: invalid NRPN number in EVENT_%s ... %s=%s\n", line, event, parameter, value_str); #endif return -1; } else { if( item.flags.type != MBNG_EVENT_TYPE_NRPN ) { #if DEBUG_VERBOSE_LEVEL >= 1 DEBUG_MSG("[MBNG_FILE_C:%d] WARNING: no NRPN number expected for EVENT_%s due to type: %s\n", line, event, MBNG_EVENT_ItemTypeStrGet(&item)); #endif } else { // no extra check if event_type already defined... stream[1] = value & 0xff; stream[2] = value >> 8; item.secondary_value = stream[1]; } } //////////////////////////////////////////////////////////////////////////////////////////////// by //////////////////////////////////////////////////////////////////////////////////////////////// } else if( strcasecmp(parameter, "nrpn") == 0 ) { int value; if( (value=get_dec(value_str)) < 0 || value >= 16384 ) { #if DEBUG_VERBOSE_LEVEL >= 1 DEBUG_MSG("[MBNG_FILE_C:%d] ERROR: invalid NRPN number in EVENT_%s ... %s=%s\n", line, event, parameter, value_str); #endif return -1; } else { if( item.flags.type != MBNG_EVENT_TYPE_NRPN ) { #if DEBUG_VERBOSE_LEVEL >= 1 DEBUG_MSG("[MBNG_FILE_C:%d] WARNING: no NRPN number expected for EVENT_%s due to type: %s\n", line, event, MBNG_EVENT_ItemTypeStrGet(&item)); #endif } else { // no extra check if event_type already defined... stream[1] = value & 0x7f; stream[2] = value >> 7; item.secondary_value = stream[1]; } } //////////////////////////////////////////////////////////////////////////////////////////////// Cause ! In this part of the parser there's something strange which is disturbing me at the end when the address is store in the item->stream we've got: // no extra check if event_type already defined... stream[1] = value & 0xff; stream[2] = value >> 8; item.secondary_value = stream[1]; but in the MBNG_EVENT_TYPE_NRPN part of the MBNG_EVENT_ItemSend function we've got: u16 nrpn_address = item->stream[1] | ((u16)item->stream[2] << 7); if I make the calculation like it is I find exactly your problem: In parser stream[1] = 261 & 0xff = 5 stream[2] = 261 >> 8 = 1 then in MBNG_EVENT_ItemSend u16 nrpn_address = item->stream[1] | ((u16)item->stream[2] << 7) = 5 | (1<<7) = 133 Address msb is not limited to 0 or 1, I think it's a masking and shifting error and bit 7 is lost, so make the test with // no extra check if event_type already defined... stream[1] = value & 0x7f; stream[2] = value >> 7; item.secondary_value = stream[1]; Please  
  23. NRPN issues - can't go past NRPN #256

    did you try the value in hexadecimal instead of decimal just to see? nrpn=261 is nrpn=0x105
  24. NRPN issues - can't go past NRPN #256

    Did you check with an other midi monitor, like midi-ox(PC) or snoize(MAC) Just to be sure it's not a mios studio issue.