mirror of
https://git.femboyfinancial.jp/james/lipsync.git
synced 2024-11-21 09:23:03 -08:00
814 lines
41 KiB
C#
814 lines
41 KiB
C#
/*
|
|
* ExpressionConfigSys.cs
|
|
* Copyright (c) 2009 kbinani
|
|
*
|
|
* This file is part of Boare.Lib.Vsq.
|
|
*
|
|
* Boare.Lib.Vsq is free software; you can redistribute it and/or
|
|
* modify it under the terms of the BSD License.
|
|
*
|
|
* Boare.Lib.Vsq is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
*/
|
|
#if JAVA
|
|
package org.kbinani.vsq;
|
|
|
|
import java.util.*;
|
|
import java.io.*;
|
|
import org.kbinani.*;
|
|
#else
|
|
using System;
|
|
using System.Text;
|
|
using bocoree;
|
|
using bocoree.java.util;
|
|
using bocoree.java.io;
|
|
|
|
namespace Boare.Lib.Vsq {
|
|
#endif
|
|
|
|
public class ExpressionConfigSys {
|
|
#if JAVA
|
|
private final int MAX_VIBRATO = 0x400;
|
|
#else
|
|
private const int MAX_VIBRATO = 0x400;
|
|
#endif
|
|
private Vector<VibratoConfig> m_vibrato_configs;
|
|
private Vector<AttackConfig> m_attack_configs;
|
|
|
|
private void printTo( String file ) {
|
|
BufferedWriter sw = null;
|
|
try {
|
|
sw = new BufferedWriter( new FileWriter( file ) );
|
|
int count = 0;
|
|
for ( Iterator itr = m_vibrato_configs.iterator(); itr.hasNext(); ) {
|
|
count++;
|
|
VibratoConfig vconfig = (VibratoConfig)itr.next();
|
|
String name = "v" + count;
|
|
sw.write( "VibratoConfig " + name + " = new VibratoConfig();" );
|
|
sw.newLine();
|
|
sw.write( name + ".author = \"" + vconfig.author + "\";" );
|
|
sw.newLine();
|
|
sw.write( name + ".file = \"" + vconfig.file + "\";" );
|
|
sw.newLine();
|
|
sw.write( name + ".number = " + vconfig.number + ";" );
|
|
sw.newLine();
|
|
sw.write( name + ".vendor = \"" + vconfig.vendor + "\";" );
|
|
sw.newLine();
|
|
sw.write( name + ".contents.IconID = \"" + vconfig.contents.IconID + "\";" );
|
|
sw.newLine();
|
|
sw.write( name + ".contents.IDS = \"" + vconfig.contents.IDS + "\";" );
|
|
sw.newLine();
|
|
sw.write( name + ".contents.Original = " + vconfig.contents.Original + ";" );
|
|
sw.newLine();
|
|
sw.write( name + ".contents.Caption = \"" + vconfig.contents.Caption + "\";" );
|
|
sw.newLine();
|
|
sw.write( name + ".contents.Length = " + vconfig.contents.getLength() + ";" );
|
|
sw.newLine();
|
|
sw.write( name + ".contents.StartDepth = " + vconfig.contents.StartDepth + ";" );
|
|
sw.write( name + ".contents.DepthBP = new VibratoBPList( new float[]{ " );
|
|
for ( int i = 0; i < vconfig.contents.DepthBP.getCount(); i++ ) {
|
|
sw.write( ((i > 0) ? ", " : "") + vconfig.contents.DepthBP.getElement( i ).X + "f" );
|
|
}
|
|
sw.write( " }, new int[]{ " );
|
|
for ( int i = 0; i < vconfig.contents.DepthBP.getCount(); i++ ) {
|
|
sw.write( ((i > 0) ? ", " : "") + vconfig.contents.DepthBP.getElement( i ).Y );
|
|
}
|
|
sw.write( " } );" );
|
|
sw.newLine();
|
|
sw.write( name + ".contents.StartRate = " + vconfig.contents.StartRate + ";" );
|
|
sw.newLine();
|
|
sw.write( name + ".contents.RateBP = new VibratoBPList( new float[]{ " );
|
|
for ( int i = 0; i < vconfig.contents.RateBP.getCount(); i++ ) {
|
|
sw.write( ((i > 0) ? ", " : "") + vconfig.contents.RateBP.getElement( i ).X + "f" );
|
|
}
|
|
sw.write( " }, new int[]{ " );
|
|
for ( int i = 0; i < vconfig.contents.RateBP.getCount(); i++ ) {
|
|
sw.write( ((i > 0) ? ", " : "") + vconfig.contents.RateBP.getElement( i ).Y );
|
|
}
|
|
sw.write( " } );" );
|
|
sw.newLine();
|
|
sw.write( "ret.m_vibrato_configs.add( " + name + " );" );
|
|
sw.newLine();
|
|
sw.newLine();
|
|
}
|
|
count = 0;
|
|
|
|
for ( Iterator itr = m_attack_configs.iterator(); itr.hasNext(); ) {
|
|
count++;
|
|
AttackConfig aconfig = (AttackConfig)itr.next();
|
|
String name = "a" + count;
|
|
sw.write( "AttackConfig " + name + " = new AttackConfig();" );
|
|
sw.newLine();
|
|
sw.write( name + ".author = \"" + aconfig.author + "\";" );
|
|
sw.newLine();
|
|
sw.write( name + ".file = \"" + aconfig.file + "\";" );
|
|
sw.newLine();
|
|
sw.write( name + ".number = " + aconfig.number + ";" );
|
|
sw.newLine();
|
|
sw.write( name + ".vendor = \"" + aconfig.vendor + "\";" );
|
|
sw.newLine();
|
|
sw.write( name + ".contents.IconID = \"" + aconfig.contents.IconID + "\";" );
|
|
sw.newLine();
|
|
sw.write( name + ".contents.IDS = \"" + aconfig.contents.IDS + "\";" );
|
|
sw.newLine();
|
|
sw.write( name + ".contents.Original = " + aconfig.contents.Original + ";" );
|
|
sw.newLine();
|
|
sw.write( name + ".contents.Caption = \"" + aconfig.contents.Caption + "\";" );
|
|
sw.newLine();
|
|
sw.write( name + ".contents.Length = " + aconfig.contents.getLength() + ";" );
|
|
sw.newLine();
|
|
sw.write( name + ".contents.Duration = " + aconfig.contents.Duration + ";" );
|
|
sw.newLine();
|
|
sw.write( name + ".contents.Depth = " + aconfig.contents.Depth + ";" );
|
|
sw.newLine();
|
|
sw.write( "ret.m_attack_configs.add( " + name + " );" );
|
|
sw.newLine();
|
|
sw.newLine();
|
|
}
|
|
} catch ( Exception ex ) {
|
|
} finally {
|
|
if ( sw != null ) {
|
|
try {
|
|
sw.close();
|
|
} catch ( Exception ex2 ) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public static ExpressionConfigSys getVocaloid1Default() {
|
|
ExpressionConfigSys ret = new ExpressionConfigSys();
|
|
ret.m_vibrato_configs = new Vector<VibratoConfig>();
|
|
ret.m_attack_configs = new Vector<AttackConfig>();
|
|
VibratoConfig v1 = new VibratoConfig();
|
|
v1.author = "Taro";
|
|
v1.file = "normal.aic";
|
|
v1.number = 1;
|
|
v1.vendor = "YAMAHA";
|
|
v1.contents.IconID = "$04040001";
|
|
v1.contents.IDS = "normal";
|
|
v1.contents.Original = 0;
|
|
v1.contents.Caption = "Normal Vibrato";
|
|
v1.contents.setLength( 480 );
|
|
v1.contents.StartDepth = 64;
|
|
v1.contents.DepthBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
v1.contents.StartRate = 64;
|
|
v1.contents.RateBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
ret.m_vibrato_configs.add( v1 );
|
|
|
|
VibratoConfig v2 = new VibratoConfig();
|
|
v2.author = "Taro";
|
|
v2.file = "subtle.aic";
|
|
v2.number = 2;
|
|
v2.vendor = "YAMAHA";
|
|
v2.contents.IconID = "$04040002";
|
|
v2.contents.IDS = "normal";
|
|
v2.contents.Original = 0;
|
|
v2.contents.Caption = "Subtle Vibrato";
|
|
v2.contents.setLength( 480 );
|
|
v2.contents.StartDepth = 32;
|
|
v2.contents.DepthBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
v2.contents.StartRate = 56;
|
|
v2.contents.RateBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
ret.m_vibrato_configs.add( v2 );
|
|
|
|
VibratoConfig v3 = new VibratoConfig();
|
|
v3.author = "Taro";
|
|
v3.file = "slight.aic";
|
|
v3.number = 3;
|
|
v3.vendor = "YAMAHA";
|
|
v3.contents.IconID = "$04040003";
|
|
v3.contents.IDS = "slight";
|
|
v3.contents.Original = 0;
|
|
v3.contents.Caption = "Slight Vibrato";
|
|
v3.contents.setLength( 480 );
|
|
v3.contents.StartDepth = 32;
|
|
v3.contents.DepthBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
v3.contents.StartRate = 64;
|
|
v3.contents.RateBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
ret.m_vibrato_configs.add( v3 );
|
|
|
|
VibratoConfig v4 = new VibratoConfig();
|
|
v4.author = "Taro";
|
|
v4.file = "deep.aic";
|
|
v4.number = 4;
|
|
v4.vendor = "YAMAHA";
|
|
v4.contents.IconID = "$04040004";
|
|
v4.contents.IDS = "deep";
|
|
v4.contents.Original = 0;
|
|
v4.contents.Caption = "Deep Vibrato";
|
|
v4.contents.setLength( 480 );
|
|
v4.contents.StartDepth = 64;
|
|
v4.contents.DepthBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
v4.contents.StartRate = 64;
|
|
v4.contents.RateBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
ret.m_vibrato_configs.add( v4 );
|
|
|
|
VibratoConfig v5 = new VibratoConfig();
|
|
v5.author = "Taro";
|
|
v5.file = "verydeep.aic";
|
|
v5.number = 5;
|
|
v5.vendor = "YAMAHA";
|
|
v5.contents.IconID = "$04040005";
|
|
v5.contents.IDS = "extreme";
|
|
v5.contents.Original = 0;
|
|
v5.contents.Caption = "Very Deep Vibrato";
|
|
v5.contents.setLength( 480 );
|
|
v5.contents.StartDepth = 64;
|
|
v5.contents.DepthBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
v5.contents.StartRate = 120;
|
|
v5.contents.RateBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
ret.m_vibrato_configs.add( v5 );
|
|
|
|
VibratoConfig v6 = new VibratoConfig();
|
|
v6.author = "Taro";
|
|
v6.file = "extreme.aic";
|
|
v6.number = 6;
|
|
v6.vendor = "YAMAHA";
|
|
v6.contents.IconID = "$04040006";
|
|
v6.contents.IDS = "extreme";
|
|
v6.contents.Original = 0;
|
|
v6.contents.Caption = "Extreme Vibrato (like Japanese Enka)";
|
|
v6.contents.setLength( 480 );
|
|
v6.contents.StartDepth = 64;
|
|
v6.contents.DepthBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
v6.contents.StartRate = 64;
|
|
v6.contents.RateBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
ret.m_vibrato_configs.add( v6 );
|
|
|
|
AttackConfig a1 = new AttackConfig();
|
|
a1.author = "Taro";
|
|
a1.file = "na_tenuto.aic";
|
|
a1.number = 1;
|
|
a1.vendor = "YAMAHA";
|
|
a1.contents.IconID = "$01010001";
|
|
a1.contents.IDS = "tenuto";
|
|
a1.contents.Original = 0;
|
|
a1.contents.Caption = "Tenuto";
|
|
a1.contents.setLength( 120 );
|
|
a1.contents.Duration = 64;
|
|
a1.contents.Depth = 64;
|
|
ret.m_attack_configs.add( a1 );
|
|
|
|
AttackConfig a2 = new AttackConfig();
|
|
a2.author = "Taro";
|
|
a2.file = "na_accent.aic";
|
|
a2.number = 2;
|
|
a2.vendor = "YAMAHA";
|
|
a2.contents.IconID = "$01010002";
|
|
a2.contents.IDS = "accent";
|
|
a2.contents.Original = 0;
|
|
a2.contents.Caption = "Accent";
|
|
a2.contents.setLength( 120 );
|
|
a2.contents.Duration = 64;
|
|
a2.contents.Depth = 64;
|
|
ret.m_attack_configs.add( a2 );
|
|
|
|
AttackConfig a3 = new AttackConfig();
|
|
a3.author = "Taro";
|
|
a3.file = "na_extreme_accent.aic";
|
|
a3.number = 3;
|
|
a3.vendor = "YAMAHA";
|
|
a3.contents.IconID = "$01010003";
|
|
a3.contents.IDS = "accent_extreme";
|
|
a3.contents.Original = 0;
|
|
a3.contents.Caption = "Extreme Accent";
|
|
a3.contents.setLength( 120 );
|
|
a3.contents.Duration = 64;
|
|
a3.contents.Depth = 64;
|
|
ret.m_attack_configs.add( a3 );
|
|
|
|
AttackConfig a4 = new AttackConfig();
|
|
a4.author = "Taro";
|
|
a4.file = "na_legato.aic";
|
|
a4.number = 4;
|
|
a4.vendor = "YAMAHA";
|
|
a4.contents.IconID = "$01010004";
|
|
a4.contents.IDS = "legato";
|
|
a4.contents.Original = 0;
|
|
a4.contents.Caption = "Legato";
|
|
a4.contents.setLength( 120 );
|
|
a4.contents.Duration = 64;
|
|
a4.contents.Depth = 64;
|
|
ret.m_attack_configs.add( a4 );
|
|
|
|
AttackConfig a5 = new AttackConfig();
|
|
a5.author = "Taro";
|
|
a5.file = "na_fast_bendup.aic";
|
|
a5.number = 5;
|
|
a5.vendor = "YAMAHA";
|
|
a5.contents.IconID = "$01010005";
|
|
a5.contents.IDS = "bendup_fast";
|
|
a5.contents.Original = 0;
|
|
a5.contents.Caption = "Fast Bendu";
|
|
a5.contents.setLength( 120 );
|
|
a5.contents.Duration = 64;
|
|
a5.contents.Depth = 64;
|
|
ret.m_attack_configs.add( a5 );
|
|
|
|
AttackConfig a6 = new AttackConfig();
|
|
a6.author = "Taro";
|
|
a6.file = "na_slow_bendup.aic";
|
|
a6.number = 6;
|
|
a6.vendor = "YAMAHA";
|
|
a6.contents.IconID = "$01010006";
|
|
a6.contents.IDS = "bendup_slow";
|
|
a6.contents.Original = 0;
|
|
a6.contents.Caption = "Slow Bendup";
|
|
a6.contents.setLength( 120 );
|
|
a6.contents.Duration = 64;
|
|
a6.contents.Depth = 64;
|
|
ret.m_attack_configs.add( a6 );
|
|
|
|
AttackConfig a7 = new AttackConfig();
|
|
a7.author = "Taro";
|
|
a7.file = "na_trill_semi.aic";
|
|
a7.number = 7;
|
|
a7.vendor = "YAMAHA";
|
|
a7.contents.IconID = "$01010007";
|
|
a7.contents.IDS = "trill_semi";
|
|
a7.contents.Original = 0;
|
|
a7.contents.Caption = "Trill Semitone";
|
|
a7.contents.setLength( 120 );
|
|
a7.contents.Duration = 64;
|
|
a7.contents.Depth = 64;
|
|
ret.m_attack_configs.add( a7 );
|
|
|
|
AttackConfig a8 = new AttackConfig();
|
|
a8.author = "Taro";
|
|
a8.file = "na_trill_whole.aic";
|
|
a8.number = 8;
|
|
a8.vendor = "YAMAHA";
|
|
a8.contents.IconID = "$01010008";
|
|
a8.contents.IDS = "trill_whole";
|
|
a8.contents.Original = 0;
|
|
a8.contents.Caption = "Trill Wholetone";
|
|
a8.contents.setLength( 120 );
|
|
a8.contents.Duration = 64;
|
|
a8.contents.Depth = 64;
|
|
ret.m_attack_configs.add( a8 );
|
|
|
|
AttackConfig a9 = new AttackConfig();
|
|
a9.author = "Taro";
|
|
a9.file = "na_mordent_semi.aic";
|
|
a9.number = 9;
|
|
a9.vendor = "YAMAHA";
|
|
a9.contents.IconID = "$01010009";
|
|
a9.contents.IDS = "mordent_semi";
|
|
a9.contents.Original = 0;
|
|
a9.contents.Caption = "Mordent Semitone";
|
|
a9.contents.setLength( 120 );
|
|
a9.contents.Duration = 64;
|
|
a9.contents.Depth = 64;
|
|
ret.m_attack_configs.add( a9 );
|
|
|
|
AttackConfig a10 = new AttackConfig();
|
|
a10.author = "Taro";
|
|
a10.file = "na_mordent_whole.aic";
|
|
a10.number = 10;
|
|
a10.vendor = "YAMAHA";
|
|
a10.contents.IconID = "$0101000a";
|
|
a10.contents.IDS = "mordent_whole";
|
|
a10.contents.Original = 0;
|
|
a10.contents.Caption = "Mordent Wholetone";
|
|
a10.contents.setLength( 120 );
|
|
a10.contents.Duration = 64;
|
|
a10.contents.Depth = 64;
|
|
ret.m_attack_configs.add( a10 );
|
|
|
|
return ret;
|
|
}
|
|
|
|
public static ExpressionConfigSys getVocaloid2Default() {
|
|
ExpressionConfigSys ret = new ExpressionConfigSys();
|
|
ret.m_vibrato_configs = new Vector<VibratoConfig>();
|
|
ret.m_attack_configs = new Vector<AttackConfig>();
|
|
VibratoConfig v1 = new VibratoConfig();
|
|
v1.author = "Standard";
|
|
v1.file = "normal2_type1.aic";
|
|
v1.number = 1;
|
|
v1.vendor = "YAMAHA";
|
|
v1.contents.IconID = "$04040001";
|
|
v1.contents.IDS = "normal";
|
|
v1.contents.Original = 0;
|
|
v1.contents.Caption = "[Normal] Type 1";
|
|
v1.contents.setLength( 480 );
|
|
v1.contents.StartDepth = 64;
|
|
v1.contents.DepthBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
v1.contents.StartRate = 50;
|
|
v1.contents.RateBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
ret.m_vibrato_configs.add( v1 );
|
|
|
|
VibratoConfig v2 = new VibratoConfig();
|
|
v2.author = "Standard";
|
|
v2.file = "normal2_type2.aic";
|
|
v2.number = 2;
|
|
v2.vendor = "YAMAHA";
|
|
v2.contents.IconID = "$04040002";
|
|
v2.contents.IDS = "normal";
|
|
v2.contents.Original = 0;
|
|
v2.contents.Caption = "[Normal] Type 2";
|
|
v2.contents.setLength( 480 );
|
|
v2.contents.StartDepth = 40;
|
|
v2.contents.DepthBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
v2.contents.StartRate = 50;
|
|
v2.contents.RateBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
ret.m_vibrato_configs.add( v2 );
|
|
|
|
VibratoConfig v3 = new VibratoConfig();
|
|
v3.author = "Standard";
|
|
v3.file = "normal2_type3.aic";
|
|
v3.number = 3;
|
|
v3.vendor = "YAMAHA";
|
|
v3.contents.IconID = "$04040003";
|
|
v3.contents.IDS = "normal";
|
|
v3.contents.Original = 0;
|
|
v3.contents.Caption = "[Normal] Type 3";
|
|
v3.contents.setLength( 480 );
|
|
v3.contents.StartDepth = 127;
|
|
v3.contents.DepthBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
v3.contents.StartRate = 50;
|
|
v3.contents.RateBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
ret.m_vibrato_configs.add( v3 );
|
|
|
|
VibratoConfig v4 = new VibratoConfig();
|
|
v4.author = "Standard";
|
|
v4.file = "normal2_type4.aic";
|
|
v4.number = 4;
|
|
v4.vendor = "YAMAHA";
|
|
v4.contents.IconID = "$04040004";
|
|
v4.contents.IDS = "normal";
|
|
v4.contents.Original = 0;
|
|
v4.contents.Caption = "[Normal] Type 4";
|
|
v4.contents.setLength( 480 );
|
|
v4.contents.StartDepth = 64;
|
|
v4.contents.DepthBP = new VibratoBPList( new float[] { 0.6042f, 0.6125f, 0.6167f, 0.6208f, 0.625f, 0.6333f, 0.6375f, 0.6417f, 0.6458f, 0.6542f, 0.6583f, 0.6667f, 0.6708f, 0.675f, 0.6792f, 0.6833f, 0.6917f, 0.6958f, 0.7042f, 0.7083f, 0.7125f, 0.7167f, 0.7208f, 0.725f, 0.7292f, 0.7375f, 0.7458f, 0.75f, 0.7583f, 0.7625f, 0.7667f, 0.7708f, 0.775f, 0.7833f, 0.7917f, 0.7958f, 0.8f, 0.8042f, 0.8083f, 0.8125f, 0.8208f, 0.8292f, 0.8375f, 0.8417f, 0.8458f, 0.85f, 0.8542f, 0.8625f, 0.8667f, 0.875f, 0.8792f, 0.8833f, 0.8875f, 0.8917f, 0.8958f, 0.9f, 1f }, new int[] { 64, 63, 62, 61, 59, 58, 57, 56, 55, 54, 52, 51, 50, 49, 48, 47, 45, 44, 43, 42, 41, 40, 39, 38, 37, 35, 34, 32, 31, 30, 29, 28, 27, 25, 24, 23, 22, 21, 20, 19, 17, 15, 14, 13, 12, 11, 10, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0 } );
|
|
v4.contents.StartRate = 50;
|
|
v4.contents.RateBP = new VibratoBPList( new float[] { 0.6f, 0.6125f, 0.6167f, 0.6208f, 0.6292f, 0.6333f, 0.6375f, 0.6417f, 0.6542f, 0.6583f, 0.6625f, 0.6667f, 0.675f, 0.6833f, 0.6875f, 0.6917f, 0.7f, 0.7042f, 0.7083f, 0.7125f, 0.725f, 0.7292f, 0.7333f, 0.7375f, 0.7458f, 0.75f, 0.7583f, 0.7625f, 0.7708f, 0.775f, 0.7792f, 0.7833f, 0.7958f, 0.8f, 0.8042f, 0.8083f, 0.8167f, 0.8208f, 0.8292f, 0.8333f, 0.8417f, 0.8458f, 0.85f, 0.8542f, 0.8667f, 0.8708f, 0.875f, 0.8792f, 0.8875f, 0.8917f, 0.9f, 1f }, new int[] { 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0 } );
|
|
ret.m_vibrato_configs.add( v4 );
|
|
|
|
VibratoConfig v5 = new VibratoConfig();
|
|
v5.author = "Standard";
|
|
v5.file = "extreme2_type1.aic";
|
|
v5.number = 5;
|
|
v5.vendor = "YAMAHA";
|
|
v5.contents.IconID = "$04040005";
|
|
v5.contents.IDS = "extreme";
|
|
v5.contents.Original = 0;
|
|
v5.contents.Caption = "[Extreme] Type 1";
|
|
v5.contents.setLength( 480 );
|
|
v5.contents.StartDepth = 64;
|
|
v5.contents.DepthBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
v5.contents.StartRate = 64;
|
|
v5.contents.RateBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
ret.m_vibrato_configs.add( v5 );
|
|
|
|
VibratoConfig v6 = new VibratoConfig();
|
|
v6.author = "Standard";
|
|
v6.file = "extreme2_type2.aic";
|
|
v6.number = 6;
|
|
v6.vendor = "YAMAHA";
|
|
v6.contents.IconID = "$04040006";
|
|
v6.contents.IDS = "extreme";
|
|
v6.contents.Original = 0;
|
|
v6.contents.Caption = "[Extreme] Type 2";
|
|
v6.contents.setLength( 480 );
|
|
v6.contents.StartDepth = 32;
|
|
v6.contents.DepthBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
v6.contents.StartRate = 32;
|
|
v6.contents.RateBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
ret.m_vibrato_configs.add( v6 );
|
|
|
|
VibratoConfig v7 = new VibratoConfig();
|
|
v7.author = "Standard";
|
|
v7.file = "extreme2_type3.aic";
|
|
v7.number = 7;
|
|
v7.vendor = "YAMAHA";
|
|
v7.contents.IconID = "$04040007";
|
|
v7.contents.IDS = "extreme";
|
|
v7.contents.Original = 0;
|
|
v7.contents.Caption = "[Extreme] Type 3";
|
|
v7.contents.setLength( 480 );
|
|
v7.contents.StartDepth = 100;
|
|
v7.contents.DepthBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
v7.contents.StartRate = 50;
|
|
v7.contents.RateBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
ret.m_vibrato_configs.add( v7 );
|
|
|
|
VibratoConfig v8 = new VibratoConfig();
|
|
v8.author = "Standard";
|
|
v8.file = "extreme2_type4.aic";
|
|
v8.number = 8;
|
|
v8.vendor = "YAMAHA";
|
|
v8.contents.IconID = "$04040008";
|
|
v8.contents.IDS = "extreme";
|
|
v8.contents.Original = 0;
|
|
v8.contents.Caption = "[Extreme] Type 4";
|
|
v8.contents.setLength( 480 );
|
|
v8.contents.StartDepth = 64;
|
|
v8.contents.DepthBP = new VibratoBPList( new float[] { 0.6042f, 0.6125f, 0.6167f, 0.6208f, 0.625f, 0.6333f, 0.6375f, 0.6417f, 0.6458f, 0.6542f, 0.6583f, 0.6667f, 0.6708f, 0.675f, 0.6792f, 0.6833f, 0.6917f, 0.6958f, 0.7042f, 0.7083f, 0.7125f, 0.7167f, 0.7208f, 0.725f, 0.7292f, 0.7375f, 0.7458f, 0.75f, 0.7583f, 0.7625f, 0.7667f, 0.7708f, 0.775f, 0.7833f, 0.7917f, 0.7958f, 0.8f, 0.8042f, 0.8083f, 0.8125f, 0.8208f, 0.8292f, 0.8375f, 0.8417f, 0.8458f, 0.85f, 0.8542f, 0.8625f, 0.8667f, 0.875f, 0.8792f, 0.8833f, 0.8875f, 0.8917f, 0.8958f, 0.9f, 1f }, new int[] { 64, 63, 62, 61, 59, 58, 57, 56, 55, 54, 52, 51, 50, 49, 48, 47, 45, 44, 43, 42, 41, 40, 39, 38, 37, 35, 34, 32, 31, 30, 29, 28, 27, 25, 24, 23, 22, 21, 20, 19, 17, 15, 14, 13, 12, 11, 10, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0 } );
|
|
v8.contents.StartRate = 64;
|
|
v8.contents.RateBP = new VibratoBPList( new float[] { 0.6042f, 0.6125f, 0.6167f, 0.6208f, 0.625f, 0.6333f, 0.6375f, 0.6417f, 0.6458f, 0.6542f, 0.6583f, 0.6667f, 0.6708f, 0.675f, 0.6792f, 0.6833f, 0.6917f, 0.6958f, 0.7042f, 0.7083f, 0.7125f, 0.7167f, 0.7208f, 0.725f, 0.7292f, 0.7375f, 0.7458f, 0.75f, 0.7583f, 0.7625f, 0.7667f, 0.7708f, 0.775f, 0.7833f, 0.7917f, 0.7958f, 0.8f, 0.8042f, 0.8083f, 0.8125f, 0.8208f, 0.8292f, 0.8375f, 0.8417f, 0.8458f, 0.85f, 0.8542f, 0.8625f, 0.8667f, 0.875f, 0.8792f, 0.8833f, 0.8875f, 0.8917f, 0.8958f, 0.9f, 1f }, new int[] { 64, 63, 62, 61, 59, 58, 57, 56, 55, 54, 52, 51, 50, 49, 48, 47, 45, 44, 43, 42, 41, 40, 39, 38, 37, 35, 34, 32, 31, 30, 29, 28, 27, 25, 24, 23, 22, 21, 20, 19, 17, 15, 14, 13, 12, 11, 10, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0 } );
|
|
ret.m_vibrato_configs.add( v8 );
|
|
|
|
VibratoConfig v9 = new VibratoConfig();
|
|
v9.author = "Standard";
|
|
v9.file = "fast2_type1.aic";
|
|
v9.number = 9;
|
|
v9.vendor = "YAMAHA";
|
|
v9.contents.IconID = "$04040009";
|
|
v9.contents.IDS = "fast";
|
|
v9.contents.Original = 0;
|
|
v9.contents.Caption = "[Fast] Type 1";
|
|
v9.contents.setLength( 480 );
|
|
v9.contents.StartDepth = 64;
|
|
v9.contents.DepthBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
v9.contents.StartRate = 64;
|
|
v9.contents.RateBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
ret.m_vibrato_configs.add( v9 );
|
|
|
|
VibratoConfig v10 = new VibratoConfig();
|
|
v10.author = "Standard";
|
|
v10.file = "fast2_type2.aic";
|
|
v10.number = 10;
|
|
v10.vendor = "YAMAHA";
|
|
v10.contents.IconID = "$0404000a";
|
|
v10.contents.IDS = "fast";
|
|
v10.contents.Original = 0;
|
|
v10.contents.Caption = "[Fast] Type 2";
|
|
v10.contents.setLength( 480 );
|
|
v10.contents.StartDepth = 40;
|
|
v10.contents.DepthBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
v10.contents.StartRate = 50;
|
|
v10.contents.RateBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
ret.m_vibrato_configs.add( v10 );
|
|
|
|
VibratoConfig v11 = new VibratoConfig();
|
|
v11.author = "Standard";
|
|
v11.file = "fast2_type3.aic";
|
|
v11.number = 11;
|
|
v11.vendor = "YAMAHA";
|
|
v11.contents.IconID = "$0404000b";
|
|
v11.contents.IDS = "fast";
|
|
v11.contents.Original = 0;
|
|
v11.contents.Caption = "[Fast] Type 3";
|
|
v11.contents.setLength( 480 );
|
|
v11.contents.StartDepth = 80;
|
|
v11.contents.DepthBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
v11.contents.StartRate = 70;
|
|
v11.contents.RateBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
ret.m_vibrato_configs.add( v11 );
|
|
|
|
VibratoConfig v12 = new VibratoConfig();
|
|
v12.author = "Standard";
|
|
v12.file = "fast2_type4.aic";
|
|
v12.number = 12;
|
|
v12.vendor = "YAMAHA";
|
|
v12.contents.IconID = "$0404000c";
|
|
v12.contents.IDS = "fast";
|
|
v12.contents.Original = 0;
|
|
v12.contents.Caption = "[Fast] Type 4";
|
|
v12.contents.setLength( 480 );
|
|
v12.contents.StartDepth = 64;
|
|
v12.contents.DepthBP = new VibratoBPList( new float[] { 0.6042f, 0.6125f, 0.6167f, 0.6208f, 0.625f, 0.6333f, 0.6375f, 0.6417f, 0.6458f, 0.6542f, 0.6583f, 0.6667f, 0.6708f, 0.675f, 0.6792f, 0.6833f, 0.6917f, 0.6958f, 0.7042f, 0.7083f, 0.7125f, 0.7167f, 0.7208f, 0.725f, 0.7292f, 0.7375f, 0.7458f, 0.75f, 0.7583f, 0.7625f, 0.7667f, 0.7708f, 0.775f, 0.7833f, 0.7917f, 0.7958f, 0.8f, 0.8042f, 0.8083f, 0.8125f, 0.8208f, 0.8292f, 0.8375f, 0.8417f, 0.8458f, 0.85f, 0.8542f, 0.8625f, 0.8667f, 0.875f, 0.8792f, 0.8833f, 0.8875f, 0.8917f, 0.8958f, 0.9f, 1f }, new int[] { 64, 63, 62, 61, 59, 58, 57, 56, 55, 54, 52, 51, 50, 49, 48, 47, 45, 44, 43, 42, 41, 40, 39, 38, 37, 35, 34, 32, 31, 30, 29, 28, 27, 25, 24, 23, 22, 21, 20, 19, 17, 15, 14, 13, 12, 11, 10, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0 } );
|
|
v12.contents.StartRate = 64;
|
|
v12.contents.RateBP = new VibratoBPList( new float[] { 0.6042f, 0.6125f, 0.6167f, 0.6208f, 0.625f, 0.6333f, 0.6375f, 0.6417f, 0.6458f, 0.6542f, 0.6583f, 0.6667f, 0.6708f, 0.675f, 0.6792f, 0.6833f, 0.6917f, 0.6958f, 0.7042f, 0.7083f, 0.7125f, 0.7167f, 0.7208f, 0.725f, 0.7292f, 0.7375f, 0.7458f, 0.75f, 0.7583f, 0.7625f, 0.7667f, 0.7708f, 0.775f, 0.7833f, 0.7917f, 0.7958f, 0.8f, 0.8042f, 0.8083f, 0.8125f, 0.8208f, 0.8292f, 0.8375f, 0.8417f, 0.8458f, 0.85f, 0.8542f, 0.8625f, 0.8667f, 0.875f, 0.8792f, 0.8833f, 0.8875f, 0.8917f, 0.8958f, 0.9f, 1f }, new int[] { 64, 63, 62, 61, 59, 58, 57, 56, 55, 54, 52, 51, 50, 49, 48, 47, 45, 44, 43, 42, 41, 40, 39, 38, 37, 35, 34, 32, 31, 30, 29, 28, 27, 25, 24, 23, 22, 21, 20, 19, 17, 15, 14, 13, 12, 11, 10, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0 } );
|
|
ret.m_vibrato_configs.add( v12 );
|
|
|
|
VibratoConfig v13 = new VibratoConfig();
|
|
v13.author = "Standard";
|
|
v13.file = "slight2_type1.aic";
|
|
v13.number = 13;
|
|
v13.vendor = "YAMAHA";
|
|
v13.contents.IconID = "$0404000d";
|
|
v13.contents.IDS = "slight";
|
|
v13.contents.Original = 0;
|
|
v13.contents.Caption = "[Slight] Type 1";
|
|
v13.contents.setLength( 480 );
|
|
v13.contents.StartDepth = 64;
|
|
v13.contents.DepthBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
v13.contents.StartRate = 64;
|
|
v13.contents.RateBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
ret.m_vibrato_configs.add( v13 );
|
|
|
|
VibratoConfig v14 = new VibratoConfig();
|
|
v14.author = "Standard";
|
|
v14.file = "slight2_type2.aic";
|
|
v14.number = 14;
|
|
v14.vendor = "YAMAHA";
|
|
v14.contents.IconID = "$0404000e";
|
|
v14.contents.IDS = "slight";
|
|
v14.contents.Original = 0;
|
|
v14.contents.Caption = "[Slight] Type 2";
|
|
v14.contents.setLength( 480 );
|
|
v14.contents.StartDepth = 40;
|
|
v14.contents.DepthBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
v14.contents.StartRate = 64;
|
|
v14.contents.RateBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
ret.m_vibrato_configs.add( v14 );
|
|
|
|
VibratoConfig v15 = new VibratoConfig();
|
|
v15.author = "Standard";
|
|
v15.file = "slight2_type3.aic";
|
|
v15.number = 15;
|
|
v15.vendor = "YAMAHA";
|
|
v15.contents.IconID = "$0404000f";
|
|
v15.contents.IDS = "slight";
|
|
v15.contents.Original = 0;
|
|
v15.contents.Caption = "[Slight] Type 3";
|
|
v15.contents.setLength( 480 );
|
|
v15.contents.StartDepth = 72;
|
|
v15.contents.DepthBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
v15.contents.StartRate = 64;
|
|
v15.contents.RateBP = new VibratoBPList( new float[] { }, new int[] { } );
|
|
ret.m_vibrato_configs.add( v15 );
|
|
|
|
VibratoConfig v16 = new VibratoConfig();
|
|
v16.author = "Standard";
|
|
v16.file = "slight2_type4.aic";
|
|
v16.number = 16;
|
|
v16.vendor = "YAMAHA";
|
|
v16.contents.IconID = "$04040010";
|
|
v16.contents.IDS = "slight";
|
|
v16.contents.Original = 0;
|
|
v16.contents.Caption = "[Slight] Type 4";
|
|
v16.contents.setLength( 480 );
|
|
v16.contents.StartDepth = 64;
|
|
v16.contents.DepthBP = new VibratoBPList( new float[] { 0.6042f, 0.6125f, 0.6167f, 0.6208f, 0.625f, 0.6333f, 0.6375f, 0.6417f, 0.6458f, 0.6542f, 0.6583f, 0.6667f, 0.6708f, 0.675f, 0.6792f, 0.6833f, 0.6917f, 0.6958f, 0.7042f, 0.7083f, 0.7125f, 0.7167f, 0.7208f, 0.725f, 0.7292f, 0.7375f, 0.7458f, 0.75f, 0.7583f, 0.7625f, 0.7667f, 0.7708f, 0.775f, 0.7833f, 0.7917f, 0.7958f, 0.8f, 0.8042f, 0.8083f, 0.8125f, 0.8208f, 0.8292f, 0.8375f, 0.8417f, 0.8458f, 0.85f, 0.8542f, 0.8625f, 0.8667f, 0.875f, 0.8792f, 0.8833f, 0.8875f, 0.8917f, 0.8958f, 0.9f, 1f }, new int[] { 64, 63, 62, 61, 59, 58, 57, 56, 55, 54, 52, 51, 50, 49, 48, 47, 45, 44, 43, 42, 41, 40, 39, 38, 37, 35, 34, 32, 31, 30, 29, 28, 27, 25, 24, 23, 22, 21, 20, 19, 17, 15, 14, 13, 12, 11, 10, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0 } );
|
|
v16.contents.StartRate = 64;
|
|
v16.contents.RateBP = new VibratoBPList( new float[] { 0.6042f, 0.6125f, 0.6167f, 0.6208f, 0.625f, 0.6333f, 0.6375f, 0.6417f, 0.6458f, 0.6542f, 0.6583f, 0.6667f, 0.6708f, 0.675f, 0.6792f, 0.6833f, 0.6917f, 0.6958f, 0.7042f, 0.7083f, 0.7125f, 0.7167f, 0.7208f, 0.725f, 0.7292f, 0.7375f, 0.7458f, 0.75f, 0.7583f, 0.7625f, 0.7667f, 0.7708f, 0.775f, 0.7833f, 0.7917f, 0.7958f, 0.8f, 0.8042f, 0.8083f, 0.8125f, 0.8208f, 0.8292f, 0.8375f, 0.8417f, 0.8458f, 0.85f, 0.8542f, 0.8625f, 0.8667f, 0.875f, 0.8792f, 0.8833f, 0.8875f, 0.8917f, 0.8958f, 0.9f, 1f }, new int[] { 64, 63, 62, 61, 59, 58, 57, 56, 55, 54, 52, 51, 50, 49, 48, 47, 45, 44, 43, 42, 41, 40, 39, 38, 37, 35, 34, 32, 31, 30, 29, 28, 27, 25, 24, 23, 22, 21, 20, 19, 17, 15, 14, 13, 12, 11, 10, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0 } );
|
|
ret.m_vibrato_configs.add( v16 );
|
|
|
|
return ret;
|
|
}
|
|
|
|
public int getVibratoConfigCount() {
|
|
return m_vibrato_configs.size();
|
|
}
|
|
|
|
public int getAttackConfigCount() {
|
|
return m_attack_configs.size();
|
|
}
|
|
|
|
public Iterator vibratoConfigIterator() {
|
|
#if JAVA
|
|
return m_vibrato_configs.iterator();
|
|
#else
|
|
return new ListIterator<VibratoConfig>( m_vibrato_configs );
|
|
#endif
|
|
}
|
|
|
|
public Iterator attackConfigIterator() {
|
|
#if JAVA
|
|
return m_attack_configs.iterator();
|
|
#else
|
|
return new ListIterator<AttackConfig>( m_attack_configs );
|
|
#endif
|
|
}
|
|
|
|
private ExpressionConfigSys() {
|
|
}
|
|
|
|
public ExpressionConfigSys( String path_expdb ) {
|
|
m_vibrato_configs = new Vector<VibratoConfig>();
|
|
m_attack_configs = new Vector<AttackConfig>();
|
|
String expression = PortUtil.combinePath( path_expdb, "expression.map" );
|
|
if ( !PortUtil.isFileExists( expression ) ) {
|
|
#if DEBUG
|
|
PortUtil.println( "ExpressionConfigSys#.ctor; expression.map does not exist" );
|
|
#endif
|
|
return;
|
|
}
|
|
|
|
RandomAccessFile fs = null;
|
|
try {
|
|
fs = new RandomAccessFile( expression, "r" );
|
|
byte[] dat = new byte[8];
|
|
fs.seek( 0x20 );
|
|
for ( int i = 0; i < MAX_VIBRATO; i++ ) {
|
|
fs.read( dat, 0, 8 );
|
|
long value = VocaloSysUtil.makelong_le( dat );
|
|
if ( value <= 0 ) {
|
|
continue;
|
|
}
|
|
|
|
String ved = PortUtil.combinePath( path_expdb, "vexp" + value + ".ved" );
|
|
if ( !PortUtil.isFileExists( ved ) ) {
|
|
continue;
|
|
}
|
|
String vexp_dir = PortUtil.combinePath( path_expdb, "vexp" + value );
|
|
if ( !PortUtil.isFileExists( vexp_dir ) ) {
|
|
continue;
|
|
}
|
|
|
|
#if DEBUG
|
|
PortUtil.println( "ExpresionConfigSys#.ctor; ved=" + ved + "; vexp_dir=" + vexp_dir );
|
|
#endif
|
|
String NL = (char)0x0D + "" + (char)0x0A;
|
|
RandomAccessFile fs_ved = null;
|
|
try {
|
|
fs_ved = new RandomAccessFile( ved, "r" );
|
|
byte[] byte_ved = new byte[(int)fs_ved.length()];
|
|
fs_ved.read( byte_ved, 0, byte_ved.Length );
|
|
TransCodeUtil.decodeBytes( byte_ved );
|
|
String str = PortUtil.getDecodedString( "ASCII", byte_ved );
|
|
#if DEBUG
|
|
String txt_file = PortUtil.combinePath( path_expdb, "vexp" + value + ".txt" );
|
|
using ( System.IO.StreamWriter sw = new System.IO.StreamWriter( txt_file ) ) {
|
|
sw.Write( str );
|
|
}
|
|
#endif
|
|
String[] spl = PortUtil.splitString( str, new String[] { NL }, true );
|
|
String current_entry = "";
|
|
for ( int j = 0; j < spl.Length; j++ ) {
|
|
#if DEBUG
|
|
//PortUtil.println( "ExpressionConfigSys#.ctor; line=" + spl[j] );
|
|
#endif
|
|
if ( spl[j].StartsWith( "[" ) ) {
|
|
current_entry = spl[j];
|
|
continue;
|
|
} else if ( spl[j].Equals( "" ) ) {
|
|
continue;
|
|
}
|
|
if ( current_entry.Equals( "[VIBRATO]" ) ) {
|
|
String[] spl2 = PortUtil.splitString( spl[j], ',' );
|
|
if ( spl2.Length < 6 ) {
|
|
continue;
|
|
}
|
|
// ex: 1,1,"normal","normal2_type1.aic","[Normal]:Type:1","Standard","YAMAHA",0
|
|
VibratoConfig item = new VibratoConfig();
|
|
item.number = PortUtil.parseInt( spl2[0] );
|
|
item.contents.IDS = spl2[2].Replace( "\"", "" );
|
|
item.file = spl2[3].Replace( "\"", "" );
|
|
item.contents.Caption = spl2[4].Replace( ":", " " ).Replace( "\"", "" );
|
|
item.author = spl2[5].Replace( "\"", "" );
|
|
item.vendor = spl2[6].Replace( "\"", "" );
|
|
item.contents.IconID = "$0404" + PortUtil.toHexString( item.number, 4 );
|
|
String aic_file = PortUtil.combinePath( vexp_dir, item.file );
|
|
if ( !PortUtil.isFileExists( aic_file ) ) {
|
|
continue;
|
|
}
|
|
item.parseAic( aic_file );
|
|
m_vibrato_configs.add( item );
|
|
} if ( current_entry.Equals( "[NOTEATTACK]" ) ) {
|
|
String[] spl2 = PortUtil.splitString( spl[j], ',' );
|
|
if ( spl2.Length < 6 ) {
|
|
continue;
|
|
}
|
|
// ex: 1,1,"normal","normal2_type1.aic","[Normal]:Type:1","Standard","YAMAHA",0
|
|
AttackConfig item = new AttackConfig();
|
|
item.number = PortUtil.parseInt( spl2[0] );
|
|
item.contents.IDS = spl2[2].Replace( "\"", "" );
|
|
item.file = spl2[3].Replace( "\"", "" );
|
|
item.contents.Caption = spl2[4].Replace( ":", " " ).Replace( "\"", "" );
|
|
item.author = spl2[5].Replace( "\"", "" );
|
|
item.vendor = spl2[6].Replace( "\"", "" );
|
|
item.contents.IconID = "$0101" + PortUtil.toHexString( item.number, 4 );
|
|
String aic_file = PortUtil.combinePath( vexp_dir, item.file );
|
|
if ( !PortUtil.isFileExists( aic_file ) ) {
|
|
continue;
|
|
}
|
|
item.parseAic( aic_file );
|
|
m_attack_configs.add( item );
|
|
}
|
|
}
|
|
} catch ( Exception ex ) {
|
|
#if DEBUG
|
|
PortUtil.println( "ExpressionConfigSys#.ctor; ex=" + ex );
|
|
#endif
|
|
} finally {
|
|
if ( fs_ved != null ) {
|
|
try {
|
|
fs_ved.close();
|
|
} catch ( Exception ex2 ) {
|
|
#if DEBUG
|
|
PortUtil.println( "ExpressionConfigSys#.ctor; ex2=" + ex2 );
|
|
#endif
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} catch ( Exception ex ) {
|
|
#if DEBUG
|
|
PortUtil.println( "ExpressionConfigSys#.ctor; ex=" + ex );
|
|
#endif
|
|
} finally {
|
|
if ( fs != null ) {
|
|
try {
|
|
fs.close();
|
|
} catch ( Exception ex2 ) {
|
|
#if DEBUG
|
|
PortUtil.println( "ExpressionConfigSys#.ctor; ex2=" + ex2 );
|
|
#endif
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
#if !JAVA
|
|
}
|
|
#endif
|