Synth Forum

Notifications
Clear all

Generating .ins and syx files for Sonar

30 Posts
5 Users
0 Reactions
6,872 Views
 Jean
Posts: 0
Eminent Member
Topic starter
 

Hi
I have write an small utility for :
1) Generating .syx file from Performance Edit Buffer of Montage for importing in Sonar or Midi-ox
2) Generating .ins file for Sonar by dumping Performance memory of Montage (including User and Librairies bank)
3) As I have a Montage6 (no money for the 8) I play Montage from my Moxf8, and as I can't put Montage above Moxf8 it is on the side, so I need an utility for browsing and selecting Performance like 'Category Search' on Montage.
So this utility can browse Performances with filters like Montage and sending program change to Montage.

As dump from Montage take a lot of time with my program 🙁 I split the dumps in small parts and even by a single performance.
It take about 1h30 for dumping all presets and I include this initial dump with the program, but this can be useful in case of change by OS update.
It take about 25mn for dumping a full User bank or a library (less if not full).
After dumping these parts you can merge it in a Catalog from which you can generate an .ins file or browsing Performances.

The program has 2 main screens:
The first screen is for receiving or sending Performance Edit Buffer from Montage and saving or loading to file this Performance, this is the same as Montage Connect but you can also write a .syx file.
There is some infos about the Performance on the screen as it is a skeleton for a future program.
The second screen is for receiving dumps for Montage and generating catalogs for browsing and generating .ins file.
When you have generate a catalog, you can update it with a new dump (for example a new user performance or a library) without having to redumping all the Montage memory !

Installation:
Unzip MontagePerformanceDump.zip in a directory of your choice.
Double click on MontagePerformanceDump.exe
Select the good midi ports for Montage via menu options.
Click on View Catalog, and you view 'default.cat' with all presets.
Select the good channel for sending program change in the combo box.
You can now generate a .ins file of presets or receiving user memory dumps and merging with presets.
If you save a catalog as 'default.cat' it will be reload at next launch.
For receiving performances set clock out to off on Montage.

(I have Montage since 2 weeks so this program needs improvements)

This is a PC program

EDIT : See the last post for the last version

Attached files

 
Posted : 14/04/2017 4:37 pm
 Jean
Posts: 0
Eminent Member
Topic starter
 

Some corrections, please use this link :

EDIT : See the last post for the last version

 
Posted : 14/04/2017 8:13 pm
Joel
 Joel
Posts: 597
Prominent Member
 

Hi, brillant, it work fine, thank you.

 
Posted : 14/04/2017 8:56 pm
Jason
Posts: 8259
Illustrious Member
 

Jean,

I hear you. I decided to use pre-made apps to do the same thing:

Monday, December 12 2016, 03:09 PM

It took me a long time to find a stable way to automate and dump 167MB worth of SysEx data to build the "database" to search so now I can find which performances have what effects - or use what waveforms - or use the ribbon controller - or ... any number of other things I couldn't previously search for.

Unfortunately, WSH scripts do not seem to work for me in MIDI-OX, so I had to look elsewhere.

I ended up using MIDI-OX to capture and "ctrlr" to send the bulk dump requests as programmed in Lua

"ctrlr" is a crashy application I'm sure others get a lot out of. It's like a surgeon using a box cutter for me.

The original message has been deleted unfortunately, but the current cache is here:

http://cc.bingj.com/cache.aspx?q=%22I+ended+up+using+MIDI-OX+to+capture+and+ctrlr%22+deleted&d=4721463535473575&mkt=en-US&setlang=en-US&w=SkHeLtUavkBjErZCpWuv3OwIjPbOHlgE

Maybe in the future I'll use this EXE instead - except the ctrlr+MIDI-OX allows for scripting so I can write what I want to dump from a single parameter up to the whole thing. Maybe yours allows for that too - haven't cracked it open yet.

Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R

 
Posted : 14/04/2017 11:14 pm
 Tino
Posts: 0
New Member
 

Hi

It works on W10.
Cool to make .ins file for sonar up to date.

Idea:
1) Send sysex data to read midi clock enabled state (and keep this data) from adress 00 05 0C.
2) Disable clock.
3) Dump perfs data.
4) Send previous state for the clock.

 
Posted : 15/04/2017 2:14 pm
 Jean
Posts: 0
Eminent Member
Topic starter
 

@Joel
Merci pour l'encouragement.
Peut-être pourriez vous m'aider, quand vous aurez le temps, à traduire un petit tuto pour ce programme.
En particulier sur la fusion des dumps et leur ordre d'insertion pour générer un catalogue.
Je maîtrise très mal l'anglais et ces manipulations peuvent prêter à confusion pour un utilisateur novice.

@Jason
You give me a lot to read and I have difficulties to translate in French.
If you speak about programming, I use Python3 and rtmidi_python (a port of C rtmidi) for dealing with midi port.
The interface is done with Tkinter which is include with Python.
The rest is the read of Data List of Yamaha.
I have a lot of routines prepared for dealing with sysex because I work some time in programming some utilities for my Moxf.
It is hobbyist job, Python is easy, and it is not as robust as a C, C++ programming.
For Montage I work for retreiving Midi error due to the lot of sysex (in compraraison with Moxf)
If you want some help with Python and Midi, I can try to respond to your question but, please, use simple sentences.

 
Posted : 15/04/2017 2:48 pm
 Jean
Posts: 0
Eminent Member
Topic starter
 

@Tino
It is a relevant idea.
In fact you can let midi clock on, it is just an advice for trying not overload Midi.
Bulk dump for Montage take a lot of time and I have sometime Midi Error, it is annoying when a dump take 25 mn !
I work on retreiving Midi Error and the recovery of the job.

 
Posted : 15/04/2017 3:16 pm
Joel
 Joel
Posts: 597
Prominent Member
 

Hi Jean, i will prepare an article for Moessieurs, so if you have a base text in French, it will be more easy for me to made the article and of course i will help you to translate in English.

 
Posted : 15/04/2017 3:55 pm
 Jean
Posts: 0
Eminent Member
Topic starter
 

@Joel
Thank you.
I send you an MP on audiokeys

 
Posted : 15/04/2017 7:17 pm
Jason
Posts: 8259
Illustrious Member
 

@Jean

Here's another try at the same message:

1) I created the same "dump everything" utility using MIDI-OX and "ctrlr" - two public domain programs. So I understand what you were saying about the amount of data.
2) Provided links to the original discussion
3) Maybe I'll use your solution instead of using MIDI-OX plus ctrlr in the future. However, I do have more control using MIDI-OX plus ctrlr since I have "source".
4) I was also making you aware of different ways to accomplish the same task - although the EXE is more elegant.

References:
Ctrlr: http://ctrlr.org/
MIDI-OX: http://www.midiox.com/

Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R

 
Posted : 15/04/2017 10:01 pm
 Jean
Posts: 0
Eminent Member
Topic starter
 

@Jason
Ok and thank you for the simpification.

I do not know much about ctrl and i am more confident with Python than Lua.

I have used Midi-Ox, but now I use Bome Software.
It is not free but has more possibilities of scripting.
I use it a lot.

 
Posted : 15/04/2017 11:58 pm
Jason
Posts: 8259
Illustrious Member
 

Right - Bome is good. I used it a few times and liked the relative simplicity of using it. Then I ditched it and used something more difficult. I do not use any scripting features of Midi-OX, only to capture and save the output since it does that well.

Lots of options out there. Anything that works is fine. Thanks for sharing the results of your efforts.

Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R

 
Posted : 16/04/2017 9:08 am
 Jean
Posts: 0
Eminent Member
Topic starter
 

Hi

Here is a new version.
Corrections for importing dumps in catalog (no changes in user interface).
In screen 'Performance Dump' (which is under construction) :
Add a button 'Display Controls' for viewing in 2 trees assignement of controls (picture below).

EDIT : See the last post for the last version

Attached files

 
Posted : 20/04/2017 9:12 am
Joel
 Joel
Posts: 597
Prominent Member
 

Thank you Jean, well done 😉

 
Posted : 20/04/2017 2:40 pm
 Jean
Posts: 0
Eminent Member
Topic starter
 

Hi

Here is a new version with bug corrections and some minor improvements.
I have add infos about performance on main screen.

The text for arp hold check-buttons is red because if you click on it you change the state of hold on Montage (between sync-off and hold).
(I make this for me because I have no more buttons on my Novation LaunchControlXL and my YamahaMFC10).

For advanced users, I add an explorer screen, via utility menu.

With this screen you can test 'parameter change' and 'parameter request' sysex.

With the button 'Compare Performances' you can find how a change on Montage affect his memory:
1) Click on 'Get Performance' on main screen
2) Go on menu > Utility > View Explorer screen
3) Change a parameter on Montage.
4) Click on 'Compare Performances' button, wait a few seconds, and you can see at which adress and for which value the parameter has changed in Montage's memory.
(Checksum is the last index for a given key).

I use this screen for exploring and discovering some undocumented parameters.
(ex: Super Knob link not documented in new OS data list)

ToDo : In display Control, 'element/op' need improvement for FM part.

 
Posted : 24/04/2017 5:25 pm
Page 1 / 2
Share:

© 2024 Yamaha Corporation of America and Yamaha Corporation. All rights reserved.    Terms of Use | Privacy Policy | Contact Us