Reggie

Want to develop, not sure where to start?

9 posts in this topic

Hi All, I have an stm32F4 discovery board and I'd like to start developing for it using midibox.

 

I had a look through the wiki and by the looks of it, as I'm using windows this is what I need:

http://www.midibox.org/dokuwiki/doku.php?id=windows_mios32_toolchain_core

 

However, the tutorial is for windows XP so I wonder if it's still relevant to me as I'm using windows 7?

 

I'm also unsure as to exactly what I'll need for particular projects, I envisage having the core stm32F4 board as a midi engine connected to a PC and with an external usb control surface (keyboard, mixer, dj controller), I know there is usb-midi host mode support, so is it possible to build a midibox project with just that setup? Obviously ignoring things like the FM synth which requires external parts.

 

I have 4 programmable midi controllers (2 keyboards, 1 with 16 pots, 1 with 16 encoders + 16 programmable pads , custom midi controller with 32buttons notes or CCs and 8pots and lastly a peavey pc1600x, so I figure I'm pretty much covered for control via midi.

Share this post


Link to post
Share on other sites

Hi Reggie. You should be able to use the windows xp setup for windows 7.  Most of the legwork is already done for you but you may have to upgrade yourSVN client or some small parts here and there.  The biggest hurdle that most people run into is not setting up their environment variables correctly.  

 

If you're not familiar with C/C++ or gcc, you will have a steep learning curve but definately doable.  I develop in the MonoDevelop IDE which is free and fairly painless.  You can use notepad++ or any other IDE with custom makefile integration.

 

You don't need a board to start developing but you will once its time to debug.  At the very least, order a board and a 2x20 CLCD and expand as your needs change.  I've found the Programming Tutorials section to be immensely useful when digesting a concept.  In time, you may want to add a Standard Control Surface to your STM32. 

 

Depending on you're requirements however, the MB-NG might be enough to get things working the way you intend so consider that route before going into custom application development.

 

Have fun.

Edited by Digineural

Share this post


Link to post
Share on other sites

Hi Digineural, I am reasonably familiar with C/C++ and gcc mainly on linux and I setup a toolchain in windows last week for the stm32F4-Discovery board, it was a bit of a pain to get there though but I have it set up with eclipse or the console + context (text editor) now.  I already own the board btw.  I currently have it running an open source synth firmware that I'm editing to make it a bit more useable/useful, it's a great little synth, got lots of randomisers on it though, so I'm adding functions in to split them off into more manageable sections, also adding higher resolution controls, 7bit midi is not so great with the amount of resolution the synth has got under the hood so I'm adding support for encoders on some functions. 

 

https://github.com/MrBlueXav/Dekrispator

 

I don't want to do the author (MrBlueXav) any injustice, it's a fantastic sounding synth in it's own right but it was built to be more of a random noise/pattern maker as it stands.  I'm just adding functions where necessary..

 

 

 

just making sure things were ok with the instructions before I dive down another rabbit hole.....

 

I had thoughts about an LCD but I'm not so keen on using a 2x20 display, nothing wrong with them as such, I just have other options I could probably use.  a couple of arm quad core dev boards, one with a 7" cap touchscreen, both with linux and android support and hdmi out, networking, + access to gpio, uart, USB etc.  I'm figuring a control surface done with ctrlr + mouse and keyboard would be reasonable.

Share this post


Link to post
Share on other sites

Hi Yogi, thanks :-)  It's a great little synth, I thought it would go really nice with midibox, the random stuff does produce a lot of pure noise, the magicPatch and magicFX functions are pretty savage, they leave no stone unturned :D  I've made some alterations I think are useful, I'll list a few of them:

encoder support for filter 1 and 2 frequency, 80hz-8000hz in 1hz increments (the encoders on the arturia minilab have acceleration)

encoder support for tempo, 20bpm to 520bpm in 1bpm increments (can be set to any resolution you like)

split MagicFX randomiser into magicDelay, MagicPhaser, MagicChorus, makes the randomness a lot more manageable, easy to get very interesting variation over sounds

Added straight 16 step sequence playback support, the sequencer was really just randomly picking notes from a scale over an octave spread with the existing patterns, now it will play hardcoded 16 step sequences you can still set the octave spread if you want.

 

I'd really like to get the midi control formalised on it, it seems a little bit clunky in the assignment of CCs and slightly wasteful of them in some areas, it's been built really for any keyboard with an assignable fader(s) or pots and some pads, so 0-127 7bit values, complimenting anything that could do with finer control (I'm thinking anything with a frequency control or time control etc.) with inc/dec via encoders instantly becomes even better, the difference it's made to the filters is fantastic.

 

There is some tradeoff with the encoders and fine control, you can't do large sweeps in 1hz/step resolution, this can be mitigated though, I have put code in for multipliers and I've left the original code intact.  I don't want to add too much more code to the control side until I've had time to think about how I should go about formalising it.  There are quite a few functions like the filter type selection where it's using 0-127 on a control that only has 5 settings, or pairs of CCs used for inc/dec of a setting, both types of setting could do with encoder support or altering so that their range matches the control.

Share this post


Link to post
Share on other sites

Hi Reggie, nice project. As I had a spare Discovery board too, I also had examined the Dekrispator synth project to make use the Discovery's onboard codec. Finally I found the PreenFM projekt  http://ixox.fr/preenfm2/  which is based on an STM32F405 module (CERB40) but I managed to port it to the STM32F407Discovery board. It's a nice little FM sinth, maybe You can find some usable code parts in it. More info about my porting:

http://ixox.fr/forum/index.php?topic=63425.0

https://github.com/norbim1/preenFM2

Regards Norbim

 

Share this post


Link to post
Share on other sites

Thank you Norbim, that's a really cool port, I wonder does it absolutely need the LCD screen or are there windows editors that can be used?

Share this post


Link to post
Share on other sites

I suggest you read the PreenFm2 forum. It has a windows editor in beta state but useful. It can also accept CC or NRPN controls for some parameter changes, these are documented on the project home page.

Share this post


Link to post
Share on other sites

HI Norbim, I checked the forum right after I asked the question :-)  

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now