Strange behavior when looping midi back into renoise

I’ve encountered some strange behavior I don’t understand. I’m unsure if it’s a bug, or if I’m missing some subtlety about midi routing.
I’d like to control multiple instruments using a single midi track. To do this, I first set up an empty instrument, and set the output to a virtual midi port, like this:

I then set up target instruments to listen to a connected input port, like this:

The midi sent to the first instrument controls the second instrument, as expected. The oddity begins when i start playing.
In the below screenshot, I’ve positioned my cursor at the top of a blank pattern, and pressed “z” to insert a single c3 note. The c3 shows up as expected. However, a mysterious second note, an octave lower, also shows up, routed to the target instrument!

Now, I understand why a note shows up for the target instrument - from renoise’s perspective, I’ve just input a midi note via an external controller, and it’s dutifully recording it. An expected oddity. But why is it an octave lower? I’ve checked the midi monitor and confirmed that C-3 is received by the target instrument, however, I can also see the source instrument triggering both C-3 AND C-2 on the graphical keyboad, despite it not showing up in either the input or output midi log. When triggered this way, the target instrument will always play the note an octave lower, and never play the original note at all.
Midi Loopback is a pretty weird edge case so I’m not 100% convinced there’s a bug at play here. If anyone wants to try to reproduce this or if you have any input at all on how to work around it, i’d appreciate it.
Thanks!

EDIT: sorry the image previews don’t appear to be working, but if you click through you will see screenshots. I"ve tested this in both mac and linux, same behavior.

EDIT 2: The spurious note is not always an octave lower, it’s fairly inconsistent. Sometimes it’s two octaves lower, sometimes one.

EDIT 3: Another interesting observation: If I open two instances of renoise, and route midi from one instance to another via virtual port, The note will be wrong. Inconsistently, it will be the wrong octave. I triple checked to make sure the virtual input wasn’t set as master clock or as master keyboard.
Routing midi from Reaper to renoise doesn’t do this, the note is correct. I haven’t tried this using hardware midi ports yet. Here’s a screenshot. You can see the correct midi data being sent and received, and the wrong note triggered on the vitual keyboard below.
https://i.imgur.com/37IS8tC

EDIT 4: I found another thread talking about how renoise treats octaves differently from many other DAWS, but I don’t believe that’s the issue here. Setting an octave offset does not work - the offset is not consistent and will change as a sequence plays.

[quote=“Michael, post:1, topic:75835, full:true, username:muximori”]
I’ve just input a midi note via an external controller, and it’s dutifully recording it. An expected oddity. But why is it an octave lower? I’ve checked the midi monitor and confirmed that C-3 is received by the target instrument, however, I can also see the source instrument triggering both C-3 AND C-2 on the graphical keyboad, despite it not showing up in either the input or output midi log. When triggered this way, the target instrument will always play the note an octave lower, and never play the original note at all. [/quote]

This Oct
Screenshot 2025-04-02 at 9.07.34

defines which octave the incoming midi note is transposed into. so it will be lower or higher. there’s some hope that in a future version it might be possible to not affect the incoming midi note’s octave. but who knows how far that is in the future.

btw, you can just copy the images to clipboard and paste them directly onto this thread…
from your original post:
image1


image 2

image 3

image 4

Thanks for the reply. I must be blind, I can’t find that “oct” control anywhere. Where is it?

Oh you mean the one in the transport bar. That affects midi??!?! I had no idea.

yes, that’s exactly it, and yes, it does affect incoming midi octave. there’s been quite a few requests to disconnect it so that it would only work on the computer keyboard, and not affect incoming midi octave, over the years. but :crossed_fingers: that’s changed/altered soon.

Thank you for helping me understand. I get it now. I’m glad I discovered this now.
I looked at the xrnx book and noticed the octave control has an observable. Idea: a tool that will correct the pitch offset of externally controlled instruments whenever the observable is triggered. That would work around the problem quite effectively

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.