Add(MainForm,1097409,454,364)
{
Left=20
Top=105
Width=580
Height=395
link(onCreate,10638232:doInit,[(508,405)(508,433)])
}
Add(InlineCode,10638232,531,427)
{
@Hint=#8:MIDI OUT|
WorkPoints=#6:doInit|7:doSound|
EventPoints=#7:onSound|5:onErr|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|38:uses kol,Share,Debug,Windows,mmsystem;|0:|4:type|28: THiAsmClass = class(TDebug)|0:|10: private|0:|12: protected|0:|9: public|23: onSound:THI_Event;|21: onErr:THI_Event;|26: _data_Data:THI_Event;|0:|50: procedure doSound(var _Data:TData; Index:word);|49: procedure doInit(var _Data:TData; Index:word);|0:|0:|5: end;|0:|14:implementation|19: var hmo:hmidiout;|60: procedure THiAsmClass.doInit(var _Data:TData; Index:word);|19: var err:integer;|8: begin|59: err := midiOutOpen(@hmo,midi_mapper,0,0,callback_null);|64: if err = MMSYSERR_NOERROR then _hi_OnEvent(onErr,'MIDI OUT')|41: else _hi_OnEvent(onErr,'MIDI ERROR');|7: end;|61: procedure THiAsmClass.doSound(var _Data:TData; Index:word);|17: var i:integer;|19: kod:integer;|8: begin|28: kod := ToInteger(_Data);|29: midioutshortmsg(hmo,kod);|112: //midioutshortmsg(hmo,$000011c0);//назначить каналу инструмент(Cn): 29-вроде как струнные, n - номер канала|121: //midiOutShortMsg(hmo,$003f3d90);// включить ноту(9n) :n- номер канала, 3d - номер ноты 3f - скорость нажатия клавиши|17: //sleep(300);|120: //midiOutShortMsg(hmo,$003f3d80);//выключить ноту(8n):n- номер канала, 3d - номер ноты 3f - скорость нажатия клавиши|0:|29: _hi_OnEvent(onSound,kod);|7: end;|0:|4:end.|
link(onSound,14093082:doEvent1,[])
link(onErr,14093082:doEvent2,[])
}
Add(Label,13435402,146,126)
{
Left=45
Top=15
Width=134
Height=27
Font=[Courier New,16,1,0,204]
Caption="Инструмент"
}
Add(Memory,14471918,258,126)
{
}
Add(ChanelToIndex,6256554,-36,308)
{
Count=12
link(onIndex,12069974:doOperation,[])
}
Add(StrCat,5933356,258,308)
{
link(onStrCat,261095:doEvent1,[(351,314)(351,440)])
link(Str1,14471918:Value,[(264,299)(264,299)])
link(Str2,13641412:Text,[(271,286)(208,286)])
}
Add(ListBox,8317388,636,427)
{
Left=330
Top=140
Width=235
Height=215
TabOrder=5
}
Add(Convertor,11836004,454,434)
{
Mode=5
Digits=8
link(onResult,10638232:doSound,[])
}
Add(Convertor,16725640,209,126)
{
Mode=6
Digits=1
link(onResult,14471918:doValue,[])
}
Add(Hub,13885270,146,77)
{
link(onEvent1,13258399:doRead,[])
link(onEvent2,16725640:doConvert,[(190,90)(190,132)])
}
Add(Hub,14093082,580,427)
{
InCount=2
OutCount=1
link(onEvent1,8317388:doAdd,[])
}
Add(Edit,14211843,307,336)
{
Left=460
Top=50
Width=60
Height=30
TabOrder=4
Font=[Courier New,16,1,0,204]
Text="3f"
}
Add(VisualShape,3859039,-225,210)
{
@Hint=#2:F#|
Left=175
Top=140
Width=30
Height=130
Color2=0
Point(onMouseDown)
Point(onMouseUp)
link(onMouseDown,6256554:doWork7,[(-76,216)(-76,356)])
link(onMouseUp,4300941:doWork7,[(-140,223)(-140,447)])
}
Add(Convertor,3985743,55,399)
{
Mode=6
link(onResult,4217572:doValue,[])
}
Add(Memory,4217572,104,399)
{
link(onData,7788634:doStrCat,[(151,405)(151,510)])
}
Add(GetData,10790850,307,392)
{
link(Data,14211843:Text,[])
}
Add(Label,7530642,258,357)
{
Left=360
Top=55
Width=92
Height=26
Font=[Courier New,14,1,0,204]
Caption="Скорость"
}
Add(Hub,11315478,153,308)
{
OutCount=3
link(onEvent1,5933356:doStrCat,[(218,314)(218,314)])
link(onEvent2,15916298:doStrCat,[(193,321)(193,447)])
}
Add(StrCat,15916298,209,441)
{
link(onStrCat,6361820:doStrCat,[])
link(Str1,10790850:Data1,[(215,429)(313,429)])
link(Str2,12250172:Value,[(222,391)(110,391)])
}
Add(Memory,12250172,104,308)
{
link(onData,11315478:doEvent1,[])
}
Add(Math,2647514,6,399)
{
Op2=60
ResultType=0
link(onResult,3985743:doConvert,[])
}
Add(StrCat,7788634,314,504)
{
link(onStrCat,16258123:doStrCat,[])
link(Str1,10790850:Data2,[])
link(Str2,4217572:Value,[(327,492)(110,492)])
}
Add(StrCat,6361820,258,441)
{
Str2="90"
link(onStrCat,261095:doEvent2,[])
}
Add(StrCat,16258123,363,504)
{
Str2="80"
link(onStrCat,261095:doEvent3,[(403,510)(403,454)])
}
Add(Hub,261095,412,434)
{
InCount=3
OutCount=1
link(onEvent1,11836004:doConvert,[])
}
Add(UpDown,14699841,90,77)
{
Left=525
Top=10
Width=40
Height=30
TabOrder=2
Max=128
Kind=0
link(onPosition,13885270:doEvent1,[])
}
Add(ArrayRW,13258399,209,77)
{
link(onRead,11272637:doText,[])
link(Array,6454927:Array,[])
}
Add(Edit,11272637,258,77)
{
Left=185
Top=10
Width=335
Height=30
TabOrder=1
Font=[Courier New,16,1,0,204]
Text="Acoustic Grand Piano"
ReadOnly=0
}
Add(StrList,6454927,195,7)
{
Strings=#20:Acoustic Grand Piano|21:Bright Acoustic Piano|20:Electric Grand Piano|16:Honky-tonk Piano|16:Electric Piano 1|16:Electric Piano 2|11:Harpsichord|5:Clavi|7:Celesta|12:Glockenspiel|9:Music Box|10:Vibraphone|7:Marimba|9:Xylophone|13:Tubular Bells|8:Dulcimer|13:Drawbar Organ|16:Percussive Organ|10:Rock Organ|12:Church Organ|10:Reed Organ|9:Accordion|9:Harmonica|15:Tango Accordion|23:Acoustic Guitar (nylon)|23:Acoustic Guitar (steel)|22:Electric Guitar (jazz)|23:Electric Guitar (clean)|23:Electric Guitar (muted)|17:Overdriven Guitar|17:Distortion Guitar|16:Guitar harmonics|13:Acoustic Bass|22:Electric Bass (finger)|20:Electric Bass (pick)|13:Fretless Bass|11:Slap Bass 1|11:Slap Bass 2|12:Synth Bass 1|12:Synth Bass 2|6:Violin|5:Viola|5:Cello|10:Contrabass|15:Tremolo Strings|17:Pizzicato Strings|15:Orchestral Harp|7:Timpani|17:String Ensemble 1|17:String Ensemble 2|14:SynthStrings 1|14:SynthStrings 2|10:Choir Aahs|10:Voice Oohs|11:Synth Voice|13:Orchestra Hit|7:Trumpet|8:Trombone|4:Tuba|13:Muted Trumpet|11:French Horn|13:Brass Section|12:SynthBrass 1|12:SynthBrass 2|11:Soprano Sax|8:Alto Sax|9:Tenor Sax|12:Baritone Sax|4:Oboe|12:English Horn|7:Bassoon|8:Clarinet|7:Piccolo|5:Flute|8:Recorder|9:Pan Flute|12:Blown Bottle|10:Shakuhachi|7:Whistle|7:Ocarina|15:Lead 1 (square)|17:Lead 2 (sawtooth)|17:Lead 3 (calliope)|14:Lead 4 (chiff)|16:Lead 5 (charang)|14:Lead 6 (voice)|15:Lead 7 (fifths)|20:Lead 8 (bass + lead)|15:Pad 1 (new age)|12:Pad 2 (warm)|17:Pad 3 (polysynth)|13:Pad 4 (choir)|13:Pad 5 (bowed)|16:Pad 6 (metallic)|12:Pad 7 (halo)|13:Pad 8 (sweep)|11:FX 1 (rain)|17:FX 2 (soundtrack)|14:FX 3 (crystal)|17:FX 4 (atmosphere)|17:FX 5 (brightness)|14:FX 6 (goblins)|13:FX 7 (echoes)|13:FX 8 (sci-fi)|5:Sitar|5:Banjo|8:Shamisen|4:Koto|7:Kalimba|8:Bag pipe|6:Fiddle|6:Shanai|11:Tinkle Bell|5:Agogo|11:Steel Drums|9:Woodblock|10:Taiko Drum|11:Melodic Tom|10:Synth Drum|14:Reverse Cymbal|17:Guitar Fret Noise|12:Breath Noise|8:Seashore|10:Bird Tweet|14:Telephone Ring|10:Helicopter|8:Applause|7:Gunshot|
}
Add(Edit,13641412,202,231)
{
Left=185
Top=55
Width=70
Height=30
TabOrder=3
Font=[Courier New,14,1,0,204]
Text="C0"
ReadOnly=0
}
Add(VisualShape,11039649,-225,385)
{
@Hint=#1:H|
Left=280
Top=140
Width=45
Height=215
Point(onMouseDown)
Point(onMouseUp)
link(onMouseDown,6256554:doWork12,[])
link(onMouseUp,4300941:doWork12,[(-165,398)(-165,482)])
}
Add(VisualShape,14091497,-225,315)
{
@Hint=#1:A|
Left=235
Top=140
Width=45
Height=215
Point(onMouseDown)
Point(onMouseUp)
link(onMouseDown,6256554:doWork10,[(-91,321)(-91,377)])
link(onMouseUp,4300941:doWork10,[(-155,328)(-155,468)])
}
Add(VisualShape,3489361,-225,245)
{
@Hint=#1:G|
Left=190
Top=140
Width=45
Height=215
Point(onMouseDown)
Point(onMouseUp)
link(onMouseDown,6256554:doWork8,[(-81,251)(-81,363)])
link(onMouseUp,4300941:doWork8,[(-145,258)(-145,454)])
}
Add(VisualShape,16444157,-225,175)
{
@Hint=#1:F|
Left=145
Top=140
Width=45
Height=215
Point(onMouseDown)
Point(onMouseUp)
link(onMouseDown,6256554:doWork6,[(-71,181)(-71,349)])
link(onMouseUp,4300941:doWork6,[(-135,188)(-135,440)])
}
Add(VisualShape,6354125,-225,140)
{
@Hint=#1:E|
Left=100
Top=140
Width=45
Height=215
Point(onMouseDown)
Point(onMouseUp)
link(onMouseDown,6256554:doWork5,[(-66,146)(-66,342)])
link(onMouseUp,4300941:doWork5,[(-130,153)(-130,433)])
}
Add(VisualShape,11042299,-225,70)
{
@Hint=#1:D|
Left=55
Top=140
Width=45
Height=215
Point(onMouseDown)
Point(onMouseUp)
link(onMouseDown,6256554:doWork3,[(-56,76)(-56,328)])
link(onMouseUp,4300941:doWork3,[(-120,83)(-120,419)])
}
Add(ChanelToIndex,4300941,-36,399)
{
Count=12
link(onIndex,2647514:doOperation,[])
}
Add(Math,12069974,6,308)
{
Op2=60
ResultType=0
link(onResult,6720370:doConvert,[])
}
Add(Convertor,6720370,55,308)
{
Mode=6
link(onResult,12250172:doValue,[])
}
Add(VisualShape,16478488,-225,0)
{
@Hint=#1:C|
Left=10
Top=140
Width=45
Height=215
Point(onMouseDown)
Point(onMouseUp)
link(onMouseDown,6256554:doWork1,[(-46,6)(-46,314)])
link(onMouseUp,4300941:doWork1,[(-110,13)(-110,405)])
}
Add(VisualShape,7150136,-225,35)
{
@Hint=#2:C#|
Left=40
Top=140
Width=30
Height=130
Color2=0
Point(onMouseDown)
Point(onMouseUp)
link(onMouseDown,6256554:doWork2,[(-51,41)(-51,321)])
link(onMouseUp,4300941:doWork2,[(-115,48)(-115,412)])
}
Add(VisualShape,4420112,-225,105)
{
@Hint=#2:D#|
Left=85
Top=140
Width=30
Height=130
Color2=0
Point(onMouseDown)
Point(onMouseUp)
link(onMouseDown,6256554:doWork4,[(-61,111)(-61,335)])
link(onMouseUp,4300941:doWork4,[(-125,118)(-125,426)])
}
Add(VisualShape,5036879,-225,350)
{
@Hint=#1:B|
Left=265
Top=140
Width=30
Height=130
Color2=0
Point(onMouseDown)
Point(onMouseUp)
link(onMouseDown,6256554:doWork11,[(-96,356)(-96,384)])
link(onMouseUp,4300941:doWork11,[(-160,363)(-160,475)])
}
Add(VisualShape,13958299,-225,280)
{
@Hint=#2:G#|
Left=220
Top=140
Width=30
Height=130
Color2=0
Point(onMouseDown)
Point(onMouseUp)
link(onMouseDown,6256554:doWork9,[(-86,286)(-86,370)])
link(onMouseUp,4300941:doWork9,[(-150,293)(-150,461)])
}
Add(Label,6256882,13,112)
{
Left=115
Top=60
Width=59
Height=26
Font=[Courier New,14,1,0,204]
Caption="Канал"
}
Ответов: 899
Рейтинг: 43
|
|||
почему при нажатии на черные клавиши(VisualShape) событие выдает одна из белых? Как это можно исправить
|
|||
карма: 0 |
|