Hansy Synth and Daisy seed

It is the beginning of a new story… :slight_smile:

[A new project is coming... | By HANSY Synthesizer | Facebook]

1 Like

Very provocative, but lacking information.

I like it. So many pots!

I would love to know more details :eyes:

The hardware specifications are:

  • 32 potentiometers
  • 16 push buttons
  • 16 Leds
  • 2.4" Nextion screen (or SPI Screen) with touchscreen
  • Midi in/out Jack and Midi 5 pins
  • SD card
  • Audio in stereo Mini Jack front panel or Jack 6.35 on the board
  • Audio out stereo Mini Jack front panel or Jack 6.35 on the board
  • External power supply

For now all the hardware is ok with these limitations

  • Touchscreen UART not tested
  • Uart for the screen only in direct mode ( no DMA possible)
  • SD Card only in one bit mode (4 bits fail… :frowning: )

Now i make the first audio test with the user interface.
The synth engine for the test is:

  • 8 Voices Polyphonic
  • 3 Osc per voice (2 with the same waveform + detune + 1 subosc)
  • 8 Moogladder filter
  • 3 Lfo (first one connect to the filter)

The audio result are not as good as i expect…maybe i will use my own osc and filter for test

I have also by the STLINK V3…but not tested yet…

I will send some photos as soon i have change my cell phone.

Musically
Gilles/Hansy Synth
HANSY SYNTH WEB SITE

2 Likes

That sounds like this synth is feature-packed :slight_smile:

Yes, I would love to see and hear it in action!!

Some news about the project

The first tests are ok:

  • 8 Voices Polyphonic
  • 3 Osc per voice (2 with the same waveform + detune + 1 subosc)
  • 8 Moogladder filter
  • 3 Lfo (AMP/FILTER/PITCH)

I have also implemented the ADSR for the AMP

The different issues.

I haved some bad noise when a play over6 notes, it seem to be related to the SetAudioBlockSize(x) when x is too low, if a change it the sound is better…but i do no know really what is the function of the Audioblocksize…i need to read a little bit the documentation.

Next step

Test the ST-LINKV3
Key stealing
ADSR for the filter
Keyboard tracking
Velocity to amp

Some picture before a demo with some sound…
The goal here is to use an eurorack case for the projet

1 Like

Thank you so much for keeping us posted about this project :slight_smile:
Cool to see a real-time update!

As for your question about block size, digital audio is often handled in blocks rather than acquiring, processing, and delivering one sample at a time. Since the hardware takes a little bit of extra time to set up the transaction to acquire and deliver new samples, working in block is more efficient. With block size, you can be filling a new group of samples while the last group is being sent through the hardware.

Therefore, increasing the block size will take a load off on your CPU (which means less chance of those noise happening) but will introduce more latency as you may have noticed. And vice versa. This is similar to working with the buffer size in your DAW.
So, you can try finding a good balance between latency and CPU load for your project.

You can also measure the CPU to see what’s taking up the load most if you want to optimize for lowest latency as possible.

#include "daisy_seed.h"
#include "daisysp.h"
using namespace daisy;
DaisySeed hw;
CpuLoadMeter loadMeter;

void MyCallback(AudioHandle::InputBuffer in, 
                AudioHandle::OutputBuffer out, 
                size_t size) 
{
    loadMeter.OnBlockStart();
    for (size_t i = 0; i < size; i++)
    {
        // add your processing here
        out[0][i] = 0.0f;
        out[1][i] = 0.0f;
    }
    loadMeter.OnBlockEnd();
}
int main(void)
{
    hw.Init();

    // start logging to the serial connection
    hw.StartLog();

    // initialize the load meter so that it knows what time is available for the processing:
    loadMeter.Init(hw.AudioSampleRate(), hw.AudioBlockSize());

    // start the audio processing callback
    hw.StartAudio(MyCallback);

    while(1) {
        // get the current load (smoothed value and peak values)
        const float avgLoad = cpuLoadMeter.GetAvgCpuLoad();
        const float maxLoad = cpuLoadMeter.GetMaxCpuLoad();
        const float minLoad = cpuLoadMeter.GetMinCpuLoad();
        // print it to the serial connection (as percentages)
        hw.PrintLine("Processing Load %:");
        hw.PrintLine("Max: " FLT_FMT3, FLT_VAR3(maxLoad * 100.0f));
        hw.PrintLine("Avg: " FLT_FMT3, FLT_VAR3(avgLoad * 100.0f));
        hw.PrintLine("Min: " FLT_FMT3, FLT_VAR3(minLoad * 100.0f));
        // don't spam the serial connection too much
        System::Delay(500);
    }
}

Daisy Hansy first demo

6 Likes

Impressive work, Gilles!! This synth sounds amazing!
So many sonic possibilities.

Looking forward to what’s next and seeing more of it in action :slight_smile:

Hello
How can i insert the youtube video in the topic ?
Thank you

Sharing the link to YouTube like you did few days ago is fine :slight_smile:

I don’t think it’s possible to upload any long videos on the forum (there’s probably a size limit).

Second demo…sorry it is in french…

2 Likes

Thank you for sharing!
Lots of tonal variety! It’s doing an organ sound really well too.

soon…

1 Like

3 Likes

I’m really digging the new design! The black panel makes it look sleek.
Have you made updates to the firmware?