Search the Community
Showing results for tags 'NG'.
-
Hi, I built two identical controller keyboards using CORE_STM32F4 running MIDIbox NG. They currently feature analog ins, two wheels and octave up/down buttons. It was very hard and time consuming to build these without a proper workshop (used mainly beech wood and aluminium). Issues: #1 One big problem i have is that the velocity resolution is very low. It looks like just 5-10 values are generated, nothing in between. It's too coarse for playing properly. #2 Another problem is that i get random pitch wheel values when in zero position. I wonder if there is kind of a plateau range around the zero position to mitigate that. Or maybe it's because of a faulty pot? Thanks for your help
-
[FS] Transformed Tascam MM-RC with LPC17 core (MB-NG) - Belgium
Holyver posted a topic in Fleamarket
Dear MidiBox fanatics, I'm selling this unit, which is the fine work of forum member rvlt. I cannot explain it better than he did, so I'm going to refer to his original post: https://midibox.org/forums/topic/20815-sold-midi-daw-remote-control-logic-control-tascam/ I thought it would be great for a new project (still think so), but life got in the way, and it has been in the closet since I bought it more than 4 years a ago. It deserves a better home. I tested it back then, and everything worked fine. I cannot provide any more technical details or support for it, but I can provide you with all the files of the original development I received from the seller when I bought it. It would not be fair to expect rvlt to provide any support for this, so this is probably more for someone who feels at home in the MIDIBOX ecosystem It would be great to fetch around the same price that I paid myself (€180) but I'm certainly open to offers. I am located in Gent, Belgium, but shipping shouldn't be a problem. Kind regards, Olivier -
SSl Blog Post 02 Hello again, Last time I wrote about the design process of my console. In this post I want to focus on the electronic part. In the last couple of weeks I searched for the right knobs, faders and pots for the project and I nearly found all I need. The pots were the simplest part. I opted for the Alpha 10k Lin https://www.musikding.de/Alpha-Potentiometer-16mm-10k-lin Each channel will have one motorized fader. Here I choose the PSM01-082A-103B2. https://www.mouser.de/ProductDetail/bourns/psm01-082a-103b2/?qs=MAZTpT1IVl8rvdecO07rRA==&countrycode=DE¤cycode=EUR 14,76€ when I buy more than 25 is a good deal I think. The ones from alps are very pretty, but with prices over 30€ per piece they are quite expensive especially because I need 33. For the bus channels I opted for simple 60mm faders. Also 10k lin, not very investing. https://www.reichelt.de/schiebepotentiometer-stereo-10-kohm-linear-rs60n12-lin10k-p73870.html?&trstct=pol_1&nbc=1 The knobs where a little harder to find. For the Solo Cut and Rec knobs I want to have knobs with Leds which I can connect to an DOUT module separately. So I could press Solo on the console but deactivate it inside my DAW and the LED would follow my actions. After quite a bit of searching and some phone calls with distributors I finally found these. https://de.farnell.com/nidec-copal-electronics/cfpb-1cc-4w9/drucktaster-spst-0-005a-5vdc-panel/dp/3498758 The knobs inside the channel strip are still to be found. The need to be snapaction knobs with a white cap with the measurements of 5mm per side. I couldn’t finde the right ones even after quite some hours of searching. Maybe I’m just searching without the right search terms? Maybe someone of you knows the answer to that problem I didn’t start the search for LEDs just yet. I think and hope these should be easy to find. For the modules I chose STM32F4 for the cores, AINSER 64 for the pots and faders, NG MF for the motorfaders, DIN for the knobs and DOUT for the LEDs. I especially need quite a lot of AINSER modules and I’m still figuring out a way to connect more than two to an STM32F4. I found some blogposts but could get the answer out of these. They suggested it should be even possible to connect more than three? I obviously want to use as less cores as possible. This build will be huge either way. I can connect the MF modules directly to a pc without a pc. Thats what is written on the website. But how do I connect these to the pc? Via midi? There is no USB port on these modules right? And I also should cascade them. I need 5 modules. I want to use 33 motorized faders and that’s quite unfortunate because every mf module only supports 8. How do I cascade these modules? Also via MIDI? The last problem I ran into is the meter bridge. This could be a whole blogpost of its own… My plan was, or partly still is to use 10 7“ displays connected to a 10 times HDMI splitter, which tells the PC there is only one REALLY big screen. But after buying quite some displays to test out I figured out 90% of the screens for sale online are totally crap! Ok, I searched for quite cheep ones, but I need 10 of them and if I had unlimited money I would buy the original ORIGIN console… But I don’t have access to unlimited amounts of cash so I need a cheap display which works. The first one I ordered was the perfect size and easy to operate. But I only could see the image looking from one specific angle. Moving my head just a little bit the whole display would turn blue. The second one was advertised to be 7“, but the one that were delivered to my was only 3,5“…are you kidding me? Out of anger I searched for analog VU meters. I really like the looks of these and figured out these work with voltage. Is it possible to drive VU meters with a midibox module? Maybe with an AOUT module? So many more questions but I already wrote a whole book here…sorry for that. If you still reading in this point thank you very much! Have a nice day! Frederik
-
I was wondering about if/how it is possible to access different .ngc files on an SD card without using the MIOS Studio "detour". My setup consists of the STM32F4 and two external, bidirectionally connected, MIDI hardware elements, one of which is supposed to be used to control the other. The configuration of this setup is obviously defined by NGC/NGR/NGL files. I use a bunch of different ones (can be called from an omni-accessible "main"-screen) for the same setup, but if I want to choose an entirely different configuration setup I would do so by entering "load xy" in the MIOS Studio terminal. I would like to avoid that and set up a kind of "configuration" menu from which I can somehow choose between different .ngc files which I can load to the core the same way I would do by typing in "load xy" in the MIOS terminal. The goal here is to load different control files to control various hardware devices. If anyone has ever done anything like that I would love to hear how you guys accomplished that!
-
I found some posts here with similar thematics, but it did never seem quite covered for my application case, so I thought I'd start a new one.. I am reading and processing a program parameter dump from a hardware synthesizer, and some of its parameters are woven into one single byte of the dump (for example the activation and polarity of certain envelope parameters can be (de-)activated/polarity-switched). And since I want to control these parameters from a hardware controller, I need to read and display the, currently set, values on the controller's displays. That is why I am calling syxdump_pos=x:y a lot... It would therefore be perfect to have something like syxdump_pos=x:y:z to call for subdivisions/single-bits. I guess the way to achieve this would be altering the MBNG_EVENT_NotifySyxDump function in in the mbng_event.c file, but I'm not sure how to approach this... Has anyone else ever done anything similar? Or maybe found another way around it?
-
This seems almost too basic inquire about, but I just can't get my head around how the switching of a dummy button's state back to zero can be done after it has been triggered for the first time to switch from zero to one. The code below is my basic approach, which works up to the point that button 1 has been toggled from 0 to 1. Only then does the 2nd receiver react etc. I think this is clear. But the push of the hardware encoder identified by receiver 1 should obviously also be able to toggle the button back to state 0. How do you guys do this? #receiver to accept mackie knob push EVENT_RECEIVER id= 1 fwd_id=SENDER:1 type=NoteOn chn=1 key= 45 range= 0:127 #letting through only 127 to prevent a double triggering by the note off (vel 0) event EVENT_SENDER id= 1 hw_id= 1 type=Meta if_equal=RECEIVER:1:127 meta=SendEvent:BUTTON:1:0:1 EVENT_BUTTON id= 1 type=CC button_mode=Toggle range= 0:1 #this receiver will only work after button 1 has been triggered EVENT_RECEIVER id= 2 fwd_id=SENDER:2 type=NoteOn chn=1 if_equal=BUTTON:1:1 key= 44 range= 127:127 EVENT_SENDER id= 2 type=CC range=0:127 It can not be that complicated I'm probably missing something syntax-wise. And I know this could also be handled by an NGR script, but I have a feeling that I am thinking too complicated. Could anyone maybe show an example of how he/she used a dummy button to enable/disable a functionality in his/her project? Any excerpts would be highly appreciated! EDIT: Ok, so I think this example is a bit more tidied up.. #receiver to accept mackie knob push EVENT_RECEIVER id= 1 bank= 0 fwd_id=SENDER:1 type=NoteOn chn=1 key= 45 range= 0:1 EVENT_SENDER id= 1 hw_id= 1 bank= 0 fwd_id=BUTTON:1 if_equal=RECEIVER:1:1 #dummy button EVENT_BUTTON id= 1 bank= 0 type=CC button_mode=Toggle range= 0:1 #if the dummy is not highlighted (value=0) select it and set its value to 1 EVENT_SENDER id= 4 hw_id= 2 type=Meta meta=SendEvent:BUTTON:1:1:1 #if the dummy is highlighted (value=1) select it and set its value to 0 EVENT_SENDER id= 5 hw_id= 2 type=Meta meta=SendEvent:BUTTON:1:0:0 EVENT_RECEIVER id= 10 fwd_id=SENDER:10 type=NoteOn chn=1 if_equal=BUTTON:1:1 key= 44 range= 0:127 EVENT_SENDER id= 10 type=CC range=0:127 EVENT_RECEIVER id= 11 fwd_id=SENDER:11 type=NoteOn chn=1 if_equal=BUTTON:1:0 key= 46 range= 0:127 EVENT_SENDER id= 11 type=CC range=0:127 On program startup the Button's value is 0, so key 46 can be triggered (44 is disabled) and after triggering key 45 the button's value is set to 1, as intended.Thus, key 46 is disabled and key 44 now triggerable. But another push on key 45 does not revert the effect! The problem has to lie somewhere in the SENDERs 4&5, but I still do not get how else it should be done.
-
I keep on receiving this error (topic title) in MIOS32 after switching between sections via my ngr script which proceeds to request store SysEx dumps from a connected synth. I have a firm belief about what probably causes the error (the error I could not resolve by research, though.. the term malloc just leads me to think, that there is some memory that is not being freed properly after use) What I did in my c files was introducing a new kind of variable (called ^macdis) for use in SysEx stream sending. What it does is that it resolves a value from a sysEx dump (identified by syxdump_pos:x:y) into a 6-field u8 array to be further used for sending it to a Mackie C4, which uses it to display the value on six fields of one of its displays. I herefore instanciate a u8[6] array here: s32 MBNG_EVENT_SendSysExStream(mios32_midi_port_t port, mbng_event_item_t *item) { u8 *stream_in = item->stream; u32 stream_size = item->stream_size; s16 item_value = item->value; //initialize array and pointer for the 6-field Display values u8 *macdis_array; macdis_array = (u8 *)malloc(sizeof(u8)*6); ..... And I have a feeling that I just did not fully get my head around the whole pointer thing. After repeatedly calling my ngr section 1, which requests and receives the dump and subsequently uses the ^macdis flag to print one value on the mackie (and herefore using the array, which I want to be ONE array, that is cleared after the processing of one incoming value and then used for the next) the error comes up and the whole thing crashes of course. Here is how the (relevant part of) code in mbng_event.c goes on: case MBNG_EVENT_SYSEX_VAR_MACDIS: { int i, j, rest; u8 num = item_value; for(i=5;i>=0;i--){ if(i == 0 || i == 4 || i == 5){ macdis_array = 0x2d; } else{ if(num > 0){ rest = num%10; num /= 10; switch(rest){ case 0: macdis_array = 0x30; break; case 1: macdis_array = 0x31; break; case 2: macdis_array = 0x32; break; case 3: macdis_array = 0x33; break; case 4: macdis_array = 0x34; break; case 5: macdis_array = 0x35; break; case 6: macdis_array = 0x36; break; case 7: macdis_array = 0x37; break; case 8: macdis_array = 0x38; break; case 9: macdis_array = 0x39; break; default: macdis_array = 0x2d; break; } } else{ macdis_array = 0x30; } } } for(j=0;j<6;j++){ MBNG_EVENT_ADD_STREAM(macdis_array[j] & 0x7f); } } break; Since I cannot resolve the error by reasearch I would be grateful for anyone, who might take a quick glance at my code. Maybe someone, who is a bit more experienced in C than I am might see the (possibly obvious) error
-
So at one point during my development of an app on NG basis on a STM32F4 core, my SesEx tool stopped working. I used it to send messages to both a Mackie C4 and a Korg M3R, which both responded in the beginning. The confusing thing is, that I can still communicate with both via my .ngc and .ngl scripts. I address them both by their ports (Macke on MIDI port 1 = 1000100000001000; M3R on MIDI port 2 = 0100010000000000) and there it works! Still something must have been misconfigured on the way and I can't imagine what, because I'm still pretty much in the beginning. I also used to get SysEx dumps form the M3R on request, which also stopped working..
-
So I am planning to build a microcontroller as an interface between a Mackie C4 Pro and, theoretically, any kind of Hardware/Software component. The component that is to be controlled will be determined, and the configurations specified, by templates which will be stored on an SD card. To realize this I will be using the STM32F4 module with the SD card interface and a MIDI 2x2 module. Eventually another 2x2 is planned to additionally connect a MIDI keyboard. I am a newbie to the MIDIbox forum so I started researching and decided to take the NG project as a starting point. To me this means that in order to implement this I need to alter the .ngc .ngl and .ngr files to a) have a communication with the Mackie that will, basically, always stay the same and b) generically prepare the other side of the microcontroller so that the user can specify the mappings to his hardware/software himself. RPN, NRPN and SysEx must be possible. This of course means that the chosen parameters and their state will be required to be displayed on the Mackie's displays, which, after reading the NG and STM32F4 specifications, I think is possible. A final requirement is that the configurations will have to be stored into a textfile (I was thinking XML) so that the user won't need to actually open the .ngc files and do his settings there, but rather that on startup the device considers the textfile as belonging to a certain configuration file, checks if something was altered in the textfile, if so applies it to the configuration data and then sets that up as the current configuration state. What do you guys think? Does that sound possible? Did I choose the right components? And has anyone ever done something similar and encountered problems that maybe I could encounter too?
-
From the album: Midibox NG
-
Hey everybody Today, I tried to get a step further with my synth and start configuring snapshot functionalities. Unfortunately, I didn't get very far. I can set snapshot numbers and save or dump them. I don't get the exact difference, but I belief that saving means that the last event state is being saved and dump means that all ID's states get saved (except the nodump ones). Can somebody confirm this assumption? As far as I understand, 127 different snapshots (127 times all ID's states) can be saved/dumped into one .NGS file. When I do this (via SCS standard menu or a self configured shortcut using the meta events DumpSnapshot and LoadSnapshot), the NGS file gets a bit larger, whenever I save to a new snapshot number. Also when I load a snapshot, I receive the line "loading snapshot #0 from /DEFAULT.NGS" in the MIOS monitor. If done via SCS menu, I get the confirmation on the LCD saying that all went well. However, no values get set if I load. Or in other words, if I dump two different snapshots and change one toggle button state, loading the snapshots won't load one or the other button state. I do load snapshot 0 in section 0 of my .NGR (at reset). This usually works and I get a "save state" in order for the synth to operate correctly. Unfortunately, sometimes, this dump gets corrupted as well and I have to dial in everything again. (@Thorsten: If you read this, the automatic dump every couple of seconds caused some timing problems which caused short audible interruptions when playing notes, so I had to disable it) Some special configurations of my Midibox could cause problems: - The load Snapshot 0 in section 0 might somehow trigger and reload dump Nr. 0. However, this should not happen and of course I tried without this code line and it didn't change anything. - I do have a couple of LEDs which I set in the .NGR script. I don't know if these get dumped as well and if loading also triggers the events which these sections get executed, so the LEDs get correctly set. - Some rotary switches trigger .NGR scripts which set LEDs in a binary fashion. Again, I am not sure if the states of these LEDs get dumped and if the scripts get triggered after reload. However, it doesn't work with simple events like EVENT_BUTTON id= 1088 type=CC fwd_id=LED:2048 button_mode=Toggle chn= 1 cc= 110 range= 0:127 lcd_pos=1:1:5 label="LFO Freq ^highlow " for example. Unfortunately, I don't get it how the .NGS file is structured in order to check how different snapshots differ. Does anybody have some experience with the whole snapshot thing and can give me some guidance? Should this all work one day, I would like to save some presets. Actually, I would like to try to convert the preset file from the original Moog Voyager and somehow upload these presets onto my midibox. I have Banks from A-E with 127 presets each. As far as I understand, "Bank" and "Patch" cannot be used for this, since these terms are used in different ways as they might suggest. The way I see it, I can do this by saving them in different .NGS files. However, I am not sure, if I have to create .NGC, .NGL and .NGR files with corresponding names in order for this to work as I would like or if multiple .NGS files can be loaded with one set of configuration files. Converting the original presets is going to be challenging, but maybe somebody has an idea how to do this as well? I am running Midibox NG V1.035 by the way. As always, help is very much appreciated. Cheers, Andy default.ngl default.ngr DEFAULT.NGS
-
I'm trying to build a Midibox NG interface for a guitar preamp. I have built the hardware consisting of 12 encoders, 3 toggle switches, 1 LCD, a few LEDS on a DOUT. I have 2 different DEFAULT.NGC files (representing Mode 1 & 2 Below) with Switch 2 banking encoders 1-8. The hardware is tested and working for each NGC file. :smile: I need to combine the code from both NGC files and add encoders 9-12 with banks of their own, responding independently of banks 1&2. (Is this possible?) I also intend to add Mode 3 to Switch 1 soon. This is how I want it to work: Switch 1 : Mode 1 => Switch 2 (banks 1 & 2 for encoders 1-8), Switch 3 (banks 3,4,5 for encoders 9-12) Switch 1 : Mode 2 => Switch 2 (banks 6 & 7 for encoders 1-8), Switch 3 (banks 8,9,10 for encoders 9-12) Switch 1 : Mode 3 => Switch 2 (banks 11 & 12 for encoders 1-8), Switch 3 (banks 13,14,15 for encoders 9-12) But I am confused on how to accomplish this. Should I use radio buttons, Meta events, can banks be inside other banks? Any help would be very appreciated. Thanks GuitarNut
-
I may have messed up my STM32F4 board. I accidentally plugged the 74HCT541 in backwards while trying to power it up for the first time. No lights came on. I replaced both chips on the core module and got the boot loader and LCD working. I installed Midibox NG 1.032 but my SD card fails. :( From MIOS Studio 2.4.6 (here are the details) [319531.507] sdcard [319531.499] SD Card Informations [319531.500] ==================== [319531.500] ERROR: Reading CID failed with status -256! [319531.500] ERROR: Reading CSD failed with status -256! [319531.500] [319531.500] Reading Root Directory [319531.500] ====================== [319531.500] SD Card: not connected [319531.500] Failed to open root directory - error status: 12 [319531.500] done. I tried two 8 gig sd cards (one Ultra) format FAT 32. ========================== I checked continuity between the solder pads of the sd card before assembly nothing seemed to be causing a short circuit. Is there a way to trouble shoot SDCard or Connector and the STM32F4 board ? I couldn't locate error status codes while searching the forum. Thanks, A confused GuitarNut
- 6 replies
-
- sd card error
- ng
-
(and 1 more)
Tagged with:
-
From the album: RTPMIDI_CORE_STM32
Picture of the first assembled RTP-MIDI CORE STM32F4 board, equipped with the RTP-MIDI OEM module, and doing the first test run.© BEB
-
From the album: Marxon's M³ - MarxonMixvibesMidibox
Wiring of a "JY-MCU OLED Module v1.5" SSD1306 display -
Hello all, as I told in the thread dedicated to the RTP-MIDI compatible NG board I made, I added some expansion ports to the board, not only for the KissBox but also for something else on which I am working since a long time... It's time now to reveal what I am working on :smile: Since a very long time, I work on the idea to ressucitate the Soundart Chameleon, and since the beginning, I am convinced that the MIDIBox NG CPU is the right base for it. For those who do not know what the Chameleon was: the Soundart Chameleon was an hardware synthesizer, built around a DSP56300 and a Coldfire microcontroller. The whole software base was completely opened, and it was possible to write your own synthesizer application. The bad thing is that Soundard went bankrupt, and Chameleon disappeared, which is a pity, considering that the idea was brilliant, and the price was affordable for such a machine. The MIDI part of the Chameleon was running under MIDIShare (a open concept, similar in many ways to MIOS), and it was responsible of loading the DSP code. Then come the DSP problem... I program and design DSP boards since a long, long time for pro audio and music applications, and I know quite well that DSP may seem out of reach for DIY community. We are facing two problems : price and tooling. Almost all DSP uses BGA and other SMD industrial packages, making the idea of DIY board really out of reach for most of MIDIBox members. Making the PCB is not really a problem anymore, but soldering these chips by hand is most of the time impossible. Even "low end" DSP like the VLSI and the Spin FV-1 are SMD. So I looked to two other solutions : recycling ASX/i-CON/Plugiator boards or use Analog Devices EZ-Kit boards For both of them, the cost is roughly the same (around 350 euros for a board - ouch!), but there is nothing to do at hardware level. If you think it's expensive, just take a look to the Monome Aleph.... 1400 dollars!!!! The Aleph is partially open source (hardware is closed source), and the software is still quite limited today (as far as I know, the Aleph only have one synth project for now). Even with a 500 dollars DSP board, a MIDIBox project would cost half this price (and would be compleetly open) From a personal point of view, the EZKit are much better (more audio I/O, more interfacing possibilities, complete documentation available, software toolchain delivered with the kit), but they are bigger and you must write your own software (but that's where I come into the game, since I will provide the code and support for the community) The ASX/iCON boards are delivered with three excellent software synths (the VST interface for them being simply awful however :sad: ), and they can be driven directly from MIDI I/O from the MIDIBox for simple projects. There is no technical documentation for these boards (I had to draw the schematics by myself, after hours and hours of investigation), and getting access to the DSP requires some modification (to inhibit the local processor and replace it with the MIDIBox board), but it's feasible I have included in the RTPMIDI_CORE board the connector needed to access the EZKit and ASX boards, so the link will be very easy to make between the two boards (see "MIDIBox goes RTP-MIDI" topic for details about this board), and I am currently coding and testing the library for the STM32 to load firmware in DSP board (take care, Analog Device calls it a bootloader too, but it has nothing to see with MIOS bootloader :shifty: ) I just expect now that this project will get some interest from the MIDIBox community I did not want to go into much details in this already quite long post, but of course, if you have any question... just ask (I am preparing some pictures of the first prototypes I made) Benoit
-
Hey. Ich habe mal ein kleines Programm geschrieben, welche dabei helfen soll einfach den NG Code zu erstellen. Ich dachte mir, gerade wenn man mehrere Buttons und LEDs hat und das noch auf mehreren Bänken wird es von Hand schnell sehr aufwändig alles anzupassen. Probiert es einfach mal aus. Tipp: wenn ihr bei Text "@ID" oder "@HWID" dazuschreibt, wird die ID bzw. HWID an der jeweiligen Stelle eingefügt (die " weglassen). Feedback, Bugs, eventuelle Fehler und Vorschläge könnt ihr natürlich gerne melden. Grüße Tom NG Code Tool.7z