mySoftware [Updates]

Once you create a user profile on Motifator and update with the appropriate information, the updates shown here will be specific to you.

newProducts [YOK]

rssFeeds [Syndicate]


forumforum
 

Old Motifator threads are available in the Archive.

Viewing topic "►♫ Free Arp Management Software ♫◄"

   
Page 3 of 3
Posted on: April 24, 2016 @ 04:20 PM
JeanGoncalves
Total Posts:  31
Joined  10-25-2014
status: Regular

Correction of my previous post:
The syntax of call is :
py moxfArpeges nom_d_un_fichier.x6g
or
py moxfArpeges nom_d_un_fichier.x6a
Sorry

  [ Ignore ]  

Posted on: April 25, 2016 @ 12:09 PM
5pinDIN
Avatar
Total Posts:  11891
Joined  09-16-2010
status: Legend
JeanGoncalves - 24 April 2016 03:07 PM

Hello 5pinDIN
With the help of your link on the structure of YSFC file format.
I found the folowing info on the structure of arpeggio on MOXF.
I write a small python script that work on my own *.X6G and *.X6A files.
My own files are version 1.0.4 and I have an extern .X6A version 1.0.3 file with arpeggio.
I give you my own comments from my pyhton script, as I have a very bad english this is in french.
I hope someone (like Moessieurs) can translate my comments for 5pinDIN, else I try to translate in another post, if you find this info useful.

Structure Arpèges:
A partir de l’entrée du catalogue (offset absolu 0x40) trouver l’entée catalogue DARP (4 octets), les 4 octets suivants sont l’offset absolu de l’entrée datas DARP
A cet offset, noté OD pour OffsetDARP on trouve la chaine ‘DARP’ suivi de la longueur totale des données d’arpèges, noté LA pour LenArpéges.

A la fin des données d’arpèges se trouve un tableau de 256 éléments de 8 octets. Structure :
4 octets : offset relatif au début de la liste chainée des données de l’arpège dans la liste chainée (description ci-après).
4 octets : taille des données (big endian) de l’arpège dans la liste chainée. Si taille = 0 pas de données d’arpèges (*)
On calcule l’offset du début du tableau : OD + LA + 8 - 256*8

(*) Il peut y avoir des trous dans la liste d’arpèges. (Ex : on peut créer sa première arpège avec le numéro 256)

Ce tableau est le point d’entrée de la liste d’arpèges :
Pour chaque élément du tableau (256 arpèges) on regarde si la taille est différente de 0
Si oui : on parcourt la liste chainée à partir de l’offset du début de l’arpège pour la taille donnée et on récupère les 6 octets d’un tableau (voir après) à l’ offset OD + 0x1C + (num_arp * 6) . Avec num_arp : 0..255

On trouve à l’offset OD + 0x1C un tableau de 256 éléments de 6 octets de structure suivante :
1 octet = 0. 1 octet = num d’arpège. 1 octet = 0. 1 octet = num d’arpège. 1 octet = catégorie d’arpège (FF = pas de type). 1 octet = sous catégorie d’arpège (FF = pas de sous type)

On trouve ensuite la liste chainée de chunks de structure suivante :
4 octets : Nom du chunk. 4 octets: taille des datas du chunk sur 4 octets (big endian) = nd. nd octets : datas du chunk.

Noms des chunks:
PHhd : début de l’arpège.
Structure des datas du chunk PHhd : 6 octets puis nom de l’arpège (ex :00.01.00.nb_tracks.01.e0.nom_de_l_arpege)
(nb) La taille de ce chunk est variable et la longueur du nom peut-être inférieure à 20 pour les arpèges provenant de librairie tierce.
ATrk : chunk de piste ( 1 à 4 chunk de piste pour 1 arpège)
ARPa : chunk global de l’arpège.
Structure des datas du chunk ARPa : 4 octets : len du nom (big endian). nom (offset 4) + reste des datas
TRKa : chunk provenant d’arpèges de librairie tierce. Signification inconnue
PHRa : chunk provenant d’arpèges de librairie tierce. Signification inconnue

Thank you for the above. I had already determined much of the MOXF file format, but your work fills in some things I had not yet found. With the (dubious) help of “Google Translate”, my meager knowledge of French, and what I had already known about the file format, I did a translation. I hope the following is relatively accurate…

Arpeggios structure:
From the start of the catalog (absolute offset 0x40) find the catalog entry DARP (4 bytes), the following 4 bytes are the absolute offset of the DARP data
At this offset, noted OD for OffsetDARP we find the string ‘DARP’ followed by the total length of Arpeggio data, noted LA for LenArpeggios.

At the end of the Arpeggio data is a table of 256 8-byte elements. Structure:
4 bytes: offset relative to the beginning of the linked list data of the arpeggio in the linked list (Description below).
4 bytes: Data size (big endian) of the arpeggio in the linked list. If size = 0 no Arpeggio data (*)
The offset of the beginning of the table is calculated: OD + LA + 8 - 256*8

(*) There may be holes in the arpeggio list. (Eg one can create his first arpeggio with No. 256)

This table is the entry points to the list of arpeggios:
For each element of the array (256 arpeggios) we see if the size is not 0
If yes: we traverse the linked list from the offset of the beginning of the arpeggio for the given size and recover 6 bytes from a table (see below) at offset OD + 0x1C + (num_arp * 6 ). With num_arp: 0..255

At offset OD + 0x1C is an array of 256 elements of 6 bytes of following structure:
1 byte = 0. 1 byte = arpeggio number. 1 byte = 0. 1 byte = arpeggio number. 1 byte = arpeggio category (FF = no type). 1 byte = arpeggio subcategory (FF = no subtype)

Then there is the linked list of chunks of the following structure:
4 bytes: Name of the chunk. 4 bytes: size of data chunk (big endian) = nd. nd bytes: chunk data

Names of chunks:
PHhd: beginning of the arpeggio.
Data structure of chunk PHhd: 6 bytes and name of the arpeggio (eg 00.01.00.nb_tracks.01.e0.name_of_arpeggio)
(Nb) The size of this chunk is variable and name length may be less than 20 for arpeggios from third-party library.
ATrk: track chunk (1-4 chunk of track for 1 arpeggio)
ARPa: overall chunk of the arpeggio.
Data structure of ARPa chunk: 4 bytes: len name (big endian). name (offset 4) + rest of data
TRKa: chunk from third party arpeggio library. Meaning unknown
PHRa: chunk from third party arpeggio library. Meaning unknown

  [ Ignore ]  

Posted on: April 25, 2016 @ 01:28 PM
JeanGoncalves
Total Posts:  31
Joined  10-25-2014
status: Regular

Hello

As I have a bad knowledge of english, I don’t know if the google traduction is accurate.
for me it is.

I give you a second script, which merge arps of two files in one file.

I think examining the code is better that I try translate comments.

I have test this script on my MOXF with merging my own arpeggios and a few arpeggios of a commercial .X6A file.

For now, that works and the MOX is not “brick” !

Pay attention at the syntax of parameters in the call of the script.

File Attachments
mergeArps.zip  (File Size: 5KB - Downloads: 387)
  [ Ignore ]  

Posted on: April 25, 2016 @ 03:43 PM
JeanGoncalves
Total Posts:  31
Joined  10-25-2014
status: Regular

Syntax of script call : py mergeArps.py fileNameA fileNameB OutFileName list_of_arpeggios_to_merge
filenameA : name of an existing .X6G or .X6A file with arpeggios to merge
filenameB : name of an existing .X6G or .X6A file with arpeggios to merge
OutFileName : name of the file to create with the merged arppegios (you must include the extension .X6G in then file name)
The name of the files must be enclosed with then character “
list_of_arpeggios_to_merge : a list with comma separator with the form xn where x is he letter a or b for designated the fileNameA or the fileNameB and x is the num of arpeggio to merge in OutFileName
The num of arpeggio is 1 to 256

Ex of call :  py mergeArps.py “D:/Yamaha/Cle64GO/BACKUPS/PATARP/TESTS/5-8-F-13.X6G” “D:/Yamaha/Cle64GO/BACKUPS/PATARP/MYEDMEXP.X6G” “ARPS/TEST4.X6G” a8,a7,b34,b16,b6,b1,a1

  [ Ignore ]  

Posted on: April 25, 2016 @ 04:52 PM
JeanGoncalves
Total Posts:  31
Joined  10-25-2014
status: Regular

I have edit my post because I rename my script from moxfArpeges.py to mergeArps.py .
This is not reflect in the code comments of the file I post previously.
Sorry

  [ Ignore ]  

Posted on: April 26, 2016 @ 02:41 AM
JeanGoncalves
Total Posts:  31
Joined  10-25-2014
status: Regular

Hello
I made some minor corrections in my script and I repost it.
For readers other than 5pinDIN :
This is a study script and it is not user friendly and robust.
For example, it does not make robust parsing of parameters given to the script.
You may also have permissions of reading and writing in the directories where the files are.
And the most important, the script is made on speculations on an undocumented file format.
I think it can be a starting point or a doc for a user friendly compiled program with a GUI.
Thank for reading

File Attachments
mergeArps.zip  (File Size: 5KB - Downloads: 399)
  [ Ignore ]  

Posted on: April 26, 2016 @ 09:07 AM
5pinDIN
Avatar
Total Posts:  11891
Joined  09-16-2010
status: Legend
JeanGoncalves - 25 April 2016 01:28 PM

As I have a bad knowledge of english, I don’t know if the google traduction is accurate.
for me it is.

Google’s translation was poor. What I posted was my version of it, with syntax, spelling, and technical corrections.

  [ Ignore ]  

Posted on: April 26, 2016 @ 09:53 PM
JeanGoncalves
Total Posts:  31
Joined  10-25-2014
status: Regular

Hello
I have made a new version with a GUI, so it is more comfortable for testing.
The syntx call is py tkmergeArps.py
The button “...” in the box “Fichier gauche” open a dialog for selecting a file with arpeggio and populate the left listeBox
The button “...” in the box “Fichier droit” open a dialog for selecting a file with arpeggio and populate the right listeBox
The button “...” in the box “Fichier à créer” open a dialog for selecting or typing the name of a file wich is create or overwrite by the program
Multiple selection can be made on the left and right listeBox with shift or control as usual on windows.
button “->“ append the select arpeggios from the left listeBox to the midListBox
button ”<-” append the select arpeggios from the right listeBox to the midListBox
button “Efface tout” clear the mid listBox
button “Efface dernier” remove the last element of the mid ListBox
button “Merge” write the new file with arpeggio of the mid listBox on disk
buttons “Liste” and “Info” are not implemented

File Attachments
tkmergeArps.zip  (File Size: 4KB - Downloads: 379)
  [ Ignore ]  

Posted on: April 26, 2016 @ 10:21 PM
5pinDIN
Avatar
Total Posts:  11891
Joined  09-16-2010
status: Legend
JeanGoncalves - 26 April 2016 09:53 PM

Hello
I have made a new version with a GUI, so it is more comfortable for testing.

I encourage you to develop a fully implemented program. If it will be for the MOXF only, it would probably be appropriate to post future updates in the MOXF forum.

  [ Ignore ]  

Posted on: April 27, 2016 @ 11:56 PM
Deepbyte
Total Posts:  8
Joined  05-30-2011
status: Newcomer

Thank you so very, very much 5pinDIN!  Your dedication to the MOTIF and to the members of Motifator is commendable and greatly appreciated.

Best Regards!

  [ Ignore ]  

Posted on: April 28, 2016 @ 11:11 AM
5pinDIN
Avatar
Total Posts:  11891
Joined  09-16-2010
status: Legend
Deepbyte - 27 April 2016 11:56 PM

Thank you so very, very much 5pinDIN!  Your dedication to the MOTIF and to the members of Motifator is commendable and greatly appreciated.

Best Regards!

You’re very welcome.

  [ Ignore ]  

Posted on: November 01, 2018 @ 07:37 PM
5pinDIN
Avatar
Total Posts:  11891
Joined  09-16-2010
status: Legend

I found a tiny bug in Arps-Plus version 1.00. If an XS/XF All/Arp file containing no Arps is chosen, the program should display an error message indicating that, with the name of the file. In version 1.00 that works correctly for the first file, but not for the second file - it incorrectly states that the first file chosen, rather than the second one, has no Arps. That’s been corrected in version 1.01.

Attached are the updated files. The Windows installer file is Arps-Plus_v1_01_setup. The Arps-Plus_v1_01 executable file is included in that, but is being provided separately for those wanting to do a manual installation. See the Readme.

Please see the first post in this thread for certain details.

File Attachments
Arps-Plus_v1_01_setup.zip  (File Size: 351KB - Downloads: 443)
Arp Files.zip  (File Size: 28KB - Downloads: 443)
ReadmeArpsPlus_v1_01.txt  (File Size: 6KB - Downloads: 427)
Arps-Plus_v1_01.zip  (File Size: 87KB - Downloads: 425)
  [ Ignore ]  


Page 3 of 3


     


Previous Topic:

‹‹ ES sounds for XF8
Next Topic:

    Motif vs Cubase Arpeggiators? ››