Replies: 10 comments 8 replies
-
Some clipping is allowed. I have implemented a clipping compensation in software.
This is the current disclaimer on the main page: DISCLAIMER All these circuit diagrams are used for my first prototypes and work fine for me. Use them at your own risk. If you want to see a different text then please make a proposal. |
Beta Was this translation helpful? Give feedback.
-
|
BTW, I may convert this Issue in a Discussion thread later on because as soon as I close it, most people will not find the investigation results you have given in your initial post. I assume that new users will only check for help in the Discussion forums. |
Beta Was this translation helpful? Give feedback.
-
|
This is the current disclaimer on the main page:
**DISCLAIMER All these circuit diagrams are used for my first prototypes and work fine for me. Use them at your own risk.**
If you want to see a different text then please make a proposal.
I guess "In particular the circuits may not work for currently unsupported pieces of hardware." might be fair enough for a disclaimer.
However additionally some documentation on how to support new pieces of hardware would've been clarifying and helpful.
Currently the steps appear to be:
1. Start with prototype2 & optimize the analog circuit (atm it is unclear to me how to do that apart from random testing; I might know more once I can verify my simulation in practice).
2. Create samples for the edrumulus Octave model according to the existing doc. Probably getting them from the edrumulus hardware itself is more realisitic than from whatever sound card.
3. Analyze the samples in the Octave model to identify the edrumulus parameters. We discussed that in the forum.
4. Set the identified parameters in the edrumulus C++ code and test them in practice. Modify the available real-time parameters for hopefully better results. Possibly go back to previous steps.
|
Beta Was this translation helpful? Give feedback.
-
done |
Beta Was this translation helpful? Give feedback.
-
|
I have added your step-by-step guide to https://github.com/corrados/edrumulus/blob/main/doc/manual.md. Feel free to correct/improve the text. |
Beta Was this translation helpful? Give feedback.
-
|
Nice, thanks!
Btw I tested it in practice and unfortunately I couldn't record a signal that looked significantly better than previous ones (maybe there's some generic issue with the way I'm recording, idk). However I could lower the edrumulus threshold from an unusable 20 to around 10. Therefore I guess I'm going to stick with Rs=1k, Rp=100k, Cp=0 for the MPS 750x Tom for now. Cp dampens the gain as expected, but it doesn't look like I need it for the MPS 750x Tom.
|
Beta Was this translation helpful? Give feedback.
-
Since all the other line-in samples have little clipping, I'd guess that these parameters apply to all previously supported pads, too. Therefore it would be great if someone verfied my claims in practice with an oscilloscope. |
Beta Was this translation helpful? Give feedback.
-
|
By now I believe that Rs=10k, Rp=100k, Cp=0 is more safe to use with e.g. the Teensy. It is also absolutely necessary to use BAT85 or similar diodes with low forward voltage to limit the Teensy input to its ADC operating range of -0,3V - 3,6V max. The 1N4148 is e.g. not suitable (contrary to the circuit above) as it has ~0,7V forward voltage at 1mA leading to ~4V at the Teensy, whereas the BAT85 has 0,3V forward voltage at that current (--> 3,6V at the Teensy). Rs=1k would mean 10mA at 10V piezo input voltage resulting in 0,4V forward voltage for the BAT85 and thus 3,7V at the Teensy, which is out of its operating range. Therefore Rs=10k is a bit more safe whilst only sacrificing 10% signal input. (@corrados I decided to continue our circuit discussion here.) |
Beta Was this translation helpful? Give feedback.
-
|
In the end, it's your choice how you design your prototype :-) Here is a link to a discussion with jstma who really knows how to design hardware (in contrast to me since I am a software developer): #58 (reply in thread) |
Beta Was this translation helpful? Give feedback.
-
|
The new Teensy works as expected - I tested its ADCs by reading from a constant 1,65V voltage divider. However now I unfortunately hit into a new issue: I'll attempt to fix it by using Rs = Rp = 10k and allow 3V3/20k = 0,165mA (which isn't much), but of course that'll drop 50% signal over Rs, which isn't optimal either... |
Beta Was this translation helpful? Give feedback.

Uh oh!
There was an error while loading. Please reload this page.
-
As already discussed, I'm pretty sure that the analog circuit is not optimal and likely doesn't work for everyone.
E.g. for me the proposed 22k voltage divider produced a rather bad SNR leading to many other issues.
The differences mostly come from the unknown Piezo output voltage range, which may be +- 0,1-10V.
The effective voltage range depends on:
In my particular case the voltage range of the piezo seems to be around +-1V and rarely more. This can be measured rather easily by plugging the piezo to the line in which runs at +-1V range. If there's no clipping, then you're apparently in that range.
I played a bit with the apparent industry-standard software LTSpice to find a set of parameters that may work for me and interestingly found quite a different one from the proposed parameters.
Here's a comparison of the parameters proposed by edrumulus and the seemingly better ones for my case (+-1V, 2kHz spikes):


simulation (needs to be renamed to edrumulus.asc)
(The C3=1p case is roughly identical to what edrumulus does = no capacitor.)
One can see that the voltage range in the edrumulus example is ~0,3V, whereas it could be ~2V as in the second example. Of course that also affects the SNR.
Therefore imho it would be more honest to tell people that they need to play with the parameters to find a circuit that may work for them.
Disclaimer: I still need to validate the simulation in practice.
Beta Was this translation helpful? Give feedback.
All reactions