New Tool (3.1): Auto Grow Sequence


(joule) #1

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”

8149 joule.no0b.AutoGrowSequence.xrnx


(stoiximan) #2

Very nice my friend congrats and thank you


(Djeroek) #3

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?


(joule) #4

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


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

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


(ffx) #6

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?


(Djeroek) #7

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.


(joule) #8

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


(Rpnz) #9

what does this tool do?


(danoise) #10

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.


(joule) #11

So everything is tl;dr unless it’s lua… you need to take care of yourself, man :slight_smile:


(danoise) #12

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.


(joule) #13

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”.


(danoise) #14

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.


(Raul (ulneiz)) #15

@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.


(joule) #16

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?


(Raul (ulneiz)) #17

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)?

Click to view contents

============================================================

Version : Renoise V3.1.1 (Feb 6 2017)

Date : 2018-08-01

Time : 15:05:12

OS : Windows 10 (x86_64)

============================================================

CPU: Found 1 enabled unit(s) with 4 core(s) and 8 logical processor(s) per unit. 4 cores, 8 logical processors are enabled in total.

Application: Showing the splash window…

Application: Initializing the API…

IPP: Detected CPU type: 0x46

MIDI: Initializing DirectMusic…

MIDI: Failed to get the DirectMusicPerformance Interface (error: 80040154). Skipping DirectMusic devices…

Graphport: Initializing Freeimage…

System: Using ‘C:\Program Files\Renoise 3.1.1\Resources’ as resource base directory…

GraphPort: Initializing DirectX…

GraphPort: Initializing the Font Engine…

Content Libraries: Found library ‘com.renoise.djeroek’

ReWire Slave: ReWire slave engine link (Local Machine) FAILED to install (RegError: 5)

ReWire Slave: ReWire engine link (Current User) is already installed and up to date…

ReWire Slave: ReWire Panel was initialized…

ReWire Slave: ReWire Slave mode failed to init (no master is running)…

ReWire Master: Successfully opened

Timer: Seems safe to use the ‘QueryPerformance’ counters…

Application: Start running…

Application: Loading the preferences…

Application: Init…

ScriptingTools: Initializing Scripting Tool: ‘C:\Users\FF-FF\AppData\Roaming\Renoise\V3.1.1\Scripts\Tools\joule.no0b.AutoGrowSequence.xrnx’…

DspDevices: Registering native DSP effects…

DirectSound: Initializing…

DirectSound: Using SampleRate 48000

DirectSound: Primary Buffer Format: FormatTag=1, Channels=2, SamplesPerSec=48000, BitsPerSample=16, BlockAlign=4

DirectSound: CreateObjects … OK

DirectSound: Using MaxProcessingBlockSize: 1792

DirectSound: Output Buffer Format: BufferSize=96000, FormatTag=1, Channels=2, SamplesPerSec=48000, BitsPerSample=16, BlockAlign=4

DirectSound: Input Buffer Format: BufferSize=96000, FormatTag=1, Channels=2, SamplesPerSec=48000, BitsPerSample=16, BlockAlign=4

DirectSound: CreateBuffer … OK

DirectSound: Up and running

MIDI: Enumerating Windows MME MIDI devices…

MIDI: Adding MME out-device ‘Microsoft GS Wavetable Synth’

MIDI: Finished device enumeration

MIDI: Creating MIDI server…

Application: Creating a new document…

MIDI: Loading MIDI actions from file ‘C:\Program Files\Renoise 3.1.1\Resources\Scripts\GlobalMidiActions.lua’…

Osc: Loading OSC actions from file ‘C:\Program Files\Renoise 3.1.1\Resources\Scripts\GlobalOscActions.lua’…

Player: Constructing…

Player: Creating slave threads…

Player: 8 threads enabled. 8 CPUs are available.

Player: Start running…

GUI: Creating the Document GUI…

GUI: Successfully constructed

Application: A new document was created.

GraphPort: Initializing in WindowedMode

GraphPort: Successfully initialized

Application: Init OK

Application: Enter MainLoop…

CrashLog: Handling Exception! Code : C0000005

CrashLog: 00000001408AF040: l9_ippsSin_64f_A50 +6D0950

CrashLog: 000000014090D540: l9_ippsSin_64f_A50 +72EE50

CrashLog: 0000000140DF9587: l9_ippsSin_64f_A50 +C1AE97

CrashLog: 000000014088D297: l9_ippsSin_64f_A50 +6AEBA7

CrashLog: 000000014044791D: l9_ippsSin_64f_A50 +26922D

CrashLog: 00000001403E9222: l9_ippsSin_64f_A50 +20AB32

CrashLog: 00000001403E8CA9: l9_ippsSin_64f_A50 +20A5B9

CrashLog: 00000001405073D2: l9_ippsSin_64f_A50 +328CE2

CrashLog: 00007FFA907C3034: BaseThreadInitThunk +00014

CrashLog: FFFFFFFFFFFFFFFF: ??? +00000

Application: Caught an unhandled fatal exception (Thread: AUDIO)!

Application: Saving a backup…

Application: Terminating…

DirectSound: Stop Polling…

DirectSound: Timeout while waiting for DirectSound to shut down!!

DirectSound: Releasing Primary Sound Device…

DirectSound: Releasing Primary Capture Device…

MIDI: Shut down: Closing all acquired MIDI devices…

MIDI: Shutting down MIDI server…

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…


(joule) #18

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.


(Raul (ulneiz)) #19

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.


(joule) #20

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.