Post Go back to editing

ADAU1466:How can I retrigger GainEnvelope on every guitar pick attack?

Thread Summary

The user is working on an ADAU1466 SigmaStudio project to create a banjo-like decay for a hexaphonic guitar. The issue is that the GainEnvelope block does not retrigger on subsequent pick attacks while the string is still ringing. The solution involves using a Peak Envelope block, a Hamming differentiator, a comparator, and a OneShot to detect new attacks and retrigger the envelope. Adjusting the Peak Envelope hold time, comparator threshold, and OneShot duration helps mitigate false retriggers and ensures reliable attack detection, even with natural string amplitude fluctuations.
AI Generated Content
Category: Software
Software Version: SigmaStudio 4.7

Hello,

I am working on an ADAU1466 SigmaStudio project for a hexaphonic guitar.

My goal is to create a banjo-like decay characteristic, where the note decays much faster than a normal guitar while preserving the natural attack.

I am using a GainEnvelope block, but I have a problem:

The GainEnvelope starts correctly on the first pick attack. However, once triggered, it always completes its programmed cycle and cannot be retriggered by a new pick attack while the string is still ringing.
For example:

Pick a string
Let it decay to approximately -20 dB
Pick the same string again

Ideally, the second pick attack should restart the GainEnvelope from the beginning. Instead, the new note is affected by the remaining state of the previous envelope cycle, causing the second note to sound quieter than intended.

My question is:

What is the recommended SigmaStudio method for detecting every new guitar pick attack, including attacks that occur while the previous note is still sounding?

This is especially important for fast playing, where multiple notes may be picked before the previous note has fully decayed. The final goal is not note-on detection from silence, but reliable attack detection on an already ringing guitar string.

Is there a dedicated SigmaStudio block for this purpose, or is a custom transient/attack detector the recommended approach?

The platform is ADAU1466 running in SigmaStudio without an external MCU.

Any ADAU1466 / SigmaStudio specific suggestions would be greatly appreciated.

Thank you.

Thread Notes

Before You Switch


Switching languages will make ADI Explorer unavailable. Resume your session by switching back to English and reopening ADI Explorer.