Krátká (bolestivá) odpověď je začít s výchozí opravou, měnit parametry po jednom a prohlížet hexadecimální výpisy, abyste zjistili, co se změnilo ve výstupu. Pokud máte seznam parametrů, které vám nejvíce záleží na úpravách, začněte s nimi, protože pak rychle spustíte něco , které má částečnou podporu. Poté můžete přidat více parametrů v průběhu jejich identifikace.
Chcete-li začít konkrétně:
- Vypište výchozí opravu.
- Změňte a jeden parametr a poté jej vypustit.
- Pomocí výchozí opravy jako šablony vytvořte editor, který vám umožní vybrat buď výchozí hodnotu, nebo to, na co jste tuto hodnotu změnili.
- Změňte tento parametr na jeho maximální / minimální hodnoty a pro ně vypište opravy. Doufejme, že vám poskytneme dostatek informací, abyste mohli plně upravit jeden parametr.
- Podle potřeby opakujte.
Některé parametry mohou být bitová pole, některé mohou být jedno nebo dva bajty atd. Bude užitečné mít dokumentaci pro obecný formát sysexu, protože některé malé části budou diktovány touto specifikací (na rozdíl od Yamahy specifické). Pokud najdete dokumentaci k nějakému jinému vybavení Yamaha (zejména něco, co vyšlo ve stejném časovém období), může vám poskytnout pohled na to, jak mají tendenci navrhovat formáty jako společnost. Pokud nemůžete najít něco od Yamahy, může vám pomoci i přečtení dokumentace formátu sysex pro jinou společnost.
Podívejte se například na hexdump pár oprav z archivu Planet Groove, můžeme určit několik věcí pouhou kontrolou.
Z pohledu na midi spec a obě tyto opravy vypadá, že všechny opravy budou začínat 0xf0
a končit 0xf7
. Kromě toho 0x43
(který následuje za 0xf0
) je ID výrobce společnosti Yamaha.
Tabulka 2: Seznam rozšířených stavových bajtů
Binární | Hex | Funkce Dec 2.bajt 3.bajt o více datových bajtů a končící na EOX.
I když se jedná pouze o dvě ukázkové opravy, je velká šance, že formát opravy má vždy sedm sysexových zpráv v pořadí (každá začínající / končící 0xf0 0x43 0x00 0x4b 0x00
/ 0xf7
), které mají vždy stejnou délku. Úkolem je pouze postupovat podle výše uvedeného postupu k obrácení jednotlivých parametrů.
Několik dalších pozorování:
-
Vypadá to, že prvních pár bajtů po každé hlavičce souvisí s délkou každé zprávy (tj. 0x2e
, 0x17
, 0x09
, 0x29
, 0x29
, 0x29
, 0x29
, každý následuje 0x60
), ale nejsem si úplně jistý, jaký je to vztah. Pokud pole vždy zůstanou stejně dlouhá, dobrá zpráva je, že na tom opravdu nezáleží.
-
Vypadá to, že název opravy má vždy osm znaků ASCII a je vždy na stejném místě, takže první verze holých kostí editor by to mohl prostě povolit.
-
Jedno z polí v každé zprávě může být kontrolním součtem této zprávy. Pokud se pokusíte vytvořit editor pro název opravy a výsledná oprava se nenačte, může to být problém. Pokud k tomu dojde, zkuste to ještě otestovat, zkuste změnit některý binární parametr ve výchozí záplatě (tj. Možnost zapnutí / vypnutí) a zjistěte, zda se změní pouze jeden lokalizovaný bit / bajt nebo zda se změní dva [nelokalizované] bajty. Pokud existuje kontrolní součet, je pravděpodobně nejlepší najít dokumentaci Yamahy k nějakému jinému zařízení. Kromě toho je v tomto dokumentu [pdf] popis kontrolního součtu Roland, který vás přinejmenším provede pokusem uhodnout, jak to funguje.
Celý proces může být relativně snadný nebo brutální, ale je to dobrý způsob, jak začít.