• Content count

  • Joined

  • Last visited

Everything posted by TK.

  1. MCAN

    We could reserve a bootloader location to make this basic_node number configurable without touching the source code. Similar the way I did for other "permanent" flags & values. Best Regards, Thorsten.
  2. MIDI Implemtation for EUCON

    Reverse engineering a protocol for private purposes is one thing, publishing the information another. In any case: please don't publish any specific information about this protocol in this forum, this could bring me (as the forum owner) into serious legal issues! Best Regards, Thorsten. P.S.: I haven't looked into this protocol because I don't like the license. Anything which can't be openly published isn't interesting for my projects.
  3. It's unclear if I should really spend some more time to work on this. If I understood @weasel correctly, he sees a path via Arduino based solutions which he would prefer. In this case my contribution wouldn't add any value... just follow him. Best Regards, Thorsten.
  4. Impressive work! The WS2812 driver was only a quick hack, I was already satisfied after it was working and haven't expected that somebody would ever drive more than 50..100 LEDs. It shouldn't be a big deal to optimize the memory consumption. There are various places in MIOS32 where I already used DMA double buffers (e.g. I2S audio output). Nothing needs to be explored, just translation :) Best Regards, Thorsten.
  5. Yes, each RGB LED will consume 48 bytes. With the latest changes up to 390 RGB LEDs can be defined, and you will get a proper RAM error message if there are too much, such as: /opt/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/bin/ld: project_build/project.elf section `.bss' will not fit in region `RAM' /opt/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/../../../../arm-none-eabi/bin/ld: region `RAM' overflowed by 424 bytes collect2: error: ld returned 1 exit status Best Regards, Thorsten.
  6. Hi, STM32F4 was running out of memory - and due to an wrong linker file entry you haven't got an error after the 128k boundary of the "normal RAM" has been touched. However, this chip has some additional 64k as a so called "core coupled memory", which is located at 0x10000000 I changed the linker file and preload code to support this memory. In addition, in the MBNG application I moved the heap memory into this CCMRAM, giving us about 10k more space. Updates are available at github: I havent't checked if this has a new negative side effect, but at least MBNG is booting and RGB LEDs are working Best Regards, Thorsten.  
  7. MIDIbox KB

    This is a placeholder for the upcoming MIDIbox KB project. It's work in progress, some initial documentation can be found under It started in the one Fatar keyboard has already been successfully midified, some other (different types) will follow. :) If you've questions or suggestions for enhancements, just post them here. :) Best Regards, Thorsten.
  8. In the last days I worked on a major MBHP_MF update, mainly triggered by Screaming Rabbit who gave me a big package of different Alps faders for free! :) Design Targets: find a solution to handle high-quality faders like Alps K faders with "coreless" motors find a solution for MBHP_CORE_LPC17 which doesn't deliver stable enough ADC conversion results due to the reduced 3.3V voltage range find a solution for MBHP_CORE_LPC17 which cannot handle touch sensors properly without heavy CPU load (resp. without an additional external device or microcontroller) find a solution which is compatible with PIC based projects for best usability find a solution which is DIY friendly and doesn't require additional gear (e.g. chip programmer) for something which isn't part of the MBHP yet find a solution which can be easily tested and troubleshooted (no need to learn new processes) Following circuit is the result: a dedicated PIC controller controls the motorfaders directly it can be accessed via MIDI (only) - this allows standalone usage, cascading (to chain multiple modules), and the re-use of existing infrastructure such as MIOS, MIOS Studio and MIOS Bootloader the module can either be connected to a PC directly, or controlled from a second PIC or STM32 or LPC17 (note that MBHP_CORE_LPC17 has a third and even a fourth MIDI IO port at TTL level so that the available two MIDI IO pairs are still free) native support of various protocols (e.g. PitchBender, CCs, even Logic Control and Mackie Control Emulation) support for 8 touch sensors instead of TC4427 I'm using L293D now - not at least because of the integrated diodes. due to the direct motor control connections, the PIC is now able to generate PWM with 50 uS steps for improved motor speed control while a motor is moved since the firmware is dedicated for this task, there was enough memory free to integrate advanced features, such as runtime-calibration and motor position tracing Two snapshots of the prototype - currently I've only tested the circuit with high-quality K Faders, which were not properly controllable with MBHP_MF_V1 Meanwhile PCBs are available (layout created by SmashTV - thank you!!! :) ) MIOS Studio got a new configuration tool: Especially the calibration is much easier now, not at least because of the new motor position tracing feature: Currently following modes are planned: [*] PitchBender Chn#1..#8 [*] PitchBender Chn#9..#16 [*] CC#07 Chn#1..#8 [*] CC#07 Chn#9..#16 [*] CC#16..#23 Chn#1 [*] CC#24..#31 Chn#1 [*] Faked Logic Control [*] Faked Logic Control Extension [*] Faked Mackie Control [*] Faked Mackie Control Extension There is no real need to add more modes, considered that MIDI events can be mapped on the host PC and/or from another microcontroller (like Core32) which uses MBHP_MF_V3 as a companion. By using Pitchbender events, the highest resolution (10bit) is available. More about this topic (e.g. test of different motorfaders) after holidays. :) Best Regards, Thorsten.
  9. MIDIbox SID Walkthrough

    The collection of problems reported in the last weeks, and the appr. solutions, can now be found here: This is a living document which will be enhanced in future Please let me know, if an important hint is missing Best Regards, Thorsten.
  10. Hi *, this thread informs you about the latest release, and it gives you the possibility to write down your feedback (bug reports, questions about existing features, suggestions for new features, etc...) The current MBSEQ V4 release can be downloaded from Please read the CHANGELOG.txt for latest changes Documentation: IntroductionHardwareFrontpanelInstallationTutorialsMenu PagesSessions16x16+X Button/LED MatrixOSC OptionV3->V4 UpgradeFirst Steps (not ready yet)Known issues and Troubeshooting tips (no known issues yet ;))  Best Regards, Thorsten.
  11. MIDIbox SEQ V4 Release + Feedback

    Source code is here: Beat Light is controlled in src/seq_ui.c: (search for BEAT) The problem is understood - it appears on frontpanels with single colour LEDs (MEASURE not assigned).  However, a quick fix is easy: just replace SEQ_LED_PinSet(seq_hwcfg_led.beat, (seq_hwcfg_led.measure && measure_led_on) ? 0 : beat_led_on); by if( seq_hwcfg_led.measure != 0xffff ) SEQ_LED_PinSet(seq_hwcfg_led.beat, (seq_hwcfg_led.measure && measure_led_on) ? 0 : beat_led_on); else SEQ_LED_PinSet(seq_hwcfg_led.beat, beat_led_on); Untested code Please let me know if it works, so that I will bring it into the repo   Concerning mirrored Roll parameter: that's normal if the parameter layer is only 16 steps. It's due to a memory limitation - drum tracks can only store 1024 parameters, and they are partitioned over the number of drum tracks and parameter layers Best Regards, Thorsten.
  12. The workflow can be much easier: just clone the worktree, create a branch, commit into this branch how often you want, push to GitHub whenever you want to ensure that your work doesn't get lost (and want that other people can access your changes). There are various tools to display code changes between branches, between your commit, etc. also locally without the need for a webserver. E.g. I'm using "gitk", but there might be many others. But uploading to GitHub is preferred - not only for backup reasons, but also to allow later merging into master branch via pull request + review from my side. Best Regards, Thorsten.
  13. Hi, actually environment variables are "local" in your shell. Which means, if you open multiple shells you can set the variables to different values in order to work on multiple projects in parallel. Build objects are created locally in your app folder as well. Or you could create a small shell script which sets the variables before calling "make" - this way you could work from a single terminal. Or you quickly switch between the setups by sourcing one of the "source_me_*" files in the base directory: Of course, it's also possible to create different GIT clones which makes sense if you work in separate branches for each activity. Best Regards, Thorsten.
  14. Hi *, The MIOS repositories are now hosted at Github: This should improve collaboration in future, because branching in GIT is much easier. It's not possible to access the old subversion repositories via SSH anymore, in future changes can only be pushed into the new GIT repositories. There are tons of documentation how to use GIT on the web, therefore I won't repeat this here. ;) Just want to mention the general workflow: we use a simplified workflow without develop branch, so: master is the latest everybody who want's to contribute has to create a feature branch, e.g. feature/my_project once you are fine with your changes, create a pull request from your branch into master, and set me as a reviewer I will review your changes, and if they are fine I will integrate them into master meanwhile everybody is able to work with your changes by switching to your feature branch Currently we've only one branch: feature/mcan (from Bruno) How to contribute: create a github account (if you don't already have one) register your SSH key in the profile inform me about your account name so that I can add it to the midibox project now you can clone the repository with git clone ssh:// Within this repository you can create a branch with: git checkout master -b feature/<your-branch-name> You can commit changes with git commit . resp. "git commit" if you've indexed the files with "git add" before You can push committed changes to github with git push If you are working from a fresh clone, use "git checkout feature/<name>" to select your feature branch With "git branch -a" you will get an overview about the branches. There are also various GUIs available to display changes in your local repository, e.g. I prefer "gitk" Best Regards, Thorsten. P.S.: Wiki and ucapps documentation will be updated in some weeks once the new workflow is settled ;)
  15. The Ctrlr based panel for MBSID V2 is up&running, and I must say that it was really a challenge! But at the end it was less effort than programming this editor as a native Juce application because Lua scripting is sufficient (and fun!) - and we will get AU and VST support for free! The panel can be downloaded from this location:   Ctrlr can be downloaded from I tested this with Ctrlr_262f2710.dmg (version from 14. April 2014) under MacOS For Windows take Ctrlr_ac6a3185.exe edit hawkeye (in 2018): here is a current link to Ctrlr_ac6a3185.exe (needed for TK.'s panel) - thanks to goyousalukis for searching!   Some snapshots: Lead Engine OSCs: Bassline Engine OSCs: Bassline Sequencer: Drum Engine instruments: Drum Sequencer: Multi Engine: Release mail (with some technical background) to the Ctrlr community: Have fun! Best Regards, Thorsten.
  16. Hi, just would like to let you know, that I started to migrate MIOS Studio to the latest Juce version (5.4.3) - previously we used a pretty old one (I even don't remember the version number) which doesn't work properly with newer OS versions such as Windows 10. The hope is, that the update will solve these issues - if not we had no luck (I won't spend much debug effort there...) Best Regards, Thorsten.
  17. @Digineuralthanks for the info! I've to explore Dockerfile, it promises high potential :) @Phatlineunfortunately I don't understand the problem, I haven't provided the package as a "rar" file, and the binary works with various Linux installations that I tried so far. There seems to be something wrong with your OS installation (maybe you are using an expert system?), but I fear that I can't give you more hints. @Elektruckas long as you are the only Win10 user who has this problem with SD Card uploads I won't start to analyze this. MIOS Studio 2.4.8 is released now @ - let's see if additional users report problems; the legacy 2.4.6 files are still accessible from the same page to ensure that nobody is blocked by the progress (only 64bit systems supported anymore) Best Regards, Thorsten.
  18. Yes, 64bit only. The MacOS build should show the same functionality and robustness like 2.4.6, therefore you won't miss anything on your older computer :) Best Regards, Thorsten.
  19. MIDIbox SEQ V4 Release + Feedback

    You can achieve similar things with the duplication Fx, see (search for Fx Dupl) It isn't so flexible like this app, but at least you can define the number of channels (= voices) + the first channel. Either select alternate or random channel mode. Works also well with echo Fx btw :) -> mbseqv4_demo_dupl_fx.mp3 Best Regards, Thorsten.
  20. This was a long journey - jumping between three computers to ensure a consistent reproducible build state in the repository (which is now hosted at Github) Please try: MacOS: Linux: Win10 64bit: Best Regards, Thorsten.
  21. yes Best Regards, Thorsten.
  22. MIDIbox SEQ V4 Release + Feedback

    Track information is stored in the bank files (MBSEQ_B1.V4 .. MBSEQ_B4.V4) in "compressed" binary format. You won't be able to decode them directly. But you could export a track as a preset, this will decode the binary and store in readable (and editable) text format. After edit just import back to take over the modifications Best Regards, Thorsten.
  23. I don't plan to change the theme, because I like it as it is. Please don't expect so many changes from my side - I spend my time to migrate to latest Juce version, that's all. Best Regards, Thorsten,
  24. MIDIbox CV V2 Concept

    (continued from ) It's funny that you ask for this today, because currently I'm planning the "full featured" control surface of the upcoming MIDIbox CV V2 application. In distance to MBCV V1 it uses the MBSID sound engine, optimized for the needs for a CV controller. It features two LFOs, ENV, ARP... per channel! And with a much higher update rate than MBSID V2 (I think that up to 5 kHz can be achieved when all modulators are running in parallel, by disabling modulators even higher frequencies are possible) -> even FM modulation is possible by using two LFOs in "fast" mode /edit: meanwhile the feature list has been enhanced by a second multi-stage ENV2, a modulation and a trigger matrix! The sequencers (bassline/wavetable) will be integrated later, so: they will be available as well of course! Here the current list of parameters: /edit: removed, since it's obsolete! I'm still a bit uncertain how to continue this project, because I think that without a good control surface it won't be usable in practice. The SCS (Standard Control Surface) (2x20 LCD + 4 menu buttons + SHIFT button + encoder) gives access to all parameters, but the usage is too cumbersome. Therefore I thought that I should start with a "virtual control surface" by using Lemur, and once I'm happy with it, I can translate it into hardware. ;) Any additional ideas? E.g. how would your "dream interface" for this project look like? Best Regards, Thorsten.   /edit: meanwhile we've a demo video! :-)  
  25. MIDIbox SEQ V4 Release + Feedback

    This is what I tested: MIDI menu: Bus1 listens to Bus4 (but All would work as well) and Channel All; Mode: Jam Mixer menu, Page1 (MIDI Port): selected Bus4 In same menu, press SHIFT and GP9 (CC1) - this will allow you to configure the CC numbers sent by CC1 layer Event menu: one layer configured for CC, CC number could be configured but you can also leave it "off" - in this case the incoming CC number will be taken over during recording Enabled Live Record + Live function Back to mixer page #9 (CC1): turn knob to send CC, it should be recorded Best Regards, Thorsten.