Jump to content


Photo

New Tool (3.1): Auto Grow Sequence


  • Please log in to reply
23 replies to this topic

#1 joule

joule

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1779 posts
  • Gender:Not Telling

Posted 16 July 2018 - 12:54

Someone requested it. A lazy man's workflow improvement, making the Renoise timeline act a bit more like in a conventional DAW.

Inserts patterns as you approach the end of the song.

 

Does what it says.

 

Menu: "Pattern Sequencer:Auto Grow Sequence"

Attached File  joule.no0b.AutoGrowSequence.xrnx   1.5KB   39 downloads


Edited by joule, 17 July 2018 - 07:55.

  • danoise, Ledger, ffx and 4 others like this

#2 stoiximan

stoiximan

    Member

  • Normal Members
  • PipPip
  • 29 posts
  • Gender:Male
  • Location:Greece

Posted 16 July 2018 - 13:15

Very nice my friend congrats and thank you



#3 Djeroek

Djeroek

    Probably More God or Borg Than Human Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6771 posts
  • Gender:Male
  • Location:Borneo

Posted 16 July 2018 - 18:18

Got a fatal error, Renoise crash using this tool and scrolling down & up the sequence list using the mouse.

 

 

CrashLog: Handling Exception! Code : C0000005

CrashLog: 00B4AF0D: h9_ippsSin_64f_A50 +5CA1BD
CrashLog: 00B986F5: h9_ippsSin_64f_A50 +6179A5
CrashLog: 00B2D593: h9_ippsSin_64f_A50 +5AC843
CrashLog: 007839B4: h9_ippsSin_64f_A50 +202C64
CrashLog: 0072D434: h9_ippsSin_64f_A50 +1AC6E4
CrashLog: 6B3287C2: ??? +00000
CrashLog: 6B328024: ??? +00000
CrashLog: 75098674: BaseThreadInitThunk +00024
CrashLog: 77565D87: RtlGetAppContainerNamedObjectPath +00137
CrashLog: 77565D57: RtlGetAppContainerNamedObjectPath +00107
 
Application: Caught an unhandled fatal exception (Thread: AUDIO)!
Application: Saving a backup...
 
Audio Plugins: Timeout while waiting for the plugin device to suspend!
 
Audio Plugins: Timeout while waiting for the plugin device to suspend!
 
Application: Terminating...
 
ASIO: Stop Polling...
 

Perhaps this should be moved to the bugs forum?



#4 joule

joule

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1779 posts
  • Gender:Not Telling

Posted 16 July 2018 - 18:25

Got a fatal error, Renoise crash using this tool and scrolling down & up the sequence list using the mouse.


Yes, that would most likely be a bug in the Renoise linux (?) build.

Out of curiousity, does it happen only when scrolling "up" and sequences are removed? (which could imply there might be a problem with extending native renoise classes under that OS)

Please post a bug report if the bug is present in Renoise 3.1.1

Edited by joule, 16 July 2018 - 18:53.


#5 4Tey

4Tey

    Big GrandDaddy Member

  • Normal Members
  • PipPipPipPipPipPipPipPip
  • 484 posts
  • Gender:Male

Posted 16 July 2018 - 18:35

CrashLog: Handling Exception! Code : C0000005
...
ASIO: Stop Polling...

I would've thought Joule that looks like a Windows exception tbh.  Also ASIO with linux?



#6 ffx

ffx

    Composes without Wires burns Directly from Brain to DVD that is already in Store Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 3391 posts
  • Gender:Not Telling

Posted 16 July 2018 - 19:50

 

 

Audio Plugins: Timeout while waiting for the plugin device to suspend!

 

Maybe a plugin crashed due crazy automation changes caused by a bug in automation following or something else in Renoise?


Test system: macOS 10.13.4, HFS+. Firewire Audio, i7 4770, 8GB Ram, GTX1050 2GB, 48kHz
GUI Automation RecorderNative DSP Context MenuTuned ShortcutsUnified Value Shift And Transpose | Jump To From Send Modified (Docs) | Quick Template | Nisanmol's Groove Tool FixedThemes


#7 Djeroek

Djeroek

    Probably More God or Borg Than Human Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6771 posts
  • Gender:Male
  • Location:Borneo

Posted 16 July 2018 - 22:09

No automation, windows 10 btw & Renoise 3.1.1.
 

I can reproduce using a phrased sampled instrument placing a note on the first line of the first pattern, enable the tool in the sequence list & use the mouse to drag the slider downwards so patterns are automatically added, then enable record and insert notes using the computer keyboard & dragging the slider up & down while recording the input.



#8 joule

joule

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1779 posts
  • Gender:Not Telling

Posted 16 July 2018 - 22:19

Yes, that's obviously some bug in Renoise. Can't do much about that.. let's hope it's an edge case :)

#9 Rpnz

Rpnz

    Big Masta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPip
  • 568 posts
  • Gender:Male

Posted 16 July 2018 - 23:38

what does this tool do?
House Music All Night Long. - Say What?

#10 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6902 posts
  • Gender:Male
  • Location:Berlin
  • Interests:wildlife + urban trekking

Posted 17 July 2018 - 07:20

what does this tool do?

 

The name implies what it does; automatically expanding the pattern sequence as you reach the end. 

It adds a shortcut to the pattern sequence context menu , which you can use for toggling the tool on and off. 

 

@joule: maybe an idea to mention this in the tool description too? 

I overlooked your hint above, so I looked inside the source code to figure this out.


Tracking with Stuff. API wishlist | Soundcloud


#11 joule

joule

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1779 posts
  • Gender:Not Telling

Posted 17 July 2018 - 08:03

So everything is tl;dr unless it's lua.. you need to take care of yourself, man :)

#12 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6902 posts
  • Gender:Male
  • Location:Berlin
  • Interests:wildlife + urban trekking

Posted 17 July 2018 - 08:33

I might be challenged in my inability read a few lines here and there, but my point was this one: 

 

"Proper Tool Usage Description In Manifest Plz" 

 

Very interesting idea for a tool btw. Like some virtual space just waiting to be put to use... 

Now that I have installed it, interesting to see if it'll affect my workflow. 


Tracking with Stuff. API wishlist | Soundcloud


#13 joule

joule

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1779 posts
  • Gender:Not Telling

Posted 17 July 2018 - 08:36

The tool description says:

<Description>Automatically insert new patterns when approaching the end of the song</Description>

Please let me know what it should say.

 

About the usage.. I just consider it a "patch" that makes you (almost) never have to push those - and + buttons in the sequencer. Hence "lazy man's workflow improvement".


Edited by joule, 17 July 2018 - 08:40.


#14 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6902 posts
  • Gender:Male
  • Location:Berlin
  • Interests:wildlife + urban trekking

Posted 17 July 2018 - 09:39

Yay, all I was missing what to know how to launch the tool. 

<Description>Automatically insert new patterns when approaching the end of the song. To access the tool, right-click in the pattern sequence and choose 'Auto Grow Sequence'.</Description>

...something to that effect?

 

It's logical, but not obvious that the tool would embed itself there. 


  • joule likes this

Tracking with Stuff. API wishlist | Soundcloud


#15 Raul (ulneiz)

Raul (ulneiz)

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1490 posts
  • Gender:Male
  • Location:Spain

Posted 01 August 2018 - 13:45

@Joule. I really like how this tool works! Thanks!

 

I tried to do tests with the mouse (randomly rotating the pattern sequence) and the alphanumeric keyboard to record notes in the pattern editor (not even without a loaded instrument). In the end I can crash Renoise, without any final notification, it just crashes and stops responding. I have made sure that only this tool is activated (R3.1.1 x64 Windows 10 x64, mouse+keyboard USB).

 

It would be great if it worked fine and secure. Even something like that should be native through an option, as well as the possibility of cloning down several selected patterns inside the sequence. I am using these two features very much with my tools.


:excl: Development of my tools: KangarooX120SamRenderPhraseTouch  |  GT16-Colors (old)

 

:excl: My API wishlist R3.1 (updated 24 July 2017):

Spoiler

 

:excl: My Renoise 3.1 wishlist (updated 26 September 2017):

Spoiler

#16 joule

joule

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1779 posts
  • Gender:Not Telling

Posted 01 August 2018 - 13:53

Yes, it's been reported earlier in this thread. It's some bug in Renoise and I can't do much about it. I believe it only happens if you really try to abuse it?



#17 Raul (ulneiz)

Raul (ulneiz)

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1490 posts
  • Gender:Male
  • Location:Spain

Posted 01 August 2018 - 14:12

I believe it only happens if you really try to abuse it?

 

It seems! But I do not know to what extent. It gives the feeling that you do not have time to "do something" at any given time. Do you use any notifier with its delay? Maybe you try to access something that does not exist, when a few milliseconds ago it did exist, by turning the wheel up and down. I really would not know how to explain it. Is it possible that the function lacks adding a tester (in case it is the case)?

 

Spoiler

 

CrashLog: Handling Exception! Code : C0000005, Confirmed! I do not think it has to do with the audio. I suspect that this will be more delicate if the user has many more patterns...


:excl: Development of my tools: KangarooX120SamRenderPhraseTouch  |  GT16-Colors (old)

 

:excl: My API wishlist R3.1 (updated 24 July 2017):

Spoiler

 

:excl: My Renoise 3.1 wishlist (updated 26 September 2017):

Spoiler

#18 joule

joule

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1779 posts
  • Gender:Not Telling

Posted 01 August 2018 - 14:20

Nope. Nothing special is going on. All logic is very simple. Most likely, some edge case is happening internally in Renoise that it doesn't handle properly.



#19 Raul (ulneiz)

Raul (ulneiz)

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1490 posts
  • Gender:Male
  • Location:Spain

Posted 01 August 2018 - 15:05

Nope. Nothing special is going on. All logic is very simple. Most likely, some edge case is happening internally in Renoise that it doesn't handle properly.

 

Ok, I suppose there will be no other way to write the code, to avoid that error. It will continue to appear... It's a shame, because the tool does the job very well, and I think it does not break any of the user's workflow.


:excl: Development of my tools: KangarooX120SamRenderPhraseTouch  |  GT16-Colors (old)

 

:excl: My API wishlist R3.1 (updated 24 July 2017):

Spoiler

 

:excl: My Renoise 3.1 wishlist (updated 26 September 2017):

Spoiler

#20 joule

joule

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1779 posts
  • Gender:Not Telling

Posted 02 August 2018 - 22:54

Ok, I suppose there will be no other way to write the code, to avoid that error. It will continue to appear... It's a shame, because the tool does the job very well, and I think it does not break any of the user's workflow.

 

I could see if it's possible to circumvent by wrapping the removal of sequences inside an idle_observable notifier. Is it really a practical problem, though? If the bug only occur during deliberate provocation, I'd prefer to leave it the way it is.



#21 Raul (ulneiz)

Raul (ulneiz)

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1490 posts
  • Gender:Male
  • Location:Spain

Posted 04 August 2018 - 15:22

I could see if it's possible to circumvent by wrapping the removal of sequences inside an idle_observable notifier. Is it really a practical problem, though? If the bug only occur during deliberate provocation, I'd prefer to leave it the way it is.

 

I'm sorry to tell you this... I have been doing tests with another own tool that also adds patterns automatically. By doing various tests, I have noticed that there is also a problem with the native Undo (CTRL + Z). If I hold down (CTRL + Z) and many times Renoise returns an error and closes (A fatal error or chrash occurred ...), the same error...

 

So, I went back to your tool, and the same thing happens. I would not recommend the use of this tool because Renoise does not seem stable. Apparently, Renoise misses out by deleting a pattern at a certain time. I suppose that, when a pattern is added, an index or something is recorded and something is wrong, because when it comes to erase, there comes a moment when something goes wrong, as if it wanted to erase something that does not exist, or it does it too fast or too slow. I don't know!
 
That to force with the wheel of the mouse then Renoise crash is already something to take into account. But that Undo width CTRL + Z does it is a very serious matter. This should be thoroughly reviewed by the Renoise Team. 
 
I have done another test. I have put 5ms in the USB keyboard repeat settings, and I press the down key to add patterns automatically with your tool. Here it seems to work correctly! 

 

Everything seems to indicate that using the mouse wheel in the sequence is conflicting, and does not depend on the tool at all (the code), it is something internal to Renoise. Maybe we should report this as a serious BUG. Imagine this issue in a RAS type tool. The truth is that these errors annoy a lot!!!

 

As I understand it, no tool should be able to hang Renoise. That is the objective! But unfortunately it is not! We do not have the control to avoid these errors and it is frustrating, because there is no support for many months!

 

Have you tried to make a tool type RAS, without this error is present? This kind of errors make developing a tool an absurdity. You can think and write the code well and then Renoise hangs anyway.

 

Edit: In case it helps: I think the problem is when the patterns are added, that the index register is not correctly established (I suppose). The problem is not in the process undo CTRL + Z or in the act of deleting, but in that which must be deleted (which has been registered for a long time before).


Edited by Raul (ulneiz), 04 August 2018 - 15:29.

:excl: Development of my tools: KangarooX120SamRenderPhraseTouch  |  GT16-Colors (old)

 

:excl: My API wishlist R3.1 (updated 24 July 2017):

Spoiler

 

:excl: My Renoise 3.1 wishlist (updated 26 September 2017):

Spoiler

#22 joule

joule

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1779 posts
  • Gender:Not Telling

Posted 04 August 2018 - 15:42

Indeed, but it probably has to do with the deletion rather than creation. Maybe some problem with object destruction internally. Or malfunctioning pointers. Or something related to gc/finalize metatables of the lua objects.

 

The bug doesn't have to do with the scroll wheel. It also happens when using the gui scrollbar.

 

Maybe it will get fixed faster if I upload it to the tools page ;)



#23 Raul (ulneiz)

Raul (ulneiz)

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1490 posts
  • Gender:Male
  • Location:Spain

Posted 05 August 2018 - 09:16

Indeed, but it probably has to do with the deletion rather than creation. Maybe some problem with object destruction internally. Or malfunctioning pointers. Or something related to gc/finalize metatables of the lua objects.

 

The bug doesn't have to do with the scroll wheel. It also happens when using the gui scrollbar.

 

Maybe it will get fixed faster if I upload it to the tools page ;)

 

^_^ Maybe...

 

I believe that if you replace the notifier in charge of detecting the sequence change by a timer (add_timer ()), the way to register the Undo-Redo queue changes. This will avoid the error.
 
I have done some tests running away from the notifier (selected_sequence_index_observable: add_notifier ()) and using my own timer (5-10ms) and the tool looks like another. Actually, the delay in milliseconds does not matter. If you use a higher value, 15 or 20ms, it will be easier for you not to register the sequence change, but there will be no error in the tail of Undo-Redo. However, I have noticed that the way to save the Undo-Redo tail is different. Pressing CTRL + Z behaves differently.

 

To my knowledge, a notifier has a delay of about 10 milliseconds. I usually set the timer (add_timer (func, time)) in 5ms. This does not guarantee 100% reliability, but it is what we have.

 

The conclusion of all this are 2 things:

  1. If the notifier (renoise.song().selected_sequence_index_observable: add_notifier ()) is used , it is very likely that he keeps in the tail of Undo-Redo with inaccuracy, generating serious errors (for handling and saving the Undo-Redo queue).
  2. If the timer ( add_timer(func, time) ) is used, how to save the undo-redo tail changes, even being able to detect that there are no more steps of Undo, when they do exist. But at least, it prevents Renoise from crashing. As far as I know.

Even so, neither of the two things work as I would like. If the timer saved the Undo-Redo queue as the notifier, it would be much better.

 

I recommend that you experiment with a timer, and you compare what happens with the saved tail of Undo-Redo. If you want to maintain identical behavior, use a 10ms timer.


:excl: Development of my tools: KangarooX120SamRenderPhraseTouch  |  GT16-Colors (old)

 

:excl: My API wishlist R3.1 (updated 24 July 2017):

Spoiler

 

:excl: My Renoise 3.1 wishlist (updated 26 September 2017):

Spoiler

#24 joule

joule

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1779 posts
  • Gender:Not Telling

Posted 05 August 2018 - 09:45

The error doesn't happen under undo only.

 

I suggest we leave it at this. OK I'll try an idle_notifier. Shouldn't make a difference, but you never know.

 

Have a try with this one. It seems to work OK here (when undoing, it will temporarily break until changing sequence. I probably won't fix that due to the required complexity of circumventing this edge case)

 

Attached File  joule.no0b.AutoGrowSequence.xrnx   1.62KB   7 downloads


Edited by joule, 05 August 2018 - 11:57.