Jump to content

Want to develop, not sure where to start?


Reggie
 Share

Recommended Posts

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.

Link to comment
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
Link to comment
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.

Link to comment
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.

Link to comment
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

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...