A small clarification in the 2) I mean the complete USB keyboard, with its letters, not the numbers only. Maybe I did not explain myself well.
What I was thinking is that the USB keyboard configuration, in Renoise each key is assigned to a note. So, when a key on the USB keyboard is pressed, the "M" or "U" key for example, is always "B-", regardless of the octave. Then the note would be written in column number 12. Something like:
- If you press "M" or "U" key, then position the writing in column 12 before writing, and then introduce note B-. and so on with all the letters. This I see a bit complicated, because the rest of values should accompany the note too, and at first I do not know how it would turn out. With the virtual piano for the mouse I have done something similar, but of course, it is only for one note at a time. But I do not know if the API available allows to control the keys of the USB keyboard. I have used this function to redirect:
function note_column_tracker( song )
song = renoise.song()
--"vb.views['WMP_CTRL_NOT'].value" is a number (range 0 to 119)
for i = 0, 11 do if vb.views['WMP_CTRL_NOT'].value == i then return i + 1 end end
for i = 12, 23 do if vb.views['WMP_CTRL_NOT'].value == i then return i - 11 end end
for i = 24, 35 do if vb.views['WMP_CTRL_NOT'].value == i then return i - 23 end end
for i = 36, 47 do if vb.views['WMP_CTRL_NOT'].value == i then return i - 35 end end
for i = 48, 59 do if vb.views['WMP_CTRL_NOT'].value == i then return i - 47 end end
for i = 60, 71 do if vb.views['WMP_CTRL_NOT'].value == i then return i - 59 end end
for i = 72, 83 do if vb.views['WMP_CTRL_NOT'].value == i then return i - 71 end end
for i = 84, 95 do if vb.views['WMP_CTRL_NOT'].value == i then return i - 83 end end
for i = 96,107 do if vb.views['WMP_CTRL_NOT'].value == i then return i - 95 end end
for i = 108,119 do if vb.views['WMP_CTRL_NOT'].value == i then return i - 107 end end
song.patterns.tracks.lines.note_columns[ note_column_tracker() ] --"note_column_tracker()" is a number (range 1 to 12)
I still do not control the "line notifiers" to carry out this. Somehow, this will also be related to illuminating each key on the virtual keyboard when a line has a concrete note (Illuminate a button when a note sounds in the pattern). Some time ago you told me that it is possible to do it, but with a little delay. It would be great if I had an example with a single button associated with a particular note. Could you make an example tool that does this? So I could multiply it for the 120 notes for my virtual piano for the mouse.
I am thinking of everything he has told me. I get the feeling that the API should provide other capabilities to be able to do all this, other functions that give us greater control to control first what will happen in the pattern, and also later. In this topic, Instead of accumulating the notes in the first columns, as Renoise is programmed, so that we can assign each note to each note column directly, using buttons, using a USB keyboard or using a MIDI keyboard. So, instead of doing two things, I would do one.
The steps I have in mind, to see if it is correct or not, to see what you think:
- Create a checkbox to enable or disable the function that chases the notes. Enable: sort the notes in note columns inside the same track. Disable Renoise: works by default.
- Enable checkbox.
- In live recording regardless of the peripheral used (mouse, USB keyboard or MIDI keyboard), write any note in track 01.
- A notifier is then activated to detect that a new note is written. Correct ? The doubts I have concentrated here. How to turn it on and off, so you have the least possible delay and at the same time have the maximum performance. In theory, would this notifier work at any time?
- Then you have to create a function that copies that note with its associated values, in the corresponding note column, and then delete the original note.
- And back to the same. It would also be difficult to translate Note-OFFs.
I understand that this function would be valid for all peripherals when entering notes. That is, change what Renoise has already written. If there was any way to change the writing position before writing the note for live recording, I think the OFF-note would be written directly where it corresponds. It seems simpler at first. But I do not know if the API allows writing conditioning: if you press "M" key (B- note) write the note in note column 12. This whole thing is very interesting.
By the way, it has given me the feeling that you were doing experiments with a possible pianoroll in some of your gifs. Are you developing something serious or are only tests? I read a comment from FFX recently on another forum, commenting that some internal Renoise stuff should be fixed rather than trying to optimize the API available to make tools. It is true that some things related to the GUI become very slow if the functions are a little heavy. For example, move 30 tracks of position in the index at a time or things like that. But I also realized that depending on the function you use, it can work better. So maybe they are both.
Edited by Raul (ulneiz), 23 February 2017 - 17:43.