DaisySP away from the hardware - (AKA Plugins with JUCE!)

DaisySP now has a CMakeLists.txt file allowing for builds to be generated on multiple platforms a bit easier.

For now the ARM build for the actual Daisy hardware will still be done with the local Makefile, but if you’ve been interested in using the DSP in DaisySP away from the Daisy hardware this should make that a little bit easier.

I, personally, am fairly new to CMake so any feedback is welcome.

As a first-pass test we’ve also added an example using JUCE. A simple plugin based on one of the examples that uses DaisySP for the synthesis, has a slider in the GUI, and accepts MIDI input.

So far, I have only tested the standalone target on Windows, but will be testing elsewhere and improving the example over the next few weeks.

Apart from being able to use the DSP in other integrations, this also opens the door to easier debugging/development of DSP modules, as well a road toward better CI with actual tests for each module, etc.

5 Likes

Hi! I came across this post a while ago but couldn’t get into it untill now.

I love that you are working in this because for my masters thesis I’m trying to make both a pedal (using Daisy Seed) and a plugin (using Juce) with the same effect and try to make them as similar as possible to each other, so being able to use the same DaisySP functionality in both is just what I need :partying_face: :partying_face:

I’ve been following the steps from your GitHub link but i get this error:

In the DaisySP folder from your GitHub link there’s no CMakeLists.txt so I tried copying the one from the DaisySP folder in the DaisyExamples GitHub site and then I get this other error:

Tried all the above having built and not built the DaisySP library before running “cmake …”
Any clue of what I’m missing?

And also I can’t run “cmake …” on GitBash, I could only do this from the Windows terminal, is that normal?

Hope it’s just something I’m doing wrong so it’s easy to solve. Thanks in advance for your work and your help!

Alex

Neat - so I tried it out - it works on Linux after a couple of updates:

DaisySP was missing CMakeLists.txt in the version included in Daisy-JUCE-Example so I moved to master. @RatherBeAlex - I think this is the same as your problem:

Daisy-JUCE-Example/plugin/DaisySP$ git status
HEAD detached at 08f280c
nothing to commit, working tree clean
Daisy-JUCE-Example/plugin/DaisySP$ git checkout master
Previous HEAD position was 08f280c Update README.md
Switched to branch 'master'
Your branch is up to date with 'origin/master'.

And then had to update PluginProcessor.h to point to DaisySP/Source/daisysp.h

Daisy-JUCE-Example/plugin/source/PluginProcessor.h:4:10: fatal error: ../DaisySP/daisysp.h: No such file or directory
    4 | #include "../DaisySP/daisysp.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~

After that a simple make worked fine.
I could bring up the Stand alone app - sound was kind of chunky, but I messed around with the audio settings and changed the buffer size and it mostly sounds better.

Cheers

2 Likes

Oh hey! Thanks for trying it out! Sorry it didn’t work right away.

The reference for DaisySP is certainly out of date, and can be updated to master. (I’ll push that fix the next time I open up the project).

Sound settings are probably pretty system dependent, I don’t remember what they’re set to, but the PC I was running it on had an audio interface and is pretty fast. So I may have had some of the buffer sizes pretty low. I can update them to be a bit more conservative for (hopefully) a better first impression to other folks trying it out.

If there’s anything specific you would like to see added or any other issues feel free to let me know, and I’ll see about fixing it up! :grinning_face_with_smiling_eyes:

1 Like

This is very cool - I’ve been looking at getting into developing with the JUCE framework and this will be a familiar place to start!

Thanks so much!

I’m suuuch a noob so I would have never got to to solve this on my own. I’m not sure what moving to master means so I’ll try to look for some info to understand it.

Anyway, that worked out well:
image

Then I pointed PluginProcessor.h to daisysp.h changing this:

#include “…/DaisySP/daisysp.h”

to this:

#include “daisysp.h”

I hope it isn’t something too stupid :sweat_smile: All the errors on the code went away but in the end, after compiling lots of .cpp’s, I get something like the following (may not be exact since I translated it from Spanish):

3>C:\Users\Alex\Daisy-JUCE-Example\plugin\DaisySP\Source\Utility/dsp.h(210,23): error C2290: C++ ‘asm’ sintax has been omited. Use __asm. (compiling origin file C:\Users\Alex\Daisy-JUCE-Example\plugin\source\PluginEditor.cpp)

And some other warnings too.

Is this because I didn’t point PluginProcessor.h correctly to daisysp.h or there may be something else I could have done wrong?

Hope someone can help me again, if not thanks anyway and I’ll try to figure out something to make it work.

Alex

Ah, okay! So some of the changes to DaisySP, and its cmake build definitely had an effect. I’ve just pushed a tiny update that fixes the path as you pointed out above:

A part from that you can do the following few things and everything should build (though you’ll probably still have some warnings).

  1. grab the latest DaisySP by navigating to plugin/DaisySP and running: git checkout master && git pull
  2. I got the same error for using asm("bkpt 255") in the dsp.h file, which I will patch in DaisySP soon, but for now you can just comment it out (line 210 of dsp.h)

I have 16 total warnings after those changes, but the project builds and runs as expected.

Hope that helps, and I’ll try to get the asm error fixed in DaisySP asap.

1 Like

Yess!!

image

With that I was able to try the standalone plug-in test :stuck_out_tongue_closed_eyes: :stuck_out_tongue_closed_eyes:

I could just try it right now but I’ll get into the code ASAP and see how this can work for my project. It really looks like this is going to be very very helpful.

Thank you very much for getting this ready and for your help!

1 Like