New Tool (2.8): Guru

Hello everyone,

i’m trying to write my own definition for a Roland JV-880.

I got my hands on several hundred sysex-codes. But how am i supposed to transmit a checksum, that is to be calculated AFTER any changes on the GUI but BEFORE the messages is actually fired by Guru?

I searched the Guru-sources for a function or method but found nothing.

Some details:

This is an example right out of the JV-880 manual:

0xF0 0x41 0x10 0x46 0x12 0x00 0x00 0x18 0x15 0x00 0x53 0xF7

The important parts:

0x00 0x00 0x18 0x15 -> the full address for the Parameter (it’s always made of 4 bytes)

0x00 -> the value to be transmitted

0x53 -> the checksum, which is demanded by the JV-880. It’s always the last Byte right before 0xF7.

How it’s calculated:

http://www.2writers.com/eddie/tutsysex.htm

So i think, i have everything important to make it actually work, but i’m at a loss with the inner workings of Guru and Lua.

Many thanks in advance…

UPDATE:

I discarded my original idea and hacked class_midi.lua instead.

With these changes you should be able to transmit a checksum to your machines. Also attached is my (unfinished) list of JV-880-sysex-codes in a Libre-/OpenOffice-Calc doc.

I’ve just finished my guru patch for the WALDORF PULSE! It is available in the downloads section. Have a look at it functioning here…

Also, I have uploaded some MIDI INST objects so you can automate the synth too (as guru doesnt allow it D:). Again, check the downloads page.

Uh sorry midi_error i accidentally knocked your MiniBrute patches that you’ve just posted right off the screen:

What can I say, sometimes you have to bump someone off.

wow, sounds fantastic. good work!

Does this also work with the old Microkorg? I have found this, it might be interesting, but I don’t know how to read it, and I don’t know if it is even useful. I found it here:https://www.korg.de/uploads/tx_softwarecenter/MicroKorg_SYS_EX.txt

Excuse me for bumping such an idle thread. :wink:

During recent weeks, I’ve been trying to make Guru-synthdefinition files for old & new XG sound modules. Please don’t ask me “why XG now…?”, I did it on a whim. :rolleyes:

- SK1XG mini keyboard (CBX-K1XG, MU50 compatible)
First I made a synthdefinition for this “20 years old” basic XG sound module witch I’ve owned for some years. There were no confidences whether I can do this, but if I had tried, it was done anyway.

- POCKET MIKU (NSX-39)
This is a quite cheep japanese gadget. It includes the YAMAHA’s NSX-1 chip, which has an eVocaloid and GM instruments (with XG effects). Naturally I think this isn’t sold in Europe and other countries, so there may be no meaning to introduce this here so much.
But YAMAHA’s NSX-1 chip has a lot of XG effect components in itself. So, for some people who still own any old-school XG module, this synthdefinition file may be useful partly. I believe all XG modules can be edited with this more or less.

NSX-1 specs is here;
http://yamaha-webmusic.github.io/nsx1-apps/specs/ANMW820A-001-10-j.pdf

Well, I hardly have a programming skill, so I might do a bit strange coding into them. For example, I did copy & paste 15 sysex messages about 70 times for making the drum editor. So more smarter re-coding is welcomed, do it freely. :slight_smile:

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

6640 GURU_NSX-39_SK1XG_eng.zip

:excl: Guru V1.7 is needed
https://code.google.com/archive/p/stepbrother/downloads

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

Also, I made a introduction movie for POKET MIKU synthdefinition. It’s only in japanese and a bit boring contents, but you can understand about POKE-MIKU easily.

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.

Maybe this method could be used?: https://forum.renoise.com/t/automating-non-automatable-renoise-features/36368

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

Is this possible now? I know you can map CCs to the Guru sliders, but can any of that be recorded?

Its great to see people still using guru…i still use it to waggle synth params.

There is a way to map ccs but its only possible for one or two params at a time. Best to think of it as a way to finding great sounds.

MIDI control will do CCs no problem, but not sysex

I am very interested if the DX7 editor will work with Korg volca FM, will see tonight.
Otherwise i will try to hack it.

Ok, my midi cable blinks but volca fm doesnt recieve anything.
Does anybody has good experience with Guru in R3.1 so i know this is not problem with API?
Volca FM should be compatible with DX7 but on the other hand ive heard there are some problems with Dexed so i wouldnt be surprised if Guru wouldnt work as it should.

Hello

Does there or could there exist in Guru a dynamic view or layer, so that when say a choice in a combo is made, like an effect from a multi-effect processor in a synth, the view hides all other groups of controls except for the selected?

The issue is that currently there would be 36 groups of controls, and the view would become very cluttered with all of them shown at once (and might not necessarily fit). Any ideas?

thanks

Ok, my midi cable blinks but volca fm doesnt recieve anything.
Does anybody has good experience with Guru in R3.1 so i know this is not problem with API?
Volca FM should be compatible with DX7 but on the other hand ive heard there are some problems with Dexed so i wouldnt be surprised if Guru wouldnt work as it should.

Some DX7 patches don’t work in Dexed, but most do. Does sending patches to the Volca from Dexed work? (Dexed can act as a DX7 patch editor). I don’t have a Volca FM yet but have been eyeing it lately, would be good to know if Guru works with it first… I have a feeling it can’t do “real-time” patch editing via DX7 sysex parameters, it can probably only receive and interpret already-made DX7 banks/patches in SYX format. Need to look into that more.

Edit: yeah, here’s a good lead: http://www.korgforums.com/forum/phpBB2/viewtopic.php?t=103679&sid=e3572991a4e6b02b469801540f2a3771

Second post in the thread says the Volca FM can’t do real-time sysex editing, only receive complete patches or banks, unfortunately :frowning: Still getting one, though. :slight_smile:

does this work in 3.1?

I am getting this error with Renoise 3.1 and Waldorf Blofeld:

'/Users/Ju/Library/Preferences/Renoise/V3.1.0/Scripts/Tools/com.cornbeast.Guru.xrnx/' failed to execute in one of its menu entry functions.

Please contact the author (Cornbeast [cornbeast@cornbeast.com]) for assistance...

std::exception: 'unable to make cast'
stack traceback:
  [C]: in function 'send'
  ./class_midi.lua:79: in function 'send'
  ./class_midi.lua:54: in function 'send_sysex'
  ./class_parameter.lua:251: in function 'send_midi'
  ./class_synthdefinition.lua:345: in function 'send_midi'
  ./class_synthdefinition.lua:361: in function 'load_patch'
  ./class_synthdefinition.lua:141: in function 'launch'
  ./class_guru.lua:198: in function 'launch_synth'
  ./class_guru.lua:152: in function <./class_guru.lua:151>

:frowning:

I am getting this error with Renoise 3.1 and Waldorf Blofeld:

'/Users/Ju/Library/Preferences/Renoise/V3.1.0/Scripts/Tools/com.cornbeast.Guru.xrnx/' failed to execute in one of its menu entry functions.

Please contact the author (Cornbeast [cornbeast@cornbeast.com]) for assistance...

std::exception: 'unable to make cast'
stack traceback:
[C]: in function 'send'
./class_midi.lua:79: in function 'send'
./class_midi.lua:54: in function 'send_sysex'
./class_parameter.lua:251: in function 'send_midi'
./class_synthdefinition.lua:345: in function 'send_midi'
./class_synthdefinition.lua:361: in function 'load_patch'
./class_synthdefinition.lua:141: in function 'launch'
./class_guru.lua:198: in function 'launch_synth'
./class_guru.lua:152: in function <./class_guru.lua:151>

:frowning:

Maybe you’ve got Guru 1.6 from Tool page?

the Waldorf Blofeld synthdefinition needs Guru 1.7 from here because it’s including “value_callback” code in the FX section.
(the Waldorf Blofeld synthdefinition code is quite smart and I referred to it very much.)


Btw, a month ago I’ve got a PM from someone who ask about my M-audio Venom synthdefinition file.
and then I’ve ignored it since I cannot do anything for it anymore (actually I sold Venom several years ago). Ahh, I’m sorry for my rudeness…m(_ _)m

But I think this GURU tool is almost abandoned now and we cannot expect kindly support anymore (no offence at all though. I thank for the original development by Cornbeast). I’m also not a coder so I cannot help much here.

Still if you want to use Guru, simply you need many try & error by yourselves and don’t expect too much functionally.
It’s actually no automation and no bidirectional.
But it still should work fine as useful sound editing panels for HW synths. :slight_smile:

Thanks! Works!! :guitar:

Is there another tool for Renoise which hassuperseded this tool?

But I think this GURU tool is almost abandoned now and we cannot expect kindly support anymore (no offence at all though. I thank for the original development by Cornbeast). I’m also not a coder so I cannot help much here.

Still if you want to use Guru, simply you need many try & error by yourselves and don’t expect too much functionally.
It’s actually no automation and no bidirectional.
But it still should work fine as useful sound editing panels for HW synths. :slight_smile:

It would be great to continue development on this Tool as I feel the nice to haves like Patch dump and Bi-directional sliders updating could be bolted on fairly easily. I say ‘fairly easily’ with a pinch of salt as I have limited experience with the Lua code behind this, but I am a developer by day, and it seems that the core functionality is solid and well thought out… It’s just a time issue for me currently, but I’d be willing to have a go one day.

The alternative to this tool as far as I can see is Ctrlr, which works, although I can’t seem to use it properly in conjunction with Renoise’s latency correction, though maybe that’s just me!

Some DX7 patches don’t work in Dexed, but most do. Does sending patches to the Volca from Dexed work? (Dexed can act as a DX7 patch editor). I don’t have a Volca FM yet but have been eyeing it lately, would be good to know if Guru works with it first… I have a feeling it can’t do “real-time” patch editing via DX7 sysex parameters, it can probably only receive and interpret already-made DX7 banks/patches in SYX format. Need to look into that more.

Edit: yeah, here’s a good lead: http://www.korgforums.com/forum/phpBB2/viewtopic.php?t=103679&sid=e3572991a4e6b02b469801540f2a3771

Second post in the thread says the Volca FM can’t do real-time sysex editing, only receive complete patches or banks, unfortunately :frowning: Still getting one, though. :slight_smile:

It does but you have to turn off any midi input from your daw so it is free for dexed
and almost every patch has very low volume so it has to be tweaked.

I am looking some renoise solution because ableton has great max patch editor and i dont have money for ableton right now :]

​One of my groups is bugging for awhile.

​I’m trying to send a sysex command by using an items object as a button to activate the mode select of a SD-20, however it just returns a Midi CC command instead of a sysex. (ex: Ch1, CC=0, Value = 0)

​
local group_Mode = Group{
 name = "Sound Generator Mode",
 Parameter{
 id = "nativeMode",
 name = "",
 sysex_message_template = {0xF0, 0x41, 0x10, 0x00, 0x48, 0x12, 0x00, 0x00, 0x00, 0x00, "nn", "vv", 0xF7},
 number = 0,
 items = {"Native"},
 item_values = {0x00},
 }
}

MORE GURU!!!

I’m doing a DX100 editor in guru …or has there been one already??