nope i’m just getting a silent wav. the song has a line-in that is used to hear what a bit of external gear plays. nothing else.
this leads me to believe that I haven’t been able to define priority=realtime properly in that snippet.
Currently it’s just a button that starts rendering of the whole song to a static filename in a static location. I’m hoping to eventually also open up a finder/explorer in the location - since Renoise Native RenderSongToDisk does not allow for “open folder where you just diskwrote the track to”. I’m also hoping it’ll help me sample outboard gear of multiple patterns easier. & stuff.
I’m using this script to start rendering of a song to a static filename in a static folder (haven’t gotten around to figuring out how to use the lua gui to be able to define a folder, store it and ask for a filename, at least not yet - and saving that to a xml file etc). i’m using it to record the whole song, and especially with external gear piped into Renoise with the realtime priority mode on, via line-in device(s). It’d be easy to modify this to be a shortcut I can call to render-whole-song. But I can’t seem to set the Realtime mode, for some reason, or then this lua api rendering somehow does not yet allow for “realtime rendering when line-in devices detected”.
I’m not entirely sure.
You said there’s nothing but a line-in device in your song and anything ‘external’ does not get rendered. Have you tested that anything ‘internal’ like a sample-based instrument does? Just to rule that out… If it indeed turns out that internal things get rendered, while external does not, then… I’m stumped. I can’t see an obvious error in your code snippet. You’re defining the realtime property twice, but that should not be a problem. Hmm.
Maybe if you try to set all keys of the options-table? I know the ref says they’re optional, but maybe just to try?
Hi, I’ve tried to use the lua render command for realtime rendering, but everytime I toggle the render command, any #line input devices in the song get muted. Surely the render command should be able to do realtime rendering with line-in enabled?
vb:button {tooltip="render", text="Render Song", pressed =
function()
local rendering_done_callback=function()
renoise.app():show_status("dfdf")
end
local file_name="/Users/esaruoho/ding"
local bitdepth = {bit_depth=16, priority="realtime", sample_rate=88200}
renoise.song():render(bitdepth, file_name, rendering_done_callback)
end},
Yeah, says “Recording Device is disabled” on #line input even if it’s at midi return or realtime recording.
Yeah, that won’t work, because the options are supposed to be passed as a single table. What I meant with ‘set all keys’ was that maybe the table should be passed with all keys included… ? Dunno. Test?
Meaning: (from the reference)
--generate the table structure
local options = {
start_pos, -- renoise.SongPos object. by default the song start.
end_pos, -- renoise.SongPos object. by default the song end.
sample_rate, -- number, one of 22050, 44100, 48000, 88200, 96000. \
-- by default the players current rate.
bit_depth , -- number, one of 16, 24 or 32. by default 32.
interpolation, -- string, one of 'cubic', 'sinc'. by default 'cubic'.
priority, -- string, one "low", "realtime", "high". \
-- by default "high".
}
--set needed values for keys
options.priority = "realtime"
options.interpolation = "cubic" --as realtime does not support sinc, I gather? (but the default seems to be cubic anyway. hmm..)
--and then pass the whole options-table-shebang to render
renoise.song():render(options, file_name, rendering_done_callback)
Anyways. I have a feeling that this might not help. Worth a shot, though? This would be the perfect time for a real developer to step in and give some directions…
all keys are not required… if they were, setting bitrate=16 would ignore and default to 32.
vb:button {tooltip="render", text="Render Song", pressed =
function()
local rendering_done_callback=function()
renoise.app():show_status("dfdf")
end
local file_name="/Users/esaruoho/ding"
local bitdepth = {bit_depth=16, priority="high", sample_rate=88200}
renoise.song():render(bitdepth, file_name, rendering_done_callback)
end},
high, low, realtime all work with this setup, but high + low disable lineinput device (with “Recording device is disabled” -text)… and realtime doesn’t show “Recording device is disabled” yet STILL disables the recording device for the realtime render.
ok, that’s what i get if i do priority=high. but if i do priority=realtime they don’t get disabled, but their input sound gets muted immediately. it’s as if renoise does a “panic” first (disabling lineinput) and then starts rendering.
surely this #line input should not be disabled anymore in renoise 2.7 since renoise 2.7 can do rendering with outboard gear…
edit: those pictures were taken with priority=high. if i switch to priority=realtime, the line input vu-meter gets disabled and thus no sound is recorded. i can’t seem to get priority=realtime to work (it IS rendering realtime, but #line input device is disabled)…
I also tried with this (added it to the vb:button function), and realtime is selected (i notice it from the speed of rendering), but the #line input device is muted on start of.
Ok, i have some details. You’ll love this.
– start rendering with a looping sample that loops through-out the track, and with a line in device on second channel. render has line in + looping sample
– start rendering with looping sample that stops on row 3 + and with linein device on second channel - render has line in + looping sample UNTIL note off.
– start rendering with only line-in - nothing. also, the line-in vumeter stops being updated, and the master mixer up vumeter doesn’t get updated either.
– start rendering with only line-in will sometimes be in such a state that it gives a 257sample clip of line input and the rest of the rendering is silence. ¨
also it seems that after a while the only behaviour i can get when recording both sample + line_in to try and get line_in, is about 257 samples worth of “coming in” (sound of line_in) which is then cut and only the sample plays.
Also, you don’t get the 257 samples of line-in if there’s a send on the line-in device track… i tried to use that to try and get it to echo or something but it stopped existing…
Ok, I just decided to copypaste your code into the button and since i made a little lua error, saving the script actually ran the function - and i got a wavefile with the line input sound. however, when i fixed it inside a function, no go again.
Yes, your code will work in the terminal, and as a keyboard_shortcut. But I’m trying to have a button that does it, and for some reason said button can’t start it without killing the line-input. I’ll try and see if i can somehow get it to work with a gui button… dunno why can’t get it working right now.
edit:
okay, after some mucking about, I got a keyboard shortcut to do it, but a gui button won’t do it!? I*m starting to wonder…
function taktikrender()
renoise.song():render( {priority="realtime"}, "/Test", function() renoise.app():show_status("Done") end )
end
renoise.tool():add_keybinding {
name = "Global:Impulse:TaktikRender",
invoke = function() taktikrender()
end }
this works as a keyshortcut, what i don’t get is why i can’t get a gui going. w e i r d