The Official Sequential/DSI Forum

SEQUENTIAL/DSI => Evolver => Evolver Desktop => Topic started by: skriptico on May 26, 2020, 07:23:10 AM

Title: Evolver desktop help: sysex string to write a patch
Post by: skriptico on May 26, 2020, 07:23:10 AM
Hi all, i'm an addicted user of the evolver desktop. Due to massive use my little loved beast got the switch to write patches gone :(. I was wondering if i can still save patches via a "sysex string" or something, so that i still can save some until i wait for better economic times to send it out for repair.
Hope there is a way to do it myself (little experience as a coder), because im too poor even for the soundtower editor :(.

thats it, this is my first post here, so a big CIAO and a socially distanced hug to all of you :)

Title: Re: Evolver desktop help: sysex string to write a patch
Post by: composerjk on June 03, 2020, 11:53:46 PM
First, the general MIDI details for the Evolver are at the end of the manual which can be found on this page:
https://www.sequential.com/support/

I don't see a dump all program SysEx request (unless I missed it), but you can request each program, individually, with the Request Program Dump SysEx. Here's an example using SendMIDI (https://github.com/gbevin/SendMIDI):

Code: [Select]
:; sendmidi dev DEVICE hex syx 01 20 01 05 BB PP
where DEVICE is the MIDI device name and BB and PP are the bank and program numbers, respectively. The :; is simply my command-line shell/terminal prompt. So, to grab bank 0 program 127 (last program in the first bank), one would use:

Code: [Select]
:; sendmidi dev DEVICE hex syx 01 20 01 05 00 7For:
Code: [Select]
:; sendmidi dev DEVICE hex syx 01 20 01 05 dec 0 127
Note that the syx takes care of sending the F0 and F7 and the beginning and end, in case you build the SysEx string for another tool that doesn't automatically include them.

It sounds like you're already using something to receive the MIDI SysEx data.
Title: Re: Evolver desktop help: sysex string to write a patch
Post by: composerjk on June 04, 2020, 12:20:57 AM
If you have access to a bash shell (via Terminal on macOS) and sendmidi, then the following shell script might help dump all the programs in the Evolver Desktop. Of course, make sure you're set to receive multiple MIDI SysEx messages via something like SysEx Librarian before running this shell script.

Note that this doesn't do any checks that you're sending to an Evolver nor has it been tested other than running once over an old MIDI bluetooth adapter. But, it seemed like the resultant MIDI SysEx file was of the proper size; I didn't verify beyond that.

Of course, this requires SendMIDI be installed in your PATH. Save this code to a file and make it executable. Or, save it to a file and run it as:
Code: [Select]
:; bash filenameif the execute bit is note set on the file.

If you only need to save a single patch at a time, then just use the commands mentioned in the previous post.

Code: [Select]
#!/bin/bash
#
# quick hack to dump all programs from Evolver Desktop via SysEx
# Assumes that sendmidi command is in your PATH.
# -- Jeff Kellem, @composerjk, 3 June 2020
#

# or hardcoded path to sendmidi if not in PATH, e.g.,
# SENDMIDI=/usr/local/bin/sendmidi
SENDMIDI=sendmidi

sp=$(type -p $SENDMIDI)
if [ $? != 0 ]; then
echo "SendMIDI required. If installed, $SENDMIDI command may not be in PATH."
echo "https://github.com/gbevin/SendMIDI"
exit 1
fi

if [ $# != 1 ]; then
echo "Usage: $0 MIDI-DEVICE"
echo " To see a list a devices available, use: $SENDMIDI list"
exit 1
fi
DEV=$1
for bank in {0..3}; do
for prog in {0..127}; do
$SENDMIDI dev $DEV hex syx 01 20 01 05 dec $bank $prog
done
done
Title: Re: Evolver desktop help: sysex string to write a patch
Post by: skriptico on June 08, 2020, 09:56:32 AM
Thank you very very much. i'll try to make something with all these info i had from you!!
thank you SOOOOOOOOO MUCH :))))))


[edit] i'm on windog:( but there is a precompiled version of sendmidi! WOW that is  so lovely...
thanks a lot also for this advice on sendmidi!

[edit #2] looks like it is already working, requesting dump with sendmidi, and receiving it with midiOX...
that is great, so again thanks a BIIIIIG LOOOOT

really, all the best and see you later.
Title: Re: Evolver desktop help: sysex string to write a patch
Post by: skriptico on June 11, 2020, 01:39:13 AM
And also, for future reference, this is how you get the evolver edit buffer via sendmidi

Code: [Select]
sendmidi dev "your midi interface here" hex syx dec 1 32 1 6

and a lot of thanks again mr. Jeff! (never enough), you saved my 2020 :))


Title: Re: Evolver desktop help: sysex string to write a patch
Post by: composerjk on June 11, 2020, 11:53:54 AM
And also, for future reference, this is how you get the evolver edit buffer via sendmidi

Code: [Select]
sendmidi dev "your midi interface here" hex syx dec 1 32 1 6

If you're only sending decimal numbers instead of hexidecimal, then the hex in that line shouldn't be necessary. So, it could be simplified to:
Code: [Select]
sendmidi dev "your midi interface here" syx dec 1 32 1 6
I tend to use hexidecimal, but used dec partially in my earlier script to not bother with conversion.
Title: Re: Evolver desktop help: sysex string to write a patch
Post by: skriptico on June 12, 2020, 06:04:34 AM
Hi mr Jeff!
Man you're an angel :) thank you so much!

Code: [Select]
sendmidi dev "your midi interface here" syx dec 1 32 1 6
Wow, lovely!

Uhmm... at this point i have another question, i like to use edit buffers as you see, and i would really like to send back one of those to a certain program/bank at some point... lets say 0/0 (program 1/bank 1) and save it permanently.
There's a way to do that only with sysex? or i really need, for that task, to use the hw switch on the blue baby? or maybe a librarian proggie?

Its really a no problem if that is not possible tho, but if possible, that would be really bellissimo :)) !!

So, big thanks again, sorry for my terrible english, and all the best... you really deserve it!!