Вверх ↑
Этот топик читают: Гость
Ответов: 528
Рейтинг: 167
#1: 2010-10-06 12:45:52 ЛС | профиль | цитата
Подобие на пианино в OpenGL

Нужен не стандартный компонент от Ivann & Login - Midi_IO

ПКМ - вращение ЛКМ-играть..
Имеется "глюг " при повторных запусках миди играют с разной громкостью и длительностью. Иногда - нормально.
Как победить пока не знаю...

http://www.hiasm.com/forum_serv.php?q=56&id=1815
карма: 4

3
Голосовали:Ravilr, Administrator, Genius
Ответов: 4641
Рейтинг: 334
#2: 2010-10-06 12:48:42 ЛС | профиль | цитата
# если быстрый клик по клавише, то клавиша залипает.
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 528
Рейтинг: 167
#3: 2010-10-06 12:51:40 ЛС | профиль | цитата
Ravilr писал(а):
# если быстрый клик по клавише, то клавиша залипает.

такого у меня не наблюдается, другие причуды описанные выше. Может скорость компа имеет значение.
или в схеме чего нить синхронизировать надо....?
карма: 4

0
Администрация
Ответов: 15295
Рейтинг: 1519
#4: 2010-10-06 12:55:06 ЛС | профиль | цитата
tig-rrr, а почему получение цвета пикселя под курсором не ввиде элемента сделано?
карма: 26
0
Ответов: 528
Рейтинг: 167
#5: 2010-10-06 12:57:07 ЛС | профиль | цитата
Dilma писал(а):
tig-rrr, а почему получение цвета пикселя под курсором не ввиде элемента сделано?

Этот вопрос к MAV

карма: 4

0
Ответов: 3349
Рейтинг: 233
#6: 2010-10-06 13:28:33 ЛС | профиль | цитата
tig-rrr писал(а):
Нужен не стандартный компонент

Может в пакет добавить?
карма: 1

0
Ответов: 1429
Рейтинг: 50
#7: 2010-10-06 19:42:03 ЛС | профиль | цитата
При повторном запуске прога звук не играет потому, что надо закрывать миди выход при закрытии проги.

Add(MainForm,15261923,70,42)
{
Width=800
Height=600
Cursor=2
Caption="GL"
BorderStyle=0
Icon=[ZIPFE02000078DAC5903D8AC330108527C1E0525BA5769963B8306C63C845D2AB11D84773B19066D8632C5BB8572398CC8C473F246CBD4F12A3EF6978960570E2310C1F20FA3D035CB85E790DBC465E27E8F46C3DC31F5A75C2BA1E45066FB66DE32A0EE904A2A3C8104B9815FD42451127EF1B0327E81A8EC837E286CCE9CEDC37BC5796DCF4F3059DB0E5C66F9C66E19C8BAC7EF12537222647BECD55DE5F38E71A975CE39C5BD872956FA48D85E787975D61971EC4DBCA14C4283CDEBC1821338E9F62A4DE783F8CE4EC3E7C1531D0FA299861FDD908F51DD5989B770DFA3F95D568590CD732D5EF65C3D19BE09FF5040A548844]
Point(onResize)
Point(Handle)
Point(onKeyDown)
Point(doWidth)
Point(doHeight)
Point(MouseX)
Point(MouseY)
Point(onMouseDown)
Point(onMouseUp)
Point(onMouseMove)
Point(onClose)
link(onCreate,16299401:doEvent1,[])
link(onResize,3213527:doWork1,[(122,69)(122,48)(179,48)])
link(onKeyDown,16509952:doCase,[(114,76)(114,28)(-18,28)(-18,41)])
link(onMouseDown,16000527:doIndex,[(122,83)(122,202)])
link(onMouseUp,16000527:doIndex1,[(116,90)(116,209)])
link(onMouseMove,16000527:doIndex2,[(110,97)(110,216)])
link(onClose,2299613:In,[(139,104)(139,146)])
}
Add(GL_Main,12986311,217,56)
{
Color=32768
TwoSide=0
Point(Fps)
link(onInit,2934688:doWork1,[])
link(onViewPort,3410847:doPerspective,[(276,69)(276,115)(3,115)(3,132)])
link(Handle,15261923:Handle,[(223,44)(130,44)(130,132)(76,132)])
}
Add(Timer,9506849,189,126)
{
Interval=33
Enable=1
link(onTimer,1049454:doEvent1,[])
}
Add(GL_GTools,771925,287,126)
{
Point(doClear)
Point(doPushMatrix)
Point(doPopMatrix)
}
Add(Hub,1049454,238,126)
{
OutCount=5
link(onEvent1,771925:doClear,[])
link(onEvent2,771925:doPushMatrix,[])
link(onEvent3,16000527:doTranslate,[(272,146)(272,223)])
link(onEvent4,771925:doPopMatrix,[(279,153)(279,146)])
link(onEvent5,12986311:doFlip,[(264,160)(264,118)(212,118)(212,76)])
}
Add(Hub,16299401,140,56)
{
OutCount=5
link(onEvent1,12986311:doInit,[])
link(onEvent2,3213527:doWork2,[])
link(onEvent3,9506849:doTimer,[(169,76)(169,132)])
link(onEvent4,12144461:doWork1,[(162,83)(162,110)(-21,110)(-21,76)])
link(onEvent5,3186716:In,[])
}
Add(HubEx,3213527,175,63)
{
link(onEvent,12986311:doViewPort,[])
}
Add(GL_Perspective,3410847,-7,126)
{
Fovy=30
link(Aspect,12144461:Var1,[])
}
Add(Case,16509952,-7,35)
{
Value=Integer(27)
link(onTrue,15261923:doClose,[(37,48)(37,69)])
}
Add(MultiElement,12144461,-7,70)
{
@Hint=#92:Устанавливает полноэкранный режим приложения и соотношение сторон при BorderStyle - bsNone.|
link(onEvent1,15261923:doWidth,[])
link(onEvent2,15261923:doHeight,[])
}
BEGIN_SDK
Add(EditMulti,14495888,7,7)
{
EventCount=2
WorkCount=1
VarCount=1
Width=307
Height=277
link(doWork1,9938436:doEvent1,[(31,13)(31,48)])
link(Var1,8872951:Result,[(13,263)(237,263)])
}
Add(Screen,7951566,126,28)
{
EnumMask="%v"
link(onEnum,11571689:doOperation,[])
}
Add(Math,11571689,168,28)
{
OpType=39
link(onResult,8277205:doValue,[])
link(Op2,11571689:Result,[(181,16)(213,16)(213,72)(174,72)])
}
Add(Screen,8335904,133,161)
{
EnumMask="%h"
link(onEnum,16134009:doOperation,[])
}
Add(Hub,9938436,56,42)
{
OutCount=5
link(onEvent1,7951566:doEnum,[])
link(onEvent2,1329470:doData,[(111,55)(111,76)])
link(onEvent3,400462:doData,[(105,62)(105,118)])
link(onEvent4,8335904:doEnum,[(98,69)(98,181)])
link(onEvent5,8872951:doOperation,[(91,76)(91,216)])
}
Add(Math,16134009,175,161)
{
OpType=39
link(onResult,16143879:doValue,[])
link(Op2,16134009:Result,[(188,149)(220,149)(220,205)(181,205)])
}
Add(Memory,8277205,231,28)
{
}
Add(Memory,16143879,238,161)
{
}
Add(Math,8872951,231,210)
{
OpType=3
link(Op1,8277205:Value,[])
link(Op2,16143879:Value,[])
}
Add(DoData,400462,133,112)
{
link(onEventData,14495888:onEvent2,[(296,118)(296,20)])
link(Data,7951566:Height,[])
}
Add(DoData,1329470,126,70)
{
link(onEventData,14495888:onEvent1,[(290,76)(290,13)])
link(Data,7951566:Width,[])
}
END_SDK
Add(MultiElement,2934688,287,56)
{
}
BEGIN_SDK
Add(EditMulti,4946077,21,21)
{
WorkCount=1
Height=123
link(doWork1,12198675:doInit,[(35,27)(35,83)])
}
Add(GL_GluTools,12198675,49,77)
{
Texture=0
link(onInit,951894:doEnabled,[])
}
Add(GL_Options,1101264,133,77)
{
Flag=8
link(onEvent,5851269:doEnabled,[])
}
Add(GL_Options,5851269,175,77)
{
Flag=2
link(onEvent,545688:doEnabled,[])
}
Add(GL_Light,545688,224,77)
{
Ambient=8421504
link(onEnabled,545688:doMove,[(264,83)(264,115)(217,115)(217,90)])
link(onMove,7792817:doSet,[])
link(Point,114661:Point3D,[])
}
Add(GL_Point3D,114661,224,35)
{
X=2
Y=2
Z=10
}
Add(GL_Options,951894,91,77)
{
Flag=1
link(onEvent,1101264:doEnabled,[])
}
Add(GL_Material,7792817,273,84)
{
Side=2
Diffuse=0
Specular=16777215
Shininess=30
}
END_SDK
Add(StrList,1383431,735,56)
{
@Hint=#13:Список клавиш|
Strings=#26:16777215;0;0;0;0.19;0.07;1|27:0;0.12;0.05;0;0.24;0.12;0.6|28:16777215;0.2;0;0;0.39;0.07;1|27:0;0.36;0.05;0;0.48;0.12;0.6|28:16777215;0.4;0;0;0.59;0.07;1|28:16777215;0.6;0;0;0.79;0.07;1|27:0;0.72;0.05;0;0.84;0.12;0.6|28:16777215;0.8;0;0;0.99;0.07;1|27:0;0.94;0.05;0;1.06;0.12;0.6|26:16777215;1;0;0;1.19;0.07;1|27:0;1.16;0.05;0;1.28;0.12;0.6|28:16777215;1.2;0;0;1.39;0.07;1|28:16777215;1.4;0;0;1.59;0.07;1|27:0;1.52;0.05;0;1.64;0.12;0.6|28:16777215;1.6;0;0;1.79;0.07;1|27:0;1.74;0.05;0;1.86;0.12;0.6|28:16777215;1.8;0;0;1.99;0.07;1|26:16777215;2;0;0;2.19;0.07;1|27:0;2.12;0.05;0;2.24;0.12;0.6|28:16777215;2.2;0;0;2.39;0.07;1|27:0;2.33;0.05;0;2.45;0.12;0.6|28:16777215;2.4;0;0;2.59;0.07;1|27:0;2.54;0.05;0;2.66;0.12;0.6|28:16777215;2.6;0;0;2.79;0.07;1|28:16777215;2.8;0;0;2.99;0.07;1|27:0;2.92;0.05;0;3.04;0.12;0.6|26:16777215;3;0;0;3.19;0.07;1|27:0;3.14;0.05;0;3.26;0.12;0.6|28:16777215;3.2;0;0;3.39;0.07;1|13:0;0;0;0;0;0;0|
AddHint(44,11,93,13,@Hint)
}
Add(ArrayEnum,12353471,385,182)
{
link(onItem,16078968:doSplit,[])
link(onEndEnum,14011674:doEvent1,[])
link(Array,15134365:Var2,[(391,118)(755,118)])
}
Add(GL_Cube2,3466032,644,308)
{
link(onDraw,15964087:doPopMatrix,[])
link(Point1,4056285:Point3D,[(650,296)(622,296)])
link(Point2,11700749:Point3D,[])
}
Add(GL_Point3D,11700749,651,252)
{
link(X,16078968:Part5,[(657,233)(643,233)])
link(Y,16078968:Part6,[(664,233)(650,233)])
link(Z,16078968:Part7,[(671,233)(657,233)])
}
Add(GL_Point3D,4056285,616,252)
{
link(X,16078968:Part2,[])
link(Y,16078968:Part3,[])
link(Z,16078968:Part4,[])
}
Add(MultiStrPart,16078968,609,182)
{
Count=7
link(onSplit,11234327:doOperation,[(673,188)(673,223)(492,223)(492,258)])
}
Add(GL_Color,5524408,602,308)
{
Color=255
link(onColor,3466032:doDraw,[])
link(Color,2630251:Var3,[(608,292)])
}
Add(Math,11234327,504,252)
{
Op2=3
link(onResult,182480:doValue,[])
link(Op1,2630251:Var1,[(510,240)(542,240)(542,292)])
}
Add(Memory,182480,560,252)
{
Default=Integer(1)
link(onData,7227261:doPushMatrix,[(600,258)(600,299)(548,299)(548,314)])
}
Add(ArrayEnum,1628268,749,385)
{
link(onItem,16333783:doSplit,[(902,391)(902,468)])
link(onEndEnum,14835204:doDisabled,[(786,398)(786,405)])
link(Array,15134365:Var3,[(755,117)])
}
Add(GL_Cube2,6277204,945,588)
{
link(onDraw,3872489:doPopMatrix,[])
link(Point1,1287191:Point3D,[(951,576)(923,576)])
link(Point2,6002991:Point3D,[])
}
Add(GL_Point3D,6002991,952,532)
{
link(X,16333783:Part5,[(958,513)(944,513)])
link(Y,16333783:Part6,[(965,513)(951,513)])
link(Z,16333783:Part7,[(972,513)(958,513)])
}
Add(GL_Point3D,1287191,917,532)
{
link(X,16333783:Part2,[])
link(Y,16333783:Part3,[])
link(Z,16333783:Part4,[])
}
Add(MultiStrPart,16333783,910,462)
{
Count=7
link(onSplit,6690177:doOperation,[(975,468)(975,449)(779,449)(779,468)])
}
Add(GL_Color,11987096,903,588)
{
Color=0
link(onColor,6277204:doDraw,[])
link(Color,16333783:Part1,[(909,541)(916,541)])
}
Add(InlineCode,4532244,105,385)
{
@Hint=#44:Цвет пикселя в точке координат курсора мышки|10:Автор: MAV|
WorkPoints=#12:doReadPixels|
EventPoints=#12:onReadPixels|
VarPoints=#12:PixelsColorR|
DataPoints=#1:X|1:Y|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|28:uses Kol,Share,Debug,OpenGL;|0:|4:type|28: THiAsmClass = class(TDebug)|8: private|60: Viewport : Array [0..3] of GLInt; // параметры viewport-a.|59: RealY : GLint ; // позиция OpenGL y - координаты|34: pixel : Array [0..2] of GLUbyte;|7: public|25: onReadPixels:THI_Event;|14: X:THI_Event;|17: Y:THI_Event; |53: procedure doReadPixels(var Data:TData; index:word);|53: procedure PixelsColorR(var Data:TData; index:word);|0:|5: end;|0:|14:implementation|0:|63:procedure THiAsmClass.doReadPixels(var Data:TData; index:word);|3:var|13: Yr:Integer;|13: Xr:Integer;|5:begin|28: Yr := readInteger(Data,Y);|28: Xr := readInteger(Data,X);|73: glGetIntegerv(GL_VIEWPORT,@Viewport); // узнаём параметры viewport-a.|32: RealY := viewport[3] - Yr - 1;|66: glReadPixels(Xr, RealY, 1, 1, GL_RGB, GL_UNSIGNED_BYTE, @pixel);|28: _hi_OnEvent(onReadPixels);|5: end;|1: |63:procedure THiAsmClass.PixelsColorR(var Data:TData; index:word);|5:begin|40: If (Pixel [0] <> 0) and (Pixel [1] = 0)|6: then|42: If (Pixel [0] <> 0) and (Pixel [2] = 0)|6: then|23: dtReal(Data,pixel[0]);|4:end;|0:|4:end.|
link(onReadPixels,9175031:doCompare,[])
link(X,15374350:Var2,[(111,337)(83,337)])
link(Y,15951435:Var2,[(118,329)(90,329)])
AddHint(-102,62,184,39,@Hint)
}
Add(Math,66219,196,392)
{
OpType=1
Op2=1
Default=30
link(onResult,4222463:doOperation,[])
link(Op1,2750066:Var3,[(202,369)])
}
Add(If_else,9175031,154,385)
{
link(onFalse,66219:doOperation,[])
link(Op2,2750066:Var2,[])
}
Add(GetDataEx,2750066,161,364)
{
Angle=3
link(Data,4532244:PixelsColorR,[(146,369)(146,427)(111,427)])
}
Add(GL_GTools,7227261,560,308)
{
Point(doPushMatrix)
link(onEvent,5524408:doColor,[])
}
Add(GL_GTools,15964087,686,308)
{
Point(doPopMatrix)
}
Add(GL_GTools,10419737,819,588)
{
Point(doPushMatrix)
link(onEvent,3330485:doRotate,[])
}
Add(GL_GTools,3872489,987,588)
{
Point(doPopMatrix)
}
Add(Hub,14011674,434,189)
{
OutCount=4
link(onEvent1,4913107:In,[])
link(onEvent2,9093986:In,[])
link(onEvent3,13691170:In,[])
link(onEvent4,182480:doClear,[(548,216)(548,265)])
}
Add(GetDataEx,15134365,749,112)
{
link(Data,1383431:Array,[])
}
Add(IndexToChanel,11940758,21,385)
{
Point(Index)
link(onEvent1,6689727:doEvent1,[])
link(Index,6177308:Value,[])
}
Add(Memory,6177308,21,336)
{
Default=Integer(1)
}
Add(Hub,6689727,63,385)
{
link(onEvent1,4532244:doReadPixels,[])
link(onEvent2,6177308:doClear,[(89,398)(89,374)(9,374)(9,349)])
}
Add(GL_GTools,13731727,658,385)
{
Point(doClear)
link(onEvent,6119139:doEnabled,[])
}
Add(GL_Rotate,3330485,861,588)
{
X=1
link(onRotate,11987096:doColor,[])
link(Angle,8978220:Value,[])
}
Add(Memory,8978220,861,539)
{
Default=Integer(0)
link(onData,10419737:doPushMatrix,[(904,545)(904,577)(807,577)(807,594)])
}
Add(Math,6690177,791,462)
{
Op2=1
link(onResult,824383:doValue,[])
link(Op1,824383:Value,[(797,453)(831,453)(831,502)(853,502)])
}
Add(Memory,824383,847,462)
{
Default=Integer(0)
link(onData,6072663:doCompare,[(889,468)(889,523)(758,523)(758,545)])
}
Add(If_else,6072663,770,539)
{
link(onTrue,8039366:doData,[])
link(onFalse,8978220:doClear,[])
link(Op2,1895303:Value,[(783,514)(321,514)])
}
Add(DoData,8039366,812,539)
{
Data=Integer(3)
link(onEventData,8978220:doValue,[])
}
Add(GetDataEx,2630251,560,287)
{
link(Data,182480:Value,[])
}
Add(Memory,1895303,315,448)
{
Default=Integer(30)
}
Add(LineBreak,4499275,224,455)
{
Caption="m_up"
Color=12639424
link(Out,16189176:doEvent1,[])
Primary=[9130254,119,-252]
}
Add(GL_Cube2,11942279,945,210)
{
link(onDraw,429437:doPopMatrix,[])
link(Point1,6220849:Point3D,[(951,198)(923,198)])
link(Point2,10597629:Point3D,[])
}
Add(GL_Point3D,10597629,952,154)
{
X=3.44
Y=0.01
Z=0.98
}
Add(GL_Point3D,6220849,917,154)
{
X=-0.04
Y=-0.08
Z=-0.32
}
Add(GL_Color,890280,903,210)
{
Color=16711680
link(onColor,11942279:doDraw,[])
}
Add(GL_GTools,1417277,861,210)
{
Point(doPushMatrix)
link(onEvent,890280:doColor,[])
}
Add(GL_GTools,429437,987,210)
{
Point(doPopMatrix)
link(onEvent,5955633:doPushMatrix,[(1031,216)(1031,246)(856,246)(856,321)])
}
Add(GL_Cube2,5380445,952,315)
{
link(onDraw,8983944:doPopMatrix,[])
link(Point1,6402022:Point3D,[(958,303)(930,303)])
link(Point2,5698803:Point3D,[])
}
Add(GL_Point3D,5698803,959,259)
{
X=3.44
Y=0.13
Z=0.03
}
Add(GL_Point3D,6402022,924,259)
{
X=-0.04
Y=-0.01
Z=-0.32
}
Add(GL_Color,12164023,910,315)
{
Color=16711680
link(onColor,5380445:doDraw,[])
}
Add(GL_GTools,5955633,868,315)
{
Point(doPushMatrix)
link(onEvent,12164023:doColor,[])
}
Add(GL_GTools,8983944,994,315)
{
Point(doPopMatrix)
}
Add(GL_Options,6119139,700,385)
{
link(onEvent,1628268:doEnum,[])
}
Add(GL_Options,14835204,798,392)
{
link(onEvent,824383:doClear,[(838,398)(838,475)])
}
Add(InfoTip,12222007,378,140)
{
Info=#91:Невидимые клавиши, каждому объекту присваиваем уникальный цвет R который задаёт ID объекта.|
Font=[MS Sans Serif,8,1,16711680,1]
Width=358
Height=214
}
Add(LineBreak,3201496,609,385)
{
Caption="2"
Color=65280
link(Out,13731727:doClear,[])
Primary=[9093986,-112,-189]
}
Add(LineBreak,5358751,819,210)
{
Caption="3"
Color=65280
link(Out,1417277:doPushMatrix,[])
Primary=[13691170,-357,-7]
}
Add(LineBreak,6557846,-21,385)
{
Caption="1"
Color=65280
link(Out,11940758:doEvent,[])
Primary=[4913107,483,-196]
}
Add(InfoTip,6630529,805,133)
{
Info=#14:Корпус пианино|
Font=[MS Sans Serif,8,1,16711680,1]
Width=232
Height=221
}
Add(InfoTip,8835728,651,378)
{
Info=#15:Видимые клавиши|
Font=[MS Sans Serif,8,1,16711680,1]
Width=386
Height=249
}
Add(LineBreak,6712010,-49,336)
{
Caption="m_down"
Color=15780518
link(Out,6177308:doValue,[])
Primary=[9378175,392,-112]
}
Add(Hub,96318,329,392)
{
link(onEvent1,1895303:doValue,[(353,398)(353,442)(303,442)(303,454)])
link(onEvent2,6517766:doCalc,[(367,405)(367,454)])
}
Add(Hub,16189176,280,455)
{
link(onEvent1,1895303:doClear,[])
link(onEvent2,15475950:doNoteOff,[(302,468)(302,580)])
}
Add(LineBreak,8394180,259,539)
{
Caption="0"
Color=16711680
link(Out,1928174:doEvent1,[])
Primary=[3186716,-84,-455]
}
Add(ComboBox,15722354,546,609)
{
Left=100
Top=45
Width=185
Height=24
Color=32768
Font=[Arial,10,0,16777215,204]
Text=""
ReadOnly=0
ItemHeight=24
Point(doSelect)
Point(Handle)
link(onClick,15475950:doSetInstrument,[(589,622)(589,595)(411,595)(411,573)])
}
Add(ArrayEnum,5619420,441,609)
{
link(onItem,15722354:doAdd,[])
link(onEndEnum,5251529:doData,[])
link(Array,15475950:Instruments,[])
}
Add(Memory,4797402,434,469)
{
Default=Integer(790)
PColor(onData,11206400)
link(onData,15475950:doSendToOut,[(480,475)(480,508)(415,508)(415,566)])
}
Add(Memory,12644644,427,427)
{
Default=Integer(144)
}
Add(Hub,1928174,322,539)
{
link(onEvent1,11436986:doData,[])
link(onEvent2,5619420:doEnum,[(354,552)(354,615)])
}
Add(MathParse,6517766,378,448)
{
MathStr="(%1+59)+(%2*12)"
link(onResult,4797402:doValue,[(422,454)(422,475)])
link(X2,9417750:Position,[])
}
Add(Label,1780448,532,392)
{
Left=350
Top=10
Width=117
Height=35
Color=32768
Font=[Arial,14,1,16777215,204]
Caption="Октава: 4"
}
Add(UpDown,9417750,385,392)
{
Left=350
Top=45
Width=115
Height=30
Color=16776960
Max=3
Min=-3
Kind=0
link(onPosition,9872590:doOperation,[])
}
Add(Math,9872590,427,392)
{
Op2=4
link(onResult,10711660:doString,[])
}
Add(FormatStr,10711660,469,392)
{
Mask="Октава: %1"
link(onFString,1780448:doText,[])
}
Add(Label,2197,531,435)
{
Left=100
Top=10
Width=185
Height=33
Color=32768
Font=[Arial,14,1,16777215,204]
Caption="Инструмент"
}
Add(DoData,5251529,483,616)
{
link(onEventData,15722354:doSelect,[(538,622)(538,657)])
}
Add(MultiElementEx,16000527,287,196)
{
@Hint=#8:вращение|
link(onScale,12353471:doEnum,[(327,202)(327,188)])
link(onm_up,9130254:In,[])
link(onm_down,9378175:In,[(335,216)(335,230)])
link(Data1,15374350:Var3,[(293,187)])
link(Data11,15951435:Var3,[(300,180)])
AddHint(-25,46,66,13,@Hint)
}
BEGIN_SDK
Add(EditMultiEx,7950383,28,14)
{
WorkCount=#19:doIndex=onMouseDown|18:doIndex1=onMouseUp|20:doIndex2=onMouseMove|11:doTranslate|
EventCount=#7:onScale|6:onm_up|8:onm_down|
DataCount=#12:Data1=MouseX|13:Data11=MouseY|
Width=391
Height=319
link(doIndex,7351997:doCase,[(96,20)(96,69)])
link(doIndex1,13860287:doCase,[])
link(doIndex2,14199263:doEvent1,[(54,34)(54,146)])
link(doTranslate,3456035:In,[])
}
Add(SampleDelta,13251656,133,140)
{
link(onCalcDelta,14617989:doEvent,[])
link(Data,7950383:Data1,[(139,119)(34,119)])
}
Add(SampleDelta,7222504,112,217)
{
link(onCalcDelta,8643139:doEvent,[])
link(Data,7950383:Data11,[(118,126)(41,126)])
}
Add(Hub,14199263,70,140)
{
link(onEvent1,13251656:doCalcDelta,[])
link(onEvent2,7222504:doCalcDelta,[(98,153)(98,223)])
}
Add(Case,13860287,112,21)
{
Value=Integer(1)
DataOnTrue=Integer(0)
link(onNextCase,7950383:onm_up,[])
link(onTrue,15076721:doWork1,[(165,34)])
}
Add(Case,7351997,112,63)
{
Value=Integer(1)
DataOnTrue=Integer(1)
link(onNextCase,7950383:onm_down,[(177,69)(177,34)])
link(onTrue,15076721:doWork2,[])
}
Add(GL_Rotate,9726599,259,287)
{
Y=1
link(onRotate,2968317:doScale,[])
link(Angle,16594472:Var2,[])
}
Add(GL_Rotate,8079493,217,287)
{
X=1
link(onRotate,9726599:doRotate,[])
link(Angle,4606207:Var3,[(223,268)])
}
Add(HubEx,15076721,161,70)
{
link(onEvent,5407270:doValue,[])
}
Add(Memory,5407270,203,70)
{
}
Add(GetDataEx,16594472,259,189)
{
link(Data,13129530:Result,[])
}
Add(LineBreak,6026358,175,287)
{
Caption=">1"
link(Out,8079493:doRotate,[])
Primary=[3456035,-112,-252]
}
Add(IndexToChanel,14617989,203,140)
{
Point(Index)
link(onEvent2,13129530:doOperation,[])
link(Index,10425670:Var2,[])
}
Add(IndexToChanel,8643139,168,217)
{
Point(Index)
link(onEvent2,169611:doOperation,[])
link(Index,10425670:Var1,[(174,117)])
}
Add(Gl_Translate,14755141,343,287)
{
X=-1.7
Y=-0.3
link(onTranslate,7950383:onScale,[(389,293)(389,20)])
}
Add(Gl_Scale,2968317,301,287)
{
X=1.3
Y=1.3
Z=1.3
link(onScale,14755141:doTranslate,[])
}
Add(Math,13129530,259,147)
{
link(Op2,16594472:Var1,[(272,135)(247,135)(247,194)])
}
Add(Math,169611,217,224)
{
Default=22
link(Op2,4606207:Var1,[(230,212)(208,212)(208,268)])
}
Add(GetDataEx,10425670,203,112)
{
link(Data,5407270:Value,[])
}
Add(GetDataEx,4606207,217,263)
{
link(Data,169611:Result,[])
}
END_SDK
Add(GetDataEx,15374350,77,182)
{
link(Data,15261923:MouseX,[])
}
Add(GetDataEx,15951435,84,175)
{
link(Data,15261923:MouseY,[])
}
Add(Midi_IO,15475950,427,532)
{
Point(doSetInstrument)
Point(doNoteOff)
link(Status,12644644:Value,[])
link(Data1,4797402:Value,[])
link(Data2,15722354:Handle,[(447,520)(524,520)(524,678)(566,678)])
}
Add(InfoTip,15798228,238,364)
{
Info=#4:Midi|
Font=[MS Sans Serif,8,1,16711680,1]
Width=358
Height=396
}
Add(Math,4222463,245,392)
{
OpType=3
Op2=3
link(onResult,12867110:doOperation,[])
}
Add(Math,12867110,287,392)
{
OpType=35
Op2=1
link(onResult,96318:doEvent1,[])
}
Add(Button,1855305,0,595)
{
Left=10
Top=10
Width=25
Height=25
Font=[Arial,12,0,16777215,204]
Caption="?"
link(onClick,4298740:doMessage,[])
}
Add(Message,4298740,63,595)
{
Message="Пианино OpenGL для детишек...
ПКМ - Вращение; ЛКМ - Играть
Автор: tig-rrr
Версия: 0.01а 2010
"
Caption="Пианино"
}
Add(LineBreak,6573461,259,588)
{
Primary=[2299613,-112,-448]
}
Add(DoData,10675373,308,623)
{
Data=Integer(1)
link(onEventData,15475950:doCloseMidiOut,[(402,629)(402,559)])
}
Add(DoData,11436986,364,539)
{
Data=Integer(1)
link(onEventData,15475950:doOpenMidiOut,[])
}
Add(Button,1984737,259,623)
{
Left=505
Top=40
Width=145
Height=30
Caption="закрыть миди выход"
link(onClick,10675373:doData,[])
}



еще исправил

Точно не знаю как это исправить, но миди-выход не успевает закрыться. Если перед закрытием проги закрывать его кнопкой, то повторный старт работает всегда хорошо.

карма: 0

0
файлы: 1code_20929.txt [19.7KB] [127]
7
Сообщение
...
Прикрепленные файлы
(файлы не залиты)