Hoe sysex bank splitten in patches

flyweight

Spice up your life with FM and Feedback
Lid sinds
10 november 2010
Berichten
11.125
Locatie
HybriDe L!Fe
Weet iemand een makkelijke manier om een sysex bank te splitsen in individuele patches?
Ik heb een aantal met mijn eiegen patches van mijn Oberheim MAtrix 6.
Heb al bank per bank naar de matrix gestuurd en daarna individuele patches terug maar dat is echt vermoeiend.

Patches beginnen met "F0"

ga dit eens proberen.
Code:
awk '/\F0\/{n++}{print > ( "out" n ".syx" ) }' input[\CODE]


https://stackoverflow.com/questions/33930497/how-to-split-binary-delimited-binary-file

Maar ja zou tof zijn als iemand het wiel al heeft uitgevonden. 

Cheers

Tim
 
Ja, da's veel werkt, of ik heb nog veel ajuno banks, en ik wou die vorige maand als repatch file in redominator gebruiken,,

Ik zie het niet zitten om Banks te converteren naar syx presets voor de ajuno, omdat ik eerste die preset name moet decoderen,
voor de JP en Virus is 't me al gelukt, in't verleden,

maar als tip, ik heb al de banks in Sounddiver als één patch library venster gecopy /paste, en ik stuur de preset vanaf sounddiver naar redominator, die syx kan ontvangen,,
't blijf dan preset per preset, maar sounddiver leest al de werkende ajuno banks,,
 
Ik weet niet of dit merkt en universeel is, maar je hebt sommige vst’s waar je syx banks in kan laden of losse presets. Misschien kan je als je een bank load daarna de losse presets opslaan. Syx is toch bepaalde midi waardes op knoppen?
 
Er is geen universeel systeem om afzonderlijk patches uit een bulk te filteren (vandaar = > system exclusive).
Je zal die bulk moeten analyseren en zoeken waar elke patch begint en eindigt. De patches dienen dan ook nog
als geheel elkaar op te volgen en bvb. niet eerst alle namen dan pas alle data. Eventuele nummering voor de volgorde verwijderen etc. Om daarna tot afzonderlijk patches te komen, ontbrekende data per patch toevoegen, zoals F0 en F7.
Ik gebruik(-te) hiervoor Ultra Edit, daarin kan je zeer goed macro's maken om de data, in HEX formaat, te onderzoeken en bewerken.
Het ene systeem is makkelijk het andere zeer lastig.
Succes.
 
idd, goed gezegd audiocollage,
en ja, ik moest ook nog de checksum herberekenen omdat idd, de bank positie plaats veranderd moest worden naar de temp plaats,,

maar als het lukt, dan is dat heeeeeel cool,, maar ook weeral een over verzadiging van presets,,
en ook, dan moet je de syx presets best kunnen sorteren op type,,, op gerne,,

okey, dus een natte droom om banks naar syx presets te converteren,
maar er zijn tussen stappen, zoals al de bank verzamelen in sounddiver, die delete ook de dubbele presets,, off vinne kik,,
 
Heb het gevonden.

1. Eerst moet je weten hoeveel patches je synth in een syx dump kan opslaan. 100 in het geval van een Oberheim Matrix 6

2. met awk splitten we de binary file genaamd "file.syx"

Code:
awk 'RS="\xF0"{n++}{print RS $0 > ( "out" n ".syx" ) }' file.syx

Deze zullen namen hebben out1.syx out2.syx

3. nu moeten we de grote van een patch file weten
Gewoon in de dir kijken waar je heel veel dezelde grote hebben.

Code:
$ ls -la

-rwxrwxrwx 1 stinkendenerd stinkendenerd  276 Mar 27 18:53 out77.syx
-rwxrwxrwx 1 stinkendenerd stinkendenerd   276 Mar 27 18:53 out78.syx
-rwxrwxrwx 1 stinkendenerd stinkendenerd   276 Mar 27 18:53 out79.syx
-rwxrwxrwx 1 stinkendenerd stinkendenerd   276 Mar 27 18:53 out7.syx

In mijn geval zij er heel veel files van 276 bytes
Zijn et er 100?

Code:
$ ls -la | grep -c 276
100

100 ok dan! dit zijn idd individuele patches

4. Voorbeeld van 1 van zo een file:

Code:
$ hexdump -C out84.syx
00000000  f0 10 06 01 52 0d 02 0d  02 0d 02 0d 02 0d 02 0d  |....R...........|
00000010  02 0d 02 0d 02 00 00 00  00 00 00 00 00 00 00 00  |................|
00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000110  00 68 f7 0a                                       |.h..|
00000114


5. laten we alle patchfiles ff in een dir genaam "somedir" gooien met

Code:
find . -type f -size 276c -exec mv "{}" "./somedir"\;

6. In het voorbeeld kun je zien dat awk een newline heeft toegevoegd. Weet niet of dit komt omdat ik Debian onder Windows 10 draai met WSL.
Dus die laatste byte knippen we eraf.

Code:
truncate -s-1 ./somedir/*.syx


Hoop dat je er wat aan hebt. Cheers Tim
 
Laatst gewijzigd:
Je kunt dit op een MAc, Linux of windows of Android doen.

Op windows kun je:
1. de individuele commando's als exe downloaden (gawk, grep, ls, truncate).
2. Installeer een linux distributie met WSL
3. cygwin,
4. virtual machine met linux
5. Terminal emulator met linux commando's
6. Android: Termix terminal daarna gawk instaleren
 
Back
Top