public class SoundbankParser extends java.lang.Object implements IParser
This class is used in order to load a user-defined soundbank or DLS file or a URL.
It’s also used for retrieving information from the currently loaded (or standard) soundbank.
Modifier and Type | Field and Description |
---|---|
static int |
FROM_FILE |
static int |
FROM_UNKNOWN |
static int |
FROM_URL |
private static java.util.HashMap<java.lang.String,java.lang.String> |
generalInfo
Data structure for general information of the currently loaded soundbank.
|
static java.lang.String |
SOUND_FORMAT_DLS |
static java.lang.String |
SOUND_FORMAT_SF2 |
private static javax.sound.midi.Soundbank |
soundbank
The currently loaded user-defined soundbank.
|
private static java.util.ArrayList<java.util.HashMap<java.lang.String,java.lang.String>> |
soundbankInstruments
Data structure for instruments and drum kits of the currently loaded soundbank.
|
private static java.util.ArrayList<java.util.HashMap<java.lang.String,java.lang.Object>> |
soundbankResources
Data structure for resources of the currently loaded soundbank.
|
private static java.io.File |
soundFile
The successfully loaded soundbank file.
|
private static java.lang.String |
soundFormat
The format of the successfully loaded sound file or URL (SF2 or DLS).
|
private static java.net.URL |
soundUrl
The successfully loaded sound URL.
|
Constructor and Description |
---|
SoundbankParser() |
Modifier and Type | Method and Description |
---|---|
private java.io.File |
getCachedFile(java.net.URL url)
Download and cache the url, if not yet done, and/or returns the cached file.
|
static java.lang.String |
getFullPath()
Returns the long version of the successfully loaded custom sound file or URL.
|
static java.lang.String |
getShortName()
Returns a short name of the successfully loaded sound file or url for displaying in the main window.
|
static java.util.HashMap<java.lang.String,java.lang.String> |
getSoundbankInfo()
Returns general information from the currently loaded soundbank.
|
static java.util.ArrayList<java.util.HashMap<java.lang.String,java.lang.String>> |
getSoundbankInstruments()
Returns instruments and drum kits from the currently loaded soundbank.
|
static java.util.ArrayList<java.util.HashMap<java.lang.String,java.lang.Object>> |
getSoundbankResources()
Returns resources from the currently loaded soundbank.
|
static java.lang.String |
getSoundFormat()
Returns the format of the successfully selected soundbank.
|
static int |
getSource()
Indicates where the currently loaded soundbank has come from.
|
static java.lang.String |
getUrlCacheDir()
Returns the path of the URL cache directory.
|
static java.lang.String |
getUrlHash(java.lang.String url)
Returns the hash of the given url.
|
private static java.lang.String |
makeNumberRangeString(java.util.ArrayList<java.lang.Integer> list)
Transforms a list of numbers into a String describing these numbers in ranges.
|
void |
parse(java.lang.Object fileOrUrl)
Parses a soundbank file or URL.
|
private static void |
parseSoundbankInfo()
Retrieves general information from the currently loaded soundbank.
|
private static void |
parseSoundbankInstruments()
Retrieves instruments and drum kits from the currently loaded soundbank.
|
static void |
parseSoundbankResources()
Retrieves resources from the soundbank.
|
public static final int FROM_UNKNOWN
public static final int FROM_FILE
public static final int FROM_URL
public static final java.lang.String SOUND_FORMAT_SF2
public static final java.lang.String SOUND_FORMAT_DLS
private static javax.sound.midi.Soundbank soundbank
The currently loaded user-defined soundbank.
private static java.io.File soundFile
The successfully loaded soundbank file.
private static java.net.URL soundUrl
The successfully loaded sound URL.
private static java.lang.String soundFormat
The format of the successfully loaded sound file or URL (SF2 or DLS).
private static java.util.HashMap<java.lang.String,java.lang.String> generalInfo
Data structure for general information of the currently loaded soundbank.
private static java.util.ArrayList<java.util.HashMap<java.lang.String,java.lang.String>> soundbankInstruments
Data structure for instruments and drum kits of the currently loaded soundbank.
private static java.util.ArrayList<java.util.HashMap<java.lang.String,java.lang.Object>> soundbankResources
Data structure for resources of the currently loaded soundbank.
public void parse(java.lang.Object fileOrUrl) throws ParseException
Parses a soundbank file or URL.
parse
in interface IParser
fileOrUrl
- file or url (as string) chosen by the userParseException
- if the file can not be loaded correctly.public static java.lang.String getSoundFormat()
Returns the format of the successfully selected soundbank.
public static int getSource()
Indicates where the currently loaded soundbank has come from.
public static java.lang.String getShortName()
Returns a short name of the successfully loaded sound file or url for displaying in the main window.
In case of a file the base name of the file is used.
In case of a URL it’s a possibly shortened form of the url.
If no custom file or URL is loaded successfully, null is returned.
public static java.lang.String getFullPath()
Returns the long version of the successfully loaded custom sound file or URL.
In case of a file, the absolute path is returned.
In case of a URL, the full URL is returned.
If no custom sound is loaded successfully, null is returned.
public static java.util.HashMap<java.lang.String,java.lang.String> getSoundbankInfo()
Returns general information from the currently loaded soundbank.
public static java.util.ArrayList<java.util.HashMap<java.lang.String,java.lang.String>> getSoundbankInstruments()
Returns instruments and drum kits from the currently loaded soundbank.
public static java.util.ArrayList<java.util.HashMap<java.lang.String,java.lang.Object>> getSoundbankResources()
Returns resources from the currently loaded soundbank.
public static java.lang.String getUrlHash(java.lang.String url) throws java.security.NoSuchAlgorithmException
Returns the hash of the given url.
url
- the url to be hashed.java.security.NoSuchAlgorithmException
- if SHA-256 is not supported by the JVM.public static java.lang.String getUrlCacheDir()
Returns the path of the URL cache directory.
java.io.IOException
private java.io.File getCachedFile(java.net.URL url) throws ParseException
Download and cache the url, if not yet done, and/or returns the cached file.
url
- the url to be downloaded.ParseException
- if something goes wrongprivate static void parseSoundbankInfo()
Retrieves general information from the currently loaded soundbank.
private static void parseSoundbankInstruments()
Retrieves instruments and drum kits from the currently loaded soundbank.
public static void parseSoundbankResources()
Retrieves resources from the soundbank.
private static java.lang.String makeNumberRangeString(java.util.ArrayList<java.lang.Integer> list)
Transforms a list of numbers into a String describing these numbers in ranges.
E.g. the list (2, 5, 6, 7, 8, 9, 11, 15, 16, 17, 20) would result in the string 2, 5-9, 11, 15-17, 20
list
- Sorted list of numbers.