Jump to content

port LPC1343 polysynth to MBHP_CORE_STM32F4?


tffshtt
 Share

Recommended Posts

Regarding a control surface, this is the formation I settled on using the ipad.  The controls I use most are the XY pads for wave shaping and the switches for the FM and frequency mode.  I like the idea of it being multitimbral (midi channel buttons are up top + 'send all,' top right) but without a way to save presets it doesn't make sense yet.  To me these are the controls that make the Goom unique.  Freq mode>KEY and FM>MIX gets you decent bread and butter synth sounds.  Flicking it to freq mode>HI and FM>FM+FB gets you instant grainy, delay like wierdness to full on wall-of-digital-filth, depending on the XY pad positions.  As I mostly use an external analog filter with it (X-pole or stereo shruthi) I hardly use the filter / filter EG.

IMG_0058.PNG

  • Like 1
Link to comment
Share on other sites

Oh very cool panel. Yes agree with your 'top six' prams on the touch pads, as the ADSR settings are more set and forget. Really like how you have it laid out, giving me some good ideas. Something like 10 knobs that directly control prams and a set of 4 knobs toggling between Osc/Filter/Amp for the ADSR settings.

Yesterday got a basic default patch setup function working. ATM the code loads channel 1 at boot but can load a patch on demand. Also changed the LCD routine to show 3 prams, mainly useful for debugging. 

Here's the preview projectPATCH.hex with a very bassy range

I'll be adding a Midi send for the patch CC values

Yogi

Link to comment
Share on other sites

Well I got Program Change messages working, changing between hardcoded patches. Currently only have 4 patches mapped to PC0-3 but these can be loaded into any of the 16 voices. The LCD is displaying the current Patch name on channel 1 with some filter prams. 

Here is the patch.c wip, the comments explain the patch structure and how to add patches.

patch.c

And here is a demo

projectPATCH.hex

Yogi

Edited by yogi
Link to comment
Share on other sites

  • 3 weeks later...

So I've been working on midi routing while I wait on some parts for adding encoders. After enabling 4 Uart midi interfaces I took a bit of a side trip with another project. The other project is a carrier board for a Dream Synth 2195 based board, the Fluxamasynth (but also suitable for the Serda Shop's S1 or the upcoming X2 Dream Blaster Synth). I had built the board awhile ago and used it as a standalone tone generator with direct midi in; but I included a MB IIC midi TX only circuit with the intent to develop a MB based GM synth at some point. I decided to at least test the 'F88 circuit on the Goom core while I was digging in MIOS32 code. 

The current WIP code includes simple routing between DIN midi interfaces and a single USB midi pipe,

  1. DIN 1 In forwarded to USB
  2. DIN 2 to Goom Synth
  3. DIN 3 to Dream Synth.

The handling of USB In is handled a little different,

  1. USB forwarded to DIN Out 1 (for a basic USB to Midi type interface)  
  2. Channels 1 - 9 forwarded to the Goom engine and Channels 10 - 16 forwarded to the Dream board.

There is also code to selectively layer Goom Channel 1 Note messages with Dream Channel 11 for a very fat sound. ATM it's selected in the source but will be a runtime control. This strange handling is due to my XP box not liking multi USB midi sys ex, can't upload code with more than 1 USB interface enabled :(  Even the Bootloader Hold sequence doesn't help. So at least during dev, have to restrict USB usage for easier coms.

It started as a test but really like the GM voices with the Goom, if for nothing else then the drum channel. This 'layering' could also be used with other external synths by adding a IIC Tx only port. Like I said, will have to re-work the USB interfaces adding better routing and also add some CS control of the GM patches and such, along with a better audio mixing circuit.

If there is interest I can document the GM board, but it's not too different than the designs for other waveblaster carrier boards.

Here is my Dropbox with the WIP source and hex build with the 'Layered voices' enabled, but unless you have another synth on IIC 0 there won't be much advantage.

https://www.dropbox.com/sh/7t5s0tp8ajh5f8t/AAD63JClTlGc2FX3TnBGpe8aa?dl=0

Just got to say again how nice it is coding with MIOS32, even for a C noob like me :) Thanks TK!!

Yogi

Edited by yogi
Link to comment
Share on other sites

  • 2 months later...
7 hours ago, tffshtt said:

@yogi

nice work!

Thanks, but all credit goes to you and TK for getting this ported :) This Goom synth is very fun to play with. On a side note, just the other day I figured out the name "Goom", it's Moog backwards 8) Call me dense, but hadn't noticed that before.

Anyway, got some matrix boards so will be working on a UI for this bad boy :)

Yogi

Link to comment
Share on other sites

@yogi

Great to hear you're having a good time with it! I think it is a super fun synth and pretty much unbeatable on the price / size side of things.  I thought goom was moog spelled backwards too, but Mark (goom creator) said it was "it's just a rip-off of the theme music from a 1970s BBC TV programme written by Derek Goom."  Awesome to hear about the boards!
 

Link to comment
Share on other sites

37 minutes ago, tffshtt said:

@yogi

Great to hear you're having a good time with it! I think it is a super fun synth and pretty much unbeatable on the price / size side of things.  I thought goom was moog spelled backwards too, but Mark (goom creator) said it was "it's just a rip-off of the theme music from a 1970s BBC TV programme written by Derek Goom."  Awesome to hear about the boards!
 

hahaha OK but will always be gooM to my eyes now :)

Link to comment
Share on other sites

On 1/25/2017 at 0:37 PM, tffshtt said:

@cube48

Is it possible to get your pure data editor working on 'pd party', the pure data ios app? if so how (pure data newb here)?

Any luck with increasing the pitch bend range? I got a linnstrument 128 so it would be awesome to get it into a more compatible state.

Thanks for the heads up on pd party. I just got iPad so I might eventually give it a shot. But won't promise anything. Unfortunately I was not able to increase PB range and I've tried to compile on various Linux boxes and Win10 too. Still the same error. 

Link to comment
Share on other sites

  • 8 months later...

[edit: solved] I'm having trouble getting started.  I need help running the goom software on bare STM32F4 (specifically, STM32F407G).  Successfully installed the MIOS32 bootloader with ST_Link (downloaded from st.com), and then when plugged in with the micro USB (while still providing power through the mini USB, either from a usb port or a wall wart--[edit: either works]) in windows the board appears as a midi device MIOS32.  Then, running MIOS Studio and selecting "MIOS32" for Midi In and Midi Out, I believe that the bootloader is recognized because upon pressing the Query button it reports: Operating System: MIOS32.  Board:MBHP_CORE_STM32F4, etc.  

Then I try to program the board with the Goom project.hex downloaded from this thread.  I tried a few of the versions.  After selecting a project.hex, MIOS Studio prompts "Press start button to begin upload."   The upload goes to 100% with a blue barber pole animation, and then reports "Upload of 48640 bytes completed [. . .] 1 ignorable errors during upload solved (no issue!)."   The status on the left window starts with "Waiting for reboot" and then fails with "No response from MIOS8 or MIOS32 core!  Check MIDI IN/OUT connections and Device ID!"    

I interpret that to mean the Goom program was not successfully installed.  [edit: probably wrong interpretation.  Probably just need to disconnect and power down, then reconnect.]  Not being totally sure, I downloaded Ctrlr and downloaded the "Goom Editor" panel to open in Ctrlr.  Fussed with the panel controls.  Also tried using MIOS Studio to send CC commands to the board on Channel 1 (CC7 for volume, etc.).

Just to cover bases, I also updated the STM32F4 firmware with ST_Link.

I'm out of ideas.  Thanks in advance!

EDIT:  This is working for me now. While I tried a number of things (including re-reading MIOS32 Bootloader for Newbies and using "MIOS32 Bootloader" mode with black/blue buttons during programming), I think the essence was that I hadn't gotten the parameters right in Ctrlr for the synth to generate noise.  (At a minimum, I believe can get noise with CC106=127, CC108=90 (get clicky attack with higher volumes), and CC30=127.)  The first couple project.hex files attached in this thread are several notes out of tune.  The one attached by martindunne1 Posted 7 Jul 2015 is usable (slightly sharp).  When sending serial midi to pin PA3 (versus usb midi), power is only required through the micro USB connector.

As an example to define a patch, I'm sending the Continuous controller code (0xb0 for channel one) and the controller numbers Goom accepts and values like this:

byte GoomControllerNumber[]={0x10, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d};
byte GoomPatch1[]= {0x21, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x11, 0x00, 0x40, 0x00, 0x4b, 0x57, 0x11, 0x46, 0x5c, 0x00, 0x3f, 0x5e, 0x10, 0x2c, 0x4a};
 

Edited by MidiAccordion
Solved issue.
Link to comment
Share on other sites

  • 1 month later...

Hi! I have a few questions about the Midibox port of Goom:

* Should I build an LCD module or will that display anything when running the Goom hex? What about a DOUT module?

* If I wanted to control the synth through the same dials as on the Goom homepage, I suppose I would hook up an AINSER64 module with dials for the 25 midi CC Goom understands?

goom2.jpg

Are there other modules I should consider building?

 

Also, I'm having a terrible time trying to download the project.hex from SVN. I've tried two different SVN clients and I can see the file on WebSVN, but I can't find what address I should type into an SVN client in order to actually get at the file. Feeling pretty stupid about that. Thank you for any help or advice!

 

EDIT: Sorry for not reading all of the thread before posting. So, building a midi controller with Arduino would be the way to go for me and there's no reason to build any of the Midibox modules. 

 

Which version of the Goom port should I try? Yogi seems to be doing stuff that goes over my head, but some have been commenting on the tuning. I'd like it to be in tune, of course. Is dunne's version the one?

Edited by brkl
Link to comment
Share on other sites

  • 1 year later...

Resurrecting a rather old thread here in hopes of some experienced insight from fellow Goom users.

 

I have a MIOS ported version of the Goom synth running on a STM32F407G-DISC1 board and I love the synth but like others notice a gentle 'clicking' noise with each midi note on. This happens with both serial Midi DIN and Midi USB. I have read some suggesting that adjusting the output volume can practically eliminate the noise, which is true to a degree, but it still seems to be there.  I've found that rolling back all the filter values to zero helps, and also that some parameters have a maximum value before they contribute to the 'clicking', but this is also not a solution. Very frustrating.  One post suggested it might be DAC noise... and have also read somewhere that these onboard Discovery board DACs are known to be noisy, so I think that could be the root cause, however I am not knowledgeable enough to code a version for external DAC.

 

If anyone has a fix or suggestions for resolving this issue, I'd be very interested.

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...