Quelltexte/ Codesnippets | | | | p.specht
| oder: Warum MIDI in älteren XProfan- bzw. Window-Versionen manchmal schräg klingt ...
Das folgende Machwerk soll helfen, die Abdeckung des General-Midi-Standards durch jene der PC-eigenen Variante bzw. auch der von XProfan zugewiesenen Instrumentierung zu prüfen. Das Progi versucht dabei bereits, die Instrumentennummern möglichst dem GM-Standard anzugleichen (GM-Nr. - 1 = Profannummer, bei Drums: GM-Nr. + 1 = Profannummer).
WindowTitle " GENERAL-MIDI SOUND COMPATIBILITY TESTER"
WindowStyle 24:randomize:font 2
cls
Declare tmp$[],Group$[],Drums$[],i&,j&
'goto "skip"
Goto "GetInfo"
Main:
whileloop 0,sizeof(tmp$[])-1:i&=&Loop
clear group$[]:group$[]=explode(tmp$[i&],",")
cls:locate 2,2:print group$[0];
whileloop sizeof(group$[])-1:j&=&Loop
locate 4,4:print group$[j&];" "
Play val(group$[j&])-1, -1 ,0
Play 45,3,0
endwhile
endwhile
Sound 2000,200
waitinput 2000
skip:
Goto "GetDrumInfo"
PlayDrums:
whileloop 0,sizeof(tmp$[])-1:i&=&Loop
clear Drums$[]:Drums$[]=explode(tmp$[i&],",")
cls:locate 2,2:print Drums$[0];
whileloop sizeof(Drums$[])-1:j&=&Loop
locate 4,4:print Drums$[j&];" "
Play 0;0;0;val(Drums$[j&])+1,0,0
waitinput 50
Play 0;0;0;val(Drums$[j&])+1,0,0
waitinput 150
Play 0;0;0;val(Drums$[j&])+1,0,0
waitinput 1000
endwhile
endwhile
Sound 1000,50
waitinput 200
Sound 1000,400
print "\n\n E N D E "
waitinput
END
GetInfo:
clear tmp$[]
tmp$[]=explode(\
\
"Piano:,"+\
"1 Acoustic_Grand_Piano,"+\
"2 Bright_Acoustic_Piano,"+\
"3 Electric_Grand_Piano,"+\
"4 Honky-tonk_Piano,"+\
"5 Electric_Piano_1,"+\
"6 Electric_Piano_2,"+\
"7 Harpsichord,"+\
"8 Clavi|"+\
\
"Chromatic_Percussion:,"+\
"9 Celesta,"+\
"10 Glockenspiel,"+\
"11 Music_Box,"+\
"12 Vibraphone,"+\
"13 Marimba,"+\
"14 Xylophone,"+\
"15 Tubular_Bells,"+\
"16 Dulcimer|"+\
\
"Organ:,"+\
"17 Drawbar_Organ,"+\
"18 Percussive_Organ,"+\
"19 Rock_Organ,"+\
"20 Church_Organ,"+\
"21 Reed_Organ,"+\
"22 Accordion,"+\
"23 Harmonica,"+\
"24 Tango_Accordion|"+\
\
"Guitar:,"+\
"25 Acoustic_Guitar_(nylon),"+\
"26 Acoustic_Guitar_(steel),"+\
"27 Electric_Guitar_(jazz),"+\
"28 Electric_Guitar_(clean),"+\
"29 Electric_Guitar_(muted),"+\
"30 Overdriven_Guitar,"+\
"31 Distortion_Guitar,"+\
"32 Guitar_harmonics|"+\
\
"Bass:,"+\
"33 Acoustic_Bass,"+\
"34 Electric_Bass_(finger),"+\
"35 Electric_Bass_(pick),"+\
"36 Fretless_Bass,"+\
"37 Slap_Bass_1,"+\
"38 Slap_Bass_2,"+\
"39 Synth_Bass_1,"+\
"40 Synth_Bass_2|"+\
\
"Strings:,"+\
"41 Violin,"+\
"42 Viola,"+\
"43 Cello,"+\
"44 Contrabass,"+\
"45 Tremolo_Strings,"+\
"46 Pizzicato_Strings,"+\
"47 Orchestral_Harp,"+\
"48 Timpani|"+\
\
"Ensemble:,"+\
"49 String_Ensemble_1,"+\
"50 String_Ensemble_2,"+\
"51 Synth_Strings_1,"+\
"52 Synth_Strings_2,"+\
"53 Voice_Aahs,"+\
"54 Voice_Oohs,"+\
"55 Synth_Voice,"+\
"56 Orchestra_Hit|"+\
\
"Brass:,"+\
"57 Trumpet,"+\
"58 Trombone,"+\
"59 Tuba,"+\
"60 Muted_Trumpet,"+\
"61 French_Horn,"+\
"62 Brass_Section,"+\
"63 Synth_Brass_1,"+\
"64 Synth_Brass_2|"+\
\
"Reed:,"+\
"65 Soprano_Sax,"+\
"66 Alto_Sax,"+\
"67 Tenor_Sax,"+\
"68 Baritone_Sax,"+\
"69 Oboe,"+\
"70 English_Horn,"+\
"71 Bassoon,"+\
"72 Clarinet|"+\
\
"Pipe:,"+\
"73 Piccolo,"+\
"74 Flute,"+\
"75 Recorder,"+\
"76 Pan_Flute,"+\
"77 Blown_Bottle,"+\
"78 Shakuhachi,"+\
"79 Whistle,"+\
"80 Ocarina,"+\
\
"Synth_Lead:,"+\
"81 Lead_1_(square),"+\
"82 Lead_2_(sawtooth),"+\
"83 Lead_3_(calliope),"+\
"84 Lead_4_(chiff),"+\
"85 Lead_5_(charang),"+\
"86 Lead_6_(voice),"+\
"87 Lead_7_(fifths),"+\
"88 Lead_8_(bass_+_lead)|"+\
\
"Synth_Pad:,"+\
"89 Pad_1_(new_age),"+\
"90 Pad_2_(warm),"+\
"91 Pad_3_(polysynth),"+\
"92 Pad_4_(choir),"+\
"93 Pad_5_(bowed),"+\
"94 Pad_6_(metallic),"+\
"95 Pad_7_(halo),"+\
"96 Pad_8_(sweep)|"+\
\
"Synth_Effects:,"+\
"97 FX_1_(rain),"+\
"98 FX_2_(soundtrack),"+\
"99 FX_3_(crystal),"+\
"100 FX_4_(atmosphere),"+\
"101 FX_5_(brightness),"+\
"102 FX_6_(goblins),"+\
"103 FX_7_(echoes),"+\
"104 FX_8_(sci-fi)|"+\
\
"Ethnic:,"+\
"105 Sitar,"+\
"106 Banjo,"+\
"107 Shamisen,"+\
"108 Koto,"+\
"109 Kalimba,"+\
"110 Bagpipe,"+\
"111 Fiddle,"+\
"112 Shanai|"+\
\
"Percussive:,"+\
"113 Tinkle_Bell,"+\
"114 Agogo_Bells,"+\
"115 Steel_Drums,"+\
"116 Woodblock,"+\
"117 Taiko_Drum,"+\
"118 Melodic_Tom,"+\
"119 Synth_Drum,"+\
"120 Reverse_Cymbal|"+\
\
"Sound_effects:,"+\
"121 Guitar_Fret_Noise,"+\
"122 Breath_Noise,"+\
"123 Seashore,"+\
"124 Bird_Tweet,"+\
"125 Telephone_Ring,"+\
"126 Helicopter,"+\
"127 Applause,"+\
"128 Gunshot" ,"|")
Goto "Main"
GetDrumInfo:
clear tmp$[]:tmp$[]=explode(\
"Drumkits_Kanal_4-Note:,"+\
"1 Standard_Kit,"+\
"9 Room_Kit,"+\
"17 Power_Kit,"+\
"25 Electronic_Kit,"+\
"26 TR-808_Kit,"+\
"33 Jazz_Kit,"+\
"41 Brush_Kit,"+\
"49 Orchestra_Kit,"+\
"57 Sound_FX_Kit,"+\
"128 Percussion|"+\
\
"Perkussionsklänge_Kanal4:,"+\
"35 Bass_Drum_2,"+\
"36 Bass_Drum_1,"+\
"37 Side_Stick,"+\
"38 Snare_Drum_1,"+\
"39 Hand_Clap,"+\
"40 Snare_Drum_2,"+\
"41 Low_Tom_2,"+\
"42 Closed_Hi-hat,"+\
"43 Low_Tom_1,"+\
"44 Pedal_Hi-hat,"+\
"45 Mid_Tom_2,"+\
"46 Open_Hi-hat,"+\
"47 Mid_Tom_1,"+\
"48 High_Tom_2,"+\
"49 Crash_Cymbal_1,"+\
"50 High_Tom_1,"+\
"51 Ride_Cymbal_1,"+\
"52 Chinese_Cymbal,"+\
"53 Ride_Bell,"+\
"54 Tambourine,"+\
"55 Splash_Cymbal,"+\
"56 Cowbell,"+\
"57 Crash_Cymbal_2,"+\
"58 Vibra|"+\
\
"Slap:,"+\
"59 Ride_Cymbal_2,"+\
"60 High_Bongo,"+\
"61 Low_Bongo,"+\
"62 Mute_High_Conga,"+\
"63 Open_High_Conga,"+\
"64 Low_Conga,"+\
"65 High_Timbale,"+\
"66 Low_Timbale,"+\
"67 High_Agogo,"+\
"68 Low_Agogo,"+\
"69 Cabasa,"+\
"70 Maracas,"+\
"71 Short_Whistle,"+\
"72 Long_Whistle,"+\
"73 Short_Guiro,"+\
"74 Long_Guiro,"+\
"75 Claves,"+\
"76 High_Wood_Block,"+\
"77 Low_Wood_Block,"+\
"78 Mute_Cuica,"+\
"79 Open_Cuica,"+\
"80 Mute_Triangle,"+\
"81 Open_Triangle" ,"|")
Goto "PlayDrums
|
| | | XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 22.05.2021 ▲ |
| |
| | p.specht
| P.S. zu oben: Die Profan-Drumkit-Belegung geht über den Light-GM-Midi-Standard hinaus, wobei sich manche Geräuscherzeuger aber wiederholen. Es wurden alle oben nicht verwendeten Drum-Nummern akkustisch überprüft, die belegten können hiermit abgespielt werden:
WindowTitle "Sondertest: Profan-spezifische Midi-Drumarten"
var t&=200
lup:
cls
Play 0;0;0;27,0,0 : waitinput t&
Play 0;0;0;28,0,0 : waitinput t&
Play 0;0;0;29,0,0 : waitinput t&
Play 0;0;0;30,0,0 : waitinput t&
Play 0;0;0;31,0,0 : waitinput t&
Play 0;0;0;32,0,0 : waitinput t&
Play 0;0;0;33,0,0 : waitinput t&
Play 0;0;0;34,0,0 : waitinput t&
print:print 35:Play 0;0;0;35,0,0 : waitinput t&
print:print 36:Play 0;0;0;36,0,0 : waitinput t&
print:print 78:Play 0;0;0;78,0,0 : waitinput t&
print:print 79:Play 0;0;0;79,0,0 : waitinput t&
Play 0;0;0;80,0,0 : waitinput t&
Play 0;0;0;81,0,0 : waitinput t&
Play 0;0;0;82,0,0 : waitinput t&
Play 0;0;0;83,0,0 : waitinput t&
Play 0;0;0;84,0,0 : waitinput t&
Play 0;0;0;85,0,0 : waitinput t&
Play 0;0;0;86,0,0 : waitinput t&
Play 0;0;0;87,0,0 : waitinput t&
print:print 88:Play 0;0;0;88,0,0 : waitinput t&
waitinput 2000
goto "lup"
|
| | | XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 22.05.2021 ▲ |
| |
|
Zum QuelltextThemenoptionen | 1.645 Betrachtungen |
ThemeninformationenDieses Thema hat 1 Teilnehmer: |