ManagedSynthBackend
اعلان
public sealed class Strawberry.Sound.Midi.ManagedSynthBackend
backend سینتسایزر MIDI کاملاً managed در C#. خروجی موج پایه (sine, square, sawtooth, triangle, noise) با envelope های سادهی ADSR تولید میکند.
نکات: این backend هیچ وابستگی native ندارد و کاملاً با WebAssembly، کامپایل AOT و هر پلتفرمی که .NET روی آن اجرا میشود سازگار است. صوت قابل تشخیص اما باکیفیت SoundFont تولید نمیکند. برای رندر باکیفیت روی دسکتاپ، از TinySoundFontBackend استفاده کنید. انتخاب موج بهطور سست از شمارههای program General MIDI نگاشت میشود: بازهی program 0-7 → sine/triangle (شبیه پیانو)، 8-15 → triangle (شبیه زنگ)، 16-31 → square/saw (شبیه ارگ/گیتار) و غیره.
پیادهسازی: Strawberry.Sound.Midi.ISynthBackend
سازندهها
ManagedSynthBackend
void ManagedSynthBackend(int sampleRate = 44100, int channels = 2)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
sampleRate |
System.Int32 = 44100 |
|
channels |
System.Int32 = 2 |
ویژگیها
SampleRate
int SampleRate { get }
Channels
int Channels { get }
متدها
NoteOn
void NoteOn(int channel, int key, float velocity)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
channel |
System.Int32 |
|
key |
System.Int32 |
|
velocity |
System.Single |
NoteOff
void NoteOff(int channel, int key)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
channel |
System.Int32 |
|
key |
System.Int32 |
NoteOffAll
void NoteOffAll()
ProgramChange
void ProgramChange(int channel, int program)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
channel |
System.Int32 |
|
program |
System.Int32 |
ControlChange
void ControlChange(int channel, int controller, int value)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
channel |
System.Int32 |
|
controller |
System.Int32 |
|
value |
System.Int32 |
PitchWheel
void PitchWheel(int channel, int value)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
channel |
System.Int32 |
|
value |
System.Int32 |
Reset
void Reset()
RenderShort
int RenderShort(short[] buffer, int offset, int sampleFrames)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
buffer |
System.Int16[] |
|
offset |
System.Int32 |
|
sampleFrames |
System.Int32 |
Dispose
void Dispose()