diff --git a/src/SoundMaker/Sounds/Track.cs b/src/SoundMaker/Sounds/Track.cs
index 7aed704..4c731a5 100644
--- a/src/SoundMaker/Sounds/Track.cs
+++ b/src/SoundMaker/Sounds/Track.cs
@@ -22,13 +22,13 @@ public class Track
/// The wave type.
波形タイプ。
/// The sound format.
サウンドフォーマット。
/// The tempo.
テンポ。
- /// The start time in milliseconds.
開始時間(ミリ秒)。
- internal Track(WaveTypeBase waveType, SoundFormat format, int tempo, int startMilliSecond)
+ /// The start time in index.
開始時間(インデクス)。
+ internal Track(WaveTypeBase waveType, SoundFormat format, int tempo, int startIndex)
{
WaveType = waveType;
_format = format;
_tempo = tempo;
- StartMilliSecond = startMilliSecond;
+ StartIndex = startIndex;
}
@@ -58,15 +58,14 @@ public double Pan
}
internal int EndIndex { get; private set; }
- internal int StartIndex { get; private set; }
- private int _startMilliSecond;
+ private int _startIndex;
///
- /// Gets or sets the start time in milliseconds.
- /// 開始時間(ミリ秒)を取得または設定するプロパティ。
+ /// Gets or sets the start time in index.
+ /// 開始時間(インデクス)を取得または設定するプロパティ。
///
- internal int StartMilliSecond
+ internal int StartIndex
{
- get => _startMilliSecond;
+ get => _startIndex;
set
{
// 負の数は許可しない
@@ -75,11 +74,8 @@ internal int StartMilliSecond
value = 0;
}
- _startMilliSecond = value;
-
- // 開始ミリ秒が変わると開始時、終了時のインデクスも変わるので、再計算する
- var samplingFrequencyMS = (int)_format.SamplingFrequency / 1000.0;
- StartIndex = (int)(StartMilliSecond * samplingFrequencyMS);
+ // 開始インデクスが変わると終了時のインデクスも変わる
+ _startIndex = value;
if (WaveArrayLength == 0)
{
EndIndex = StartIndex;
@@ -103,7 +99,7 @@ public int WaveArrayLength
{
_waveArrayLength = value;
- // 配列の長さが変わると終了時インデクスが変わるので、再計算する
+ // 配列の長さが変わると終了時インデクスが変わる
if (WaveArrayLength == 0)
{
EndIndex = StartIndex;
@@ -245,7 +241,7 @@ public void Import(IEnumerable components)
/// A new instance of the track with the same properties.
同じプロパティを持つトラックの新しいインスタンス。
internal Track Clone()
{
- var copy = new Track(WaveType.Clone(), _format, _tempo, StartMilliSecond)
+ var copy = new Track(WaveType.Clone(), _format, _tempo, StartIndex)
{
WaveArrayLength = WaveArrayLength,
_soundComponents = _soundComponents.Select(component => component.Clone()).ToList()
diff --git a/src/SoundMaker/Sounds/TrackBaseSound.cs b/src/SoundMaker/Sounds/TrackBaseSound.cs
index c371d06..14fabd5 100644
--- a/src/SoundMaker/Sounds/TrackBaseSound.cs
+++ b/src/SoundMaker/Sounds/TrackBaseSound.cs
@@ -36,13 +36,13 @@ public class TrackBaseSound(SoundFormat format, int tempo)
/// Creates a new track with the specified wave type and start time.
/// 指定された波の種類と開始時間で新しいトラックを作成するメソッド。
///
- /// The start time in milliseconds.
開始時間(ミリ秒)。
+ /// The start time in index.
開始時間(インデクス)。
/// The type of wave.
波の種類。
/// A new instance of the track.
新しいトラックのインスタンス。
- public Track CreateTrack(int startMilliSecond, WaveTypeBase waveType)
+ public Track CreateTrack(int startIndex, WaveTypeBase waveType)
{
- var track = new Track(waveType, Format, Tempo, startMilliSecond);
- InsertTrack(startMilliSecond, track);
+ var track = new Track(waveType, Format, Tempo, startIndex);
+ InsertTrack(startIndex, track);
return track;
}
@@ -50,11 +50,11 @@ public Track CreateTrack(int startMilliSecond, WaveTypeBase waveType)
/// Removes all tracks at the specified start time.
/// 指定された開始時間のすべてのトラックを削除するメソッド。
///
- /// The start time in milliseconds.
開始時間(ミリ秒)。
+ /// The start time in index.
開始時間(インデクス)。
/// True if tracks were removed; otherwise, false.
トラックが削除された場合は true、それ以外の場合は false。
- public bool RemoveTracksAt(int startMilliSecond)
+ public bool RemoveTracksAt(int startIndex)
{
- return _tracksTimeMap.Remove(startMilliSecond);
+ return _tracksTimeMap.Remove(startIndex);
}
///
@@ -65,7 +65,7 @@ public bool RemoveTracksAt(int startMilliSecond)
/// True if the track was removed; otherwise, false.
トラックが削除された場合は true、それ以外の場合は false。
public bool RemoveTrack(Track track)
{
- if (_tracksTimeMap.TryGetValue(track.StartMilliSecond, out var tracks))
+ if (_tracksTimeMap.TryGetValue(track.StartIndex, out var tracks))
{
var ok = tracks.Remove(track);
if (!ok)
@@ -75,7 +75,7 @@ public bool RemoveTrack(Track track)
if (tracks.Count == 0)
{
- return _tracksTimeMap.Remove(track.StartMilliSecond);
+ return _tracksTimeMap.Remove(track.StartIndex);
}
return true;
@@ -88,7 +88,7 @@ public bool RemoveTrack(Track track)
/// Gets the list of tracks at the specified start time.
/// 指定された開始時間のトラックのリストを取得するメソッド。
///
- /// The start time in milliseconds.
開始時間(ミリ秒)。
+ /// The start time in index.
開始時間(インデクス)。
///
/// A list of tracks.
/// トラックのリスト。
@@ -96,9 +96,9 @@ public bool RemoveTrack(Track track)
/// 失敗時は空リスト。
///
- public List