-
Notifications
You must be signed in to change notification settings - Fork 4
Frequently Asked Questions
Below is a list of questions that are frequently asked. This is a living document, so check back often.
- Why does it say #HEYJELLYBEAN on the PCBs?
- How can I put the Daisy Seed into flashable (DFU) mode without pressing the buttons inside the Hothouse?
- Can I use the Hothouse with my synthesizer / audio interface?
- The knobs on my Hothouse don't turn smoothly. How do I fix that?
- Where can I find the Hothouse schematic(s)?
- DaisySP-LGPL classes like ReverbSc aren't recognized by VS Code IntelliSense. Why?
uint32_t
is not recognized as a valid type by VS Code IntelliSense. Why?
A. This is why. Joey (a.k.a. Jellybean) and I met at Berklee College of Music in Boston, MA in the early 1990s and we were roommates during and after college. He's been my best friend ever since and he even married my cousin to make us officially relatives. #HEYJELLYBEAN is an inside joke that will be printed somewhere on all Cleveland Music Co. products going forward.
Q. How can I put the Daisy Seed into flashable (DFU) mode without pressing the buttons inside the Hothouse?
A. Use Hothouse::CheckResetToBootloader()
in your code. The suggested use is within the processing loop of your main()
function. For example:
int main() {
// Init stuff omitted
hw.StartAdc();
hw.StartAudio(AudioCallback);
while (true) {
hw.DelayMs(10);
hw.CheckResetToBootloader(); // If left footswitch is held down for 2 seconds, reset the Daisy Seed
}
return 0;
}
This code enables the following functionality: if the left foot switch (FOOTSWITCH_1) is held down for 2 seconds, the LEDs will alternately flash 3 times and the Daisy Seed will reset into flashable mode. At that point you can make program-dfu
to flash the Daisy Seed, or use the Daisy Web Programmer with a precompiled binary.
Tip
As of 24 Sep 2024, most of the examples in this repo already have this code baked in. This way, it's easy to try different examples without having to write your own code or press the buttons on the Daisy Seed. Just plug in your micro USB cable and leave the enclosure backing on!
It's possible we'll add a dedicated hardware button somewhere on the Hothouse at a future date. For now, though, let us know how you get on with this approach.
A. Yes, but you may need additional equipment for level- and impedance-matching. Here's a grossly-oversimplified explanation (in which, we will NOT be deep-diving into technical detail):
The Hothouse was designed with instrument level signals in mind, given its primary use case as a guitar effect pedal. Instrument level signals are usually in the range of 100 mV to 1 V peak-to-peak. A synthesizer line output, on the other hand, is typically around 1 V (RMS), which translates to about 2.8 V peak-to-peak. That is generally too hot for a guitar pedal.
Don't worry, there will not be a test. Just remember this, in the most basic terms:
The signal level from a synthesizer needs to be attenuated to prevent unwanted clipping and distortion when using the Hothouse.
You may be able to simply turn down the output volume on your synthesizer and be perfectly happy with the results. However, impedance matching could still be an issue because the Hothouse has an input impedance of 1 MΩ, designed for guitar pickups, whereas your synth probably has an output impedance in the range of 100 Ω to 1 kΩ. While these mismatches won’t harm your gear, they can impact tone quality and signal clarity.
Additionally, your synth may have a sweet spot in its internal gain-staging that is somewhere around 70-80% of its volume control. Again, your mileage may vary. Try it and draw your own conclusions; you won't damage the Hothouse with a line level signal.
The recommended way to match signal level and impedance between your synthesizer and the Hothouse is a reamp box, which converts the stronger, low-impedance signal from your synth to the instrument level, high-impedance signal expected by the Hothouse. I highly recommend the L2A Passive Re-Amplifier Kit from DIY Recording Equipment. It is hands-down the best value out there for DIYers, and it's great at its intended use case as well (reamping guitars). Note that this option works best if your line level source has a balanced output (1/4" TRS or XLR).
You could also use a DI box with a line-to-instrument level pad, or a simple passive attenuator. The latter is something you could easily DIY.
When plugging the Hothouse output into your audio interface, use a Hi-Z (high-impedance) input if available, as it's designed to work with the lower output levels of guitar gear. If your interface doesn't have a Hi-Z input, a DI box or preamp will help boost the signal to line level and ensure proper impedance matching.
Since it's almost impossible to accommodate every conceivable rig (at this price point), it's ultimately up to the user to understand and implement appropriate gain-staging and impedance-matching in their environment.
Caution
Eurorack VCA outputs can send both AC (audio) signals and DC (control voltage or CV) signals. Don't send CV signals into the Hothouse; it was designed to work with AC-coupled audio signals only.
Even if you can ensure that only AC signal is coming from your VCA output, it will still be at modular level, which can range from 5 V peak-to-peak to as high as 10 V peak-to-peak! This is significantly hotter than both instrument and line level signals, and will almost certainly result in severe distortion and clipping unless attenuated.
To avoid these issues altogether, it is strongly recommended you use a reamp box or some other DC-blocking attenuator between a Eurorack VCA output and the Hothouse.
A. The knob has probably slid down the shaft of the potentiometer and is no longer clearing the dressing nut below it. It can feel like the knob is "catching" on something at one or more spots in its rotation. This can happen due to jostling or vibration during shipping (if you bought an assembled pedal), or it can happen if you tend to push down on the knobs when you turn them (like I do, owing to my Neanderthal heritage).
The fix is super simple: using a small flathead screwdriver, loosen the brass set screw on the side of the knob, raise the knob up the shaft of the pot a tiny amount, re-tighten the set screw. Check for clearance and repeat as necessary.
A. Right here.
The current stereo version:
The Main PCB (right-click and open in a new window or tab)
The Switching & LED Daughterboard
The DC Power & Audio I/O Daughterboard
If you need the legacy mono version for some reason, let me know in the Discussions.
A. The short answer is, "It's hard to say."
Multiple users have reported this but we haven't been able to reproduce it in our development environments (which run Ubuntu Linux 24.04). Apparently, in some VS Code configurations, the projects will compile just fine whether from the command line or using the tasks in tasks.json
, but IntelliSense simply doesn't resolve the LGPL classes at development time.
Currently, the best fix seems to be to explicitly include the DaisySP LGPL header file. This line is added for you by the create_new_proj.py
script, but it is commented out:
[...]
// Needed for some VS Code configs; uncomment if ReverbSc
// and other LGPL stuff is not recognized by Intellisense ¯\_(ツ)_/¯
// #include "daisysp-lgpl.h"
#include "daisysp.h"
#include "hothouse.h"
using clevelandmusicco::Hothouse;
using daisy::AudioHandle;
[...]
So, if you run into this problem, try adding or uncommenting that line.
Another option might be to add it to the defines in the c_cpp_properties.json
file:
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE",
"USE_DAISYSP_LGPL"
],
This works because you're forcing the IntelliSense engine to use the same -D
flag as is defined in the Makefile at compile time. (See the schema reference; the defines is "a list of preprocessor definitions for the IntelliSense engine to use while parsing files".)
Still another option (to be used as a last resort) is to add a macro to the top of your .cpp
file: #define USE_DAISYSP_LGPL=1
. However, this is not recommended for various reasons.
A. In some development setups, code with variables of type uint32_t
will compile without issue, but IntelliSense annoyingly does this:
variable "uint32_t" is not a type name
A more detailed explanation is available here, but to fix it, we need to add the Daisy Seed micro controller to the defines in the c_cpp_properties.json
file.
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE",
"STM32H750xx"
],
This is essentially the same situation as the LGPL question above, in that we need to define the preprocessor that matches the -D
flag used by our Makefile, which is -DSTM32H750xx
.
This has been added to the blank template project and is included in projects that were created with the create_new_proj.py
helper script, as seen in this commit.
Official Website: clevelandmusicco.com | Electrosmith Daisy Forum | Electrosmith Daisy Discord