Deutsch
Quelltexte/ Codesnippets

General-Midi Standard: Sound Compatibility Test

 

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 11
Computer: 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 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
22.05.2021  
 



Zum Quelltext


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

1.645 Betrachtungen

Unbenanntvor 0 min.
p.specht20.11.2021
Uwe Lang20.11.2021
Manfred Barei19.11.2021
Sven Bader19.11.2021
Mehr...

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

p.specht (2x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie