Los archivos midi se reproducen por canales...
generalmente un archivo midi tiene hasta 16 canales..
en cada canal hay un instrumento...
mi preguntas es puedo solo tocar un canal???
o solo se pueden tocar todos a la vex...??
program test_songchannel;
global
midi_id;
midi_channels[31];
count;
is_muted;
midinf_channels, midinf_length;
chninf_time;
channel_id;
begin
set_mode(m512x384);
midi_id = load_midi("midi\Dragon Ball Z - Majin Bu Saga.mid", 1);
set_midi_channelvolume(midi_id, 0, 0); // channel 0
//set_midi_channelvolume(midi_id, 1, 0); // channel 1
set_midi_channelvolume(midi_id, 2, 0); // channel 2
//set_midi_channelvolume(midi_id, 3, 0); // channel 3
set_midi_channelvolume(midi_id, 4, 0); // channel 4
set_midi_channelvolume(midi_id, 5, 0); // channel 5
set_midi_channelvolume(midi_id, 6, 0); // channel 6
//set_midi_channelvolume(midi_id, 7, 0); // channel 7
set_midi_channelvolume(midi_id, 8, 0); // channel 8
set_midi_channelvolume(midi_id, 9, 0); // channel 9
from count = 0 to 9;
midi_channels[count] = get_midi_channelvolume(midi_id, count);
end
from count = 0 to 9;
write_int(0, 256, (count * 10) + 5, 4, &midi_channels[count]);
end
channel_id = play_midi(midi_id);
write_int(0, 10, 10, 3, &is_muted);
write(0, 10, 30, 3, "CHANNELS.:"); write_int(0, 76, 30, 3, &midinf_channels);
write(0, 10, 40, 3, "LENGTH...:"); write_int(0, 76, 40, 3, &midinf_length);
write(0, 10, 50, 3, "TIME.....:"); write_int(0, 76, 50, 3, &chninf_time);
midinf_channels = midi_info(midi_id, mid_channels);
midinf_length = midi_info(midi_id, mid_length);
repeat
if(key(_space))
mute_midichannel(midi_id, 3);
end
if(key(_enter))
unmute_midichannel(midi_id, 3);
end
is_muted = is_muted_midichannel(midi_id, 3);
chninf_time = channel_info(channel_midi, channel_id, chn_midi_time);
frame;
until(key(_esc));
end
Users browsing this forum: No registered users and 3 guests