From 22bf1d51cabde6044754dbe48f68b47586ed350a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Trukenm=C3=BCller?= Date: Wed, 26 Jul 2023 19:37:06 +0200 Subject: [PATCH] added support for compact syntax and barlines to the decompiler - added support for MidicaPL compact syntax in the decompiler - added support for barlines for decompilation to MPL and ALDA - added additional line breaks in both formats (elements per line is configurable) - fixed some bugs in the decompiler - fixed #80 --- midica.jar | Bin 840599 -> 847370 bytes src/org/midica/Midica.java | 4 +- src/org/midica/config/Config.java | 28 +- src/org/midica/config/Dict.java | 56 +- src/org/midica/file/read/MidicaPLParser.java | 10 +- src/org/midica/file/write/AldaExporter.java | 555 ++++++++----- src/org/midica/file/write/Decompiler.java | 231 ++++-- .../midica/file/write/MidicaPLExporter.java | 740 ++++++++++++------ src/org/midica/file/write/Slice.java | 8 +- .../config/DecompileConfigController.java | 16 +- .../ui/file/config/DecompileConfigView.java | 163 +++- .../ui/file/config/FileConfigController.java | 4 + 12 files changed, 1257 insertions(+), 558 deletions(-) diff --git a/midica.jar b/midica.jar index a9af666252439525d48b8bdae8652538a7ab24e8..db6b62383cd9387d488e89d676aadec3f9d98464 100644 GIT binary patch delta 220326 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 g7zJ42)Mkml$ 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ĚX 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�i2``jajHUggmKO)5S4?9y8~Fq8C-F^ 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�g5A$jemmj^}cxdA!Vgo?!t`Sj}|{ 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

#xt$;iq%Z7`_G?_Ql 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 z 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 z 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%0D?Cc^Sl~<}0S5pl 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 Q^b2o!OxU)B0Q;~E0O1Y|F#rGn diff --git a/src/org/midica/Midica.java b/src/org/midica/Midica.java index 0677a7b..b581b7b 100644 --- a/src/org/midica/Midica.java +++ b/src/org/midica/Midica.java @@ -33,10 +33,10 @@ public class Midica { * After switching to a new major version, this has to be set to "-1" manually, so that * precommit.pl starts with "0" again. */ - private static final int VERSION_MINOR = 4; + private static final int VERSION_MINOR = 5; /** UNIX timestamp of the last commit */ - public static final int COMMIT_TIME = 1683392841; + public static final int COMMIT_TIME = 1690393042; /** Branch name. Automatically changed by precommit.pl */ public static final String BRANCH = "master"; diff --git a/src/org/midica/config/Config.java b/src/org/midica/config/Config.java index 418f5a3..ba5c59f 100644 --- a/src/org/midica/config/Config.java +++ b/src/org/midica/config/Config.java @@ -197,8 +197,8 @@ public class Config { public static final String DC_MUST_ADD_STATISTICS = "dc_must_add_statistics"; public static final String DC_MUST_ADD_STRATEGY_STAT = "dc_must_add_strategy_stat"; public static final String DC_LENGTH_STRATEGY = "dc_length_strategy"; - public static final String DC_MIN_TARGET_TICKS_ON = "dc_min_target_ticks_on"; - public static final String DC_MAX_TARGET_TICKS_ON = "dc_max_target_ticks_on"; + public static final String DC_MIN_TICKS_ON_AT_480 = "dc_min_ticks_on_at_480"; + public static final String DC_MAX_TICKS_ON_AT_480 = "dc_max_ticks_on_at_480"; public static final String DC_MIN_DURATION_TO_KEEP = "dc_min_duration_to_keep"; public static final String DC_MAX_DURATION_TO_KEEP = "dc_max_duration_to_keep"; public static final String DC_LENGTH_TICK_TOLERANCE = "dc_length_tick_tolerance"; @@ -216,6 +216,10 @@ public class Config { public static final String DC_ORPHANED_SYLLABLES = "dc_orphaned_syllables"; public static final String DC_KARAOKE_ONE_CHANNEL = "dc_karaoke_one_channel"; public static final String DC_CTRL_CHANGE_MODE = "dc_ctrl_change_mode"; + public static final String DC_SYNTAX_TYPE = "dc_syntax_type"; + public static final String DC_ELEMENTS_PER_LINE = "dc_elements_per_line"; + public static final String DC_USE_BARLINES = "dc_use_barlines"; + public static final String DC_MAX_BARLINE_TOL = "dc_max_barline_tol"; public static final String DC_EXTRA_GLOBALS_STR = "dc_extra_globals_str"; // audio options @@ -356,8 +360,8 @@ public static HashMap getDefaultDecompileConfig() { dcDefaults.put( DC_MUST_ADD_STATISTICS, "" + Decompiler.DEFAULT_MUST_ADD_STATISTICS ); dcDefaults.put( DC_MUST_ADD_STRATEGY_STAT, "" + Decompiler.DEFAULT_MUST_ADD_STRATEGY_STAT ); dcDefaults.put( DC_LENGTH_STRATEGY, "" + Decompiler.DEFAULT_LENGTH_STRATEGY ); - dcDefaults.put( DC_MIN_TARGET_TICKS_ON, "" + Decompiler.DEFAULT_MIN_TARGET_TICKS_ON ); - dcDefaults.put( DC_MAX_TARGET_TICKS_ON, "" + Decompiler.DEFAULT_MAX_TARGET_TICKS_ON ); + dcDefaults.put( DC_MIN_TICKS_ON_AT_480, "" + Decompiler.DEFAULT_MIN_TICKS_ON_AT_480 ); + dcDefaults.put( DC_MAX_TICKS_ON_AT_480, "" + Decompiler.DEFAULT_MAX_TICKS_ON_AT_480 ); dcDefaults.put( DC_MIN_DURATION_TO_KEEP, "" + Decompiler.DEFAULT_MIN_DURATION_TO_KEEP ); dcDefaults.put( DC_MAX_DURATION_TO_KEEP, "" + Decompiler.DEFAULT_MAX_DURATION_TO_KEEP ); dcDefaults.put( DC_LENGTH_TICK_TOLERANCE, "" + Decompiler.DEFAULT_LENGTH_TICK_TOLERANCE ); @@ -375,6 +379,10 @@ public static HashMap getDefaultDecompileConfig() { dcDefaults.put( DC_ORPHANED_SYLLABLES, "" + Decompiler.DEFAULT_ORPHANED_SYLLABLES ); dcDefaults.put( DC_KARAOKE_ONE_CHANNEL, "" + Decompiler.DEFAULT_KARAOKE_ONE_CHANNEL ); dcDefaults.put( DC_CTRL_CHANGE_MODE, "" + Decompiler.DEFAULT_CTRL_CHANGE_MODE ); + dcDefaults.put( DC_SYNTAX_TYPE, "" + Decompiler.DEFAULT_SYNTAX_TYPE ); + dcDefaults.put( DC_ELEMENTS_PER_LINE, "" + Decompiler.DEFAULT_ELEMENTS_PER_LINE ); + dcDefaults.put( DC_USE_BARLINES, "" + Decompiler.DEFAULT_USE_KARAOKE ); + dcDefaults.put( DC_MAX_BARLINE_TOL, "" + Decompiler.DEFAULT_MAX_BARLINE_TOL ); dcDefaults.put( DC_EXTRA_GLOBALS_STR, Decompiler.DEFAULT_EXTRA_GLOBALS_STR ); return dcDefaults; @@ -813,14 +821,18 @@ private static void restoreDefaultKeyBindings() { addDefaultKeyBinding( Dict.KEY_DC_CONF_TAB_SLICES, KeyEvent.VK_NUMPAD7, 0 ); addDefaultKeyBinding( Dict.KEY_DC_CONF_TAB_SLICES, KeyEvent.VK_7, InputEvent.CTRL_DOWN_MASK ); addDefaultKeyBinding( Dict.KEY_DC_CONF_TAB_SLICES, KeyEvent.VK_NUMPAD7, InputEvent.CTRL_DOWN_MASK ); + addDefaultKeyBinding( Dict.KEY_DC_CONF_TAB_SYNTAX, KeyEvent.VK_8, 0 ); + addDefaultKeyBinding( Dict.KEY_DC_CONF_TAB_SYNTAX, KeyEvent.VK_NUMPAD8, 0 ); + addDefaultKeyBinding( Dict.KEY_DC_CONF_TAB_SYNTAX, KeyEvent.VK_8, InputEvent.CTRL_DOWN_MASK ); + addDefaultKeyBinding( Dict.KEY_DC_CONF_TAB_SYNTAX, KeyEvent.VK_NUMPAD8, InputEvent.CTRL_DOWN_MASK ); addDefaultKeyBinding( Dict.KEY_DC_CONF_ADD_TICK_COMMENTS, KeyEvent.VK_T, 0 ); addDefaultKeyBinding( Dict.KEY_DC_CONF_ADD_CONFIG, KeyEvent.VK_C, 0 ); addDefaultKeyBinding( Dict.KEY_DC_CONF_ADD_SCORE, KeyEvent.VK_Q, 0 ); addDefaultKeyBinding( Dict.KEY_DC_CONF_ADD_STATISTICS, KeyEvent.VK_S, 0 ); addDefaultKeyBinding( Dict.KEY_DC_CONF_ADD_STRATEGY_STAT, KeyEvent.VK_R, 0 ); addDefaultKeyBinding( Dict.KEY_DC_CONF_NOTE_LENGTH_STRATEGY, KeyEvent.VK_P, InputEvent.CTRL_DOWN_MASK ); - addDefaultKeyBinding( Dict.KEY_DC_CONF_MIN_TARGET_TICKS_ON, KeyEvent.VK_L, InputEvent.CTRL_DOWN_MASK ); - addDefaultKeyBinding( Dict.KEY_DC_CONF_MAX_TARGET_TICKS_ON, KeyEvent.VK_L, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK ); + addDefaultKeyBinding( Dict.KEY_DC_CONF_MIN_TICKS_ON_AT_480, KeyEvent.VK_L, InputEvent.CTRL_DOWN_MASK ); + addDefaultKeyBinding( Dict.KEY_DC_CONF_MAX_TICKS_ON_AT_480, KeyEvent.VK_L, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK ); addDefaultKeyBinding( Dict.KEY_DC_CONF_MIN_DUR_TO_KEEP, KeyEvent.VK_K, InputEvent.CTRL_DOWN_MASK ); addDefaultKeyBinding( Dict.KEY_DC_CONF_MAX_DUR_TO_KEEP, KeyEvent.VK_K, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK ); addDefaultKeyBinding( Dict.KEY_DC_CONF_TOL_TICK_LEN, KeyEvent.VK_N, InputEvent.CTRL_DOWN_MASK ); @@ -838,6 +850,10 @@ private static void restoreDefaultKeyBindings() { addDefaultKeyBinding( Dict.KEY_DC_CONF_KAR_ORPHANED, KeyEvent.VK_O, InputEvent.CTRL_DOWN_MASK ); addDefaultKeyBinding( Dict.KEY_DC_CONF_KAR_ONE_CH, KeyEvent.VK_A, InputEvent.CTRL_DOWN_MASK ); addDefaultKeyBinding( Dict.KEY_DC_CONF_CTRL_CHANGE_MODE, KeyEvent.VK_M, InputEvent.CTRL_DOWN_MASK ); + addDefaultKeyBinding( Dict.KEY_DC_CONF_SYNTAX_TYPE, KeyEvent.VK_T, InputEvent.CTRL_DOWN_MASK ); + addDefaultKeyBinding( Dict.KEY_DC_CONF_ELEMENTS_PER_LINE, KeyEvent.VK_E, InputEvent.CTRL_DOWN_MASK ); + addDefaultKeyBinding( Dict.KEY_DC_CONF_USE_BARLINES, KeyEvent.VK_B, InputEvent.CTRL_DOWN_MASK ); + addDefaultKeyBinding( Dict.KEY_DC_CONF_FLD_BARLINE_TOL, KeyEvent.VK_M, InputEvent.CTRL_DOWN_MASK ); addDefaultKeyBinding( Dict.KEY_DC_CONF_FLD_GLOB_SINGLE, KeyEvent.VK_O, InputEvent.CTRL_DOWN_MASK ); addDefaultKeyBinding( Dict.KEY_DC_CONF_BTN_GLOB_SINGLE, KeyEvent.VK_O, InputEvent.ALT_DOWN_MASK ); addDefaultKeyBinding( Dict.KEY_DC_CONF_FLD_GLOB_EACH, KeyEvent.VK_D, InputEvent.CTRL_DOWN_MASK ); diff --git a/src/org/midica/config/Dict.java b/src/org/midica/config/Dict.java index c5a3b2e..f3317e0 100644 --- a/src/org/midica/config/Dict.java +++ b/src/org/midica/config/Dict.java @@ -726,14 +726,15 @@ public class Dict { public static final String KEY_DC_CONF_TAB_KARAOKE = "key_dc_conf_tab_karaoke"; public static final String KEY_DC_CONF_TAB_CTRL_CHANGE = "key_dc_conf_tab_ctrl_change"; public static final String KEY_DC_CONF_TAB_SLICES = "key_dc_conf_tab_slices"; + public static final String KEY_DC_CONF_TAB_SYNTAX = "key_dc_conf_tab_syntax"; public static final String KEY_DC_CONF_ADD_TICK_COMMENTS = "key_dc_conf_add_tick_comments"; public static final String KEY_DC_CONF_ADD_CONFIG = "key_dc_conf_config"; public static final String KEY_DC_CONF_ADD_SCORE = "key_dc_conf_add_score"; public static final String KEY_DC_CONF_ADD_STATISTICS = "key_dc_conf_add_statistics"; public static final String KEY_DC_CONF_ADD_STRATEGY_STAT = "key_dc_conf_add_strategy_stat"; public static final String KEY_DC_CONF_NOTE_LENGTH_STRATEGY = "key_dc_conf_note_length_strategy"; - public static final String KEY_DC_CONF_MIN_TARGET_TICKS_ON = "key_dc_conf_min_target_ticks_on"; - public static final String KEY_DC_CONF_MAX_TARGET_TICKS_ON = "key_dc_conf_max_target_ticks_on"; + public static final String KEY_DC_CONF_MIN_TICKS_ON_AT_480 = "key_dc_conf_min_ticks_on_at_480"; + public static final String KEY_DC_CONF_MAX_TICKS_ON_AT_480 = "key_dc_conf_max_ticks_on_at_480"; public static final String KEY_DC_CONF_MIN_DUR_TO_KEEP = "key_dc_conf_min_dur_to_keep"; public static final String KEY_DC_CONF_MAX_DUR_TO_KEEP = "key_dc_conf_max_dur_to_keep"; public static final String KEY_DC_CONF_TOL_TICK_LEN = "key_dc_conf_tol_tick_len"; @@ -751,6 +752,10 @@ public class Dict { public static final String KEY_DC_CONF_KAR_ORPHANED = "key_dc_conf_kar_orphaned"; public static final String KEY_DC_CONF_KAR_ONE_CH = "key_dc_conf_kar_one_ch"; public static final String KEY_DC_CONF_CTRL_CHANGE_MODE = "key_dc_conf_ctrl_change_mode"; + public static final String KEY_DC_CONF_SYNTAX_TYPE = "key_dc_conf_syntax_type"; + public static final String KEY_DC_CONF_ELEMENTS_PER_LINE = "key_dc_conf_elements_per_line"; + public static final String KEY_DC_CONF_USE_BARLINES = "key_dc_conf_use_barlines"; + public static final String KEY_DC_CONF_FLD_BARLINE_TOL = "key_dc_conf_fld_barline_tol"; public static final String KEY_DC_CONF_FLD_GLOB_SINGLE = "key_dc_conf_fld_glob_single"; public static final String KEY_DC_CONF_BTN_GLOB_SINGLE = "key_dc_conf_btn_glob_single"; public static final String KEY_DC_CONF_FLD_GLOB_EACH = "key_dc_conf_fld_glob_each"; @@ -840,6 +845,7 @@ public class Dict { public static final String DC_TAB_KARAOKE = "dc_tab_karaoke"; public static final String DC_TAB_CTRL_CHANGE = "dc_tab_ctrl_change"; public static final String DC_TAB_SLICE = "dc_tab_slice"; + public static final String DC_TAB_LINE = "dc_tab_line"; public static final String DC_TABINFO_DEBUG = "dc_tabinfo_debug"; public static final String DC_TABINFO_NOTE_LENGTH = "dc_tabinfo_note_length"; public static final String DC_TABINFO_CHORDS = "dc_tabinfo_chords"; @@ -847,14 +853,15 @@ public class Dict { public static final String DC_TABINFO_KARAOKE = "dc_tabinfo_karaoke"; public static final String DC_TABINFO_CTRL_CHANGE = "dc_tabinfo_ctrl_change"; public static final String DC_TABINFO_SLICE = "dc_tabinfo_slice"; + public static final String DC_TABINFO_SYNTAX = "dc_tabinfo_syntax"; public static final String DC_ADD_TICK_COMMENT = "dc_add_tick_comment"; public static final String DC_ADD_CONFIG = "dc_add_config"; public static final String DC_ADD_SCORE = "dc_add_score"; public static final String DC_ADD_STATISTICS = "dc_add_statistics"; public static final String DC_ADD_STRATEGY_STAT = "dc_add_strategy_stat"; public static final String NOTE_LENGTH_STRATEGY = "note_length_strategy"; - public static final String MIN_TARGET_TICKS_NEXT_ON = "min_target_ticks_next_on"; - public static final String MAX_TARGET_TICKS_NEXT_ON = "max_target_ticks_next_on"; + public static final String MIN_TICKS_NEXT_ON_AT_480 = "min_ticks_next_on_at_480"; + public static final String MAX_TICKS_NEXT_ON_AT_480 = "max_ticks_next_on_at_480"; public static final String MIN_DURATION_TO_KEEP = "min_duration_to_keep"; public static final String MIN_DURATION_TO_KEEP_D = "min_duration_to_keep_d"; public static final String MAX_DURATION_TO_KEEP = "max_duration_to_keep"; @@ -883,6 +890,14 @@ public class Dict { public static final String ORPHANED_SYLLABLES_D = "orphaned_syllables_d"; public static final String CTRL_CHANGE_MODE = "ctrl_change_mode"; public static final String CTRL_CHANGE_MODE_D = "ctrl_change_mode_d"; + public static final String SYNTAX_TYPE = "syntax_type"; + public static final String SYNTAX_TYPE_D = "syntax_type_d"; + public static final String ELEMENTS_PER_LINE = "elements_per_line"; + public static final String ELEMENTS_PER_LINE_D = "elements_per_line_d"; + public static final String USE_BARLINES = "use_barlines"; + public static final String USE_BARLINES_D = "use_barlines_d"; + public static final String MAX_BARLINE_TOL = "max_barline_tol"; + public static final String MAX_BARLINE_TOL_D = "max_barline_tol_d"; public static final String DC_INLINE_BLOCK = "dc_inline_block"; public static final String DC_SLICE_BEGIN_BLOCK = "dc_slice_begin_block"; public static final String DC_STRAT_NEXT_DURATION_PRESS = "dc_strat_next_duration_press"; @@ -890,6 +905,8 @@ public class Dict { public static final String DC_STRAT_NEXT_PRESS = "dc_strat_next_press"; public static final String DC_STRAT_DURATION_PRESS = "dc_strat_duration_press"; public static final String DC_STRAT_PRESS = "dc_strat_press"; + public static final String DC_SYNTAX_COMPACT = "dc_syntax_compact"; + public static final String DC_SYNTAX_LOWLEVEL = "dc_syntax_lowlevel"; public static final String KAR_ONE_CHANNEL = "kar_one_channel"; public static final String KAR_ONE_CHANNEL_D = "kar_one_channel_d"; public static final String ADD_GLOBAL_AT_TICK = "add_global_at_tick"; @@ -1695,6 +1712,7 @@ public class Dict { public static final String ERROR_FILE_NOT_WRITABLE = "error_file_not_writable"; public static final String OVERWRITE_FILE = "overwrite_file"; public static final String EXPORTER_TICK = "exporter_tick"; + public static final String EXPORTER_TICK_RANGE = "exporter_tick_range"; public static final String CONFIRM_DIALOG_YES = "confirm_dialog_yes"; public static final String CONFIRM_DIALOG_NO = "confirm_dialog_no"; @@ -2234,14 +2252,15 @@ private static void initLanguageEnglish() { set( KEY_DC_CONF_TAB_KARAOKE, "Select the Karaoke tab in the decompile config window" ); set( KEY_DC_CONF_TAB_CTRL_CHANGE, "Select the Control Change tab in the decompile config window" ); set( KEY_DC_CONF_TAB_SLICES, "Select the Extra Slices tab in the decompile config window" ); + set( KEY_DC_CONF_TAB_SYNTAX, "Select the Syntax tab in the decompile config window" ); set( KEY_DC_CONF_ADD_TICK_COMMENTS, "Toggle Checkbox: Add Tick Comments" ); set( KEY_DC_CONF_ADD_CONFIG, "Toggle Checkbox: Add Configuration" ); set( KEY_DC_CONF_ADD_SCORE, "Toggle Checkbox: Add Quality Score" ); set( KEY_DC_CONF_ADD_STATISTICS, "Toggle Checkbox: Add Quality Statistics" ); set( KEY_DC_CONF_ADD_STRATEGY_STAT, "Toggle Checkbox: Add Stragegy Statistics" ); set( KEY_DC_CONF_NOTE_LENGTH_STRATEGY, "Open Selection: Note Length Strategy" ); - set( KEY_DC_CONF_MIN_TARGET_TICKS_ON, "Focus the text field for the Min target ticks" ); - set( KEY_DC_CONF_MAX_TARGET_TICKS_ON, "Focus the text field for the Max target ticks" ); + set( KEY_DC_CONF_MIN_TICKS_ON_AT_480, "Open Selection: Minimum note length for the 'Next ON' strategy" ); + set( KEY_DC_CONF_MAX_TICKS_ON_AT_480, "Open Selection: Maximum note length for the 'Next ON' strategy" ); set( KEY_DC_CONF_MIN_DUR_TO_KEEP, "Focus the text field for the Min Duration to keep" ); set( KEY_DC_CONF_MAX_DUR_TO_KEEP, "Focus the text field for the Max Duration to keep" ); set( KEY_DC_CONF_TOL_TICK_LEN, "Focus the text field for the Note Length Tick Tolerance" ); @@ -2259,6 +2278,10 @@ private static void initLanguageEnglish() { set( KEY_DC_CONF_KAR_ORPHANED, "Open Orphaned Syllables Selection" ); set( KEY_DC_CONF_KAR_ONE_CH, "Toggle Checkbox: All Lyrics in One Channel" ); set( KEY_DC_CONF_CTRL_CHANGE_MODE, "Open Control Change Mode Selection" ); + set( KEY_DC_CONF_SYNTAX_TYPE, "Open Syntax Type Selection (Compact or Lowlevel)" ); + set( KEY_DC_CONF_ELEMENTS_PER_LINE, "Focus text field: Elements per Line" ); + set( KEY_DC_CONF_USE_BARLINES, "Toggle Checkbox: Use Barlines" ); + set( KEY_DC_CONF_FLD_BARLINE_TOL, "Focus text field: Max Barline tolerance" ); set( KEY_DC_CONF_FLD_GLOB_SINGLE, "Focus text field: Add one split at tick..." ); set( KEY_DC_CONF_BTN_GLOB_SINGLE, "Press Button: Add Single Tick" ); set( KEY_DC_CONF_FLD_GLOB_EACH, "Focus text field: Add many splits (distance)" ); @@ -2388,6 +2411,7 @@ private static void initLanguageEnglish() { set( DC_TAB_KARAOKE, "Karaoke Settings" ); set( DC_TAB_CTRL_CHANGE, "Control Change" ); set( DC_TAB_SLICE, "Extra Slices" ); + set( DC_TAB_LINE, "Line Settings" ); set( DC_TABINFO_DEBUG, "Settings to control additional debugging information that's added as code comments in the target file." + "
The resulting MIDI sequence is not affected by these settings." ); set( DC_TABINFO_NOTE_LENGTH, "Settings to control how a note length is calculated. Therefore the following strategies can be used:" @@ -2400,7 +2424,7 @@ private static void initLanguageEnglish() { set( DC_TABINFO_CHORDS, "Settings to control chords." + "
Pre-defined chords are only used for MidicaPL, otherwise ignored." + "
The other settings control how different the properties of two notes can be to be still regarded as a part of the same chord." ); - set( DC_TABINFO_NOTE_REST, "Settings to control which note or rest lengths to use" ); + set( DC_TABINFO_NOTE_REST, "Settings to control notes / chords / rests. Mainly settings to control which note or rest lengths to use." ); set( DC_TABINFO_KARAOKE, "Karaoke-related settings. Only used by the MidicaPL decompiler. Otherwise ignored." + "

A syllable is normal, if there's a Note-ON beginning in the same tick. Otherwise it is orphaned." + "
Normal syllables are implemented as an option to a note or chord." @@ -2417,14 +2441,15 @@ private static void initLanguageEnglish() { set( DC_TABINFO_SLICE, "Settings to add extra slices." + "
By default the sequence is split into slices in each tick that contains certain META messages." + "
Here you can add extra splitting for certain ticks." ); + set( DC_TABINFO_SYNTAX, "Settings controlling the form of lines with several notes / chords / rests. Mainly used for MidicaPL's Compact Syntax and ALDA." ); set( DC_ADD_TICK_COMMENT, "Add Tick Comments" ); set( DC_ADD_CONFIG, "Add Configuration" ); set( DC_ADD_SCORE, "Add Quality Score" ); set( DC_ADD_STATISTICS, "Add Quality Statistics" ); set( DC_ADD_STRATEGY_STAT, "Add Strategy Statistics" ); set( NOTE_LENGTH_STRATEGY, "Priority of strategies" ); - set( MIN_TARGET_TICKS_NEXT_ON, "Minimum note length for
the 'Next ON' strategy" ); - set( MAX_TARGET_TICKS_NEXT_ON, "Maximum note length for
the 'Next ON' strategy" ); + set( MIN_TICKS_NEXT_ON_AT_480, "Minimum note length for
the 'Next ON' strategy" ); + set( MAX_TICKS_NEXT_ON_AT_480, "Maximum note length for
the 'Next ON' strategy" ); set( MIN_DURATION_TO_KEEP, "Minimum Duration to keep" ); set( MIN_DURATION_TO_KEEP_D, "Minimum Duration for using the duration strategy." + "
1.0 = 100%;   0.1 = 10%;   0.01 = 1%" ); @@ -2460,6 +2485,14 @@ private static void initLanguageEnglish() { set( ORPHANED_SYLLABLES_D, "How to treat syllables that appear in a tick without any Note-ON" ); set( CTRL_CHANGE_MODE, "Control Change Mode" ); set( CTRL_CHANGE_MODE_D, "Where to put control changes" ); + set( SYNTAX_TYPE, "Syntax Type" ); + set( SYNTAX_TYPE_D, "The type of syntax to use.
(Ignored for other languages than MidicaPL)" ); + set( ELEMENTS_PER_LINE, "Elements per line" ); + set( ELEMENTS_PER_LINE_D, "Notes / Chords / Rests per line
(Ignored in MidicaPL Lowlevel Syntax)" ); + set( USE_BARLINES, "Bar Lines" ); + set( USE_BARLINES_D, "Adds bar lines, if possible
(Ignored in MidicaPL Lowlevel Syntax)" ); + set( MAX_BARLINE_TOL, "Max Barline Tolerance" ); + set( MAX_BARLINE_TOL_D, "Maximum barline tolerance
(Ignored with lowlevel syntax or when bar lines are not used)
MidicaPL: ticks in target resolution
ALDA: ticks in source resolution" ); set( DC_INLINE_BLOCK, "Inline Block" ); set( DC_SLICE_BEGIN_BLOCK, "Slice Begin Block" ); set( DC_STRAT_NEXT_DURATION_PRESS, "1. Next ON,   2. Duration,  3. Press length" ); @@ -2467,6 +2500,8 @@ private static void initLanguageEnglish() { set( DC_STRAT_NEXT_PRESS, "1. Next ON,   2. Press length" ); set( DC_STRAT_DURATION_PRESS, "1. Duration,  2. Press length" ); set( DC_STRAT_PRESS, "Press length only" ); + set( DC_SYNTAX_COMPACT, "Compact Syntax" ); + set( DC_SYNTAX_LOWLEVEL, "Lowlevel Syntax" ); set( KAR_ONE_CHANNEL, "All Lyrics in one channel" ); set( KAR_ONE_CHANNEL_D, "If checked, all lyrics are assigned to the same channel" ); set( ADD_GLOBAL_AT_TICK, "Add one split at tick:" ); @@ -3394,7 +3429,8 @@ private static void initLanguageEnglish() { set( ERROR_EXPORT, "Export Error in the file " ); set( ERROR_FILE_NOT_WRITABLE, "File not writable" ); set( OVERWRITE_FILE, "Overwrite the file?" ); - set( EXPORTER_TICK, "Tick" ); + set( EXPORTER_TICK, "Source tick: %d; Target tick: %d" ); + set( EXPORTER_TICK_RANGE, "Source ticks: %d - %d; Target ticks: %d - %d" ); set( CONFIRM_DIALOG_YES, "Yes" ); set( CONFIRM_DIALOG_NO, "No" ); diff --git a/src/org/midica/file/read/MidicaPLParser.java b/src/org/midica/file/read/MidicaPLParser.java index 843f0cb..c79de87 100644 --- a/src/org/midica/file/read/MidicaPLParser.java +++ b/src/org/midica/file/read/MidicaPLParser.java @@ -1649,7 +1649,7 @@ else if (channel != 9) { * @return The duration of the note in ticks. * @throws ParseException If the duration string cannot be parsed. */ - protected int parseDuration(String s) throws ParseException { + public static int parseDuration(String s) throws ParseException { if (LENGTH_ZERO.equals(s)) { return 0; @@ -1674,7 +1674,7 @@ protected int parseDuration(String s) throws ParseException { * @return The duration of the summand in ticks. * @throws ParseException If the duration summand cannot be parsed. */ - private int parseDurationSummand(String s) throws ParseException { + private static int parseDurationSummand(String s) throws ParseException { Pattern pattern = Pattern.compile( "^(\\d+|.+?)" // basic divisor (basic note length) + "((" // open capturing group for modifiers @@ -1775,7 +1775,7 @@ else if (LENGTH_ZERO.equals(prefix)) divisor *= 3; } - int resolution = SequenceCreator.getResolution(); + int resolution = SequenceCreator.DEFAULT_RESOLUTION; // Theoretically: duration = resolution * factor / divisor // But integer divisions are always rounded down and we want to round mathematically @@ -5490,7 +5490,7 @@ private void postprocessMeta() throws ParseException { * @return The parsed value. * @throws ParseException If the string cannot be parsed. */ - private int toInt(String s, boolean greaterZero) throws ParseException { + private static int toInt(String s, boolean greaterZero) throws ParseException { int i; if (greaterZero) { i = toInt(s); @@ -5510,7 +5510,7 @@ private int toInt(String s, boolean greaterZero) throws ParseException { * @return The parsed value. * @throws ParseException If the string cannot be parsed. */ - private int toInt(String s) throws ParseException { + private static int toInt(String s) throws ParseException { try { int i = Integer.parseInt(s); if (i < 0) { diff --git a/src/org/midica/file/write/AldaExporter.java b/src/org/midica/file/write/AldaExporter.java index c33087e..4e0c69d 100644 --- a/src/org/midica/file/write/AldaExporter.java +++ b/src/org/midica/file/write/AldaExporter.java @@ -27,37 +27,44 @@ public class AldaExporter extends Decompiler { public static ArrayList noteNames = new ArrayList<>(); public static ArrayList noteOctaves = new ArrayList<>(); - private int currentSliceNumber = 0; - private Instrument currentInstrument = null; - private TreeSet usedInSlice = null; - private String currentKeySig = null; + private int currentSliceNumber = 0; + private Instrument currentSrcInstr = null; + private Instrument currentTgtInstr = null; + private int elementsInCurrentLine = 0; + private Long lineBeginTickSrc = null; + private Long lineBeginTickTgt = null; + private boolean isLineOpen = false; + private TreeSet usedInSlice = null; + private String currentKeySig = null; + private boolean prependSpace = true; + private TreeMap targetLengths = null; + private TreeMap targetTicksBySlice = null; + private boolean forceInstrChange = false; private static Pattern tripletPattern = Pattern.compile("(\\d+)$"); /** - * Creates a new MidicaPL exporter. + * Creates a new ALDA exporter. */ public AldaExporter() { format = ALDA; } - /** - * Initializes MidicaPL specific data structures. - */ + @Override public void init() { - currentSliceNumber = 0; - currentKeySig = "0/0"; + currentSliceNumber = 0; + currentKeySig = "0/0"; + prependSpace = true; + targetLengths = new TreeMap<>(); + targetTicksBySlice = new TreeMap<>(); + forceInstrChange = false; + elementsInCurrentLine = 0; initInstrumentNames(); initNoteNames(); } - /** - * Creates the MidicaPL string to be written into the export file. - * - * @return MidicaPL string to be written into the export file - */ + @Override public String createOutput() { - StringBuilder output = new StringBuilder(); // SLICE: for (Slice slice : slices) { @@ -65,19 +72,23 @@ public String createOutput() { usedInSlice = new TreeSet<>(); // if necessary: add rest from current tick to the slice's begin tick - output.append( createRestBeforeSlice(slice) ); + createRestBeforeSlice(slice); if (currentSliceNumber > 0) { - output.append( createMarker() ); + createMarker(); } // global attributes - output.append( createGlobalAttributes(slice) ); + createGlobalAttributes(slice); // channel commands and instrument changes for (byte channel = 0; channel < 16; channel++) { - output.append( createCommandsFromTimeline(slice, channel) ); + createCommandsFromTimeline(slice, channel); } + // slice is completely empty? - add empty line + if (usedInSlice.isEmpty()) + output.append(NEW_LINE); + currentSliceNumber++; } output.append(NEW_LINE + NEW_LINE); @@ -97,6 +108,8 @@ public String createOutput() { /** * Creates notes and instrument changes from a slice's timeline. * + * Creates nothing, if the slice's timeline doesn't contain anything in the given channel. + * * Steps: * * - Adds the following missing properties and elements to the notes of the timeline: @@ -112,16 +125,19 @@ public String createOutput() { * * @param slice the sequence slice * @param channel MIDI channel - * @return the created commands (or an empty string, if the slice's timeline doesn't contain anything in the given channel) */ - private String createCommandsFromTimeline(Slice slice, byte channel) { - StringBuilder lines = new StringBuilder(); + private void createCommandsFromTimeline(Slice slice, byte channel) { TreeMap>>> timeline = slice.getTimeline(channel); - // add one empty line between channels - if (! timeline.isEmpty()) { - lines.append(NEW_LINE); - } + // close previous line, if needed + createLineCloseIfPossible(); + + // nothing to do? + if (timeline.isEmpty()) + return; + else + // add one empty line between channels + output.append(NEW_LINE); // TICK: for (Entry>>> timelineSet : timeline.entrySet()) { @@ -130,7 +146,7 @@ private String createCommandsFromTimeline(Slice slice, byte channel) { // instrument change if (events.containsKey(ET_INSTR)) { - lines.append( createInstrumentChange(channel, tick) ); + createInstrumentChange(channel, tick); } // notes/chords @@ -174,11 +190,9 @@ private String createCommandsFromTimeline(Slice slice, byte channel) { } // write ALDA - lines.append( createChordNotes(slice, channel, tick, events.get(ET_NOTES)) ); + createChordNotes(slice, channel, tick, events.get(ET_NOTES)); } } - - return lines.toString(); } /** @@ -188,12 +202,12 @@ private String createCommandsFromTimeline(Slice slice, byte channel) { * * @param channel MIDI channel * @param tick MIDI tick - * @return the created lines. */ - private String createInstrumentChange(byte channel, long tick) { + private void createInstrumentChange(byte channel, long tick) { // prepare - StringBuilder content = new StringBuilder(NEW_LINE); + createLineCloseIfPossible(); + resetTickCommentLineLength(); // get program number byte program = 0; // default = piano @@ -207,25 +221,82 @@ private String createInstrumentChange(byte channel, long tick) { String alias = instrName + "-ch" + channel; // alias has been used before? - if (instrumentsByName.containsKey(alias)) { - currentInstrument = instrumentsByName.get(alias); - content.append(alias); + if (srcInstrByName.containsKey(alias)) { + currentSrcInstr = srcInstrByName.get(alias); + currentTgtInstr = tgtInstrByName.get(alias); + output.append(alias); } else { // create new alias - content.append(instrName + " \"" + alias + "\""); + output.append(instrName + " \"" + alias + "\""); // create new channel - currentInstrument = new Instrument(channel, program, instrName, false); - currentInstrument.setDurationRatio(0.9f); // alda-default: 90% - instrumentsByName.put(alias, currentInstrument); + currentSrcInstr = new Instrument(channel, program, instrName, false); + currentTgtInstr = new Instrument(channel, program, instrName, false); + currentSrcInstr.setDurationRatio(0.9f); // alda-default: 90% + srcInstrByName.put(alias, currentSrcInstr); + tgtInstrByName.put(alias, currentTgtInstr); } - content.append(":" + NEW_LINE + "\t"); + output.append(":"); + output.append(NEW_LINE); // synchronize data structures - instrumentsByChannel.set(channel, currentInstrument); + srcInstrByChannel.set(channel, currentSrcInstr); + tgtInstrByChannel.set(channel, currentTgtInstr); + forceInstrChange = false; - return content.toString(); + // open line + createLineOpenIfClosed(); + } + + /** + * Closes the currently open line. + */ + private void createLineClose() { + + isLineOpen = false; + + elementsInCurrentLine = 0; + if (MUST_ADD_TICK_COMMENTS) { + long currentSrcTicks = currentSrcInstr.getCurrentTicks(); + long currentTgtTicks = currentTgtInstr.getCurrentTicks(); + createTickLineComment(lineBeginTickSrc, currentSrcTicks, lineBeginTickTgt, currentTgtTicks); + } + output.append(NEW_LINE); + } + + /** + * Closes the currently open line, if there is any. + */ + private void createLineCloseIfPossible() { + if (isLineOpen) + createLineClose(); + } + + /** + * Closes the current line, if it has enough elements. + */ + private void createLineCloseIfLineIsFull() { + if (elementsInCurrentLine >= ELEMENTS_PER_LINE) { + createLineClose(); + } + } + + /** + * Opens a new line, if not yet done. + * (Creates an indention, remembers line begin ticks and so on.) + */ + private void createLineOpenIfClosed() { + if (!isLineOpen) { + isLineOpen = true; + output.append(BLOCK_INDENT); + + lineBeginTickSrc = currentSrcInstr.getCurrentTicks(); + lineBeginTickTgt = currentTgtInstr.getCurrentTicks(); + + prependSpace = false; + createBarlineIfNeeded(); + } } /** @@ -237,29 +308,25 @@ private String createInstrumentChange(byte channel, long tick) { * - key signature * * @param slice the sequence slice - * @return the created string (or an empty string, if the slice doesn't contain any global attributes) */ - private String createGlobalAttributes(Slice slice) { - StringBuilder result = new StringBuilder(""); + private void createGlobalAttributes(Slice slice) { + + long tgtTick = 0; + if (slice.getBeginTick() > 0) { + output.append(NEW_LINE); + tgtTick = currentTgtInstr.getCurrentTicks(); + } if (MUST_ADD_TICK_COMMENTS) { - result.append(NEW_LINE); - result.append( - "# SLICE " + currentSliceNumber + " (" - + createTickDescription(slice.getBeginTick(), false) - + ")" - ); + output.append("# SLICE " + currentSliceNumber + " ("); + createTickDescription(slice.getBeginTick(), tgtTick, false); + output.append(")"); + output.append(NEW_LINE); } - result.append(NEW_LINE + NEW_LINE); // create global commands TreeMap globalCmds = slice.getGlobalCommands(); - if (0 == globalCmds.size()) { - if (slice.getBeginTick() > 0) { - // nothing more to do - } - } - else { + if (globalCmds.size() > 0) { for (String cmdId : globalCmds.keySet()) { String value = globalCmds.get(cmdId); @@ -279,12 +346,11 @@ else if ("key".equals(cmdId)) { } // append command - result.append("(" + globalCmd + "! " + value + ")"); + output.append("(" + globalCmd + "! " + value + ")"); + output.append(NEW_LINE); } - result.append(NEW_LINE); } - - return result.toString(); + forceInstrChange = true; } /** @@ -303,51 +369,43 @@ else if ("key".equals(cmdId)) { * @param channel MIDI channel * @param tick MIDI tick * @param events All notes/chords with the same note-ON tick in the same channel (comes from the slice's timeline) - * @return the created note lines. */ - private String createChordNotes(Slice slice, byte channel, long tick, TreeMap> events) { - StringBuilder content = new StringBuilder(""); - boolean needSpace = true; + private void createChordNotes(Slice slice, byte channel, long tick, TreeMap> events) { // first usage in the current slice? - Instrument instr = instrumentsByChannel.get(channel); - if (!usedInSlice.contains(instr)) { + if (!usedInSlice.contains(srcInstrByChannel.get(channel))) { // switch instrument, if necessary - if (currentInstrument != instr) { - content.append( createInstrumentChange(channel, tick) ); - instr = currentInstrument; - needSpace = false; + if (forceInstrChange || currentSrcInstr != srcInstrByChannel.get(channel)) { + createInstrumentChange(channel, tick); } - usedInSlice.add(instr); + usedInSlice.add(currentSrcInstr); } + // open a new line, if needed + createLineOpenIfClosed(); + // jump to marker, if necessary Slice currentSlice = slices.get(currentSliceNumber); long sliceBeginTick = currentSlice.getBeginTick(); - if (instr.getCurrentTicks() < sliceBeginTick) { - if (needSpace) { - content.append(" "); - needSpace = false; - } - content.append("@slice-" + currentSliceNumber); - needSpace = true; - instr.setCurrentTicks(sliceBeginTick); + if (currentSrcInstr.getCurrentTicks() < sliceBeginTick) { + if (prependSpace) + output.append(" "); + output.append("@slice-" + currentSliceNumber); + prependSpace = true; + currentSrcInstr.setCurrentTicks(sliceBeginTick); + currentTgtInstr.setCurrentTicks(targetTicksBySlice.get(currentSliceNumber)); } // add rest, if necessary - long currentTicks = instr.getCurrentTicks(); + long currentTicks = currentSrcInstr.getCurrentTicks(); if (tick > currentTicks) { long restTicks = tick - currentTicks; - content.append( createRest(channel, restTicks, tick, null) ); - needSpace = true; - instr.setCurrentTicks(tick); - } - - // add space, if needed - if (needSpace) { - content.append(" "); + createRest(channel, restTicks, null); + + // open the line again if it has been closed by the rest + createLineOpenIfClosed(); } // get the note length END tick of the shortest note @@ -368,40 +426,51 @@ private String createChordNotes(Slice slice, byte channel, long tick, TreeMap sliceEndTick) { - if (restEndTick != null && restEndTick > sliceEndTick) { + if (null == restEndTick || restEndTick > sliceEndTick) { restEndTick = sliceEndTick; } } // collect the notes ArrayList notes = new ArrayList<>(); + String lengthStr = null; for (Entry> noteSet : events.entrySet()) { String name = noteSet.getKey(); TreeMap properties = events.get(name); - notes.add( createNote(channel, properties) ); + notes.add(createNote(channel, properties)); + lengthStr = properties.get(NP_LENGTH); + } + + // create the notes (without rest) + { + // increment ticks, if necessary + boolean mustCount = false; + if (null == restEndTick) { + mustCount = true; + currentSrcInstr.setCurrentTicks(chordEndTick); + incrementTargetTicks(lengthStr); + } + + createElement(String.join("/", notes), mustCount); } - content.append(String.join("/", notes)); // create rest inside the chord if (restEndTick != null) { - String rest = createRest(channel, restEndTick - tick, tick, null) - .replaceFirst(" ", ""); // don't need the leading space here - - // rest created? - doesn't work if we don't have enough rest ticks - if (! "".equals(rest)) { - content.append("/" + rest); + long restTicks = restEndTick - tick; + ArrayList lengthElements = getLengthsForSum(restTicks, true); + if (lengthElements.size() > 0) { + output.append("/"); + prependSpace = false; // no leading space here + createRest(channel, restTicks, null); } - chordEndTick = restEndTick; } - // increment ticks, if necessary - instr.setCurrentTicks(chordEndTick); - - return content.toString(); + // create line change + createLineCloseIfLineIsFull(); } /** - * Prints a single note. + * Creates a single note. * * The note may be a part of a chord or a single note. * @@ -419,8 +488,6 @@ private String createChordNotes(Slice slice, byte channel, long tick, TreeMap properties) { StringBuilder content = new StringBuilder(""); - Instrument instr = instrumentsByChannel.get(channel); - // TODO: add the following attributes: // pan == panning // track-vol == track-volume @@ -430,9 +497,9 @@ private String createNote(byte channel, TreeMap properties) { { // quantization float duration = Float.parseFloat(properties.get(NP_DURATION)) / 100; - float oldDuration = instr.getDurationRatio(); - int durationPercent = (int) ((duration * 1000 + 0.5f) / 10); - int oldDurationPercent = (int) ((oldDuration * 1000 + 0.5f) / 10); + float oldDuration = currentSrcInstr.getDurationRatio(); + int durationPercent = (int) ((duration * 1000 + 5f) / 10); + int oldDurationPercent = (int) ((oldDuration * 1000 + 5f) / 10); if (durationPercent != oldDurationPercent) { // don't allow 0% String durationPercentStr = durationPercent + ""; @@ -441,15 +508,15 @@ private String createNote(byte channel, TreeMap properties) { duration = 0.01f; } attributes.add("(quant " + durationPercentStr + ")"); - instr.setDurationRatio(duration); + currentSrcInstr.setDurationRatio(duration); incrementStats(STAT_NOTE_DURATIONS, channel); } // velocity int velocity = Integer.parseInt(properties.get(NP_VELOCITY)); - int oldVelocity = instr.getVelocity(); + int oldVelocity = currentSrcInstr.getVelocity(); if (velocity != oldVelocity) { - instr.setVelocity(velocity); + currentSrcInstr.setVelocity(velocity); velocity = (velocity * 1000 + 5) / 1270; attributes.add("(vol " + velocity + ")"); incrementStats(STAT_NOTE_VELOCITIES, channel); @@ -464,15 +531,15 @@ private String createNote(byte channel, TreeMap properties) { // switch octave, if needed int noteNum = Integer.parseInt(properties.get(NP_NOTE_NUM)); - byte oldOctave = instr.getOctave(); + byte oldOctave = currentSrcInstr.getOctave(); byte newOctave = noteOctaves.get(noteNum); - if (instr.getOctave() != newOctave) { + if (currentSrcInstr.getOctave() != newOctave) { String changer = newOctave < oldOctave ? "<" : ">"; int diff = Math.abs(newOctave - oldOctave); for (int i = 0; i < diff; i++) { content.append(changer); } - instr.setOctave(newOctave); + currentSrcInstr.setOctave(newOctave); } // note name @@ -480,33 +547,29 @@ private String createNote(byte channel, TreeMap properties) { content.append(noteName); // switch note length, if needed - String oldLength = instr.getNoteLength(); + String oldLength = currentSrcInstr.getNoteLength(); String newLength = properties.get(NP_LENGTH); if (! oldLength.equals(newLength)) { content.append(newLength); - instr.setNoteLength(newLength); + currentSrcInstr.setNoteLength(newLength); } return content.toString(); } - /** - * Creates a channel command with a rest. - * - * @param channel MIDI channel - * @param ticks tick length of the rest to create - * @param beginTick used for the tick comment (negative value: don't include a tick comment) - * @param syllable a lyrics syllable or (in most cases): **null** - * @return the channel command containing the rest. - */ - protected String createRest(byte channel, long ticks, long beginTick, String syllable) { - StringBuilder content = new StringBuilder(""); + @Override + protected void createRest(byte channel, long ticks, String syllable) { + long beginTick = srcInstrByChannel.get(channel).getCurrentTicks(); + + StringBuilder content = new StringBuilder(); // switch instrument, if necessary - if (currentInstrument != instrumentsByChannel.get(channel)) - content.append( createInstrumentChange(channel, beginTick + ticks - 1) ); - else - content.append(" "); + if (currentSrcInstr != srcInstrByChannel.get(channel)) { + createInstrumentChange(channel, beginTick + ticks - 1); + } + + // open a new line, if needed + createLineOpenIfClosed(); // split length into elements ArrayList lengthElements = getLengthsForSum(ticks, true); @@ -533,55 +596,117 @@ protected String createRest(byte channel, long ticks, long beginTick, String syl if (lengthSummands.size() > 0) { String length = String.join("~", lengthSummands); content.append("r" + length); - currentInstrument.setNoteLength(length); + currentSrcInstr.setNoteLength(length); incrementStats(STAT_RESTS, channel); + currentSrcInstr.setCurrentTicks(beginTick + ticks); + incrementTargetTicks(length); + createElement(content.toString(), true); + createLineCloseIfLineIsFull(); } else { - addWarningRestSkipped(beginTick, ticks, channel); + long warnTick = beginTick; + if (warnTick < 0) + warnTick = currentSrcInstr.getCurrentTicks(); + addWarningRestSkipped(warnTick, ticks, channel); incrementStats(STAT_REST_SKIPPED, channel); } + } + + /** + * Creates an element (note, chord or rest) to the current line, and maybe a bar line, if needed. + * + * The bar line creation part is skipped if mustCount is **false**. + * + * @param element the element to be added + * @param mustCount **true** to increment the number of elements, otherwise **false** + */ + private void createElement(String element, boolean mustCount) { - return content.toString(); + if (prependSpace) + output.append(" "); + else + prependSpace = true; + + output.append(element); + + // increment line and create bar line if necessary + if (mustCount) { + elementsInCurrentLine++; + createBarlineIfNeeded(); + } } /** * Creates a marker in the current instrument to mark the end of a slice. - * - * @return the created marker */ - protected String createMarker() { - StringBuilder content = new StringBuilder(""); + private void createMarker() { // switch instrument if necessary - long maxTick = Instrument.getMaxCurrentTicks(instrumentsByChannel); - long curInstrTicks = currentInstrument.getCurrentTicks(); - if (maxTick > curInstrTicks) { + long maxTick = Instrument.getMaxCurrentTicks(srcInstrByChannel); + long curInstrTicks = currentSrcInstr.getCurrentTicks(); + if (forceInstrChange || maxTick > curInstrTicks) { Instrument furthestInstr = getFurthestInstrument(); byte channel = (byte) furthestInstr.channel; - content.append( createInstrumentChange(channel, maxTick - 1) ); - } - else { - content.append(" "); + createInstrumentChange(channel, maxTick - 1); } + // prepare line + createLineOpenIfClosed(); + // create the marker - content.append("%slice-" + currentSliceNumber + NEW_LINE); - return content.toString(); + if (prependSpace) + output.append(" "); + else + prependSpace = true; + output.append("%slice-" + currentSliceNumber); + + // remember target ticks of the slice + targetTicksBySlice.put(currentSliceNumber, currentTgtInstr.getCurrentTicks()); + + // close the line + createLineClose(); } /** - * Calculates which tick length corresponds to which note or rest length. - * That depends on the resolution of the current MIDI sequence. - * - * The created rest lengths will contain a view more very short lengths. - * This is needed because rests should be less tolerant than notes. - * - * This enables us to use more common lengths for notes but let the - * exported sequence be still as close as possible to the original one. + * Returns a barline for the given channel, if needed. * - * @param rest **true** to initialize REST lengths, **false** for NOTE lengths - * @return Mapping between tick length and note length for the syntax. + * @param channel MIDI channel */ + private void createBarlineIfNeeded() { + + // barlines not configured? + if (!USE_BARLINES) { + return; + } + + // get current ticks + long currentSrcTicks = currentSrcInstr.getCurrentTicks(); + + // get measure length and ticks since last time signature + Entry entry = measureLengthHistory.floorEntry(currentSrcInstr.getCurrentTicks()); + long lastTimeSigTick = entry.getKey(); + long measureLength = entry.getValue(); + long totalTicks = currentSrcTicks - lastTimeSigTick; + + // get delta + long srcDelta = totalTicks % measureLength; + long srcDelta2 = measureLength - srcDelta; + if (srcDelta2 < srcDelta) + srcDelta = srcDelta2; + + // no bar line at all? + if (srcDelta > MAX_BARLINE_TOL) + return; + + // create bar line + if (prependSpace) + output.append(" "); + else + prependSpace = true; + output.append("|"); + } + + @Override public TreeMap initLengths(boolean rest) { boolean useDots = rest ? USE_DOTTED_RESTS : USE_DOTTED_NOTES; @@ -591,67 +716,93 @@ public TreeMap initLengths(boolean rest) { // use very small lengths only for rests if (rest) { + // 1/128 - long length128 = calculateTicks(1, 32); - lengthToSymbol.put(length128, 128 + ""); + initLength(lengthToSymbol, 128, 1, 32, false, false); // 1/64 - long length64 = calculateTicks(1, 16); - lengthToSymbol.put(length64, 64 + ""); + initLength(lengthToSymbol, 64, 1, 16, false, false); } // 32th - long length32t = calculateTicks( 2, 8 * 3 ); // inside a triplet - long length32 = calculateTicks( 1, 8 ); // normal length - long length32d = calculateTicks( 3, 8 * 2 ); // dotted length - long base = 32; - if (useTriplets) lengthToSymbol.put( length32t, getTriplet(base) ); // triplet - lengthToSymbol.put( length32, base + "" ); // normal - if (useDots) lengthToSymbol.put( length32d, base + "." ); // dotted + initLength(lengthToSymbol, 32, 1, 8, useTriplets, useDots); // 16th - base = 16; - long length16t = calculateTicks( 2, 4 * 3 ); - long length16 = calculateTicks( 1, 4 ); - long length16d = calculateTicks( 3, 4 * 2 ); - if (useTriplets) lengthToSymbol.put( length16t, getTriplet(base) ); - lengthToSymbol.put( length16, base + "" ); - if (useDots) lengthToSymbol.put( length16d, base + "." ); + initLength(lengthToSymbol, 16, 1, 4, useTriplets, useDots); // 8th - base = 8; - long length8t = calculateTicks( 2, 2 * 3 ); - long length8 = calculateTicks( 1, 2 ); - long length8d = calculateTicks( 3, 2 * 2 ); - if (useTriplets) lengthToSymbol.put( length8t, getTriplet(base) ); - lengthToSymbol.put( length8, base + "" ); - if (useDots) lengthToSymbol.put( length8d, base + "." ); + initLength(lengthToSymbol, 8, 1, 2, useTriplets, useDots); // quarter - base = 4; - long length4t = calculateTicks( 2, 3 ); - long length4 = calculateTicks( 1, 1 ); - long length4d = calculateTicks( 3, 2 ); - if (useTriplets) lengthToSymbol.put( length4t, getTriplet(base) ); - lengthToSymbol.put( length4, base + "" ); - if (useDots) lengthToSymbol.put( length4d, base + "." ); + initLength(lengthToSymbol, 4, 1, 1, useTriplets, useDots); // half - base = 2; - long length2t = calculateTicks( 2 * 2, 3 ); - long length2 = calculateTicks( 2, 1 ); - long length2d = calculateTicks( 2 * 3, 2 ); - if (useTriplets) lengthToSymbol.put( length2t, getTriplet(base) ); - lengthToSymbol.put( length2, base + "" ); - if (useDots) lengthToSymbol.put( length2d, base + "." ); + initLength(lengthToSymbol, 2, 2, 1, useTriplets, useDots); // full - long length1 = calculateTicks(4, 1); - lengthToSymbol.put(length1, "1"); + initLength(lengthToSymbol, 1, 4, 1, false, false); return lengthToSymbol; } + /** + * Initializes the following note lengths for a single base length: + * + * - the unmodified base length + * - the tripletted note length (if requested) + * - the dotted note length (if requested) + * + * @param lengthToSymbol the data structure to write the results into + * @param aldaLength the base length that can be used directly in ALDA syntax + * @param factor the factor with which to multiply a quarter note in order to get the base note + * @param divisor the divisor with which a quarter note must be divided in order to get the base note + * @param useTriplets **true** in order to initialize a tripletted length + * @param useDots **true** in order to initialize a dotted length + */ + private void initLength(TreeMap lengthToSymbol, long aldaLength, int factor, int divisor, boolean useTriplets, boolean useDots) { + String aldaStr; + + // triplet + if (useTriplets) { + aldaStr = getTriplet(aldaLength); + lengthToSymbol.put(calculateTicks(factor, divisor, LM_TRIPLET, false), aldaStr); + targetLengths.put(aldaStr, calculateTicks(factor, divisor, LM_TRIPLET, true)); + } + + // normal length + aldaStr = aldaLength + ""; + lengthToSymbol.put(calculateTicks(factor, divisor, LM_NONE, false), aldaStr); + targetLengths.put(aldaStr, calculateTicks(factor, divisor, LM_NONE, true)); + + // dotted length + if (useDots) { + aldaStr = aldaLength + "."; + lengthToSymbol.put(calculateTicks(factor, divisor, LM_DOT, false), aldaStr); + targetLengths.put(aldaStr, calculateTicks(factor, divisor, LM_DOT, true)); + } + } + + /** + * Increments the target channel by the amount of ticks of the given length value. + * + * @param length note length in ALDA syntax + */ + private void incrementTargetTicks(String length) { + + // translate length string into target ticks + long ticks = 0; + String[] lengthElements = length.split("~"); + for (String lengthStr : lengthElements) { + if (null == targetLengths.get(lengthStr)) + System.err.println("Length string not found: '" + lengthStr + "' - This should not happen. Please report."); + ticks += targetLengths.get(lengthStr); + } + + // increment target ticks + long currentTicks = currentTgtInstr.getCurrentTicks(); + currentTgtInstr.setCurrentTicks(currentTicks + ticks); + } + /** * Calculates and returns a (rounded) triplet note length. * diff --git a/src/org/midica/file/write/Decompiler.java b/src/org/midica/file/write/Decompiler.java index 54a8fd0..77b6539 100644 --- a/src/org/midica/file/write/Decompiler.java +++ b/src/org/midica/file/write/Decompiler.java @@ -67,6 +67,11 @@ public abstract class Decompiler extends Exporter { protected static final byte ET_NOTES = 2; // notes or chords (or an inline rest with a syllable) protected static final byte ET_INLINE_BLK = 3; // start ticks of inline blocks + // length modifiers + protected static final byte LM_NONE = 1; + protected static final byte LM_TRIPLET = 2; + protected static final byte LM_DOT = 3; + // note properties protected static final byte NP_VELOCITY = 1; // velocity option protected static final byte NP_OFF_TICK = 2; // note-off tick @@ -95,7 +100,8 @@ public abstract class Decompiler extends Exporter { private static final byte STAT_STRATEGY_DURATION = 42; private static final byte STAT_STRATEGY_PRESS = 43; - protected static final String NEW_LINE = System.getProperty("line.separator"); + protected static final String NEW_LINE = System.getProperty("line.separator"); + protected static final String BLOCK_INDENT = "\t"; // decompile constants public static final byte INLINE_BLOCK = 1; @@ -105,6 +111,8 @@ public abstract class Decompiler extends Exporter { public static final byte STRATEGY_NEXT_PRESS = 3; public static final byte STRATEGY_DURATION_PRESS = 4; public static final byte STRATEGY_PRESS = 5; + public static final byte SYNTAX_LOWLEVEL = 1; + public static final byte SYNTAX_COMPACT = 2; // decompile configuration defaults public static final boolean DEFAULT_MUST_ADD_TICK_COMMENTS = true; @@ -113,8 +121,8 @@ public abstract class Decompiler extends Exporter { public static final boolean DEFAULT_MUST_ADD_STATISTICS = true; public static final boolean DEFAULT_MUST_ADD_STRATEGY_STAT = true; public static final byte DEFAULT_LENGTH_STRATEGY = STRATEGY_NEXT_DURATION_PRESS; - public static final long DEFAULT_MIN_TARGET_TICKS_ON = 60; // /32 (32th note) - public static final long DEFAULT_MAX_TARGET_TICKS_ON = 3840; // *2 (2 full notes) + public static final long DEFAULT_MIN_TICKS_ON_AT_480 = 60; // /32 (32th note) + public static final long DEFAULT_MAX_TICKS_ON_AT_480 = 3840; // *2 (2 full notes) public static final float DEFAULT_MIN_DURATION_TO_KEEP = 0.2f; // 20% public static final float DEFAULT_MAX_DURATION_TO_KEEP = 1.1f; // 110% public static final long DEFAULT_LENGTH_TICK_TOLERANCE = 5; @@ -132,6 +140,10 @@ public abstract class Decompiler extends Exporter { public static final byte DEFAULT_ORPHANED_SYLLABLES = INLINE_BLOCK; public static final boolean DEFAULT_KARAOKE_ONE_CHANNEL = false; public static final byte DEFAULT_CTRL_CHANGE_MODE = INLINE_BLOCK; + public static final byte DEFAULT_SYNTAX_TYPE = SYNTAX_COMPACT; + public static final int DEFAULT_ELEMENTS_PER_LINE = 10; + public static final boolean DEFAULT_USE_BARLINES = true; + public static final int DEFAULT_MAX_BARLINE_TOL = 0; public static final String DEFAULT_EXTRA_GLOBALS_STR = ""; /* ***************** @@ -147,8 +159,8 @@ public abstract class Decompiler extends Exporter { protected static boolean MUST_ADD_STATISTICS = DEFAULT_MUST_ADD_STATISTICS; protected static boolean MUST_ADD_STRATEGY_STAT = DEFAULT_MUST_ADD_STRATEGY_STAT; protected static byte LENGTH_STRATEGY = DEFAULT_LENGTH_STRATEGY; - protected static long MAX_TARGET_TICKS_ON = DEFAULT_MAX_TARGET_TICKS_ON; - protected static long MIN_TARGET_TICKS_ON = DEFAULT_MIN_TARGET_TICKS_ON; + protected static long MAX_TICKS_ON_AT_480 = DEFAULT_MAX_TICKS_ON_AT_480; + protected static long MIN_TICKS_ON_AT_480 = DEFAULT_MIN_TICKS_ON_AT_480; protected static long MIN_SOURCE_TICKS_ON = 0L; protected static long MAX_SOURCE_TICKS_ON = 0L; protected static float MIN_DURATION_TO_KEEP = DEFAULT_MIN_DURATION_TO_KEEP; @@ -168,6 +180,10 @@ public abstract class Decompiler extends Exporter { protected static byte ORPHANED_SYLLABLES = DEFAULT_ORPHANED_SYLLABLES; protected static boolean KARAOKE_ONE_CHANNEL = DEFAULT_KARAOKE_ONE_CHANNEL; protected static byte CTRL_CHANGE_MODE = DEFAULT_CTRL_CHANGE_MODE; + protected static byte SYNTAX_TYPE = DEFAULT_SYNTAX_TYPE; + protected static int ELEMENTS_PER_LINE = DEFAULT_ELEMENTS_PER_LINE; + protected static boolean USE_BARLINES = DEFAULT_USE_BARLINES; + protected static int MAX_BARLINE_TOL = DEFAULT_MAX_BARLINE_TOL; protected static TreeSet EXTRA_GLOBALS = null; protected static int sourceResolution = 0; @@ -176,8 +192,10 @@ public abstract class Decompiler extends Exporter { protected static boolean isSoftKaraoke = false; /** stores the current state of each channel */ - protected static ArrayList instrumentsByChannel = null; - protected static TreeMap instrumentsByName = null; + protected static ArrayList srcInstrByChannel = null; + protected static ArrayList tgtInstrByChannel = null; + protected static TreeMap srcInstrByName = null; + protected static TreeMap tgtInstrByName = null; protected static TreeMap noteLength = null; protected static TreeMap restLength = null; @@ -191,6 +209,12 @@ public abstract class Decompiler extends Exporter { /** lowest note -- comma-separated note bytes (This structure is only needed for the sorting: lowest note first, then chord name) */ protected static TreeMap> chordsByBaseNote = null; + /** tick -- measure length */ + protected static TreeMap measureLengthHistory = null; + + private static int compactLineMinLength = 1; + protected static StringBuilder output = null; + /* ****************** * instance fields ********************/ @@ -241,18 +265,22 @@ public abstract class Decompiler extends Exporter { /** * Creates a rest. * - * @param channel MIDI channel - * @param ticks tick length of the rest to create - * @param beginTick used for the tick comment (negative value: don't include a tick comment) - * @param syllable a lyrics syllable or (in most cases): **null** - * @return the channel command containing the rest. + * @param channel MIDI channel + * @param ticks tick length of the rest to create + * @param syllable a lyrics syllable or (in most cases): **null** */ - protected abstract String createRest(byte channel, long ticks, long beginTick, String syllable); + protected abstract void createRest(byte channel, long ticks, String syllable); /** * Calculates which tick length corresponds to which note or rest length. * That depends on the resolution of the current MIDI sequence. * + * The created rest lengths should contain a few more very short lengths. + * This is needed because rests should be less tolerant than notes. + * + * This enables us to use more common lengths for notes but let the + * exported sequence be still as close as possible to the original one. + * * @param rest **true** to initialize REST lengths, **false** for NOTE lengths * @return Mapping between tick length and note length for the syntax. */ @@ -268,6 +296,15 @@ public abstract class Decompiler extends Exporter { */ public ExportResult export(File file) throws ExportException { + // get resolutions + sourceResolution = MidiDevices.getSequence().getResolution(); + targetResolution = SequenceCreator.DEFAULT_RESOLUTION; + if (ALDA == format) + targetResolution = 128; + + // refresh decompile config + refreshConfig(); + // initialize format specific structures, if necessary init(); @@ -310,15 +347,11 @@ public ExportResult export(File file) throws ExportException { lyricsSyllables = KaraokeAnalyzer.getLyricsFlat(); // init data structures - chords = new TreeMap<>(); - chordCount = new TreeMap<>(); - chordsByBaseNote = new TreeMap<>(); - - // get resolution - sourceResolution = MidiDevices.getSequence().getResolution(); - - // refresh decompile config - refreshConfig(); + chords = new TreeMap<>(); + chordCount = new TreeMap<>(); + chordsByBaseNote = new TreeMap<>(); + measureLengthHistory = new TreeMap<>(); + measureLengthHistory.put(0L, 4L * sourceResolution); // MIDI default is 4/4 // initialize statistics initStatistics(); @@ -350,8 +383,9 @@ public ExportResult export(File file) throws ExportException { addNotesToSlices(); addLyricsToSlices(); - // create MidicaPL string from the data structures and write it into the file - writer.write( createOutput() ); + // create source code string from the data structures and write it into the file + output = new StringBuilder(); + writer.write(createOutput()); writer.close(); } catch (FileNotFoundException e) { @@ -379,8 +413,8 @@ private void refreshConfig() { MUST_ADD_STATISTICS = Boolean.parseBoolean( sessionConfig.get(Config.DC_MUST_ADD_STATISTICS) ); MUST_ADD_STRATEGY_STAT = Boolean.parseBoolean( sessionConfig.get(Config.DC_MUST_ADD_STRATEGY_STAT) ); LENGTH_STRATEGY = Byte.parseByte( sessionConfig.get(Config.DC_LENGTH_STRATEGY) ); - MIN_TARGET_TICKS_ON = Long.parseLong( sessionConfig.get(Config.DC_MIN_TARGET_TICKS_ON) ); - MAX_TARGET_TICKS_ON = Long.parseLong( sessionConfig.get(Config.DC_MAX_TARGET_TICKS_ON) ); + MIN_TICKS_ON_AT_480 = Long.parseLong( sessionConfig.get(Config.DC_MIN_TICKS_ON_AT_480) ); + MAX_TICKS_ON_AT_480 = Long.parseLong( sessionConfig.get(Config.DC_MAX_TICKS_ON_AT_480) ); MIN_DURATION_TO_KEEP = Float.parseFloat( sessionConfig.get(Config.DC_MIN_DURATION_TO_KEEP) ); MAX_DURATION_TO_KEEP = Float.parseFloat( sessionConfig.get(Config.DC_MAX_DURATION_TO_KEEP) ); LENGTH_TICK_TOLERANCE = Long.parseLong( sessionConfig.get(Config.DC_LENGTH_TICK_TOLERANCE) ); @@ -398,11 +432,15 @@ private void refreshConfig() { ORPHANED_SYLLABLES = Byte.parseByte( sessionConfig.get(Config.DC_ORPHANED_SYLLABLES) ); KARAOKE_ONE_CHANNEL = Boolean.parseBoolean( sessionConfig.get(Config.DC_KARAOKE_ONE_CHANNEL) ); CTRL_CHANGE_MODE = Byte.parseByte( sessionConfig.get(Config.DC_CTRL_CHANGE_MODE) ); + SYNTAX_TYPE = Byte.parseByte( sessionConfig.get(Config.DC_SYNTAX_TYPE) ); + ELEMENTS_PER_LINE = Integer.parseInt( sessionConfig.get(Config.DC_ELEMENTS_PER_LINE) ); + USE_BARLINES = Boolean.parseBoolean( sessionConfig.get(Config.DC_USE_BARLINES) ); + MAX_BARLINE_TOL = Integer.parseInt( sessionConfig.get(Config.DC_MAX_BARLINE_TOL) ); EXTRA_GLOBALS = DecompileConfigController.getExtraGlobalTicks(); // apply indirect configuration - MIN_SOURCE_TICKS_ON = (MIN_TARGET_TICKS_ON * sourceResolution * 10 + 5) / (targetResolution * 10); - MAX_SOURCE_TICKS_ON = (MAX_TARGET_TICKS_ON * sourceResolution * 10 + 5) / (targetResolution * 10); + MIN_SOURCE_TICKS_ON = (MIN_TICKS_ON_AT_480 * sourceResolution * 10 + 480 * 5) / (480 * 10); + MAX_SOURCE_TICKS_ON = (MAX_TICKS_ON_AT_480 * sourceResolution * 10 + 480 * 5) / (480 * 10); } /** @@ -449,8 +487,10 @@ private void initStatistics() { * their configurations can be tracked. */ private void initInstruments() { - instrumentsByName = new TreeMap<>(); - instrumentsByChannel = new ArrayList<>(); + srcInstrByName = new TreeMap<>(); + tgtInstrByName = new TreeMap<>(); + srcInstrByChannel = new ArrayList<>(); + tgtInstrByChannel = new ArrayList<>(); // make a deep copy (clone) of the instrument history TreeMap> originalInstrumentHistory = instrumentHistory; @@ -537,8 +577,10 @@ private void initInstruments() { Byte[] channelConfig = entry.getValue(); instrNumber = channelConfig[2]; } - Instrument instr = new Instrument(channel, instrNumber, null, isAutomatic); - instrumentsByChannel.add(instr); + Instrument srcInstr = new Instrument(channel, instrNumber, null, isAutomatic); + Instrument tgtInstr = new Instrument(channel, instrNumber, null, isAutomatic); + srcInstrByChannel.add(srcInstr); + tgtInstrByChannel.add(tgtInstr); } } @@ -583,7 +625,7 @@ private ArrayList prioritizeChannelsForLyrics() { for (byte channel = 0; channel < 16; channel++) { // no notes? - if (instrumentsByChannel.get(channel).autoChannel) + if (srcInstrByChannel.get(channel).autoChannel) continue; channelMatches.put(channel, 0); @@ -804,7 +846,14 @@ else if (MidiListener.META_TIME_SIGNATURE == type) { int denominator = (int) Math.pow(2, exp); cmdId = "time"; value = numerator + MidicaPLParser.TIME_SIG_SLASH + denominator; - if (ALDA == format) // not supported? + + // prepare bar line calculation + int resolution = SequenceCreator.getResolution(); + long measureLength = numerator * 4 * resolution / denominator; + measureLengthHistory.put(tick, measureLength); + + // time signature symbol not supported? + if (ALDA == format) continue; } else if (MidiListener.META_INSTRUMENT_NAME == type) { @@ -1332,19 +1381,39 @@ private void addLyricsToSlices() { } } + /** + * Resets the minimum length of a line (only used for line tick comments). + * Should be called before a new channel starts. + */ + protected void resetTickCommentLineLength() { + compactLineMinLength = 1; + } + /** * Calculates the tick length of a note, based on the current MIDI - * sequence's resolution and in relation to a quarter note. + * sequence's **source** or **target** resolution and in relation to a + * quarter note. * The given factor and divisor influences the resulting note length. * If factor and divisor are the same, the resulting length is exactly * one quarter note. * - * @param factor the factor to multiply the quarter note with - * @param divisor the divisor to divide the quarter note with - * @return mathematically rounded result of resolution * factor / divisor + * @param factor the factor to multiply the quarter note with + * @param divisor the divisor to divide the quarter note with + * @param modifier LM_TRIPLET for a tripletted note, LM_DOT for a dotted note + * @param forTarget **true** to use target resolution, **false** for source resolution + * @return mathematically rounded result of: resolution * factor / divisor (modified by the modifier) */ - protected int calculateTicks(int factor, int divisor) { - return (sourceResolution * factor * 10 + 5) / (divisor * 10); + protected long calculateTicks(int factor, int divisor, int modifier, boolean forTarget) { + long resolution = forTarget ? targetResolution : sourceResolution; + if (LM_TRIPLET == modifier) { + factor *= 2; + divisor *= 3; + } + else if (LM_DOT == modifier) { + factor *= 3; + divisor *= 2; + } + return (resolution * factor * 10 + divisor * 5) / (divisor * 10); } /** @@ -1410,7 +1479,7 @@ protected long[] getNoteLengthProperties(long onTick, long offTick, byte channel // TODO: because than instruments.get(channel).getDurationRatio() will already be outdated. // DURATION strategy: calculate note length according to the current duration ratio - float oldDuration = instrumentsByChannel.get(channel).getDurationRatio(); + float oldDuration = srcInstrByChannel.get(channel).getDurationRatio(); long noteTicksByDur = (long) ((pressTicks / (double) oldDuration)) - LENGTH_TICK_TOLERANCE; noteTicksByDur = getNoteLengthByPressTicks(noteTicksByDur); float durationByDur = calculateDuration(noteTicksByDur, pressTicks); @@ -1543,26 +1612,22 @@ private static float calculateDuration(long noteTicks, long pressTicks) { * - adding the rest in this channel * * @param slice the sequence slice - * @return the created rest, or an empty string if no rest is created. */ - protected String createRestBeforeSlice(Slice slice) { - StringBuilder restStr = new StringBuilder(""); + protected void createRestBeforeSlice(Slice slice) { // choose a channel Instrument chosenInstr = getFurthestInstrument(); // no notes? - default to the percussion channel if (null == chosenInstr) - chosenInstr = instrumentsByChannel.get(9); + chosenInstr = srcInstrByChannel.get(9); // get missing ticks long missingTicks = slice.getBeginTick() - chosenInstr.getCurrentTicks(); if (missingTicks > 0) { byte channel = (byte) chosenInstr.channel; - restStr.append( createRest(channel, missingTicks, -1, null) ); + createRest(channel, missingTicks, null); } - - return restStr.toString(); } /** @@ -1574,9 +1639,9 @@ protected String createRestBeforeSlice(Slice slice) { * @return the most advanced instrument, or **null** */ protected Instrument getFurthestInstrument() { - long maxTick = Instrument.getMaxCurrentTicks(instrumentsByChannel); + long maxTick = Instrument.getMaxCurrentTicks(srcInstrByChannel); Instrument chosenInstr = null; - for (Instrument instr : instrumentsByChannel) { + for (Instrument instr : srcInstrByChannel) { // ignore automatic channels if (instr.autoChannel) @@ -1935,20 +2000,66 @@ protected String createConfig() { * Creates a tick description that can be used in tick comments. * The description contains the given tick in source and target resolution. * - * @param tick MIDI tickstamp (in source resolution). + * @param srcTick MIDI tickstamp in source resolution + * @param tgtTick MIDI tickstamp in target resolution * @param withCommentSymbol prefixes a comment symbol, if **true** - * @return the comment string. */ - protected String createTickDescription(long tick, boolean withCommentSymbol) { + protected void createTickDescription(long srcTick, long tgtTick, boolean withCommentSymbol) { + + if (withCommentSymbol) { + output.append(getCommentSymbol()); + output.append(" "); + } + + String description = String.format( + Dict.get(Dict.EXPORTER_TICK), srcTick, tgtTick + ); - // convert source tick to target tick - long targetTick = (tick * targetResolution * 10 + 5) / (sourceResolution * 10); - String description = Dict.get(Dict.EXPORTER_TICK) + " " + tick + " ==> ~" + targetTick; + // TODO: delete (used for debugging) + // description += " diff: " + (srcTick - ((tgtTick * sourceResolution * 10 + targetResolution * 5) / (targetResolution * 10))); + + output.append(description); + } + + /** + * Creates a tick comment for a line that can have several notes/chords/rests. + * (E.g. compact syntax or alda) + * + * @param srcBeginTick MIDI tickstamp of the begin tick (in source resolution). + * @param srcEndTick MIDI tickstamp of the end tick (in source resolution). + * @param tgtBeginTick MIDI tickstamp of the begin tick (in target resolution). + * @param tgtEndTick MIDI tickstamp of the end tick (in target resolution). + */ + protected void createTickLineComment(long srcBeginTick, long srcEndTick, long tgtBeginTick, long tgtEndTick) { + + createSpacesBeforeComment(); + + output.append(getCommentSymbol()); + output.append(" "); + String comment = String.format( + Dict.get(Dict.EXPORTER_TICK_RANGE), + srcBeginTick, srcEndTick, + tgtBeginTick, tgtEndTick + ); + output.append(comment); + } + + /** + * Creates as many spaces as needed so that a comment can be created. + */ + protected void createSpacesBeforeComment() { + + // check how many spaces are needed + int outputLineLength = output.length() - output.lastIndexOf(NEW_LINE) -1; + int spaces = compactLineMinLength - outputLineLength; + if (spaces <= 0) { + compactLineMinLength += (-spaces + 1); // increment + spaces = 1; + } - if (withCommentSymbol) - return getCommentSymbol() + " " + description; - else - return description; + // add the spaces + for (int i = 0; i < spaces; i++) + output.append(" "); } /** diff --git a/src/org/midica/file/write/MidicaPLExporter.java b/src/org/midica/file/write/MidicaPLExporter.java index 7657483..9d5aa6a 100644 --- a/src/org/midica/file/write/MidicaPLExporter.java +++ b/src/org/midica/file/write/MidicaPLExporter.java @@ -9,13 +9,17 @@ import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; import java.util.Map.Entry; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.Set; import java.util.TreeMap; import org.midica.config.Dict; import org.midica.file.Instrument; import org.midica.file.read.MidicaPLParser; +import org.midica.file.read.ParseException; import org.midica.midi.KaraokeAnalyzer; import org.midica.midi.SequenceAnalyzer; @@ -26,11 +30,19 @@ */ public class MidicaPLExporter extends Decompiler { - // string formats for channel commands + // string formats for lowlevel commands private String FORMAT_CH_CMD_CHANNEL = "%-2s"; // channel: 2 left-aligned characters, filled with spaces private String FORMAT_CH_CMD_CRD = "%-10s"; // chord/note/rest: 10 left-aligned characters, filled with spaces private String FORMAT_CH_CMD_LENGTH = "%1$10s"; // length: 10 right-aligned characters, filled with spaces + private boolean isCompactSyntax = true; + private boolean isLowlevelSyntax = false; + private int elementsInCurrentLine = 0; + private HashSet usedInSlice = null; + private Long lineBeginTickSrc = null; + private Long lineBeginTickTgt = null; + private boolean isInBlock = false; + /** * Creates a new MidicaPL exporter. */ @@ -38,49 +50,53 @@ public MidicaPLExporter() { format = MIDICA; } - /** - * Initializes MidicaPL specific data structures. - */ + @Override public void init() { + isCompactSyntax = SYNTAX_COMPACT == SYNTAX_TYPE; + isLowlevelSyntax = SYNTAX_LOWLEVEL == SYNTAX_TYPE; + elementsInCurrentLine = 0; + isInBlock = false; } - /** - * Creates the MidicaPL string to be written into the export file. - * - * @return MidicaPL string to be written into the export file - */ + @Override public String createOutput() { - StringBuilder output = new StringBuilder(); + + // in MPL we calculate measure lengths based on the TARGET sequence + // so we need to overwrite the structure from the parent class + measureLengthHistory.clear(); + measureLengthHistory.put(0L, 4L * sourceResolution); // MIDI default is 4/4 // META block - output.append( createMetaBlock() ); + createMetaBlock(); // initial INSTRUMENTS block (tick 0) - output.append( createInitialInstrumentsBlock() ); + createInitialInstrumentsBlock(); // add chord definitions - output.append( createChordDefinitions() ); + createChordDefinitions(); // SLICE: for (Slice slice : slices) { + usedInSlice = new HashSet<>(); // if necessary: add rest from current tick to the slice's begin tick - output.append( createRestBeforeSlice(slice) ); + createRestBeforeSlice(slice); // global commands - output.append( createGlobalCommands(slice) ); + createGlobalCommands(slice); // channel commands and instrument changes for (byte channel = 0; channel < 16; channel++) { + resetTickCommentLineLength(); // Add nestable block at the slice begin, if needed. // This may contain orphaned syllables and/or (in the future) control changes. if (slice.hasSliceBeginBlock(channel)) { - output.append( createSliceBeginBlock(slice, channel) ); + createSliceBeginBlock(slice, channel); } // normal commands - output.append( createCommandsFromTimeline(slice, channel) ); + createCommandsFromTimeline(slice, channel); } } @@ -99,6 +115,8 @@ public String createOutput() { /** * Creates channel commands and instrument changes from a slice's timeline. * + * Creates nothing, if the slice's timeline doesn't contain anything in the given channel. + * * Steps: * * - Adds the following missing properties and elements to the notes and chords of the timeline: @@ -111,10 +129,8 @@ public String createOutput() { * * @param slice the sequence slice * @param channel MIDI channel - * @return the created commands (or an empty string, if the slice's timeline doesn't contain anything in the given channel) */ - private String createCommandsFromTimeline(Slice slice, byte channel) { - StringBuilder lines = new StringBuilder(); + private void createCommandsFromTimeline(Slice slice, byte channel) { TreeMap>>> timeline = slice.getTimeline(channel); // TICK: @@ -124,12 +140,12 @@ private String createCommandsFromTimeline(Slice slice, byte channel) { // instrument change if (events.containsKey(ET_INSTR)) { - lines.append( createInstrumentChange(channel, tick) ); + createInstrumentChange(channel, tick); } // inline block if (events.containsKey(ET_INLINE_BLK)) { - lines.append( createInlineBlock(channel, tick, slice) ); + createInlineBlock(channel, tick, slice); } // notes/chords @@ -167,25 +183,23 @@ private String createCommandsFromTimeline(Slice slice, byte channel) { } // write MidicaPL - lines.append( createNoteLines(slice, channel, tick, events.get(ET_NOTES)) ); + createNotesAtTick(slice, channel, tick, events.get(ET_NOTES)); } } // add one empty line between channels if (! timeline.isEmpty()) { - lines.append(NEW_LINE); + if (isCompactSyntax) + createCompactLineCloseIfPossible(channel); + output.append(NEW_LINE); } - - return lines.toString(); } /** * Creates the META block, if the sequence contains any META information. - * - * @return the META block, or an empty string if the sequence doesn't contain any meta information. + * Creates nothing, if the sequence doesn't contain any meta information. */ - private String createMetaBlock() { - StringBuilder block = new StringBuilder(""); + private void createMetaBlock() { ArrayList lines = new ArrayList<>(); // get data structures @@ -221,7 +235,7 @@ private String createMetaBlock() { // LINE of this field for (String singleLine : multiLines) { if (! "".equals(singleLine)) - lines.add("\t" + String.format("%-12s", mplIds[i]) + " " + singleLine + NEW_LINE); + lines.add(BLOCK_INDENT + String.format("%-12s", mplIds[i]) + " " + singleLine + NEW_LINE); } } @@ -234,16 +248,14 @@ private String createMetaBlock() { // no meta data found? if (lines.isEmpty()) - return ""; + return; // add block - block.append(MidicaPLParser.META + NEW_LINE); + output.append(MidicaPLParser.META + NEW_LINE); for (String line : lines) { - block.append(line); + output.append(line); } - block.append(MidicaPLParser.END + NEW_LINE + NEW_LINE); - - return block.toString(); + output.append(MidicaPLParser.END + NEW_LINE + NEW_LINE); } /** @@ -257,7 +269,7 @@ private String createSoftKaraokeBlock(HashMap karaokeInfo) { StringBuilder block = new StringBuilder(""); // open the block - block.append("\t" + MidicaPLParser.META_SOFT_KARAOKE + NEW_LINE); + block.append(BLOCK_INDENT + MidicaPLParser.META_SOFT_KARAOKE + NEW_LINE); // read single-line fields String[] fields = {"sk_version", "sk_language", "sk_title", "sk_author", "sk_copyright"}; @@ -296,32 +308,26 @@ private String createSoftKaraokeBlock(HashMap karaokeInfo) { } // close the block - block.append("\t" + MidicaPLParser.END + NEW_LINE); + block.append(BLOCK_INDENT + MidicaPLParser.END + NEW_LINE); return block.toString(); } /** * Creates the initial INSTRUMENTS block. - * - * @return the created block. */ - private String createInitialInstrumentsBlock() { + private void createInitialInstrumentsBlock() { // open block - StringBuilder block = new StringBuilder(""); - block.append(MidicaPLParser.INSTRUMENTS + NEW_LINE); + output.append(MidicaPLParser.INSTRUMENTS + NEW_LINE); // add instruments for (byte channel = 0; channel < 16; channel++) { - String instrLine = createInstrLine(0, channel); - block.append(instrLine); + createInstrLine(0, channel); } // close block - block.append(MidicaPLParser.END + NEW_LINE + NEW_LINE); - - return block.toString(); + output.append(MidicaPLParser.END + NEW_LINE + NEW_LINE); } /** @@ -329,23 +335,24 @@ private String createInitialInstrumentsBlock() { * * @param channel MIDI channel * @param tick MIDI tick - * @return the created lines. */ - private String createInstrumentChange(byte channel, long tick) { + private void createInstrumentChange(byte channel, long tick) { + + // add rest if needed + long restBeginTick = srcInstrByChannel.get(channel).getCurrentTicks(); + long restTicks = tick - restBeginTick; + if (restTicks > 0) { + createRest(channel, restTicks, null); + } - // prepare - StringBuilder lines = new StringBuilder(""); + // close compact line, if necessary + createCompactLineCloseIfPossible(channel); // add instruments Set changeTicks = instrumentHistory.get(channel).keySet(); if (changeTicks.contains(tick)) { - String instrLine = createInstrLine(tick, channel); - if (! "".equals(instrLine)) { - lines.append(instrLine); - } + createInstrLine(tick, channel); } - - return lines.toString(); } /** @@ -353,7 +360,7 @@ private String createInstrumentChange(byte channel, long tick) { * * If tick is 0, a line inside a block is created. Otherwise it's an instrument change line. * - * Returns an empty string, if no instruments must be defined or changed in the given channel and tick. + * Creates nothing, if no instruments must be defined or changed in the given channel and tick. * * At the beginning this method is called for each channel (0-15). * This considers: @@ -367,13 +374,12 @@ private String createInstrumentChange(byte channel, long tick) { * * @param tick The tickstamp of the program change event; or **0** during initialization. * @param channel The channel number. - * @return the instrument line or an empty string. */ - private String createInstrLine(long tick, byte channel) { + private void createInstrLine(long tick, byte channel) { // channel used? if (0 == noteHistory.get(channel).size()) { - return ""; + return; } // get the channel's history @@ -381,7 +387,7 @@ private String createInstrLine(long tick, byte channel) { Byte[] instrConfig; boolean isAutoChannel = false; - String cmd = "\t"; + String cmd = BLOCK_INDENT; if (0 == tick) { // initialization - either a program change at tick 0 or the default at a negative tick Entry initialInstr = chInstrHist.floorEntry(tick); @@ -398,7 +404,7 @@ private String createInstrLine(long tick, byte channel) { // no program change at this tick? if (null == instrConfig) { - return ""; + return; } } @@ -432,7 +438,7 @@ private String createInstrLine(long tick, byte channel) { // instruments block if (0 == tick) { - return ( + output.append( cmd + String.format("%-4s", channelStr) + " " @@ -441,27 +447,25 @@ private String createInstrLine(long tick, byte channel) { + commentStr + NEW_LINE ); + return; } // single instrument change - return appendTickComment(cmd + " " + channelStr + " " + programStr, tick) + NEW_LINE; + output.append(cmd + " " + channelStr + " " + programStr); + createTickComment(tick, tgtInstrByChannel.get(channel).getCurrentTicks()); + output.append(NEW_LINE); } /** * Creates the CHORD definitions. - * - * @return the CHORD commands. */ - private String createChordDefinitions() { + private void createChordDefinitions() { // no chords available? if (chords.isEmpty()) { - return ""; + return; } - // initialize - StringBuilder chordBlock = new StringBuilder(""); - // get base notes in the right order, beginning with A ArrayList orderedNotes = new ArrayList<>(); for (int i=0; i<12; i++) { @@ -484,7 +488,7 @@ private String createChordDefinitions() { // chords for (String notesStr : noteChords) { String chordName = chords.get(notesStr); - chordBlock.append(MidicaPLParser.CHORD + " " + String.format("%-12s", chordName) + " "); + output.append(MidicaPLParser.CHORD + " " + String.format("%-12s", chordName) + " "); // notes String[] noteNumbers = notesStr.split("\\,"); @@ -493,39 +497,41 @@ private String createChordDefinitions() { String noteName = Dict.getNote(Integer.parseInt(noteNumber)); noteNames.add(noteName); } - chordBlock.append( String.join(MidicaPLParser.CHORD_SEPARATOR, noteNames) ); - chordBlock.append(NEW_LINE); + output.append( String.join(MidicaPLParser.CHORD_SEPARATOR, noteNames) ); + output.append(NEW_LINE); } } - chordBlock.append(NEW_LINE); - - return chordBlock.toString(); + output.append(NEW_LINE); } /** - * Creates a string with global commands for the given slice. + * Creates the global commands for the given slice. * * @param slice the sequence slice - * @return the created string (or an empty string, if the slice doesn't contain any global commands) */ - private String createGlobalCommands(Slice slice) { - StringBuilder result = new StringBuilder(""); + private void createGlobalCommands(Slice slice) { // synchronize: set all channels to the highest tick - long maxTick = Instrument.getMaxCurrentTicks(instrumentsByChannel); - for (Instrument instr : instrumentsByChannel) { - instr.setCurrentTicks(maxTick); + // and: close compact line, if necessary + long maxSrcTick = Instrument.getMaxCurrentTicks(srcInstrByChannel); + long maxTgtTick = Instrument.getMaxCurrentTicks(tgtInstrByChannel); + for (byte channel = 0; channel < srcInstrByChannel.size(); channel++) { + createCompactLineCloseIfPossible(channel); + srcInstrByChannel.get(channel).setCurrentTicks(maxSrcTick); + tgtInstrByChannel.get(channel).setCurrentTicks(maxTgtTick); } // tick comment - if (MUST_ADD_TICK_COMMENTS) - result.append( createTickDescription(slice.getBeginTick(), true) + NEW_LINE ); + if (MUST_ADD_TICK_COMMENTS) { + createTickDescription(slice.getBeginTick(), maxTgtTick, true); + output.append(NEW_LINE); + } // create global commands TreeMap globalCmds = slice.getGlobalCommands(); if (0 == globalCmds.size()) { if (slice.getBeginTick() > 0) { - result.append(MidicaPLParser.GLOBAL + NEW_LINE + NEW_LINE); + output.append(MidicaPLParser.GLOBAL + NEW_LINE + NEW_LINE); } } else { @@ -540,16 +546,26 @@ else if ("key".equals(cmdId)) globalCmd = MidicaPLParser.KEY_SIG; // append command - result.append( + output.append( MidicaPLParser.GLOBAL + " " + String.format("%-7s", globalCmd) + " " + value + NEW_LINE ); + + // update measure length, if needed + if ("time".equals(cmdId)) { + Pattern pattern = Pattern.compile("^(\\d+)" + Pattern.quote(MidicaPLParser.TIME_SIG_SLASH) + "(\\d+)$"); + Matcher matcher = pattern.matcher(value); + if (matcher.matches()) { + int numerator = Integer.parseInt(matcher.group(1)); + int denominator = Integer.parseInt(matcher.group(2)); + long measureLength = numerator * 4 * targetResolution / denominator; + measureLengthHistory.put(maxTgtTick, measureLength); + } + } } - result.append(NEW_LINE); + output.append(NEW_LINE); } - - return result.toString(); } /** @@ -564,18 +580,23 @@ else if ("key".equals(cmdId)) * * @param slice the sequence slice * @param channel MIDI channel - * @return the created block. */ - private String createSliceBeginBlock(Slice slice, byte channel) { - StringBuilder lines = new StringBuilder(); + private void createSliceBeginBlock(Slice slice, byte channel) { TreeMap timeline = slice.getSliceBeginBlockTimeline(channel); + // remember current ticks + long beginSrcTicks = srcInstrByChannel.get(channel).getCurrentTicks(); + long beginTgtTicks = tgtInstrByChannel.get(channel).getCurrentTicks(); + // open the block - lines.append(MidicaPLParser.BLOCK_OPEN + " " + MidicaPLParser.M); - lines.append(NEW_LINE); + createCompactLineCloseIfPossible(channel); + resetTickCommentLineLength(); + output.append(MidicaPLParser.BLOCK_OPEN + " " + MidicaPLParser.M); + output.append(NEW_LINE); + isInBlock = true; // get channel and tickstamp - long currentTicks = instrumentsByChannel.get(channel).getCurrentTicks(); + long currentTicks = beginSrcTicks; // TICK: for (Entry entry : timeline.entrySet()) { @@ -585,7 +606,9 @@ private String createSliceBeginBlock(Slice slice, byte channel) { // need a normal rest before the syllable? if (restTick > currentTicks) { long missingTicks = restTick - currentTicks; - lines.append( "\t" + createRest(channel, missingTicks, currentTicks, null) ); + if (isLowlevelSyntax) + output.append(BLOCK_INDENT); + createRest(channel, missingTicks, null); currentTicks = restTick; } @@ -599,15 +622,22 @@ private String createSliceBeginBlock(Slice slice, byte channel) { long restTicks = nextTick - currentTicks; // add the rest with the syllable - lines.append( "\t" + createRest(channel, restTicks, currentTicks, syllable) ); + if (isLowlevelSyntax) + output.append(BLOCK_INDENT); + createRest(channel, restTicks, syllable); currentTicks = nextTick; } // close the block - lines.append(MidicaPLParser.BLOCK_CLOSE); - lines.append(NEW_LINE); - - return lines.toString(); + isInBlock = false; + createCompactLineCloseIfPossible(channel); + resetTickCommentLineLength(); + output.append(MidicaPLParser.BLOCK_CLOSE); + output.append(NEW_LINE); + + // restore current ticks + srcInstrByChannel.get(channel).setCurrentTicks(beginSrcTicks); + tgtInstrByChannel.get(channel).setCurrentTicks(beginTgtTicks); } /** @@ -618,25 +648,31 @@ private String createSliceBeginBlock(Slice slice, byte channel) { * @param channel MIDI channel * @param tick MIDI tick * @param slice the sequence slice - * @return the created block. */ - private String createInlineBlock(byte channel, long tick, Slice slice) { - StringBuilder lines = new StringBuilder(""); + private void createInlineBlock(byte channel, long tick, Slice slice) { // add rest, if necessary - Instrument instr = instrumentsByChannel.get(channel); + Instrument instr = srcInstrByChannel.get(channel); long currentTicks = instr.getCurrentTicks(); long missingTicks = tick - currentTicks; if (missingTicks > 0) { - lines.append( createRest(channel, missingTicks, currentTicks, null) ); + createRest(channel, missingTicks, null); instr.setCurrentTicks(tick); currentTicks = tick; } + // remember current ticks + long beginSrcTicks = srcInstrByChannel.get(channel).getCurrentTicks(); + long beginTgtTicks = tgtInstrByChannel.get(channel).getCurrentTicks(); + // open the block + createCompactLineCloseIfPossible(channel); + resetTickCommentLineLength(); String lineOpen = MidicaPLParser.BLOCK_OPEN + " " + MidicaPLParser.M; - lines.append(appendTickComment(lineOpen, tick)); - lines.append(NEW_LINE); + output.append(lineOpen); + createTickComment(tick, beginTgtTicks); + output.append(NEW_LINE); + isInBlock = true; // add the inline block TreeMap content = slice.getInlineBlockTimeline(channel, tick); @@ -647,7 +683,9 @@ private String createInlineBlock(byte channel, long tick, Slice slice) { // add rest before event missingTicks = eventTick - currentTicks; if (missingTicks > 0) { - lines.append("\t" + createRest(channel, missingTicks, currentTicks, null)); + if (isLowlevelSyntax) + output.append(BLOCK_INDENT); + createRest(channel, missingTicks, null); currentTicks = eventTick; } @@ -667,19 +705,26 @@ private String createInlineBlock(byte channel, long tick, Slice slice) { } // add rest with syllable - lines.append("\t" + createRest(channel, restTicks, currentTicks, syllable)); + if (isLowlevelSyntax) + output.append(BLOCK_INDENT); + createRest(channel, restTicks, syllable); currentTicks += restTicks; } // close the block - lines.append(MidicaPLParser.BLOCK_CLOSE); - lines.append(NEW_LINE); - - return lines.toString(); + isInBlock = false; + createCompactLineCloseIfPossible(channel); + resetTickCommentLineLength(); + output.append(MidicaPLParser.BLOCK_CLOSE); + output.append(NEW_LINE); + + // restore current ticks + srcInstrByChannel.get(channel).setCurrentTicks(beginSrcTicks); + tgtInstrByChannel.get(channel).setCurrentTicks(beginTgtTicks); } /** - * Creates lines for all notes or chords that are played in a certain + * Creates commands for all notes or chords that are played in a certain * channel and begin at a certain tick. * * Steps: @@ -709,26 +754,33 @@ private String createInlineBlock(byte channel, long tick, Slice slice) { * @param channel MIDI channel * @param tick MIDI tick * @param events All notes/chords with the same note-ON tick in the same channel (comes from the slice's timeline) - * @return the created note lines. */ // TODO: change docu about the strategy - private String createNoteLines(Slice slice, byte channel, long tick, TreeMap> events) { - StringBuilder lines = new StringBuilder(""); + private void createNotesAtTick(Slice slice, byte channel, long tick, TreeMap> events) { + + // close and/or open compact line, if necessary + createCompactLineChangeIfNeeded(channel); // add rest, if necessary - Instrument instr = instrumentsByChannel.get(channel); + Instrument instr = srcInstrByChannel.get(channel); long currentTicks = instr.getCurrentTicks(); if (tick > currentTicks) { long restTicks = tick - currentTicks; - lines.append( createRest(channel, restTicks, tick, null) ); - instr.setCurrentTicks(tick); + createRest(channel, restTicks, null); + createCompactLineChangeIfNeeded(channel); } // get the LAST note/chord to be printed. - Long nextOnTick = noteHistory.get(channel).ceilingKey(tick + 1); - long sliceEndTick = slice.getEndTick(); - String lastNoteOrCrdName = null; - long highestFittingEndTick = -1; + Long nextOnTick = noteHistory.get(channel).ceilingKey(tick + 1); + Long nextInstrTick = instrumentHistory.get(channel).ceilingKey(tick + 1); + Long nextOnOrInstrTick = null == nextOnTick ? nextInstrTick : nextOnTick; + if (nextOnOrInstrTick != null && nextInstrTick != null) { + nextOnOrInstrTick = nextOnTick < nextInstrTick ? nextOnTick : nextInstrTick; + } + long sliceEndTick = slice.getEndTick(); + String lastNoteOrCrdName = null; + long highestFittingEndTick = -1; + boolean isCandidate = false; for (Entry> noteSet : events.entrySet()) { String name = noteSet.getKey(); TreeMap note = noteSet.getValue(); @@ -736,30 +788,29 @@ private String createNoteLines(Slice slice, byte channel, long tick, TreeMap= endTick) { - - // no better candidate found yet? - if (endTick > highestFittingEndTick) { - highestFittingEndTick = endTick; - lastNoteOrCrdName = name; - } + if (nextOnOrInstrTick >= endTick) { + isCandidate = true; } } + else if (endTick <= sliceEndTick) { + isCandidate = true; + } } // no next note-ON but note/chord fits into the slice? else if (endTick <= sliceEndTick) { - - // no better candidate found yet? - if (endTick > highestFittingEndTick) { - highestFittingEndTick = endTick; - lastNoteOrCrdName = name; - } + isCandidate = true; + } + + // is this the best candidate? + if (isCandidate && endTick > highestFittingEndTick) { + highestFittingEndTick = endTick; + lastNoteOrCrdName = name; } } @@ -788,37 +839,35 @@ else if (endTick <= sliceEndTick) { if (-1 == highestFittingEndTick || i < noteOrCrdNames.size()) { note.put(NP_MULTIPLE, null); } - lines.append( createSingleNoteLine(channel, name, note, tick) ); + createSingleNoteOrChord(channel, name, note, tick); } - // increment ticks, if necessary - if (highestFittingEndTick > 0) { - instr.setCurrentTicks(highestFittingEndTick); - } - - return lines.toString(); + // bar line + createBarlineIfNeeded(channel); } /** - * Prints a single channel command for a note or chord. + * Creates a single channel command for a note or chord. + * (Lowlevel command or compact element plus options.) * * @param channel MIDI channel * @param noteName note or chord name * @param noteOrCrd note properties (from the slice's timeline) * @param tick MIDI tickstamp. - * @return the created line. */ - private String createSingleNoteLine(byte channel, String noteName, TreeMap noteOrCrd, long tick) { - StringBuilder line = new StringBuilder(""); + private void createSingleNoteOrChord(byte channel, String noteName, TreeMap noteOrCrd, long tick) { - Instrument instr = instrumentsByChannel.get(channel); + Instrument instr = srcInstrByChannel.get(channel); + long targetBeginTick = tgtInstrByChannel.get(channel).getCurrentTicks(); - // main part of the command - line.append( - String.format(FORMAT_CH_CMD_CHANNEL, channel) + " " - + String.format(FORMAT_CH_CMD_CRD, noteName) + " " - + String.format(FORMAT_CH_CMD_LENGTH, noteOrCrd.get(NP_LENGTH)) - ); + // lowlevel: main part of the command + if (isLowlevelSyntax) { + output.append( + String.format(FORMAT_CH_CMD_CHANNEL, channel) + " " + + String.format(FORMAT_CH_CMD_CRD, noteName) + " " + + String.format(FORMAT_CH_CMD_LENGTH, noteOrCrd.get(NP_LENGTH)) + ); + } // get options that must be appended ArrayList options = new ArrayList<>(); @@ -832,8 +881,8 @@ private String createSingleNoteLine(byte channel, String noteName, TreeMap 0) { - String optionsStr = String.join(MidicaPLParser.OPT_SEPARATOR + " ", options); - line.append(" " + optionsStr); + if (isLowlevelSyntax) { + String optionsStr = String.join(MidicaPLParser.OPT_SEPARATOR + " ", options); + output.append(" " + optionsStr); + } + else { + String optionsStr = String.join(MidicaPLParser.OPT_SEPARATOR, options); + output.append(" " + MidicaPLParser.COMPACT_OPT_OPEN); + output.append(optionsStr); + output.append(MidicaPLParser.COMPACT_OPT_CLOSE); + } + } + + // increment current ticks + if (!noteOrCrd.containsKey(NP_MULTIPLE)) { + long srcEndTick = Long.parseLong(noteOrCrd.get(NP_END_TICK)); + srcInstrByChannel.get(channel).setCurrentTicks(srcEndTick); + incrementTargetTicks(channel, noteOrCrd.get(NP_LENGTH)); + } + + // add compact element + if (isCompactSyntax) { + createCompactElement(noteName, channel, noteOrCrd.get(NP_LENGTH)); + return; } // finish the line - return appendTickComment(line.toString(), tick) + NEW_LINE; + createTickComment(tick, targetBeginTick); + output.append(NEW_LINE); } /** - * Creates a channel command with a rest. + * In compact syntax: returns the opening, closing or switching of a line for + * the given channel, if necessary. + * Returns an empty string if none is needed or in lowlevel mode. * - * @param channel MIDI channel - * @param ticks tick length of the rest to create - * @param beginTick used for the tick comment (negative value: don't include a tick comment) - * @param syllable a lyrics syllable or (in most cases): **null** - * @return the channel command containing the rest. + * @param channel MIDI channel */ - protected String createRest(byte channel, long ticks, long beginTick, String syllable) { - StringBuilder line = new StringBuilder(""); + private void createCompactLineChangeIfNeeded(byte channel) { + + if (isLowlevelSyntax) + return; + + // close line, if needed + if (usedInSlice.contains(channel)) { + if (elementsInCurrentLine >= ELEMENTS_PER_LINE) { + createCompactLineClose(channel); + } + } + + // open line, if needed + if (!usedInSlice.contains(channel)) { + String channelStr = 9 == channel ? MidicaPLParser.P : channel + ""; + usedInSlice.add(channel); + if (isInBlock) + output.append(BLOCK_INDENT); + output.append(channelStr + MidicaPLParser.COMPACT_CHANNEL); + lineBeginTickSrc = srcInstrByChannel.get(channel).getCurrentTicks(); + lineBeginTickTgt = tgtInstrByChannel.get(channel).getCurrentTicks(); + createBarlineIfNeeded(channel); + } + } + + /** + * Closes a compact line, if one is open and compact syntax is used. + * + * @param channel MIDI channel + */ + private void createCompactLineCloseIfPossible(byte channel) { + + if (isCompactSyntax && usedInSlice.contains(channel)) { + createCompactLineClose(channel); + } + } + + /** + * Closes a compact, if compact syntax is used. + * + * @param channel MIDI channel + */ + private void createCompactLineClose(byte channel) { + + if (isLowlevelSyntax) + return; + + usedInSlice.remove(channel); + elementsInCurrentLine = 0; + if (MUST_ADD_TICK_COMMENTS) { + long currentSrcTicks = srcInstrByChannel.get(channel).getCurrentTicks(); + long currentTgtTicks = tgtInstrByChannel.get(channel).getCurrentTicks(); + createTickLineComment(lineBeginTickSrc, currentSrcTicks, lineBeginTickTgt, currentTgtTicks); + } + output.append(NEW_LINE); + } + + /** + * Creates a barline for the given channel, if needed. + * + * @param channel MIDI channel + */ + private void createBarlineIfNeeded(byte channel) { + + // barlines not supported? + if (isLowlevelSyntax || !USE_BARLINES) { + return; + } + + // get current tolerance and ticks + Instrument tgtInstr = tgtInstrByChannel.get(channel); + int currentTgtTol = tgtInstr.getBarLineTolerance(); + long currentTgtTicks = tgtInstr.getCurrentTicks(); + + // get measure length and ticks since last time signature + Entry entry = measureLengthHistory.floorEntry(tgtInstr.getCurrentTicks()); + long lastTimeSigTick = entry.getKey(); + long measureLength = entry.getValue(); + long totalTicks = currentTgtTicks - lastTimeSigTick; + + // get delta + long srcDelta = totalTicks % measureLength; + long srcDelta2 = measureLength - srcDelta; + if (srcDelta2 < srcDelta) + srcDelta = srcDelta2; + long tgtDelta = (srcDelta * targetResolution * 10 + sourceResolution * 5) / (sourceResolution * 10); + + // no bar line at all? + if (tgtDelta > MAX_BARLINE_TOL) { + return; + } + + // create bar line + String barline = " " + MidicaPLParser.BAR_LINE; + + // need to increase tolerance? + if (tgtDelta > currentTgtTol) { + barline += tgtDelta; + tgtInstr.setBarLineTolerance((int) tgtDelta); + } + + output.append(barline); + } + + /** + * Creates a single compact element. + * + * @param noteName note, chord or rest + * @param channel MIDI channel + * @param length note length + */ + private void createCompactElement(String noteName, byte channel, String length) { + + output.append(" " + noteName); + + // switch note length, if needed + Instrument instr = srcInstrByChannel.get(channel); + String oldLength = instr.getNoteLength(); + if (! oldLength.equals(length)) { + output.append(MidicaPLParser.COMPACT_NOTE_SEP + length); + instr.setNoteLength(length); + } + elementsInCurrentLine++; + } + + @Override + protected void createRest(byte channel, long ticks, String syllable) { + long srcBeginTick = srcInstrByChannel.get(channel).getCurrentTicks(); + long tgtBeginTick = tgtInstrByChannel.get(channel).getCurrentTicks(); + + // compact line opening needed, if called from createRestBeforeSlice() + createCompactLineChangeIfNeeded(channel); // split length into elements ArrayList lengthElements = getLengthsForSum(ticks, true); @@ -899,6 +1098,21 @@ protected String createRest(byte channel, long ticks, long beginTick, String syl } } + // prepare lyrics + String optionsStr = ""; + if (syllable != null) { + syllable = escapeSyllable(syllable); + if (isLowlevelSyntax) { + optionsStr = " " + MidicaPLParser.L + MidicaPLParser.OPT_ASSIGNER + syllable; + } + else { + optionsStr = " " + MidicaPLParser.COMPACT_OPT_OPEN + + MidicaPLParser.L + MidicaPLParser.OPT_ASSIGNER + syllable + + MidicaPLParser.COMPACT_OPT_CLOSE; + output.append(optionsStr); + } + } + // zero-length? if (0 == ticks && 0 == lengthSummands.size()) { lengthSummands.add(MidicaPLParser.LENGTH_ZERO); @@ -907,34 +1121,62 @@ protected String createRest(byte channel, long ticks, long beginTick, String syl // add line if (lengthSummands.size() > 0) { String length = String.join(MidicaPLParser.LENGTH_PLUS, lengthSummands); - line.append( - String.format(FORMAT_CH_CMD_CHANNEL, channel) + " " - + String.format(FORMAT_CH_CMD_CRD, MidicaPLParser.REST) + " " - + String.format(FORMAT_CH_CMD_LENGTH, length) - ); + if (isLowlevelSyntax) { + output.append( + String.format(FORMAT_CH_CMD_CHANNEL, channel) + " " + + String.format(FORMAT_CH_CMD_CRD, MidicaPLParser.REST) + " " + + String.format(FORMAT_CH_CMD_LENGTH, length) + ); + } + else { + createCompactElement(MidicaPLParser.REST, channel, length); + } + srcInstrByChannel.get(channel).setCurrentTicks(srcBeginTick + ticks); + incrementTargetTicks(channel, length); incrementStats(STAT_RESTS, channel); } else { - addWarningRestSkipped(beginTick, ticks, channel); + addWarningRestSkipped(srcBeginTick, ticks, channel); incrementStats(STAT_REST_SKIPPED, channel); - if (MUST_ADD_TICK_COMMENTS) - line.append(getCommentSymbol() + " " + Dict.get(Dict.WARNING_REST_SKIPPED)); + if (MUST_ADD_TICK_COMMENTS && isLowlevelSyntax) + output.append(getCommentSymbol() + " " + Dict.get(Dict.WARNING_REST_SKIPPED)); else - return ""; // no line needed + return; // no output needed } - // add lyrics option, if needed - if (syllable != null) { - syllable = escapeSyllable(syllable); - line.append(" " + MidicaPLParser.L + MidicaPLParser.OPT_ASSIGNER + syllable); + if (isCompactSyntax) { + createBarlineIfNeeded(channel); + return; + } + else { + // add lyrics option, if needed + output.append(optionsStr); + + // finish the line + createTickComment(srcBeginTick, tgtBeginTick); + output.append(NEW_LINE); + } + } + + /** + * Increments the target channel by the amount of ticks of the given length value. + * + * @param channel MIDI channel + * @param length note length in MPL syntax + */ + private void incrementTargetTicks(byte channel, String length) { + + // get current ticks + try { + Instrument targetInstr = tgtInstrByChannel.get(channel); + long currentTicks = targetInstr.getCurrentTicks(); + long lengthTicks = MidicaPLParser.parseDuration(length); + targetInstr.setCurrentTicks(currentTicks + lengthTicks); + } + catch (ParseException e) { + System.err.println("Unable to calculate target note length. This should not happen. Please report."); } - - // finish the line - if (beginTick < 0) - return line.toString() + NEW_LINE; - else - return appendTickComment(line.toString(), beginTick) + NEW_LINE; } /** @@ -957,19 +1199,7 @@ private String escapeSyllable(String syllable) { return syllable.replaceAll(" ", "_").replaceAll(",", "\\\\c"); } - /** - * Calculates which tick length corresponds to which note or rest length. - * That depends on the resolution of the current MIDI sequence. - * - * The created rest lengths will contain a view more very short lengths. - * This is needed because rests should be less tolerant than notes. - * - * This enables us to use more common lengths for notes but let the - * exported sequence be still as close as possible to the original one. - * - * @param rest **true** to initialize REST lengths, **false** for NOTE lengths - * @return Mapping between tick length and note length for the syntax. - */ + @Override public TreeMap initLengths(boolean rest) { boolean useDots = rest ? USE_DOTTED_RESTS : USE_DOTTED_NOTES; @@ -988,86 +1218,94 @@ public TreeMap initLengths(boolean rest) { String m8 = MidicaPLParser.LENGTH_M8; String m16 = MidicaPLParser.LENGTH_M16; String m32 = MidicaPLParser.LENGTH_M32; + if (isCompactSyntax) { + d1 = "1"; + d2 = "2"; + d4 = "4"; + d8 = "8"; + d16 = "16"; + d32 = "32"; + } TreeMap lengthToSymbol = new TreeMap<>(); // use very small lengths only for rests if (rest) { // 1/128 - long length128 = calculateTicks(1, 32); + long length128 = calculateTicks(1, 32, LM_NONE, false); lengthToSymbol.put(length128, 128 + ""); // 1/64 - long length64 = calculateTicks(1, 16); + long length64 = calculateTicks(1, 16, LM_NONE, false); lengthToSymbol.put(length64, 64 + ""); } // 32th - long length32t = calculateTicks( 2, 8 * 3 ); // inside a triplet - long length32 = calculateTicks( 1, 8 ); // normal length - long length32d = calculateTicks( 3, 8 * 2 ); // dotted length - if (useTriplets) lengthToSymbol.put( length32t, d32 + triplet ); // triplet - lengthToSymbol.put( length32, d32 ); // normal - if (useDots) lengthToSymbol.put( length32d, d32 + dot ); // dotted + long length32t = calculateTicks(1, 8, LM_TRIPLET, false); + long length32 = calculateTicks(1, 8, LM_NONE, false); + long length32d = calculateTicks(1, 8, LM_DOT, false); + if (useTriplets) lengthToSymbol.put( length32t, d32 + triplet ); + lengthToSymbol.put( length32, d32 ); + if (useDots) lengthToSymbol.put( length32d, d32 + dot ); // 16th - long length16t = calculateTicks( 2, 4 * 3 ); - long length16 = calculateTicks( 1, 4 ); - long length16d = calculateTicks( 3, 4 * 2 ); + long length16t = calculateTicks(1, 4, LM_TRIPLET, false); + long length16 = calculateTicks(1, 4, LM_NONE, false); + long length16d = calculateTicks(1, 4, LM_DOT, false); if (useTriplets) lengthToSymbol.put( length16t, d16 + triplet ); lengthToSymbol.put( length16, d16 ); if (useDots) lengthToSymbol.put( length16d, d16 + dot ); // 8th - long length8t = calculateTicks( 2, 2 * 3 ); - long length8 = calculateTicks( 1, 2 ); - long length8d = calculateTicks( 3, 2 * 2 ); + long length8t = calculateTicks(1, 2, LM_TRIPLET, false); + long length8 = calculateTicks(1, 2, LM_NONE, false); + long length8d = calculateTicks(1, 2, LM_DOT, false); if (useTriplets) lengthToSymbol.put( length8t, d8 + triplet ); lengthToSymbol.put( length8, d8 ); if (useDots) lengthToSymbol.put( length8d, d8 + dot ); // quarter - long length4t = calculateTicks( 2, 3 ); - long length4 = calculateTicks( 1, 1 ); - long length4d = calculateTicks( 3, 2 ); + long length4t = calculateTicks(1, 1, LM_TRIPLET, false); + long length4 = calculateTicks(1, 1, LM_NONE, false); + long length4d = calculateTicks(1, 1, LM_DOT, false); if (useTriplets) lengthToSymbol.put( length4t, d4 + triplet ); lengthToSymbol.put( length4, d4 ); if (useDots) lengthToSymbol.put( length4d, d4 + dot ); // half - long length2t = calculateTicks( 2 * 2, 3 ); - long length2 = calculateTicks( 2, 1 ); - long length2d = calculateTicks( 2 * 3, 2 ); + long length2t = calculateTicks(2, 1, LM_TRIPLET, false); + long length2 = calculateTicks(2, 1, LM_NONE, false); + long length2d = calculateTicks(2, 1, LM_DOT, false); if (useTriplets) lengthToSymbol.put( length2t, d2 + triplet ); lengthToSymbol.put( length2, d2 ); if (useDots) lengthToSymbol.put( length2d, d2 + dot ); // full - long length1t = calculateTicks( 4 * 2, 3 ); - long length1 = calculateTicks( 4, 1 ); + long length1t = calculateTicks(4, 1, LM_TRIPLET, false); + long length1 = calculateTicks(4, 1, LM_NONE, false); if (useTriplets) lengthToSymbol.put( length1t, d1 + triplet ); lengthToSymbol.put( length1, d1 ); // allow longer lengths only for rests if (rest) { // 2 full notes - long length_m2 = calculateTicks(8, 1); + long length_m2 = calculateTicks(8, 1, LM_NONE, false); lengthToSymbol.put(length_m2, m2); // 4 full notes - long length_m4 = calculateTicks(16, 1); + long length_m4 = calculateTicks(16, 1, LM_NONE, false); lengthToSymbol.put(length_m4, m4); // 8 full notes - long length_m8 = calculateTicks(32, 1); + long length_m8 = calculateTicks(32, 1, LM_NONE, false); lengthToSymbol.put(length_m8, m8); // 16 full notes - long length_m16 = calculateTicks(64, 1); + long length_m16 = calculateTicks(64, 1, LM_NONE, false); lengthToSymbol.put(length_m16, m16); // 32 full notes - long length_m32 = calculateTicks(128, 1); + long length_m32 = calculateTicks(128, 1, LM_NONE, false); lengthToSymbol.put(length_m32, m32); } @@ -1075,17 +1313,29 @@ public TreeMap initLengths(boolean rest) { } /** - * Appends a tick comment to the given line, if tick comments are configured. - * Otherwise the given line is returned unchanged. + * Creates a tick comment, if tick comments are configured. * - * @param line the line to be completed by a comment - * @param tick MIDI tick - * @return the changed or unchanged line + * @param srcTick MIDI tick in source resolution + * @param tgtTick MIDI tick in target resolution */ - private String appendTickComment(String line, long tick) { - if (MUST_ADD_TICK_COMMENTS) { - line = String.format("%-45s", line) + " " + createTickDescription(tick, true); + private void createTickComment(long srcTick, long tgtTick) { + + if (!MUST_ADD_TICK_COMMENTS) + return; + + // create spaces + if (isLowlevelSyntax) { + int lastLineLength = output.length() - output.lastIndexOf(NEW_LINE); + int spaces = 44 - lastLineLength; + output.append(" "); // minimum 1 space + for (int i = 0; i < spaces; i++) + output.append(" "); + } + else { + createSpacesBeforeComment(); } - return line; + + // create the comment + createTickDescription(srcTick, tgtTick, true); } } diff --git a/src/org/midica/file/write/Slice.java b/src/org/midica/file/write/Slice.java index 2995845..9a90d42 100644 --- a/src/org/midica/file/write/Slice.java +++ b/src/org/midica/file/write/Slice.java @@ -221,10 +221,16 @@ public void addSyllableRest(long tick, String syllable, byte channel, byte orpha // Add the rest as an inline block // get the tick where the block must start - long blockStartTick = timelines.get(channel).floorKey(tick); + Long blockStartTick = timelines.get(channel).floorKey(tick); + if (null == blockStartTick) { + blockStartTick = beginTick; + timelines.get(channel).put(blockStartTick, new TreeMap<>()); + } // Get the events from the block's start tick TreeMap>> events = timelines.get(channel).get(blockStartTick); + if (null == events) + events = new TreeMap<>(); // create inline block, if not yet done, and add it to the notes timeline TreeMap inlineBlock = inlineBlockTimelines.get(channel).get(blockStartTick); diff --git a/src/org/midica/ui/file/config/DecompileConfigController.java b/src/org/midica/ui/file/config/DecompileConfigController.java index a76f45d..44f484e 100644 --- a/src/org/midica/ui/file/config/DecompileConfigController.java +++ b/src/org/midica/ui/file/config/DecompileConfigController.java @@ -116,8 +116,8 @@ protected void initSessionConfigSpecific(boolean fromConfig) { initWidgetConfig( Config.DC_MUST_ADD_STATISTICS, view.cbxAddStatistics, Boolean.class, fromConfig ); initWidgetConfig( Config.DC_MUST_ADD_STRATEGY_STAT, view.cbxAddStrategyStat, Boolean.class, fromConfig ); initWidgetConfig( Config.DC_LENGTH_STRATEGY, view.cbxLengthStrategy, Integer.class, fromConfig ); - initWidgetConfig( Config.DC_MIN_TARGET_TICKS_ON, view.cbxMinTargetTicksOn, Integer.class, fromConfig ); - initWidgetConfig( Config.DC_MAX_TARGET_TICKS_ON, view.cbxMaxTargetTicksOn, Integer.class, fromConfig ); + initWidgetConfig( Config.DC_MIN_TICKS_ON_AT_480, view.cbxMinTicksOnAt480, Integer.class, fromConfig ); + initWidgetConfig( Config.DC_MAX_TICKS_ON_AT_480, view.cbxMaxTicksOnAt480, Integer.class, fromConfig ); initWidgetConfig( Config.DC_MIN_DURATION_TO_KEEP, view.fldMinDurToKeep, Float.class, fromConfig ); initWidgetConfig( Config.DC_MAX_DURATION_TO_KEEP, view.fldMaxDurToKeep, Float.class, fromConfig ); initWidgetConfig( Config.DC_LENGTH_TICK_TOLERANCE, view.fldLengthTickTolerance, Integer.class, fromConfig ); @@ -135,6 +135,10 @@ protected void initSessionConfigSpecific(boolean fromConfig) { initWidgetConfig( Config.DC_ORPHANED_SYLLABLES, view.cbxOrphanedSyllables, Integer.class, fromConfig ); initWidgetConfig( Config.DC_KARAOKE_ONE_CHANNEL, view.cbxKarOneChannel, Boolean.class, fromConfig ); initWidgetConfig( Config.DC_CTRL_CHANGE_MODE, view.cbxCtrlChangeMode, Integer.class, fromConfig ); + initWidgetConfig( Config.DC_SYNTAX_TYPE, view.cbxSyntaxType, Integer.class, fromConfig ); + initWidgetConfig( Config.DC_ELEMENTS_PER_LINE, view.fldElementsPerLine, Integer.class, fromConfig ); + initWidgetConfig( Config.DC_USE_BARLINES, view.cbxUseBarlines, Boolean.class, fromConfig ); + initWidgetConfig( Config.DC_MAX_BARLINE_TOL, view.fldBarlineTol, Integer.class, fromConfig ); initWidgetConfig( Config.DC_EXTRA_GLOBALS_STR, view.areaGlobalsStr, String.class, fromConfig ); } @@ -436,7 +440,13 @@ else if (Config.DC_ORPHANED_SYLLABLES.equals(id) || Config.DC_CTRL_CHANGE_MODE.e return model; } - else if (Config.DC_MAX_TARGET_TICKS_ON.equals(id) || Config.DC_MIN_TARGET_TICKS_ON.equals(id)) { + else if (Config.DC_SYNTAX_TYPE.equals(id)) { + model.addElement(new NamedInteger(Dict.get(Dict.DC_SYNTAX_COMPACT), MidicaPLExporter.SYNTAX_COMPACT, true)); + model.addElement(new NamedInteger(Dict.get(Dict.DC_SYNTAX_LOWLEVEL), MidicaPLExporter.SYNTAX_LOWLEVEL, true)); + + return model; + } + else if (Config.DC_MAX_TICKS_ON_AT_480.equals(id) || Config.DC_MIN_TICKS_ON_AT_480.equals(id)) { String noteLengths[] = { Dict.SYNTAX_32, Dict.SYNTAX_16, Dict.SYNTAX_8, Dict.SYNTAX_4, Dict.SYNTAX_2, Dict.SYNTAX_1, Dict.SYNTAX_M2, Dict.SYNTAX_M4, Dict.SYNTAX_M8, Dict.SYNTAX_M16, Dict.SYNTAX_M32, diff --git a/src/org/midica/ui/file/config/DecompileConfigView.java b/src/org/midica/ui/file/config/DecompileConfigView.java index 41252e3..680f400 100644 --- a/src/org/midica/ui/file/config/DecompileConfigView.java +++ b/src/org/midica/ui/file/config/DecompileConfigView.java @@ -60,8 +60,8 @@ public class DecompileConfigView extends FileConfigView { JCheckBox cbxAddStatistics; JCheckBox cbxAddStrategyStat; JComboBox cbxLengthStrategy; - JComboBox cbxMinTargetTicksOn; - JComboBox cbxMaxTargetTicksOn; + JComboBox cbxMinTicksOnAt480; + JComboBox cbxMaxTicksOnAt480; JTextField fldMinDurToKeep; JTextField fldMaxDurToKeep; JTextField fldLengthTickTolerance; @@ -79,6 +79,10 @@ public class DecompileConfigView extends FileConfigView { JComboBox cbxOrphanedSyllables; JCheckBox cbxKarOneChannel; JComboBox cbxCtrlChangeMode; + JComboBox cbxSyntaxType; + JTextField fldElementsPerLine; + JCheckBox cbxUseBarlines; + JTextField fldBarlineTol; JTextField fldAddGlobalAtTick; MidicaButton btnAddGlobalAtTick; JTextField fldAddGlobalsEachTick; @@ -120,8 +124,8 @@ protected FileConfigController initStructures() { cbxAddStatistics = new JCheckBox(Dict.get(Dict.DC_ADD_STATISTICS)); cbxAddStrategyStat = new JCheckBox(Dict.get(Dict.DC_ADD_STRATEGY_STAT)); cbxLengthStrategy = new JComboBox<>(); - cbxMinTargetTicksOn = new JComboBox<>(); - cbxMaxTargetTicksOn = new JComboBox<>(); + cbxMinTicksOnAt480 = new JComboBox<>(); + cbxMaxTicksOnAt480 = new JComboBox<>(); fldMinDurToKeep = new JTextField(); fldMaxDurToKeep = new JTextField(); fldLengthTickTolerance = new JTextField(); @@ -139,6 +143,10 @@ protected FileConfigController initStructures() { cbxOrphanedSyllables = new JComboBox<>(); cbxKarOneChannel = new JCheckBox(); cbxCtrlChangeMode = new JComboBox<>(); + cbxSyntaxType = new JComboBox<>(); + fldElementsPerLine = new JTextField(); + cbxUseBarlines = new JCheckBox(Dict.get(Dict.USE_BARLINES)); + fldBarlineTol = new JTextField(); fldAddGlobalAtTick = new JTextField(); btnAddGlobalAtTick = new MidicaButton(Dict.get(Dict.BTN_ADD_TICK)); fldAddGlobalsEachTick = new JTextField(); @@ -148,10 +156,11 @@ protected FileConfigController initStructures() { areaGlobalsStr = new JTextArea(); btnAllTicks = new MidicaButton(Dict.get(Dict.BTN_UPDATE_TICKS)); cbxLengthStrategy.setModel(DecompileConfigController.getComboboxModel(Config.DC_LENGTH_STRATEGY)); - cbxMinTargetTicksOn.setModel(DecompileConfigController.getComboboxModel(Config.DC_MIN_TARGET_TICKS_ON)); - cbxMaxTargetTicksOn.setModel(DecompileConfigController.getComboboxModel(Config.DC_MAX_TARGET_TICKS_ON)); + cbxMinTicksOnAt480.setModel(DecompileConfigController.getComboboxModel(Config.DC_MIN_TICKS_ON_AT_480)); + cbxMaxTicksOnAt480.setModel(DecompileConfigController.getComboboxModel(Config.DC_MAX_TICKS_ON_AT_480)); cbxOrphanedSyllables.setModel(DecompileConfigController.getComboboxModel(Config.DC_ORPHANED_SYLLABLES)); cbxCtrlChangeMode.setModel(DecompileConfigController.getComboboxModel(Config.DC_CTRL_CHANGE_MODE)); + cbxSyntaxType.setModel(DecompileConfigController.getComboboxModel(Config.DC_SYNTAX_TYPE)); // create controller return DecompileConfigController.getInstance(this, icon); @@ -182,6 +191,7 @@ protected void initUi() { tabs.add( Dict.get(Dict.DC_TAB_KARAOKE), createKaraokeArea(Dict.DC_TAB_KARAOKE) ); tabs.add( Dict.get(Dict.DC_TAB_CTRL_CHANGE), createCtrlChangeArea(Dict.DC_TAB_CTRL_CHANGE) ); tabs.add( Dict.get(Dict.DC_TAB_SLICE), createSliceArea(Dict.DC_TAB_SLICE) ); + tabs.add( Dict.get(Dict.DC_TAB_LINE), createLineArea(Dict.DC_TAB_LINE) ); content.add(tabs, constraints); // separator @@ -284,34 +294,34 @@ private Container createNoteLengthArea(String tabKey) { constrFull.gridy = constrRight.gridy; area.add(Laf.createSeparator(), constrFull); - // min note length (min target ticks) for next note on + // min note length (min ticks at 480) for next note on // label constrLeft.gridy++; - JLabel lblMinTargetOn = new JLabel( Dict.get(Dict.MIN_TARGET_TICKS_NEXT_ON) ); - Laf.makeBold(lblMinTargetOn); - area.add(lblMinTargetOn, constrLeft); + JLabel lblMinTicksOn = new JLabel( Dict.get(Dict.MIN_TICKS_NEXT_ON_AT_480) ); + Laf.makeBold(lblMinTicksOn); + area.add(lblMinTicksOn, constrLeft); // combobox constrCenter.gridy++; constrCenter.gridwidth = 2; constrRight.gridy++; - cbxMinTargetTicksOn.addActionListener(controller); - area.add(cbxMinTargetTicksOn, constrCenter); + cbxMinTicksOnAt480.addActionListener(controller); + area.add(cbxMinTicksOnAt480, constrCenter); constrCenter.gridwidth = 1; - // max note length (max target ticks) for next note on + // max note length (max ticks at 480) for next note on // label constrLeft.gridy++; - JLabel lblMaxTargetOn = new JLabel( Dict.get(Dict.MAX_TARGET_TICKS_NEXT_ON) ); - Laf.makeBold(lblMaxTargetOn); - area.add(lblMaxTargetOn, constrLeft); + JLabel lblMaxTicksOn = new JLabel( Dict.get(Dict.MAX_TICKS_NEXT_ON_AT_480) ); + Laf.makeBold(lblMaxTicksOn); + area.add(lblMaxTicksOn, constrLeft); // combobox constrCenter.gridy++; constrCenter.gridwidth = 2; constrRight.gridy++; - cbxMaxTargetTicksOn.addActionListener(controller); - area.add(cbxMaxTargetTicksOn, constrCenter); + cbxMaxTicksOnAt480.addActionListener(controller); + area.add(cbxMaxTicksOnAt480, constrCenter); // separator constrLeft.gridy++; @@ -521,16 +531,22 @@ private Container createNoteRestArea(String tabKey) { // dotted rests constrLeft.gridy++; + constrCenter.gridy++; + constrRight.gridy++; cbxUseDottedRest.addActionListener(controller); area.add(cbxUseDottedRest, constrLeft); // tripletted notes constrLeft.gridy++; + constrCenter.gridy++; + constrRight.gridy++; cbxUseTriplettedNote.addActionListener(controller); area.add(cbxUseTriplettedNote, constrLeft); // tripletted rests constrLeft.gridy++; + constrCenter.gridy++; + constrRight.gridy++; cbxUseTriplettedRest.addActionListener(controller); area.add(cbxUseTriplettedRest, constrLeft); @@ -795,6 +811,98 @@ private Container createSliceArea(String tabKey) { return wrapTabContent(area); } + /** + * Creates the area for line settings (compact or alda). + * + * @param tabKey language key for the tab name + * @return the created area + */ + private Container createLineArea(String tabKey) { + + // layout + JPanel area = new JPanel(); + area.setLayout(new GridBagLayout()); + GridBagConstraints[] constaints = createConstraintsForArea(); + GridBagConstraints constrFull = constaints[0]; + GridBagConstraints constrLeft = constaints[1]; + GridBagConstraints constrCenter = constaints[2]; + GridBagConstraints constrRight = constaints[3]; + + // tab info box + area.add(createTabInfo(tabKey, Dict.DC_TABINFO_SYNTAX), constrFull); + + // lowlevel or compact + // label + JLabel lblSyntaxType = new JLabel( Dict.get(Dict.SYNTAX_TYPE) ); + Laf.makeBold(lblSyntaxType); + area.add(lblSyntaxType, constrLeft); + + // combobox + cbxSyntaxType.setPreferredSize(new Dimension(TEXT_FIELD_WIDTH, TEXT_FIELD_HEIGHT)); + cbxSyntaxType.addActionListener(controller); + area.add(cbxSyntaxType, constrCenter); + + // description + JLabel descSyntaxType = new JLabel( Dict.get(Dict.SYNTAX_TYPE_D) ); + area.add(descSyntaxType, constrRight); + + // barline tolerance + // label + constrLeft.gridy++; + JLabel lblElems = new JLabel( Dict.get(Dict.ELEMENTS_PER_LINE) ); + Laf.makeBold(lblElems); + area.add(lblElems, constrLeft); + + // field + constrCenter.gridy++; + fldElementsPerLine.getDocument().addDocumentListener(controller); + fldElementsPerLine.setPreferredSize(new Dimension(TEXT_FIELD_WIDTH, TEXT_FIELD_HEIGHT)); + area.add(fldElementsPerLine, constrCenter); + + // description + constrRight.gridy++; + JLabel descElems = new JLabel( Dict.get(Dict.ELEMENTS_PER_LINE_D) ); + area.add(descElems, constrRight); + + // use bar lines + // label + constrLeft.gridy++; + JLabel lblUseBarlines = new JLabel( Dict.get(Dict.USE_BARLINES) ); + Laf.makeBold(lblUseBarlines); + area.add(lblUseBarlines, constrLeft); + + // field + constrCenter.gridy++; + cbxUseBarlines.setPreferredSize(new Dimension(TEXT_FIELD_WIDTH, TEXT_FIELD_HEIGHT)); + cbxUseBarlines.addActionListener(controller); + area.add(cbxUseBarlines, constrCenter); + + // description + constrRight.gridy++; + JLabel descUseBarlines = new JLabel( Dict.get(Dict.USE_BARLINES_D) ); + area.add(descUseBarlines, constrRight); + + // barline tolerance + // label + constrLeft.gridy++; + JLabel lblBarlineTol = new JLabel( Dict.get(Dict.MAX_BARLINE_TOL) ); + Laf.makeBold(lblBarlineTol); + area.add(lblBarlineTol, constrLeft); + + // field + constrCenter.gridy++; + fldBarlineTol.getDocument().addDocumentListener(controller); + fldBarlineTol.setPreferredSize(new Dimension(TEXT_FIELD_WIDTH, TEXT_FIELD_HEIGHT)); + area.add(fldBarlineTol, constrCenter); + + // description + constrRight.gridy++; + JLabel descBarlineTol = new JLabel( Dict.get(Dict.MAX_BARLINE_TOL_D) ); + area.add(descBarlineTol, constrRight); + + return wrapTabContent(area); + } + @Override protected void addSpecificKeyBindings() { @@ -806,6 +914,7 @@ protected void addSpecificKeyBindings() { keyBindingManager.addBindingsForTabLevel1( tabs, Dict.KEY_DC_CONF_TAB_KARAOKE, 4 ); keyBindingManager.addBindingsForTabLevel1( tabs, Dict.KEY_DC_CONF_TAB_CTRL_CHANGE, 5 ); keyBindingManager.addBindingsForTabLevel1( tabs, Dict.KEY_DC_CONF_TAB_SLICES, 6 ); + keyBindingManager.addBindingsForTabLevel1( tabs, Dict.KEY_DC_CONF_TAB_SYNTAX, 7 ); // debug tab keyBindingManager.addBindingsForTabLevel3( cbxAddTickComments, Dict.KEY_DC_CONF_ADD_TICK_COMMENTS ); @@ -816,8 +925,8 @@ protected void addSpecificKeyBindings() { // note length tab keyBindingManager.addBindingsForTabLevel3( cbxLengthStrategy, Dict.KEY_DC_CONF_NOTE_LENGTH_STRATEGY ); - keyBindingManager.addBindingsForTabLevel3( cbxMinTargetTicksOn, Dict.KEY_DC_CONF_MIN_TARGET_TICKS_ON ); - keyBindingManager.addBindingsForTabLevel3( cbxMaxTargetTicksOn, Dict.KEY_DC_CONF_MAX_TARGET_TICKS_ON ); + keyBindingManager.addBindingsForTabLevel3( cbxMinTicksOnAt480, Dict.KEY_DC_CONF_MIN_TICKS_ON_AT_480 ); + keyBindingManager.addBindingsForTabLevel3( cbxMaxTicksOnAt480, Dict.KEY_DC_CONF_MAX_TICKS_ON_AT_480 ); keyBindingManager.addBindingsForTabLevel3( fldMinDurToKeep, Dict.KEY_DC_CONF_MIN_DUR_TO_KEEP ); keyBindingManager.addBindingsForTabLevel3( fldMaxDurToKeep, Dict.KEY_DC_CONF_MAX_DUR_TO_KEEP ); keyBindingManager.addBindingsForTabLevel3( fldLengthTickTolerance, Dict.KEY_DC_CONF_TOL_TICK_LEN ); @@ -830,10 +939,10 @@ protected void addSpecificKeyBindings() { keyBindingManager.addBindingsForTabLevel3( fldChordVelocityTolerance, Dict.KEY_DC_CONF_CRD_VELOCITY ); // notes/rests tab - keyBindingManager.addBindingsForTabLevel3( cbxUseDottedNote, Dict.KEY_DC_CONF_USE_DOT_NOTES ); - keyBindingManager.addBindingsForTabLevel3( cbxUseDottedRest, Dict.KEY_DC_CONF_USE_DOT_RESTS ); - keyBindingManager.addBindingsForTabLevel3( cbxUseTriplettedNote, Dict.KEY_DC_CONF_USE_TRIP_NOTES ); - keyBindingManager.addBindingsForTabLevel3( cbxUseTriplettedRest, Dict.KEY_DC_CONF_USE_TRIP_RESTS ); + keyBindingManager.addBindingsForTabLevel3( cbxUseDottedNote, Dict.KEY_DC_CONF_USE_DOT_NOTES ); + keyBindingManager.addBindingsForTabLevel3( cbxUseDottedRest, Dict.KEY_DC_CONF_USE_DOT_RESTS ); + keyBindingManager.addBindingsForTabLevel3( cbxUseTriplettedNote, Dict.KEY_DC_CONF_USE_TRIP_NOTES ); + keyBindingManager.addBindingsForTabLevel3( cbxUseTriplettedRest, Dict.KEY_DC_CONF_USE_TRIP_RESTS ); // karaoke tab keyBindingManager.addBindingsForTabLevel3( cbxUseKaraoke, Dict.KEY_DC_CONF_USE_KARAOKE ); @@ -853,5 +962,11 @@ protected void addSpecificKeyBindings() { keyBindingManager.addBindingsForTabLevel3( btnAddGlobalTicks, Dict.KEY_DC_CONF_BTN_GLOB_RANGE ); keyBindingManager.addBindingsForTabLevel3( areaGlobalsStr, Dict.KEY_DC_CONF_AREA_GLOB_ALL ); keyBindingManager.addBindingsForTabLevel3( btnAllTicks, Dict.KEY_DC_CONF_BTN_GLOB_ALL ); + + // syntax tab + keyBindingManager.addBindingsForTabLevel3( cbxSyntaxType, Dict.KEY_DC_CONF_SYNTAX_TYPE ); + keyBindingManager.addBindingsForTabLevel3( fldElementsPerLine, Dict.KEY_DC_CONF_ELEMENTS_PER_LINE ); + keyBindingManager.addBindingsForTabLevel3( cbxUseBarlines, Dict.KEY_DC_CONF_USE_BARLINES ); + keyBindingManager.addBindingsForTabLevel3( fldBarlineTol, Dict.KEY_DC_CONF_FLD_BARLINE_TOL ); } } diff --git a/src/org/midica/ui/file/config/FileConfigController.java b/src/org/midica/ui/file/config/FileConfigController.java index 8b5e54e..1c56392 100644 --- a/src/org/midica/ui/file/config/FileConfigController.java +++ b/src/org/midica/ui/file/config/FileConfigController.java @@ -322,6 +322,10 @@ else if (first instanceof String) { valStr = item; } } + else if (widget instanceof JTextArea) { + JTextArea area = (JTextArea) widget; + valStr = area.getText(); + } // check and apply value Class type = configClasses.get(id);