Resynth2 Released

mxb, i’ve got a question for you.
Decided to map CMD-Shift-R to be ReSynth so I can just create one really quickly. (Shift-R is already Rhino… etc.)
When I press this keyboard combination, the ReSynth gui is opened and a new instrument is made (I guess the order is the reverse, but anyway).

I tried to do this modification to get the keyboard focus back to Pattern Editor - so that one could just press a shortcut to create a ReSynth and then immediately be able to start playing with the pc keyboard.
Unfortunately, it didn’t work.

  
renoise.tool():add_menu_entry {  
 name = "Main Menu:Tools:ReSynth:New Resynth Instrument",  
 invoke = function() new_resynth_instrument()  
 renoise.app().window.lock_keyboard_focus=true  
 end  
}  
  

So, here’s the question: Do you have some magic up your sleeve that would allow for the pckeyboard to retain it’s “will play ReSynth if pressed” functionality even if the GUI is opened, please?

Frankly a keyboard handler should be called in the function, if the keyhandler function is exit with “return key” it should always foward the keypress towards the area that was focussed in Renoise before the dialog opened.

So, MXB, is there a way that the keyboard handler in the gui can be improved so that it will immediately work? Or any hints as to how to do it?

:huh:

A keyboard handler function is called for the GUI dialog and you can play notes with it when the GUI is open. All keys are passed straight through back to Renoise.

Am I misunderstanding something?

You are not the only one in that case.

It’s just deflating to have a shortcut which creates a resynth instrument… and then immediately losing keyboard input

Losing is out of the question with the GUI up front. Redirecting:Yes, if the key is not absorbed by the tool for own purposes.

Hmm. Am I completely misguided in the belief that I did read Mxb say that there was a keyfollower in the gui that allows keyboard notes to pass to Renoise? Or?

There is:

[details=“Click to view contents”] ```
function keyhander(dialog, key)
– Keyhander for ReSynth dialog - pass back to main Renoise window
return key
end

function display()
if resynth_dialog then
if resynth_dialog.visible then
return – already visible
end
end
create_controls()
resynth_dialog = renoise.app():show_custom_dialog(“ReSynth2”,
resynth_view,
keyhander)
end

  
The above code does pass all key presses back to Renoise when they are pressed when ReSynth2 dialog has focus.  
  
I don't really understand what you mean by losing or what you are trying to achieve.  
  
There already exists a keybinding which adds a new ReSynth instrument (Global:ReSynth:New Resynth Instrument) and it calls the same code as selecting 'New ReSynth Instrument' from the menus.

hey MXB ! I’d like to thank you allot for the quality and the efficiency of the Resynth interface : I like that style of knobs. And I’m nearly ready with kazakore to propose to the community a Resynth2-based competition round, for the next DDRC. However I don’t get exactly how the samples volume work. For example, when I create a new sine based resynth instrument, I often get the same sine waveforms in the samples slots. But I’ve got different sample volumes in renoise sliders even if resynth shows identical knobs positions… (check the attachment you’ll see that in 3 oscs you have a -12 volume and in the 4rth one you’ve got a positive value). Is there something I’ve missed somewhere ?

hmm. mxb, do the knobs for resynth2 volume read the current sample volume slider states from Renoise itself? i.e. do they update eachother?

OK had a quick look for the first time due to proposing you’re idea of the next DDRC round being on it. I can confirm Kurtz fault above and give you steps to recreate it.

Open a ReSynth Instrument.
Click Randomise Tuning/Mixer
Click Reset - All Volume reset correctly to -12dB.
Click Reset again - All Volumes now go to 0.2511886… although the knobs stay in exactly the same position (and if you move them will jump to correct value.)

Also I have noticed the knobs don’t like selecting the very lowest few values some of the time, without some weird mouse movement. Guess this is a ViewBuildier thing though, not your own code. Doesn’t seem to be all knobs and only ever when decreasing values. Finetune seems to be one of the worst offenders, try pulling from max to min and it will look like it’s at -63cents but both Renoise and the status bar in your Tool’s GUI will show a different value. Can even get it to hold a value above half of minimum/centre yet only ever when going down, changing values upwards always seem to go to maximum flawlessly.

Would be nice if it could update your GUI (and sample names) when changes are made in Renoise’s GUI. Guess you don’t want to slow it down too much but it can be nicer to make (subtle) changes from there.

If you click a Randomise button quickly you will find that your GUI and that of Renoise are different as I think your Tool updates the GUI quicker than it can run the routine and tell Renoise to make the changes.

I initially thought LFO Rate would be the other way around, related to Frequency rather than Number Of Cycles (Inverse of Frequency) but guess that is something I can get used to.

Really looking forwards to Renoise having Envelopes Per Sample to really make this thing sing!

Good work and thank you for the tool.

As per one of my comments above unfortunately not. Hopefully it’s in the pipeline though, if not considered to resource hungry (or may even a Refresh button if there is want to lay off doing it in realtime.)

Yes I am aware of this bug. Essentially, the defaults use math.db2lin twice by accident, hence you get a strange value.

Things have got a bit busy outside of Renoise for me, so I’m just finalizing ReSynth 2.2 and will post it on the tools page this evening. Hope this will be in time for the competition (2.2 is backwards compatible anyway)

2.2 has the following changes:

  • Fixed the default volume bug
  • Defaults are oscillators 2, 3 and 4 to volume = off (easier to start with one audible oscillator and turn up the others)
  • Fixed the waveforms list refresh with only one folder
  • Automatic wavetable oscillator selection waveform loading
  • Automatic waveform looping for small samples (<256 sample frames)

wicked!!
I can’t wait :)

Okay, now that I*ve tested 2.2 a bit, here:

  1. If an oscillator already has loop on (i.e. , I load a 2048 byte sample in, and resynth2 goes "nuh-uh, not gonna give you a loop - but i switch it on myself) - when loading a different waveform,keep loop on.
    now i have to constantly switch loop back to “on” when im loading different waveforms in. the reason i propose that loop-mode be kept on even after loading a sample, is because this would be cleaner (i guess?) than me comin over to this thread and asking for 2048… then maybe 4096… or maybe someone else would like only 32 byte samples to have loops… this way you don’t have to alter the loop-loading code, i guess?

  2. cmd-a / cmd-l commands ( “select whole sample” and “set loop to selection” in the SampleEditor) are not passed through by ReSynth 2.2 gui. you can probably see why i keep encountering this issue ;)

  3. when switching to a new subfolder, the dropdownmenu below the folder should be kept empty, until one loads something. currently it changes to whichever wavefile you might wish to display, but the waveform is not loaded. it’s a bit confusing.

  4. when really quickly moving the pitch to lowest knob-position, you don’t necessarily always get -24, sometimes -21, sometimes -12, sometimes -16, sometimes -13, sometimes -10. then one moves the knob slightly up, and it’s reset to -24. is there a way for resynth to realize that the user has moved the knob to lowestmost point?

  5. when starting the gui, all waveform dropdown menus have text in them. can this also be made so that the lower dropdownmenu for the waveform is empty, and the higher just reads “click to load waveform” or something like that?

  6. the gui issue continues, but this is between renoise, the OS and the gui window (i.e., have resynth window selected, cmd-tab away, cmd-tab back, and lo&behold, cannot keyjazz from the pckeyboard before clicking on the pattern editor.

  7. same with the opening of the gui from scratch (new resynth instrument), pc keyboard is still lost, until one clicks on the pattern editor. i guess 6-7 have been reported to the devteam in general.

Not sure if it’s ideal but what about a Loop checkbox in the ReSynth GUI? I noticed that, when the ReSynth GUI has focus (with 2.1) you can no longer see which part of Renoise has Focus so in a way I would not expect anything but Notes and possibly Global shortcuts to know where they should be passed to by a key-handler.

Maybe I am wrong. Maybe all keys can be made to pass. Maybe some commands could be forced to control certain areas (but then would Ctrl+A select all of selected sample or all samples?) Or maybe Renoise devs need to look into how main application Focus works when a script GUI has main focus…

Yeah I mentioned that for 2.1 above. Happens for most of the knobs and only when changing values down (to minimum) for some reason.

Other points are beyond my plays yet…

I can set the defaults to loop on across the whole sample if that is what people prefer.

The tool passes all keys back to Renoise. Maybe a Renoise issue? Does the sample editor have focus before the Renoise GUI is opened?

Agree, I think there should be a better way around this but I’ll have to think about it and other non-Renoise things are taking my time at the moment. Hope this is fine for now.

Seems to be a ViewBuilder GUI issue, I have replicated before but there doesn’t appear to be anything to control it within the scripts.

See 3 above.

Not a ReSynth specific issue. I did open a bug report for it here.

I get ReSynth focus on new resynth instrument from a menu item (instrument box or main tools menu) but not the keybinding (as per the bug report linked in 6 above). Maybe you have multiple tools conflicting?

Anyway, I hope you can live with the small GUI bugs for now. Some are out of my control and I have other non-Renoise things to focus on at the moment.

If it does get used for a compo I look forward to listen to the results.

Had a bug;

open up a new instance of this tool, do some tweaking in the synth maybe, press ctrl+n in Renoise for a new song, the tool window will remain open and tweaking a parameter will give you:

ctrl+n again:

Be good to hear an entry from you but sounds like you might have much other stuff on your plate at the moment…

brilliant…