Daisy Seed 8-Voice VA Synthesizer with USB_MIDI Interface


Ahhhhh good job.
That’s an interesting method to access the parameters.
A static list of CC params would be nice alongside.

Awesome!! Thank you for sharing!
I gonna try to set this up and hear it in action :slight_smile:

Thanks everyone!
I will be actively working on implementing more functionality and fixing problems in the near future, so keep checking GitHub for updates.
@Manysounds, that is a great idea. I will add that to the text files and main code soon.

1 Like

You Moog Filter looks much cleaner. Did you change its functionality or is that just rewrite of the same code? Seems that it has the same fixed tanh-approximation that I used in my synth, GitHub - Krakenpine/Daisy-Harmoniqs: Additive harmonics synth for Daisy platform . That probably should be fixed in the original library also.

Have you planned a more complex voice allocation, like first taking free voices, then voices in release part and then oldest? Maybe even never stealing lowest or highest note, as they are most noticeable.

1 Like

I took the advice of Nick @Infrasonic_Audio who posted a link to an improved moogladder.cpp and .h files. I rebuilt DaisySP with these new files.

It runs much more efficiently and is more stable, allowing me to increase the number of synth voices from 5 to 8.

Also, the filter doesn’t choke out all the bass when resonance is applied, so to my ears, it sounds more “moog-like” than the original filter in DaisySP.

I hope Electro-Smith will update DaisySP with this code in a future release.

In the meantime, I want to concentrate on adding much needed functionality, such as Pitch-Bend, PWM square waves, VCF and Envelope keyboard follow, and SPI ports to allow daisy-chaining multiple Seed boards.

Here is the link: Improved Moog Ladder Filter for DaisySP - Huovilainen New Moog derivation ported from Teensy Audio Library · GitHub

1 Like

I’ve rolled out more features and squashed some existing bugs. The project is close to being completed soon. In the meantime I am having a great time just playing this in its current state!!

Refresh your local Git directories often, as the new features and improvements in code are being committed every day now.

1 Like

Great to see this project keep evolving. Thanks for sharing!!

1 Like

@nettech15, just wanted to say how happy it makes me, that you are taking my stuff and developing it further! Thanks a lot for sharing! :slight_smile:


Would this be usable with a DIN Midi setup to access the parameters too? I have the breakout board that converts serial to a DIN for input.

The code needs minor modification to enable DIN MIDI.

This is the code that I used as a starting point for my project.
Just copy the code that initializes DIN-MIDI from here into my main.cpp to enable serial TRS MIDI.
MidiUartHandler::Config midi_config;

Getting and error that " class daisysp::Oscillator’ has no member named ‘SetPw’ ". Sorry I’m pretty new to coding and can fumble my way through but don’t know where to look to fix this one. Cheers for any help.

The SetPulseWidth (SetPw) functionality was recently added to the DaisySP library, so there is a good chance that your local copy of DaisySP is out of date and needs to be updated. Download DaisySP (and while you’re at it, get LibDaisy as well), install the folder into your local “Daisy Examples” directory, then run the “Build DaisySP” task to rebuild the Library. Do the same for LibDaisy, then everything will compile without errors.

1 Like

Thanks very much, compiling and build sorted now. Midi over USB works great, but changing it to DIN proving difficult, I have copied over the suggested code and can see where moonfriend included the line regarding MidiUartHandler, I see that MidiUsbHandler is referenced under global in your code and have changed this to MidiUartHandler, but still no luck. I wonder what else to try. Many thanks

Modifying the code to use DIN MIDI should be simple, but you also need to be sure your MIDI hardware is connected to the correct pins.

Yes DIN MIDI hardware works with moonfriend’s project, it’s simply the code that is the last step.

Then you should simply fix the code.

But seriously, you seem to be expecting somebody to solve your problem, but you are not clearly describing your actual hardware setup, or precisely describing exactly what results you are seeing. ‘Doesn’t work’ is not a helpful description.

Okay, I see one thing that might be the cause of the problem. The preset patch sets a variable to force the midi handler to listen to midi channel 1 only. If you are transmitting on any channel other than channel one, the midi routine will ignore the messages. Try transmitting midi messages on channel one and see if that fixes the problem. If this works, change the last variable in the preset patch from “MIDI_CHANNEL_ONE” to “MIDI_CHANNEL_ALL”. This will allow the midi handler routine to listen to all channels simultaneously.

Thanks I do appreciate the help and know it is probably frustrating working with someone who doesn’t code. I have changed the preset midi channel setting to ALL but doesn’t seem to get it working. Here are some project details that may help.

I have built in the seed with MidiDIN daughter board into a Digitakt with a lithium battery setup. The seed is suitably powered and I have run Moonfriend’s original project on it and it worked with sound audible through the Digitakt inputs and Midi DIN wired to the Midi outs of the Digitakt. You may see now why I would like to use midi din rather than usb. In the Digitakt I am able to select midi channel and change CC values too.

I can see midi_config code is referenced as midi_cfg in your code and that MidiUartHandler was not referenced in globals so I have changed this too from MidiUsbHandler along with the other changes you have suggested. Thanks again.

1 Like