Strange Things Happening, Signalfollower>Bpm

hi. i just messed around with the signal follower mapped to Master BPM. oh, and master bpm being automated with the automation envelope editor. oh, and LFO controlling the signal follower max amount.

selected the whole pattern, rendered, noticed that most of the time the rendering process goes down to 32bpm - which seems like there’s some code set to value bpm-automation over metadevice->bpm-control.

are we supposed to enjoy these new perks in a live situation only, or can renoise be used to record “what it plays” with render-offline?

also, i just caught renoise rendering the whole pattern, and 4 more rows of the pattern (i.e. a 64 row pattern recorded once, then 4 more rows of the pattern) rendered.
here’s a little video (no sound)

http://www.youtube.com/watch?v=D3QyTaCPY14

as you can see, i try to render this 64 row pattern. instead i get a 68 row pattern.

This time LFO > BPM only, no signal follower,no automation envelope to BPM mess.

http://www.youtube.com/watch?v=xERu4vZN9fU

sometimes 64 row pattern + 4 rows, sometimes 64 row pattern but only 58 rows, sometimes 64 row pattern + 13 rows, sometimes 64 row pattern + 8 rows.
even after resetting the LFO at start of MasterTrack, still getting iffy recordings and stop is not “where it should be”.

Hard to explain why, but unfortunately we can’t fix that. The renderer needs to look up the tempo and stuff for a song in order to guess how long it is. It can’t do so when the source of the BPM changes within the song itself - unpredictably.

I guess it also would be a shame to disallow modulating the BPM from meta devices, so we can probably live with the quirky render behavior?

Yes! :drummer:

As a workaround put a recorder vst on the master out.

however, when an actual song is rendered, will it sound like it’s supposed to sound like? (i mean LFO on BPM where LFO has LPC2 or LPC4 or something, and with a reset of LFO at the start of the song)?

i don’t mind not being able to record pattern-loops, but if it interferes with song rendering, then it’s a problem.

Jargs. Which probably is a very good reason why we should not allow modulating the BPM with metas. We’ll see what we can do to prevent this.

i know this is a bit cheeky, but what about making it possible for each group to have it’s own BPM / LPB settings and then having the actual Master Track reign over them?

Expanding on this idea; It wouldn’t be good for this version of renoise, but I could totally see in the future the ability to create different pattern lengths for each track/group, and have them playing back at different LPBs in the pattern editor, each track scrolling at a different rate. I can totally visualize it in my head, I’m just not good with creating visuals, so I wouldn’t be able to create a little animation to show what I mean. It would be a neat alternative mode to display songs

i know! a native-to-renoise recorder device for Master, native to renoise. no poxy 3rd party plugins (sorry Jonas!), instead allowing us to both record keyjazzing in the sample editor with loop changes AND wonky BPM / LPB stuff. it’s also intelligent, so can render offline without messing up anything.
solution solved.

Thanks, Jenoki. Fixed the crash now, unfortunately rendering still may stop earlier or later than expected when modulating the BPM with a meta device. This is really really hard to fix for us. Can’t promise we’ll be able to solve this at all.

Just had a crash in b4:

[details=“Click to view contents”] Application: Successfully loaded ‘lijp grroove.xrns’.

RenderToDisk: Prepare rendering with mode:‘Entire Song’, separate tracks:‘NO’…
RenderToDisk: Validating render options…
RenderToDisk: Resetting the player…
RenderToDisk: Preparing the audio files (1 in total)…
RenderToDisk: Killing Audio IO…

DirectSound: Stop Polling…
DirectSound: Releasing Luidsprekers (E-MU 0202 | USB)…

RenderToDisk: Setup track routing…
RenderToDisk: Entering the render thread…
RenderToDisk: Preparing latency compensation: Will shift all content by 5184 samples…
RenderToDisk: Starting to render…

CrashLog: Handling Exception! Code : C0000005
CrashLog: Handling Exception! Code : C0000005
CrashLog: Handling Exception! Code : E06D7363

Exception: bad allocation

Application: Caught exception in GUI: bad allocation

Error Message: bad allocation

CrashLog: Handling Exception! Code : E06D7363
CrashLog: Handling Exception! Code : C0000005
CrashLog: Handling Exception! Code : E06D7363
CrashLog: Handling Exception! Code : C0000005
CrashLog: Handling Exception! Code : E06D7363
CrashLog: Handling Exception! Code : E06D7363
CrashLog: Handling Exception! Code : E06D7363
CrashLog: Handling Exception! Code : E06D7363
CrashLog: Handling Exception! Code : E06D7363
CrashLog: Handling Exception! Code : E06D7363
CrashLog: Handling Exception! Code : E06D7363
CrashLog: Handling Exception! Code : E06D7363
CrashLog: Handling Exception! Code : E06D7363
CrashLog: Handling Exception! Code : E06D7363
CrashLog: Handling Exception! Code : E06D7363
CrashLog: 7703FBAE: RaiseException +00058
CrashLog: 7703FBAE: RaiseException +00058
CrashLog: 00603FC4: ??? +00000
CrashLog: 00603FC4: ??? +00000
CrashLog: 005FC98B: ??? +00000
CrashLog: 005FC98B: ??? +00000
CrashLog: 0053D2ED: ??? +00000
CrashLog: 0053D2ED: ??? +00000
CrashLog: 0053D1EB: ??? +00000
CrashLog: 0053D1EB: ??? +00000
CrashLog: 0053CFC6: ??? +00000
CrashLog: 0053CFC6: ??? +00000
CrashLog: 00BD8017: ??? +00000
CrashLog: 0053CFC6: ??? +00000
CrashLog: 00BD8349: ??? +00000
CrashLog: 00BD8349: ??? +00000
CrashLog: 00BD8480: ??? +00000
CrashLog: 00BD8480: ??? +00000
CrashLog: 0097DD8F: ??? +00000
CrashLog: 7704D0E9: ??? +00000
CrashLog: 00BD8780: ??? +00000
CrashLog: 00D63C86: ??? +00000
CrashLog: 0097DD8F: ??? +00000
CrashLog: 00BEDEA1: ??? +00000
CrashLog: 00BD0C96: ??? +00000
CrashLog: 00BEDFC8: ??? +00000
CrashLog: 7704D0E9: BaseThreadInitThunk +00012
CrashLog: 00BEE015: ??? +00000
CrashLog: 771216C3: RtlInitializeExceptionChain +00063
CrashLog: 7704D0E9: BaseThreadInitThunk +00012
CrashLog: 77121696: RtlInitializeExceptionChain +00036
CrashLog: 771216C3: RtlInitializeExceptionChain +00063
CrashLog: 77121696: RtlInitializeExceptionChain +00036

Application: Caught an unhandled exception (Thread: AUDIO SLAVES)!
Application: Saving a backup…

CrashLog: Handling Exception! Code : C0000005
CrashLog: Handling Exception! Code : C0000005
CrashLog: 77125AC5: LdrGetDllHandle +002EE
CrashLog: 77146911: RtlRestoreLastWin32Error +001A1
CrashLog: 7714645F: RtlAllocateHeap +000AF
CrashLog: 005FD1A4: ??? +00000
CrashLog: 005FC92B: ??? +00000
[/details]

Yes, that’s !exactly! what we’ve fixed for B5. B5, not B4!

Nice! :yeah:

What if there was an option to scan for meta modulated BPM changes before render, write these to a fixed tempo map, disable meta to BPM’s and render?

why? It works now, or…?