Hello. I'm very excited about this project!
Since I've got a few projects of my own brewing, I'm curious exactly which microcontroller you're using, and maybe some reasons why you picked this one over the others? Actually I'd really just love more info about the hardware if you want to give any out
Comments
At this point I was allready way too deep into the project to change the uC.
So I designed my own STM32F4 mainboard and added 2 stereo codecs. These mainboards containing all the SMD parts will be pre-fabricated and allready populated.
I chose the cortex m4 because it's quite cheap, got plenty of power (196MHz/ 32Bit) and has an open toolchain (one of the argument against using a sharc DSP or similar). Also the 2 I2S interfaces come in handy to connect the codecs (CS4344)
I think the M4 is a good tradeoff between features and price.
A cortex A8 like the beagleboard would have been nice, too, but with ~30$ a chip too expensive as i wanted to keep things cheap. Also I''m not too firm in high speed PCB layouts
The frontpanel contains an 'oldschool' DIP AVR. This uC is responsible for all the front panel stuff and SD card handling. The cortex is really busy calculating voices and the sequencer, so there is not much room to do SD card loading and LCD communication there. This ensures that you won't have to stop playback for any action.
The worst that can happen is that the UI freezes for some seconds while a pattern bank (8 patterns x 7 tracks x 128 steps) is saved, but the cortex is happily playing along in the background. Patch load/save is working without interruption.
schematics will be available once th e project is published.
Thanks for your answer. I'm really looking forward to this. Let me know if you need testers/early adopters. I can make up PCBs (up to dual layer) and do the SMD soldering myself even.
PCB fabrication at home seems cumbersome with these PCBs - hundreds of vias :-/
resampling?
But why aren't you including a larger screen (e.g. 2x40 or 4x20)? They aren't much more expensive and they give you twice as many information. I just don't like small screens where I need to go through many menus.
And I also like to see more knobs
Oh and a small question. I want to start learning to write my own small synth with a microchip. I'm just not sure how to start or which microchip to buy. I don't want to start with a avr chip, as I think they are a bit outdated and cumbersome (because of 8bit, few memory, etc.) - But how should I start? You mentioned the STM32F4 discovery board. Is it hard to learn with it? For example, If I want to connect buttons, encoders and a display to it, do I need to write an own library and have much background knowledge? In arduino it seems quite easy. - But arduino is also not quite powerful and limited.
Thanks!
@monoaural: the first release of the drummachine won't have audio inputs (but the hardware supports it. you can either have 4 mono outs or 2 in/2 out. Its just a matter of the firmware supporting them. But since the first version won't have very much sampling capabilities and is more specialized on virtual analogue drums it will use the 4xout option.
Each voice of the synth has nearly the same menu page structure (filter page, mixer page, osc page etc.) so quite similar to the machinedrum (never had one in my hands) but I've got 8x4 instead of 4x8 pages/parameters. You don't have to step through hundreds of sub menus. Most of the functions are available by 2 button presses (select voice, select menu group). And there's always the option that there may be an programmer someday
As for the stm32discovery - programming is comparable to avr programming. the downside is you won't find that many and as good tutorials for the stm32 chips as they are much newer than the avrs. It really depends on how much programming background you've got in general. bonus point for the discovery board - you get an usb programmer and a cortex uC with lots of peripherals (USB, stereo audio out, mems accelerometer etc) for ~13€, ready to go. Do you have programming experience? DSP programming? microcontroller programming in general? maybe start a new thread if you want to discuss this any further?
@Julian: This looks absolutely amazing! Cant wait to order the kit! My Mutable Instruments collection really needs a drum machine!
Mine's getting pimped already before I even bought one... Hmm.
probably the kits will ship with OLED displays, too!
I am so impatient about this kit @julian please hurry up
to be honest I didn't have a closer look at all the available STM F4 types
the first prototype was running on the discovery board, so i just continued using the chip from the discovery board.
I'm not that experienced with the stm32. this is my first bare metal arm project.
But a first glance at the datasheets suggests that the stm32f405 is the same as the stm32f407, just without ethernet and the camera interface (which I don't use anyway) I have to have a closer look, but if that is true the software will run on the f405 as well and I may switch to this chip in the future.
It's a LQFP100 package
Not sure about the memory footprint of the firmware, yet.
there are different versions of the F4 series (512kb, 1Mb flash etc.)
At the moment it only outputs note on triggers on a single notes per track on the same MIDI channel for the 7 tracks.
since you can set midi notes as well in the sequencer I plan for an additional midi out mode, where each track can have it's own channel and will output the set notes from the sequence.
This feature will probably come with a future update, since for the first release I will concentrate on drum related topics. In the end the sequencer can be used to sequence melodic synth parts,but is not optimized for it (no note length, no slides...)
i'm sure there must be a logical explanation though
The only problem is the SD card.
Since most cycles are used for sound generation, at the moment the front AVR is handling the SD card.
I have the SD card code for the cortex as well, but I got audio dropouts while accessing the SD card when the synth was running.
The MIDI/SysEx implementation to control the sequencer is missing as well. (planned update)