-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
📖 Describe the documentation for smsc
- Loading branch information
1 parent
fb5b88f
commit 427e76e
Showing
2 changed files
with
76 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
# SMSCシリアライズ・デシリアライズ | ||
|
||
SMSCデータをシリアライズおよびデシリアライズする方法を示します。 | ||
|
||
### シリアライズ | ||
|
||
以下のコード例では、サウンドコンポーネントをSMSC形式にシリアライズする方法を示しています。 | ||
|
||
#### コード例 | ||
```cs | ||
// using SoundMaker.ScoreData.SMSC; | ||
// using SoundMaker.Sounds.Score; | ||
var components = new List<ISoundComponent>() | ||
{ | ||
new Note(Scale.E, 5, LengthType.Eighth), | ||
new Note(Scale.F, 5, LengthType.Eighth), | ||
new Note(Scale.G, 5, LengthType.Eighth), | ||
}; | ||
var smsc = SMSCFormat.Serialize(components); | ||
Console.WriteLine(smsc); | ||
``` | ||
|
||
#### 詳細な説明 | ||
|
||
1. **サウンドコンポーネントの作成**: `ISoundComponent` を実装したクラス(例:`Note`)のオブジェクトをリストに追加します。 | ||
- `new Note(Scale.E, 5, LengthType.Eighth)`: 音階E、5オクターブ、長さは八分音符の音を作成。 | ||
- 同様に、音階FおよびGの音符も追加します。 | ||
2. **シリアライズ**: `SMSCFormat.Serialize` メソッドを使用して、サウンドコンポーネントのリストをSMSC形式にシリアライズします。 | ||
3. **出力**: シリアライズされたSMSCデータをコンソールに出力します。 | ||
|
||
### デシリアライズ | ||
|
||
以下のコード例では、SMSC形式のデータをサウンドコンポーネントにデシリアライズする方法を示しています。 | ||
|
||
#### コード例 | ||
```cs | ||
// using SoundMaker.ScoreData.SMSC; | ||
// using SoundMaker.Sounds.Score; | ||
var smsc = "C4, 4"; | ||
var result = SMSCFormat.Read(smsc); | ||
if (result.TryGetValue(out IReadOnlyList<ISoundComponent> components)) | ||
{ | ||
} | ||
else | ||
{ | ||
} | ||
``` | ||
|
||
#### 詳細な説明 | ||
|
||
1. **SMSCデータの読み込み**: シリアライズされたSMSC形式の文字列を用意します。例:`"C4, 4"`。 | ||
2. **デシリアライズ**: `SMSCFormat.Read` メソッドを使用して、SMSC形式のデータをサウンドコンポーネントにデシリアライズします。 | ||
3. **結果の確認**: | ||
- `result.TryGetValue(out IReadOnlyList<ISoundComponent> components)`: デシリアライズに成功した場合、サウンドコンポーネントのリストを取得します。 | ||
- デシリアライズに失敗した場合の処理も含めます。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
# SMSCフォーマットとは? | ||
## 概要 | ||
簡単にSoundMaker用の楽譜を記述するためのフォーマットです。詳細な情報は設定できませんが、簡単に記述できます。 | ||
チャンネルやトラックの完全なデータを永続化する目的では利用できないことに注意してください。 | ||
|
||
## 例 | ||
``` | ||
// コメントアウト | ||
// 付点四分音符(音階はC#4) | ||
C#4, 4. | ||
// 休符 | ||
rest, 4. | ||
// タイ と 三連符(4分音符を三等分している) | ||
tie(C4, 4, 4, 4); tup(4, C4, C4, C4) | ||
``` | ||
|
||
## 仕様 | ||
[BNF(バッカス・ナウア記法)](https://github.com/AutumnSky1010/SoundMaker/blob/master/src/SoundMaker/ScoreData/SMSC/SMSC.bnf) | ||
|
||
## 今後の展望 | ||
音量やエフェクトなどを指定できるように仕様を拡張する可能性があります。 |