Forums: OpenMIDIProject forum (Thread #41278)

Display & copy Meta Data over 340 bytes; View like a Hex-editor; Move events by beats/bars; Hide toolbars... (2019-09-28 23:27 by «G~Lí†çh» #83642)

[#1] Display and copy full data from a VERY BIG META event (Sequencer Specific)! Yamaha PSR/CVP/Tyros/Genos keyboards places this meta event to any beat of any measure, and contains Panel (Keyboard) voices settings (340 bytes or more): Timbre (on/off, Patch, vol, pan, octave, pitchbend range, portamento time, filter, eq, fx sends and DSPs, etc.) of Left, Right1, Right2, Right3; Harmony On/Off; Sustain On/Off; Selected MultiPad (e.g. [C][:][\][M][U][L][T][I][ ][P][A][D][\][N][A][M][E][.][S][9][9][9][.][P][A][D] – decoded text from hex). But Sekaiju crops it, e.g. ends on MultiPad settings with [C][:][\] instead of [F][E][n][d][Nul][Nul] — another words, it crops on 1020th text character. Sekaiju writes a file correctly if I don't touch these Meta events and it is not a critical bug!
It would be great, if you can 'expand' a Sequencer Specific or SysEx event to HexEditor-like view (with ASCII/ANSI/UTF column), but don't fix its rows to 16 bytes long!
Value1 column = ASCII column (for Normal SysEx), Value2 = Hex column, Value3 = ANSI or UTF Column (for Arbitrary SysEx / Sequencer Specific) or vice versa: Value3=Hex & Value2=ANSI/UTF (optional)... If Value2/Value3 column is very short — place 3 bytes per row ;)
And yes, max width of Value2/Value3 must be more than 96 ;)

[#2] Type hex without SPACEs

[#3] Move event(s) by beats and by bars (if three or more, place two arrow-buttons (up/down) only to first (or second) AND last selected event. Of course, edited event(s) should still be hilighted (or selected). ...Oops, sometimes Sekaiju highlights unnecessary events instead of the ones I highlight (can't explain more specifically, in what situations this occurs)...

[#4] Need these settings:
° Don't show toolbars at startup: [_] Toolbar1; [_] Toolbar2; [_] StatusBar
or vice-versa: Show these toolbars at startup: [_] Toolbar1; [_] Toolbar2; [_] StatusBar.
° Don't open an empty project at start
or vice-versa: [_] Open empty project at start

P.S. Yamaha XF Chords are usually Meta Events, but they can be as SysEx F0 43 7E 02 nn cc nb cb F7. I can use Hex-Editor and 'search and replace' for first 5 bytes of these events in a file: FF7F077B01 to F007437E02, and open this file with Sekaiju to add missing 'F7' at the end of all 'converted to sysex' events, but something goes wrong and these files become invalid for Sekaiju and I can't add F7!.. If Sekaiju supports Yamaha XF chords, can you add a Meta/SysEx-converter for it?
P.P.S. Event List has a button, named 'Inset event' instead of 'Insert event', but [Undo] displays "Insert".
_______
; I don't know how to programm on C(+/♯) (rather how to use a cpp compilers), but I suspect that [#1] has a bug in EventListIndexPropertyView.cpp:
BYTE byBin[1024];
TCHAR szText[1024]; //—— is this a char limiter? maybe it should be 3070 if space follows an every 'byte'?
memset (byBin, 0, sizeof (byBin));
memset (szText, 0, sizeof (szText));
MIDIEvent_GetData (pMIDIEvent, byBin, 1024);
bin2txt (byBin, MIDIEvent_GetLen (pMIDIEvent), szText, 1023); //—— or this ?
strText = szText; //—— How to make a program think that 1020 text characters ≠ 1020 bytes?
/// ~~~ ///
(MIDIEvent_IsSequencerSpecific (pMIDIEvent)) {
BYTE byData[1024];
memset (byData, 0, sizeof (byData));
long lRet = txt2bin ((TCHAR*)(LPCTSTR)strText, 1023, byData, 1024); //—— is a bug stays here?
VERIFY (strHistoryName.LoadString (IDS_MODIFY_SEQUENCERSPECIFIC));
...

Reply to #83642×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

Re: Display & copy Meta Data over 340 bytes; View like a Hex-editor; Move events by beats/bars; Hide toolbars... (2019-09-30 22:23 by kuzu #83649)

Thank you for using Sekaiju.
Now I have little time, so I can answer a bit.

[#1] Display and copy full data from a VERY BIG META event (Sequencer Specific)

I see.
I'm considering to support about 16383 bytes data for Text, Sequencer Specific and Sysex event in the future's version. But maybe I'll remain current user interface. For editing long data, please use copy and paste and external editor.

[#4] Need these settings:
° Don't show toolbars at startup: [_] Toolbar1; [_] Toolbar2; [_] StatusBar
or vice-versa: Show these toolbars at startup: [_] Toolbar1; [_] Toolbar2; [_] StatusBar.
° Don't open an empty project at start
or vice-versa: [_] Open empty project at start

If I would have a time, I'll try. But this is a bit low priority.

P.S. Yamaha XF Chords are usually Meta Events, but they can be as SysEx F0 43 7E 02 nn cc nb cb F7. I can use Hex-Editor and 'search and replace' for first 5 bytes of these events in a file: FF7F077B01 to F007437E02, and open this file with Sekaiju to add missing 'F7' at the end of all 'converted to sysex' events, but something goes wrong and these files become invalid for Sekaiju and I can't add F7!.. If Sekaiju supports Yamaha XF chords, can you add a Meta/SysEx-converter for it?

Sysex(normal) must begin with F0 and end with F7 in a standard MIDI file, so your MIDI file is temporary invalid when opening in Sekaiju or any other sequencer. For those purpose, please try SAL. You can make user-defined editing feature. SAL is here : https://kuzudeveloproom.sakura.ne.jp/sal/index_en.html.

By the way, in Japan, company is very hard, which is known as "karoshi". Honestly speaking, I'm too tired and sleepy. Perhaps only bug fix and small update will be done. Please don't expect so much.

Reply to #83642

Reply to #83649×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login