public final class Le4MusicUtils
extends java.lang.Object
修飾子とタイプ | フィールドと説明 |
---|---|
static double |
f0LowerBound
基本周波数の下限 (Hz)
|
static int |
f0Resolution
基本周波数のオクターブあたりの解像度
|
static double |
f0Standard
基本周波数の基準値 (Hz)
|
static double |
f0UpperBound
基本周波数の上限 (Hz)
|
static double |
frameDuration
短時間分析におけるフレームの長さのデフォルト値(秒)
|
static double |
frameInterval
Recorder および Player がフレームを通知する間隔のデフォルト値(秒)
|
static java.lang.String |
outputImageExt
出力画像のデフォルト拡張子
|
static double |
pdfPrintableHeight |
static double |
pdfPrintableWidth |
static double |
sampleRate
録音時のサンプリング周波数のデフォルト値 (Hz)
|
static int |
sampleSizeInBits
録音時の量子化ビット数のデフォルト値
|
static double |
shiftDuration
短時間分析におけるフレームのシフト長のデフォルト値(秒)
|
static double |
spectrogramDuration
スペクトログラムの長さのデフォルト値(秒)
|
static double |
spectrumAmplitudeLowerBound
スペクトルプロット時の振幅範囲下限のデフォルト値 (dB)
|
static double |
spectrumAmplitudeUpperBound
スペクトルプロット時の振幅範囲上限のデフォルト値 (dB)
|
static boolean |
verbose
コマンドラインオプション "-v" や "--verbose" 処理用.
|
static double |
waveformAmplitudeBounds
波形プロット時の振幅範囲のデフォルト値,0を中心としてこの値のプラスマイナス両方向.
|
修飾子とタイプ | メソッドと説明 |
---|---|
static int |
argmax(double[] a)
配列中の最大値のインデックスを返す.
|
static double |
autoTickUnit(double x)
NumberAxis を生成する際に、
範囲を表すdouble 値に対して
「ちょうどいい」tickUnit(データ単位の各大目盛の間の値)を返す。 |
static double[] |
blackmanharris(int size)
与えられた長さおよび範囲(標準偏差の何倍か)をもつ
ブラックマンハリス窓を返す.
|
static org.apache.commons.math3.complex.Complex[] |
fft(org.apache.commons.math3.complex.Complex[] src)
入力複素配列をフーリエ変換する.
|
static org.apache.commons.math3.complex.Complex[] |
fft(double[] src)
入力実配列をフーリエ変換する.
|
static double[] |
gaussian(int size)
与えられた長さをもつガウス窓を返す.
|
static double[] |
gaussian(int size,
double sigmas)
与えられた長さおよび範囲(標準偏差の何倍か)をもつガウス窓を返す.
|
static java.lang.String[] |
getFilenameWithImageExt(java.util.Optional<java.lang.String> filenameOpt,
java.lang.String defaultFilename) |
static double[] |
hamming(int size)
与えられた長さのハミング窓 (hamming window) を返す.
|
static double[] |
hanning(int size)
与えられた長さのハン窓 (hann window) を返す.
|
static int |
highestOneBit(int n)
与えられた数nのビットが1である最大の桁を求める.
|
static double |
hz2nn(double hz)
ヘルツ単位の周波数をMIDIノートナンバーに変換する.
|
static org.apache.commons.math3.complex.Complex[] |
ifft(org.apache.commons.math3.complex.Complex[] src)
入力複素配列を逆フーリエ変換する.
|
static org.apache.commons.math3.complex.Complex[] |
ifft(double[] src)
入力実配列を逆フーリエ変換する.
|
static double[] |
irfft(org.apache.commons.math3.complex.Complex[] src)
入力複素配列(長さ 2n-1+1)をフーリエ変換し,
実配列(長さ 2n)を返す.
|
static double |
log2(double x)
double 値の2を底とする対数を返す。 |
static <T> java.util.Map.Entry<java.lang.Double,T> |
nearest(java.util.NavigableMap<java.lang.Double,T> nmap,
double key)
最近傍の値をキーに持つエントリを返す.
|
static java.util.concurrent.ScheduledExecutorService |
newSingleDaemonThreadScheduledExecutor() |
static int |
nextPow2(int n)
与えられた数nに対して 2p ≧ n を満たす最小のpを求める.
|
static double |
nn2hz(double nn)
MIDIノートナンバーをヘルツ単位の周波数に変換する.
|
static void |
printToPdf(javafx.scene.Node node) |
static double[][] |
readWaveform(javax.sound.sampled.AudioInputStream stream)
AudioInputStreamからデータを読み込んでデコードし,
チャネルごとの波形が格納された配列を返す.
|
static double[] |
readWaveformMonaural(javax.sound.sampled.AudioInputStream stream)
AudioInputStreamからデータを読み込んでデコードし,
全チャネルの平均波形が格納された配列を返す.
|
static double[] |
readWaveformMonaural(javax.sound.sampled.AudioInputStream stream,
int channel)
AudioInputStreamからデータを読み込んでデコードし,
指定されたチャネルの波形が格納された配列を返す.
|
static double[] |
rectangle(int size)
与えられた長さの矩形窓 (rectangular window) を返す.
|
static org.apache.commons.math3.complex.Complex[] |
rfft(double[] src)
入力実配列(長さ 2n)をフーリエ変換し,
複素配列(長さ 2n-1+1)を返す.
|
static void |
showAlertAndWait(java.lang.String contentText) |
static void |
showAlertAndWait(java.lang.String contentText,
java.lang.Throwable e) |
static java.util.stream.Stream<double[]> |
sliding(double[] x,
double[] window,
int shiftSize)
窓関数を用いた配列の切り出しを行う.
|
static java.util.stream.Stream<double[]> |
sliding(double[] x,
int windowSize,
int shiftSize)
窓関数を用いた配列の切り出しを行う.
|
public static boolean verbose
public static final double sampleRate
public static final int sampleSizeInBits
public static final double waveformAmplitudeBounds
public static final double spectrumAmplitudeLowerBound
public static final double spectrumAmplitudeUpperBound
public static final double frameDuration
public static final double shiftDuration
public static final double frameInterval
public static final double spectrogramDuration
public static final double f0Standard
public static final double f0LowerBound
public static final double f0UpperBound
public static final int f0Resolution
public static final java.lang.String outputImageExt
public static final double pdfPrintableWidth
public static final double pdfPrintableHeight
public static final int nextPow2(int n)
nextPow2(15) = 4
, nextPow2(16) = 4
,
nextPow2(17) = 5
となる.n
- 整数public static final int highestOneBit(int n)
highestOneBit(2) = 2
, highestOneBit(3) = 2
,
highestOneBit(4) = 3
となる.n
- 整数public static final java.util.stream.Stream<double[]> sliding(double[] x, int windowSize, int shiftSize)
Stream
インタフェースを実装するため,
切り出し処理そのものは遅延評価される.x
- 切り出される配列windowSize
- 窓関数の長さshiftSize
- 窓関数のシフト長public static final java.util.stream.Stream<double[]> sliding(double[] x, double[] window, int shiftSize)
Stream
インタフェースを実装するため,
切り出し処理そのものは遅延評価される.x
- 切り出される配列window
- 窓関数shiftSize
- 窓関数のシフト長public static final org.apache.commons.math3.complex.Complex[] fft(org.apache.commons.math3.complex.Complex[] src)
src
- 入力複素配列java.lang.IllegalArgumentException
- 配列長が2のべき乗でないときpublic static final org.apache.commons.math3.complex.Complex[] fft(double[] src)
fft(Complex[])
と等価である.src
- 入力実配列java.lang.IllegalArgumentException
- 配列長が2のべき乗でないときpublic static final org.apache.commons.math3.complex.Complex[] ifft(org.apache.commons.math3.complex.Complex[] src)
src
- 入力複素配列java.lang.IllegalArgumentException
- 配列長が2のべき乗でないときpublic static final org.apache.commons.math3.complex.Complex[] ifft(double[] src)
fft(Complex[])
の実行と等価である.src
- 入力実配列java.lang.IllegalArgumentException
- 配列長が2のべき乗でないときpublic static final org.apache.commons.math3.complex.Complex[] rfft(double[] src)
src
- 入力実配列java.lang.IllegalArgumentException
- 配列長が2のべき乗でないときpublic static final double[] irfft(org.apache.commons.math3.complex.Complex[] src)
src
- 入力複素配列java.lang.IllegalArgumentException
- 配列長が2のべき乗でないときpublic static final double[] rectangle(int size)
size
- 窓の長さpublic static final double[] hanning(int size)
size
- 窓の長さpublic static final double[] hamming(int size)
size
- 窓の長さpublic static final double[] gaussian(int size, double sigmas)
size
- 窓の長さsigmas
- ガウス関数の範囲public static final double[] gaussian(int size)
gaussian(size, 3.0)
と等価である.size
- 窓の長さpublic static final double[] blackmanharris(int size)
size
- 窓の長さpublic static final double nn2hz(double nn)
nn
- MIDIノートナンバーpublic static final double hz2nn(double hz)
hz
- 周波数public static final double log2(double x)
double
値の2を底とする対数を返す。x
- 値x
の2を底とする対数public static final int argmax(double[] a)
a
- 配列public static final <T> java.util.Map.Entry<java.lang.Double,T> nearest(java.util.NavigableMap<java.lang.Double,T> nmap, double key)
T
- エントリの値の型nmap
- Double値をキーにもつマップkey
- 探索キーpublic static final double[][] readWaveform(javax.sound.sampled.AudioInputStream stream) throws java.io.IOException
stream
- ストリームjava.io.IOException
- 入出力例外が発生した場合public static final double[] readWaveformMonaural(javax.sound.sampled.AudioInputStream stream) throws java.io.IOException
stream
- ストリームjava.io.IOException
- 入出力例外が発生した場合public static final double[] readWaveformMonaural(javax.sound.sampled.AudioInputStream stream, int channel) throws java.io.IOException
stream
- ストリームchannel
- 波形を取り出すチャネルjava.io.IOException
- 入出力例外が発生した場合public static final double autoTickUnit(double x)
NumberAxis
を生成する際に、
範囲を表すdouble
値に対して
「ちょうどいい」tickUnit(データ単位の各大目盛の間の値)を返す。
典型的な使用法は以下の通り。
double lowerBound = 0.0;
double upperBound = waveform.length / sampleRate;
final NumberAxis xAxis = new NumberAxis(
"Time (seconds)",
lowerBound,
upperBound,
autoTickunit(upperBound - lowerBound)
);
x
- 範囲double
値java.lang.IllegalArgumentException
- x
が正実数でない場合public static final java.lang.String[] getFilenameWithImageExt(java.util.Optional<java.lang.String> filenameOpt, java.lang.String defaultFilename)
public static final void printToPdf(javafx.scene.Node node)
public static final java.util.concurrent.ScheduledExecutorService newSingleDaemonThreadScheduledExecutor()
public static final void showAlertAndWait(java.lang.String contentText, java.lang.Throwable e)
public static final void showAlertAndWait(java.lang.String contentText)