Crash when using 0Gxx on an already running phrase

When an instrument is playing phrases started with Zxx, trying to use Gxx on a following note Renoise crashes, but doesn’t crash if the instrument is using phrases with the ‘program’ mode (as in no Zxx needed) and glides properly

I’m using Renoise arm64 V3.5.4 (Built: Nov 19 2025) on MacOS and I’ve included the crashing file

Untitled_8_4_2026__9_38_crash.xrns (6.8 KB)

There’s two instruments, instrument 00 is used in pattern 00 and ins01 in pat01; pattern 00 runs as expected, pattern 01 crashes.

The instruments are otherwise identical but the phrase mode is Program for ins00 and Off for ins01, and as such in pattern 01 the phrase is started with Z01

Reproducable in Linux (AMD64).
What is happening here?

  • Instrument #sine_C1 (Index 01): You have completely disabled phrase playback for this instrument (PhraseGenerator $\rightarrow$ PlaybackMode is set to Off).

  • You are using the effect command 0Z01 to manually trigger Phrase 01 (which technically exists but is deactivated).

  • Here, you play a new note (C-5) on the same instrument (01) and place the command 0G20 in the effect column.

  • 0G is the classic glide command (portamento), which smoothly bends the pitch from the previous note to the new one.

The Problem:

Renoise attempts to execute a glide (0G) on a note while the instrument internally still believes it is in the “phrase state” from the previous 0Z trigger—even though the phrase playback mode is actually set to Off. When trying to bend the pitch of the running (but actually inactive) phrase, the audio engine accesses the PhraseIndex. Because the phrase is not actively playing (Mode Off), the pointer goes nowhere (null pointer). $\rightarrow$ SIGSEGV (Segmentation Fault) in TPlayerInstrumentPhrase::PhraseIndex().

Thanks for reporting. Will be fixed.

Thanks also for trying to find the cause of the bug. Most of the time this doesn’t help though, but finding a way to replicate the bug always does.