New Tool (2.8): Guru

Wow!

I cannot believe it, I’ve combed through the internet and was unable to find a functional linux-compatible editor - and for that matter, here it is, as a Renoise tool! :w00t:

My newly acquired TX7 is in the mail, as soon as it arrives I will test how it works with Guru and give praise once more!! :yeah:
Or contribute, if needed ;)

I have to read the whole thread to see how the support for Tetr4 is - I’ve been working like mad to create a PureData based editor - and again, here it was :rolleyes:
Will test it as soon as I get home

Great idea the Guru tool, big thanks for making the effort to write it!!!

Cheers to all,

Vasja

Thanks!

Cool, tetra will mean much effort, hope you can push trough :slight_smile:

I have some troubles with my synth definition (Mutable Instruments Shruthi-1): some parameters need negative NRPN values (modulation matrix) and this is how they are managed according to the manual :

How can I do that in Guru (the data entry MSB thing) ?

Thanks

Haha, damn I hate MIDI implementations!

I’ll try to look at it.

Cb

Well, it works when I use :

So, I get -63 to +63 on the Shruthi, with default_value setting the modulation amount to 0.
But of course, in Guru, the slider displays values 193 to 319.

Maybe this method could be used?: Automating Non-Automatable Renoise Features

And for stuff where timing is important one would use the Instr MIDI Control device (maybe it could also be linked to Guru somehow?).

The tools are not running in a real-time thread, so you won’t get far when you need exact time critical responses.
If you can live with some inconsistencies, you could try that method.

hej cornbeast, forum, renoise,
(first post here :) woohoo!)
i just found a JX-8P in the trash (yes: insane) and i am really thrilled of the possibility of tracking this synth with renoise. but i am having trouble getting guru to work. since i just found the synth i am quite new to that too, so i am not ruling out that i am doing something wrong on that end. i am receiving MIDI notes from renoise just fine. but there is no reaction/changes in sound when i tweak parameters in guru…?
am i missing something really obvious here?
/j

Goddamn! Good for you

You must edit the settings for the synth in guru to set midi channel and midi out device, then it should work

Cb

Yes, I figure it would be nice to be able to automate some of the parameters that aren’t accessible through MIDI CC, even with poor timing.

hm… i did that, but still i get no reaction on the synth end…? and i think i put in the right MIDI channel. as the JX-8P plays MIDI notes that i send on this channel (1) just fine. also the synth changes settings when i change program in the renoise ext midi instrument setting, but nothing happens when i tweak parameters in guru…? should the JX-8P be in some special edit mode or something?

I did not have to make any setting in my jx8p, it has just worked straight off, but then a previous owner could have changed and stored some setting. Maybe you should check the manual.

Cb

success!
i poked around in the menus of the JX-8P a bit and found the setting “system exclusive” under “MIDI”, if i set this to ON guru works its magic! :)

Cornbeast,

I have at last started work on a Guru definition for the Hawk800 Korg Poly800 mod, but have hit a snag.

In sending the data via NRPN I see in the terminal that the correct numbers are sending, for instance:
99,0,
98,24 (for Filter cutoff),
6,0

However that last “0” is effectively fixing the value at zero, and the slider has no effect, the synth immediately stops at value “0”. On the GUI the number is seen to change as the slider is moved, but the synth only receives “0”.

Having looked through this thread I wonder if the answer lies somewhere in post 85, in editing the msb_value?

So, do you have a clue why this is, or what I’m doing wrong, or how we can edit the code?
Thanks.

Yo!

Not at a puter now.

Hmm, it’s not impossible I misinterpreted nrpn. I did what I thought was right and let it try it’s wings, so now maybe you found out it’s wrong. Although I think there are nrpn synth definitions that others have created.

You can modify the code real simply. Just enable the scripting editor in renoise, you’ll see the tools installed there, and just open the lua files and try to find your way, maybe the logic for nrpn is in the class_midi.lua file. Or you could start in main.lua and go from there.

You will also see guru spit out lots of debug info in the editor, you can search for the debu phrases in the files

Cb

Thanks for your reply Cornbeast,
I have had a little look at the code but not sure what to do. There are no error messages in the terminal. Will contact the developer of the Hawk800 mod for his thoughts.
Dan

function Midi:send_nrpn(number,value)
local cc_start = 0xB0 + (self.midi_channel-1)
local msb_number = math.floor(number/128)
local lsb_number = number-(msb_number128)
local msb_value = math.floor(value/128)
local lsb_value = value-(msb_value
128)
–print((“Sending NRPN: %s %s”):format(number,value))
self:send({cc_start,99,msb_number})
self:send({cc_start,98,lsb_number})
self:send({cc_start,6,msb_value})
self:send({cc_start,38,lsb_value})

The code above seems to be where the NRPNs get sorted out. The msb_number is stuck on 0, as is the msb_value, which particularly is the one which should be adjustable by the slider. I’ve tried a few things but, not being a coder, I haven’t found anything that works yet. Is it something to do with math.floor? Any thoughts?

Yo!

Sorry, right now I’m not much in front of the computer. But what my code does here is what I believe NRPN is, but I might be wrong:

In midi you can send a value between 0-127, because higher values are messages like, note on, note off etc.

In order to send higher values (either parameter number higher than 127 or a value for a parameter) you can use nrpn to send two values of 0-127 that together make a value that is between 0 and 12383 (if i remember correctly).

So, the lsb is the 0-127 part, and for the msb each number (each 1) has the value of 128.

So if you send msb = 1 and lsb = 3 then the sum is 128 + 3 = 131.

If you send msb = 2 and lsb = 3 then the sum is 259.

But I might be wrong here, I’m not sure that this is correct. Maybe I misunderstood it?

Or there is just something slightly wrong, like I am sending the msb even if it’s 0, maybe this is not what your synth wants, maybe msb should not be send if it’s 0?

Maybe the synth has a bit laggy midi, you can try using delay_between_midi_messages, set is to 20 and see if it works better? (see Google Code Archive - Long-term storage for Google Code Project Hosting.).

Maybe you can use MIDI OX to monitor what is sent, it should show that this is a nrpn message.

Maybe the synth sends out the same nrpn when you modify the parameters in the synth, maybe you can see with MIDI OX what is sent?

That all I can do right now, hope you get on…

CB

It took a while, but eventually I gave up on NRPNs. However after rewriting the midi.lua code a bit I’ve got it to work with CCs, so I’ll be attaching a new definition soon.

Anyone out there working on a Waldorf Blofeld definition???

Ok

You can mail me or mess me private, especially if concerns changing the midi class… (Cuz you need to send two messages for each parameter right?)

I have looked in the hawk manual now, and it seems like it’s using nrpn in it’s own way, and it seems like that is common, like the only thing that makes it nrpn is that you use 99 98 6 38.

So, the way I solved it will not work for all synths. I need to rethink how to define the nrpn messages.

This is one page I used for knowledge, but it seems to be tru only for some specific nrpn implementations:

http://www.christeck.de/wp/2009/01/30/using-midi-nrpn-controllers/

But the hawk manual says: “1) Send MIDI CC 99 with the data value matching global parameter 16. If the NRPN MSB does not match global parameter
16 then the desired parameter will not be changed. This is useful if you have more than one HAWK-800 listening on the
same MIDI channel and wish to edit sounds independently which can be done by setting global parameter 16 to be unique
on each HAWK-800.”

So, hawk does not want msb on 99 at all, but some “global parameter 16” whatever that is…

Midi is really crap!