0
C# MIDI Toolkit을 사용하여 MIDI 파일에 쓸 수있는 방법을 찾으려고했습니다. 그러나 시간 동기화 문제가 끊임없이 발생하고 있습니다. 결과 MIDI 파일은 항상 박자가 맞습니다. 좀 더 정확히 말하자면, 그것은 자신과 관련하여 올바른 리듬을 가지고 있지만, 시퀀서로 가져올 때, 템포 정보를 포함하지 않는 것 같습니다 (이것은 프로그램 내에서 결코 지정하지 않기 때문에 이해할 수 있습니다). 이 작업을 수행하는 방법에 대한 문서는 없습니다.C#의 MIDI 파일에 쓰기
다음 코드를 사용하여 트랙에 음표를 삽입하고 있습니다.
public const int NOTE_LENGTH = 32;
private static void InsertNote(Track t, int pitch, int velocity, int position, int duration, int channel)
{
ChannelMessageBuilder builder = new ChannelMessageBuilder();
builder.Command = ChannelCommand.NoteOn;
builder.Data1 = pitch;
builder.Data2 = velocity;
builder.MidiChannel = channel;
builder.Build();
t.Insert(position * NOTE_LENGTH, builder.Result);
builder.Command = ChannelCommand.NoteOff;
builder.Build();
t.Insert((position + duration) * NOTE_LENGTH, builder.Result);
}
결과 출력은 들리지만 템포 정보가 없으므로 메모 자체는 괜찮습니다. 내 트랙이 포함 된 Sequence
개체에 템포 정보를 어떻게 입력합니까? NOTE_LENGTH
당신이`Sequence`를 구성 했는가
(3)에 의해 균일하게 궁리 해 낼 수있는이어야한다 : –
구성이 없습니다. 방금 클래스의 객체를 인스턴스화했습니다. 즉,'Sequence seq = new Sequence()'와 같이 추가되었습니다. 생성자는 그다지 제공하지 않으며 속성은 잘 설명되어 있지 않습니다. –
SMF 파일과 속성이 같지 않습니까? –