Osc Chord-Test

osc “chore” work once and I need to restart the server to make it work again or do it wen playing let me explain:
the server receive all send ok

but in the track the second time only last note get recorded but in the right place ?

it work again when y restart the server or wen I do it will playing in scroll mode.
sorry my English is bad I’m on windows 7

edit:
oups just tested on rc3 and it never work now :unsure: (always get last note recorded but in the right place)sorry I did not put a instrument on 00 it’s the same thing wen I put one
here is the pure data file I use
http://sites.google.com/site/duperrayolivier/oscmixer.pd?attredirects=0&d=1

reedit:by the way I looked at this because of your really great user manual see http://tutorials.renoise.com/wiki/OSC_Mapping

Hmm, indeed it’s strange a bit.
If I load certain instrument and trigger it by the OSC message, the data are recorded correctly.
If I trigger without actual instrument, it will be something wrong like above… :unsure: ??

P.S.
Ah, I meant realtime recording.
When I try step recording, the result will be always wrong…

Now I almost understand the cause of this strange behavior in Renoise.

If we click the chord-test example in the PD file, it will send only “note_on” messages, and never send “note_off” messages. I think it’s the cause of this confusion.

When we use computer-keyboard or midi-keyboard, always it will send note_off signal after note_on signal.
It’s the normal “note signal pair” which Renoise can understand correctly.
We cannot hit a same key twice without note_off signal in between.

But in this case, it will be send note_on message after note_on message. It’s quite strange signal combination actually.
So Renoise cannot understand the signals correctly, I think.

Well, maybe I should add some objects for sending note-off message too into the PD file (I’ve managed the file).
But the PD file is just for easy testing purpose and also I cannot make such complex example honestly :( .
So I’ve added a comment in the PD file;

:)

you are right it works wen I send note off updated oscmixer.pd in the firth post to reflect that

I don’t get why it works for the last note then

but I did manage to do what I wanted to do so … thank you very much for your help
don’t know if it’s a bug now ?

Personally, I think it’s not a bug. (though I’m not a developer)
But at least the behavior still looks strange and I hope that devs add a workaround in the future to avoid such confusion, if it’s technically safe.

Btw, I also update original PD file for more safety (hinted from your advanced example, thanks :) ).

I did play with my Pd file a bite more their is no osc “bug” and it’s logical to have to send note off but Chord mode is kind of strange
but it maybe is that I don’t get it. I’m note really into pd just testing really
youtube vid :

pd file : http://sites.google.com/site/duperrayolivier/oscchordtest.pd?attredirects=0&d=1
I don’t care about the little delay that seems to come and go this my bmp counter in pd I guess, it may be why it’s not on the beat also, not the prob I want to show here I’ll keep it on the chord mode

Hmmm, this is somewhat difficult problem with headache, so please someone correct me if I’m wrong…

At first, I think this problem is not related to PD, this is related to Renoise’s auto overlaying system (auto column expanding) for note input in realtime.

1366 overlay.png

In a case of 1, Renoise records new notes on the new columns which are expanded automatically.
Probably, we hope this behavior always.

In a case of 2, Renoise records new notes on the current columns. (so it’s not good result)
In a sense, this can be said to be the functional limit of Renoise.
If you want to layer chord notes certainly, you have to move the cursor to the brand new column beforehand manually.

Then, importance here is, where your goal is.
If you really want to compose such a auto chord-layered song in one pattern, I think that Renoise might be not suitable for such a purpose unfortunately.
But do you really want to? :huh:

Yes, Renoise tries to be clever when placing played/recorded notes into columns. Rule for this is that already playing, hold keys & samples are not overwritten - if possible. More or less does what it does now when playing notes with a MIDI keyboard into Renoise.

With OSC we maybe should also add a way to explicitly define the column, so one could do the column allocation in the OSC client.

Could this for now be solved using the “evaluate” message by with it, creating new notecolumns and change the current cursorposition? It is the same method, but based on changing the cursor-position to the empty columns instead.

sorry for the delay her is what I could came up with fallowing vV post
renoise.song().selected_note_column_index
renoise.song().tracks[].visible_note_columns
and “evaluate” message
seem to do what I want, I can not find a message just to ad a note_column
thanks to Osc Discussion (How Where What To Use Osc) for the help :yeah:
is there a better way ?

@taktik: we maybe should also add way to explicitly define the column, so one could do the column allocation in the OSC client
do you mean this ?
with Trigger/Note-On. arg#1: instrument (-1 for the currently selected one), arg#2: track (again -1 for the selected one). arg#3: column (again -1 for the selected one). arg#4: note value (0-119), arg#5: velocity (0-127)
need to add column arg for Trigger/Note-Off also and voila

or a different OSC message ?

thanks for your explanation satobox, taktik and vV

The OSC control, I am often assuming it in remote operation.

It seems that the operation mistakes in many cases occur in realtime note_off events.

There are differences between VSTis and samples,about over-layered voicing.

The recorded note-off of a note, sometimes it mute other note-ons in different lines.

Or same notes on a same line , we have to often digest the surplus note_offs on somewhere.

When some lines are cleared in a bad timing, threre may be some invisible notes that remain sounding.

(If all-note_off command exists, it may be useful.)

One of my idea is to separate in two processes, editing and new-note voicing .

Using ‘/evaluate’, We can edit a pattern in realtime with no voice and with edit-mode-off.

renoise.song().selected_line.note_columns[].note_value = xxx
renoise.song().selected_line.note_columns[].instrument_value = xxx
renoise.song().selected_instrument_index
etc.

And for realtime new-note-voicing,
We can use these OSC messages,
note_on , note_off ,
~/edit/mode false.

Combinding and bundling these messages, You may be able to edit and to play new notes, note-offs in realtime.
How does it ?

renoise.song().tracks.visible_note_columns, _observable
→ [number, 0 OR 1-12, depending on the track type]

Simply use it first to read how many there are, then simply add one and submit this number back with the same function to add a notecolumn.

local cur_ncolumns = renoise.song().tracks[1].visible_note_columns
cur_ncolumns = cur_ncolumns + 1
renoise.song().tracks[1].visible_note_columns = cur_ncolumns

now I get it thanks :huh: