New Tool (2.7, 2.8): Step Sequencer

There is an update, please see first post. Usability should be improved now.
Again, thanks for the useful replys and support :)

Good idea.

[quote=“Jonas, post:5, topic:29567”]
Having great fun setting the patternlength to 16 and the editstep to 1 in your tool!

Some more requests :)

  1. a preview button that triggers/plays the sample/instrument without inputting any note, for when you don’t remember what sample it is / can’t read the complete name in the instr listing.

  2. the ability to highlight certain blocks (sorta like Renoises pattern/seq highlight), making it easier to determine the placement of hits.

  3. ability to call & restore presets :)

Bug:

Replacing a sample (in this case with a vsti) while having the script playing:

'C:\Users\plugexpert\AppData\Roaming\Renoise\V2.6.0\Scripts\Tools\de.cie.StepSequencer.xrnx\main.lua' failed in one of its notifiers.  
The notifier will be disabled to prevent further errors.  
  
Please contact the author (Cie [cie@cie-online.de]) for assistance...  
  
.\gui.lua:234: attempt to index field '?' (a nil value)  
stack traceback:  
 .\gui.lua:234: in function <.><br>```

<br>
<br>
Even though the bug screens, the script seems to work again after closing down the error notice. Would one nevertheless need to have the script tool reloaded in the tools window as these could be bugs resulting from the first 'crash'?<br>[/quote]<br>
to 1) if you click on the select box of the sample, the full name should be visible. But I like this feature though.<br>
2+3)yeah also good ideas.<br>
Bug should be fixed.<br>
<br>
[quote="Jonas, post:5, topic:29567"]<br>
Cie: Great stuff! <br>
<br>
Some random Lua and Lua for Renoise tips:<br>
<br>
* You're already listening to instrument &amp; track name changes. To get notified of the track and instruent list changes (attach to new stuff, detach from old stuff) you can use the renoise.song().instruments_observable and renoise.song().tracks_observable<br>
Avoid using local functions for notifiers. Local functions are created anonymously "on the fly", so you can not use its signature to remove them again.<br>
<br>
<br>
* Looping through stuff often is easier with pairs in Lua:<br>
-- instead of:<br>
for i=1,#renoise.song().instruments do <br>
  renoise.song().instruments[i].name_observable:add_notifier(function() end)<br>
end<br>
-- use <br>
for index,instrument in pairs(renoise.song().instruments) do <br>
  instrument.name_observable:add_notifier(function() end)<br>
end<br>
<br>
* using table.create makes tables a bit more OO (and IMHO easier to read/write):<br>
-- instead of<br>
instrument_names = {}<br>
table.insert(instrument_names, "something")<br>
-- you can use <br>
instrument_names = table.create()<br>
instrument_names:insert("something")<br>
 <br>
Let us know if you need any help with all the details. This thing is a beast, will use a large part of the API!<br>[/quote]<br>
Thank you very much for the help <img src="upload://yGrKuhdxbbf2nIFvV2XDJuEFQb7.gif" class="bbc_emoticon" alt=":)"> Some tips I have already implemented and brought me some steps further. With the looping stuff without common for syntax is quite unfamiliar for me <img src="https://files.renoise.com/forum/emoticons/default/wink.gif" class="bbc_emoticon" alt=";)"><br>
<br>
[quote="Jonas, post:5, topic:29567"]<br>
Awesome work. Such concise code! I'm itching to write some code which would sync this with my launchpad.<br>
Great interface as well. You've almost/kind of fulfilled the piano-roll concept in the simplest way possible. I'm imagining another menu with the ability to add a set of a notes to a list, and that list becomes a "chord", which can be assigned to each row much like a single note.<br>[/quote]<br>
Thank you <img src="upload://yGrKuhdxbbf2nIFvV2XDJuEFQb7.gif" class="bbc_emoticon" alt=":)"> If you are still interested in coding some midi-stuff just contact me.<br>
<br>
[quote="Jonas, post:5, topic:29567"]<br>
timing/groove settings would be very usefull on this one !<br>[/quote]<br>
Yes, maybe in a late version. Some features are more relevant for me at the moment.</.>

Thanks for the update!

Dunno if you already looked at this particular bug, but setting a pattern length of 1 in Renoise and using an editstep of 4, then clicking multiple checkboxes in your script and pressing play gives me:

'C:\Users\plugexpert\AppData\Roaming\Renoise\V2.6.0\Scripts\Tools\de.cie.StepSequencer.xrnx\main.lua' failed in one of its notifiers.  
The notifier will be disabled to prevent further errors.  
  
Please contact the author (Cie [cie@cie-online.de]) for assistance...  
  
.\gui.lua:175: attempt to index field '?' (a nil value)  
stack traceback:  
 .\gui.lua:175: in function 'set_note'  
 .\gui.lua:211: in function <.><br>```

<br>
<br>
<br>
Now I know a pattern length of 1 is out of the ordinary :-) , but better to be save then sorry!</.>

[quote=“Ledger, post:20, topic:29567”]
On win 7 machine when trying to open the GUI get this: (strangely not on XP)

V0.041a
Attachment 1180 not found.

I have found what was causing this. If the instrument list has less than 7? active slots then you get an error similar to this. i.e. on a new song middle-click the instrument box and delete a few slots. Now the step sequencer will not load.

edit: On my win 7 machine my template song only has two instrument slots. That is why there was a difference.

Yes, setting the pattern length to 1 (or less than 16) does not make much sense for the step sequencer. The nil value is obvious, because there is not more than one step. Maybe I will implement a warning message if a user tries to reduces the patternsize to less than 16 in a later version.

Thank you. As I have not W7 but XP, I could not reproduce it. Thanks to your answer the error message seems to make sense. The step sequencer tries to load the first eight instruments by default; if there are no or too less instruments loaded, the tool fails on W7. On XP Renoise seems to load some empty intstruments by default, so no error appears. Maybe I will regard this in a future version, and do not set empty instruments by default.

i just noticed that even if i dont use this in a track,every time i press play theres a pop-up message about a error in this,but its so fast that i cant read it

Thanks, s-n-s.
There will be an update on the late weekend.

thanks Cie

Hey Cie,

This has made my transition to Renoise so much easier. Any chance of a 32 steps / 16 track version?

Hopefully this composing process will proof so successful, it will some day be incorporated in a dedicated tab, hardcoded inside Renoise. Having pattern length in the pattern editor be automatically taken into account in the length of the step-sequencer etc etc. Basically, just look at Fl Studio’s step sequencer and rip all the functionality :wink:

There is an update. Major changes are the loading of the pattern contents into the sequencer and the page selection, so that the complete pattern can be viewed and modified. Please have a look at the first post for details.
You need Renoise 2.6b6 or later.
I have also set up a project page on my homepage (http://www.cie-online.de)

should be fixed

should be fixed

Yes, good chances in a later version. :) I plan to make options to customize #steps and #tracks.

genius! :) thnx!

edit:

the greeen status light in your tool doesn’t auto update here when a song is playing, am I doing something wrong or a bug?

thx :)
Well as I did not had time to make a intensive test, it is probably a bug ;)
Does the green light does not appear at all? If not, is it reproducable when not? The green light should always move in play mode, unless you have editstep 1 or 2 and opened a page which represents a range of the pattern which is not played at the moment.

MMMmm, I’ve set the pattern length in the pattern editor to 14 (7/4) and used an editstep of 1 in your tool, maybe the last part of your quote here applies and a part outside the range was playing? I can’t test this at the moment, because opening your tool in the particular song gives:

'C:\Users\plugexpert\AppData\Roaming\Renoise\V2.6.0\Scripts\Tools\de.cie.StepSequencer.xrnx\' failed to execute in one of its menu entry functions.  
  
Please contact the author (Cie [cie@cie-online.de]) for assistance...  
  
std::logic_error: 'ViewBuilder: invalid value for valuebox: '1'. value must be [1 - 0].'  
stack traceback:  
 [C]: in function 'valuebox'  
 .\gui.lua:651: in function 'create_gui'  
 main.lua:69: in function <67><br>```

</67>

[quote=“Jonas, post:33, topic:29567”]
MMMmm, I’ve set the pattern length in the pattern editor to 14 (7/4) and used an editstep of 1 in your tool, maybe the last part of your quote here applies and a part outside the range was playing? I can’t test this at the moment, because opening your tool in the particular song gives:

'C:\Users\plugexpert\AppData\Roaming\Renoise\V2.6.0\Scripts\Tools\de.cie.StepSequencer.xrnx\' failed to execute in one of its menu entry functions.  
  
Please contact the author (Cie [cie@cie-online.de]) for assistance...  
  
std::logic_error: 'ViewBuilder: invalid value for valuebox: '1'. value must be [1 - 0].'  
stack traceback:  
 [C]: in function 'valuebox'  
 .\gui.lua:651: in function 'create_gui'  
 main.lua:69: in function <67><br>```

<br>[/quote]<br>
Ah ok, I did not expect (and test) a pattern size &lt; 16. I quick-fixed the above error, but there maybe some problems though. Nevertheless you should use it with Editstep 1. Note, that there will be 16 steps fixed, regardless which patternsize you have chosen.</67>

thnx, quick fix seems to have removed the bug screen, the green light also seems to work, but the last step is always lit. Also, when you minimize Renoise while you have the song & script playing, for example to browse this forum and than come back to Renoise, the index light is frozen.

Thanks, should be fixed. Also some other bugs should be fixed now.

I have uploaded a new version. If there are no fundamental bugs in the usability I will upgrade the tool to beta on the next release.

Nice1! Could you please upload it as .xrnx, right now it opens up as a .zip and my n00b ass doesn’t know how to transform it to a working script! Cheers

Sorry, reuploaded.

:drummer:

Guess the next step is the possibility to auto-scroll through the pages if the edit-step for example is set to 1 in your script? Finished a tune by the way using your tool as a start, really inspirational to build up drums through the step-sequencer!

Hi,

I can’t start the gui with the new version (v0.63a). Here’s the output I get in the terminal when I try to start the gui from the tools menu :

  
build instr table  
instr # 1   
instr # 2   
instr # 3   
instr # 4   
instr # 5   
instr # 6   
instr # 7   
instr # 8   
*** [string "-------------------------------------------..."]:407: attempt to index upvalue 'pattern_track' (a nil value)  
*** stack traceback:  
*** [string "-------------------------------------------..."]:407: in function '(for generator)'  
*** ./gui.lua:62: in function 'load_pattern_into_sequencer'  
*** ./gui.lua:448: in function 'create_gui'  
*** main.lua:69: in function <67><br>```

<br>
I use renoise 2.6b6. It happens only if I have less than 8 tracks in my song.</67>