//コントロールパネル let controlPanel = controlPanelArray[screenNumber] = createG (); //タイトル setDefaultFill ("#ffffff"); setDefaultStroke ("none"); appendNode (controlPanel, setFontSize (createText (12, 30, "Sky-blue Toy Piano"), 20), setFontSize (createTextURL (16, 48, "https://stdkmd.net/toypiano/"), 12)); appendNode (svgElement, controlPanel); appendNode (document.body, svgElement); } //ボタン buttonX = 12; buttonY = 64; //説明ボタン // 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 // 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 // 0・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 1・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 2・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 3・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 4・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 5・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 6・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 7・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 8・・・・・・・・・●───●・・・・・●───●・・・・・・・・ // 9・・・・・・・/・・・・・・・\・/・・・・・・・\・・・・・・ // 10・・・・・・●・・・・・・・・・●・・・・・・・・・●・・・・・ // 11・・・・・・│・・・・・・・・・│・・・・・・・・・│・・・・・ // 12・・・・・・│・・・・・・・・・│・・・・・・・・・│・・・・・ // 13・・・・・・│・・・・・・・・・│・・・・・・・・・│・・・・・ // 14・・・・・・│・・・・・・・・・│・・・・・・・・・│・・・・・ // 15・・・・・・│・・・・・・・・・│・・・・・・・・・│・・・・・ // 16・・・・・・│・・・・・・・・・│・・・・・・・・・│・・・・・ // 17・・・・・・│・・・・・・・・・│・・・・・・・・・│・・・・・ // 18・・・・・・│・・・・・・・・・│・・・・・・・・・│・・・・・ // 19・・・・・・│・・・・・・・・・│・・・・・・・・・│・・・・・ // 20・・・・・・│・・・・・・・・・│・・・・・・・・・│・・・・・ // 21・・・・・・│・・・・・・・・・│・・・・・・・・・│・・・・・ // 22・・・・・・│・・●───●・・│・・●───●・・│・・・・・ // 23・・・・・・│/・・・・・・・\│/・・・・・・・\│・・・・・ // 24・・・・・・●・・・・・・・・・●・・・・・・・・・●・・・・・ // 25・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 26・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 27・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 28・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 29・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 30・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 31・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ addButton (docButtonArray, true, true, 8, "M 16 10 l -3 -2 h -4 l -3 2 v 14 l 3 -2 h 4 l 3 2 l 3 -2 h 4 l 3 2 v -14 l -3 -2 h -4 l -3 2 v 14", "Manual", function () { opmWindow.pw$close (); pcmWindow.pw$close (); docWindow.pw$open (); }); //FM音源ボタン // 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 // 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 // 0・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 1・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 2・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 3・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 4・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 5・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 6・・・・・・・・・・・・・・・・・・・・・・・・・・●・・・・・ // 7・・・・・・・・・・・・・・・・・・・・・・・・・/・・・・・・ // 8・・・・・・・・・・・・・・・・・・・・・・・・/・・・・・・・ // 9・・・・・・・・・・・・・・・・・●─●・・・/・・・・・・・・ // 10・・・・・・・・・・・・・・・・/・・・\・/・・・・・・・・・ // 11・・・・・・・・・・・・・・・●・・・・・/・・・・・・・・・・ // 12・・・・・・・・・・・・・・・│・・・・/・\・・・・・・・・・ // 13・・・・・・・・・・・・・・・●・・・/・・・●・・・・・・・・ // 14・・・・・・・・・・・・・・/・・・/・・・・│・・・・・・・・ // 15・・・・・・・・・●───●・・・/・・・・・●・・・・・・・・ // 16・・・・・・・・/・・・・・・・●・・・・・/・・・・・・・・・ // 17・・・・・・・/・・・・・・・・・・・●─●・・・・・・・・・・ // 18・・・・・・●・・・・・・・・・・・/・・・・・・・・・・・・・ // 19・・・・・・│・・・・・・・・・・●・・・・・・・・・・・・・・ // 20・・・・・・│・・・・・・・・・・│・・・・・・・・・・・・・・ // 21・・・・・・│・・・・・・・・・・│・・・・・・・・・・・・・・ // 22・・・・・・●・・・・・・・・・・│・・・・・・・・・・・・・・ // 23・・・・・・・\・・・・・・・・・●・・・・・・・・・・・・・・ // 24・・・・・・・・\・・・・・・・/・・・・・・・・・・・・・・・ // 25・・・・・・・・・\・・・・・/・・・・・・・・・・・・・・・・ // 26・・・・・・・・・・●───●・・・・・・・・・・・・・・・・・ // 27・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 28・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 29・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 30・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 31・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ addButton (neiroButtonArray, true, true, 8, "M 19 9 h -2 l -2 2 v 2 l -2 2 h -4 l -3 3 v 4 l 4 4 h 4 l 3 -3 v -4 l 2 -2 h 2 l 2 -2 v -2 z m 7 -3 l -10 10", "FM sound source", function () { docWindow.pw$close (); pcmWindow.pw$close (); opmWindow.pw$open (); }); //ADPCM音源ボタン // 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 // 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 // 0・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 1・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 2・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 3・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 4・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 5・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 6・・・・・・・・・・●──●・・・・・・・・・・・・・・・・・・ // 7・・・・・・・・・・│・・│・・・・・・・・・・・・・・・・・・ // 8・・・・・・・・・・│・・│・・・・・・・・・・・・・・・・・・ // 9・・・・・・・・・・│・・│・・・・・・・・・・・・・・・・・・ // 10・・・・・・・・・・│・・│・・・・・・・・・・・・・・・・・・ // 11・・・・・・・●──●・・●──●・・・・・・・・●●・・・・・ // 12・・・・・・・│・・・・・・・・│・・・・・・・・│・・・・・・ // 13・・・・・・・│・・・・・・・・│・・・・・・・・│・・・・・・ // 14・・・・・・・│・・・・・・・・│・・・・・・・・│・・・・・・ // 15・・・・・・・│・・・・・・・・│・・・・・・・・│・・・・・・ // 16・・・・・・・│・・・・・・・・│・・・・・・・・│・・・・・・ // 17・・・・・・・│・・・・・・・・│・・・・・・・・│・・・・・・ // 18・・・・・・・│・・・・・・・・│・・・・・・・・│・・・・・・ // 19・・・・・・・│・・・・・・・・│・・・・・・・・│・・・・・・ // 20・・・・・・・│・・・・・・・・│・・・・・・・・│・・・・・・ // 21・・・・・・●●・・・・・・・・●──●・・●──●・・・・・・ // 22・・・・・・・・・・・・・・・・・・・│・・│・・・・・・・・・ // 23・・・・・・・・・・・・・・・・・・・│・・│・・・・・・・・・ // 24・・・・・・・・・・・・・・・・・・・│・・│・・・・・・・・・ // 25・・・・・・・・・・・・・・・・・・・│・・│・・・・・・・・・ // 26・・・・・・・・・・・・・・・・・・・●──●・・・・・・・・・ // 27・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 28・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 29・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 30・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 31・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ addButton (neiroButtonArray, true, true, 8, "M 6 21 h 1 v -10 h 3 v -5 h 3 v 5 h 3 v 10 h 3 v 5 h 3 v -5 h 3 v -10 h 1", "ADPCM sound source", function () { docWindow.pw$close (); opmWindow.pw$close (); pcmWindow.pw$open (); }); //床固定ボタン // 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 // 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 // 0・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 1・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 2・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 3・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 4・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 5・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 6・・・・・・・・・・・・・・●・・・・●・・・・・・・・・・・・ // 7・・・・・・・・・・・・・●・・・・●・・・・・・・・・・・・・ // 8・・・・・・・・・・・・・●・・・・●・・・・・・・・・・・・・ // 9・・・・・・・・・・・・・・●・・・・●・・・・・・・・・・・・ // 10・・・・・・・・・・・・・・●・・・・●・・・・・・・・・・・・ // 11・・・・・・・・・・・・・●・・・・●・・・・・・・・・・・・・ // 12・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 13・・・・・・・・・・・●・・・・・・・・・●・・・・・・・・・・ // 14・・・・・・・・・・・●・・・・・・・・・●・・・・・・・・・・ // 15・・・・・・・・・・・●・・・・・・・・・●・・・・・・・・・・ // 16・・・・・・・・・・・●・・・・・・・・・●・・・・・・・・・・ // 17・・・・・・・・・・・●・・・・・・・・・●・・・・・・・・・・ // 18・・・・・・・・・・・●・・・・・・・・・●・・・・・・・・・・ // 19・・・・・・・・・・・●・・・・・・・・・●・・・・・・・・・・ // 20・・・・・・・・・・・●・・・・・・・・・●・・・・・・・・・・ // 21・・・・・・・・・・・●・・・・・・・・・●・・・・・・・・・・ // 22・・・・・・・・・・・●・・・・・・・・・●・・・・・・・・・・ // 23・・・・・・●・・・・・●●●●●●●●●・・・・・●・・・・・ // 24・・・・・・●・・・・・・・・・・・・・・・・・・・●・・・・・ // 25・・・・・・●・・・・・・・・・・・・・・・・・・・●・・・・・ // 26・・・・・・●●●●●●●●●●●●●●●●●●●●●・・・・・ // 27・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 28・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 29・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 30・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 31・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ addButton (floorFixedButtonArray, true, floorFixed, 8, "M 14 6 l -1 1 v 1 l 1 1 v 1 l -1 1 m 6 -5 l -1 1 v 1 l 1 1 v 1 l -1 1 m 3 2 v 9 l -1 1 h -8 l -1 -1 v -9 m -5 10 v 3 h 20 v -3", "Floor-fixed mode", toggleFloorFixedMode); //ノーマルボタン // 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 // 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 // 0・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 1・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 2・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 3・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 4・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 5・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 6・・・・・・・・・・・・・・・・●・・・・・・・・・・・・・・・ // 7・・・・・・・・・・・・・・・/│\・・・・・・・・・・・・・・ // 8・・・・・・・・・・・・・・・・│・・・・・・・・・・・・・・・ // 9・・・・・・・・・・・・・・/・│・\・・・・・・・・・・・・・ // 10・・・・・・・・・・・・・・・・│・・・・・・・・・・・・・・・ // 11・・・・・・・・・・・・・/・・│・・\・・・・・・・・・・・・ // 12・・・・・・・・・・・・●・・・│・・・●・・・・・・・・・・・ // 13・・・・・・・・・・・・・・・・│・・・・・・・・・・・・・・・ // 14・・・・・・・・・・・・・・・・│・・・・・・・・・・・・・・・ // 15・・・・・・・・・・・・・・・・│・・・・・・・・・・・・・・・ // 16・・・・・・・・・・・・・・・・│・・・・・・・・・・・・・・・ // 17・・・・・・・・・・・・・・・・│・・・・・・・・・・・・・・・ // 18・・・・・・・・・・・・・・・・●・・・・・・・・・・・・・・・ // 19・・・・・・・・・・・・・●・・│・・●・・・・・・・・・・・・ // 20・・・・・・・・・・・・・・・・│・・・・・・・・・・・・・・・ // 21・・・・・・・・・・・・・・・・│・・・・・・・・・・・・・・・ // 22・・・・・・・・・・・・●・・・●・・・●・・・・・・・・・・・ // 23・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 24・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 25・・・・・・・・・・・・・●・・・・・●・・・・・・・・・・・・ // 26・・・・・・・・・・・・・・・・●・・・・・・・・・・・・・・・ // 27・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 28・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 29・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 30・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 31・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ addButton (normalButtonArray, screenMode != 0, screenMode == 0, 4, "M 16 18 l -3 1 l -1 3 l 1 3 l 3 1 l 3 -1 l 1 -3 l -1 -3 z m 0 4 v -16 m -4 6 l 4 -6 l 4 6", "Non-stereoscopic mode", function () { setScreenMode (0); }); //平行法ボタン // 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 // 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 // 0・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 1・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 2・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 3・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 4・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 5・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 6・・・・・・・・・・●・・・・・・・・・・・●・・・・・・・・・ // 7・・・・・・・・・/│\・・・・・・・・・/│\・・・・・・・・ // 8・・・・・・・・・・│・・・・・・・・・・・│・・・・・・・・・ // 9・・・・・・・・/・│・\・・・・・・・/・│・\・・・・・・・ // 10・・・・・・・・・・│・・・・・・・・・・・│・・・・・・・・・ // 11・・・・・・・/・・│・・\・・・・・/・・│・・\・・・・・・ // 12・・・・・・●・・・│・・・●・・・●・・・│・・・●・・・・・ // 13・・・・・・・・・・│・・・・・・・・・・・│・・・・・・・・・ // 14・・・・・・・・・・│・・・・・・・・・・・│・・・・・・・・・ // 15・・・・・・・・・・│・・・・・・・・・・・│・・・・・・・・・ // 16・・・・・・・・・・│・・・・・・・・・・・│・・・・・・・・・ // 17・・・・・・・・・・│・・・・・・・・・・・│・・・・・・・・・ // 18・・・・・・・・・・●・・・・・・・・・・・●・・・・・・・・・ // 19・・・・・・・●・・│・・●・・・・・●・・│・・●・・・・・・ // 20・・・・・・・・・・│・・・・・・・・・・・│・・・・・・・・・ // 21・・・・・・・・・・│・・・・・・・・・・・│・・・・・・・・・ // 22・・・・・・●・・・●・・・●・・・●・・・●・・・●・・・・・ // 23・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 24・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 25・・・・・・・●・・・・・●・・・・・●・・・・・●・・・・・・ // 26・・・・・・・・・・●・・・・・・・・・・・●・・・・・・・・・ // 27・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 28・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 29・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 30・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 31・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ addButton (parallelButtonArray, screenMode != 1, screenMode == 1, 4, "M 10 18 l -3 1 l -1 3 l 1 3 l 3 1 l 3 -1 l 1 -3 l -1 -3 z m 0 4 v -16 m -4 6 l 4 -6 l 4 6 " + "M 22 18 l -3 1 l -1 3 l 1 3 l 3 1 l 3 -1 l 1 -3 l -1 -3 z m 0 4 v -16 m -4 6 l 4 -6 l 4 6", "Parallel stereoscopic mode", function () { setScreenMode (1); }); //交差法ボタン // 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 // 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 // 0・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 1・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 2・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 3・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 4・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 5・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 6・・・・・・●──・・・・・・・・・・・・・・・──●・・・・・ // 7・・・・・・│\・──・・・・・・・・・・・──・/│・・・・・ // 8・・・・・・│・\・・──●・・・・・●──・・/・│・・・・・ // 9・・・・・・・│・\・・・・・・・・・・・・・/・│・・・・・・ // 10・・・・・・・│・・\・・・・・・・・・・・/・・│・・・・・・ // 11・・・・・・・・│・・\・・・・・・・・・/・・│・・・・・・・ // 12・・・・・・・・│・・・\・・・・・・・/・・・│・・・・・・・ // 13・・・・・・・・●・・・・\・・・・・/・・・・●・・・・・・・ // 14・・・・・・・・・・・・・・\・・・/・・・・・・・・・・・・・ // 15・・・・・・・・・・・・・・・\・/・・・・・・・・・・・・・・ // 16・・・・・・・・・・・・・・・・X・・・・・・・・・・・・・・・ // 17・・・・・・・・・・・・・・・/・\・・・・・・・・・・・・・・ // 18・・・・・・・・・・●・・・/・・・\・・・●・・・・・・・・・ // 19・・・・・・・●・・・・・●・・・・・●・・・・・●・・・・・・ // 20・・・・・・・・・・・・/・・・・・・・\・・・・・・・・・・・ // 21・・・・・・・・・・・/・・・・・・・・・\・・・・・・・・・・ // 22・・・・・・●・・・●・・・●・・・●・・・●・・・●・・・・・ // 23・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 24・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 25・・・・・・・●・・・・・●・・・・・●・・・・・●・・・・・・ // 26・・・・・・・・・・●・・・・・・・・・・・●・・・・・・・・・ // 27・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 28・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 29・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 30・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ // 31・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ addButton (crossButtonArray, screenMode != 2, screenMode == 2, 8, "M 13 19 l -3 -1 l -3 1 l -1 3 l 1 3 l 3 1 l 3 -1 l 1 -3 z m -3 3 l 16 -16 m -7 2 l 7 -2 l -2 7 " + "M 19 19 l -1 3 l 1 3 l 3 1 l 3 -1 l 1 -3 l -1 -3 l -3 -1 z m 3 3 l -16 -16 m 2 7 l -2 -7 l 7 2", "Cross-eyed stereoscopic mode", function () { setScreenMode (2); }); //説明ウインドウ appendNode (document.body, docWindow.pw$outerBox); docWindow.pw$open (); //FM音源ウインドウ makeOpmWindow (); //ADPCM音源ウインドウ makePcmWindow (); makePiano (); //描画開始 projectTimeoutId = setTimeout (startProject, PROJECT_DELAY); //ウインドウイベント addEvent (window, "resize", function (e) { stopProject (); resetSize (); for (let screenNumber = 0; screenNumber <= 2; screenNumber++) { let screen = globalScreenArray[screenNumber]; setStyle (setViewBox (resizeRootSvg (svgElementArray[screenNumber], screen.sc$width, screen.sc$height), screen.sc$viewX, screen.sc$viewY, screen.sc$viewWidth, screen.sc$viewHeight), "height", screen.sc$height + "px", "left", screen.sc$left + "px", "top", screen.sc$top + "px", "width", screen.sc$width + "px"); } startProject (); }); //マウスイベント、タッチイベント // clientX,clientYはビューポートの左上から // MouseEvent.offsetX,MouseEvent.offsetYは要素の左上から // Touch.offsetXは存在しない // Touch.pageX,Touch.pageYはページの左上から // WaterfoxはsvgElement.offsetLeftがない // window.scrollX + e.clientX - e.pageX == 0 Chrome,Waterfox。EdgeはNaN for (let screenNumber = 0; screenNumber <= 2; screenNumber++) { let screen = globalScreenArray[screenNumber]; addEvent (svgElementArray[screenNumber], "mousewheel", onMouseWheel); addEvent (svgElementArray[screenNumber], "DOMMouseScroll", onMouseWheel); //Firefox addEvent (svgElementArray[screenNumber], "mousedown", onMouseDown); addEvent (svgElementArray[screenNumber], "mousemove", onMouseMove); addEvent (svgElementArray[screenNumber], "mouseup", onMouseUp); addEvent (svgElementArray[screenNumber], "touchstart", onTouchStart); addEvent (svgElementArray[screenNumber], "touchmove", onTouchMove); addEvent (svgElementArray[screenNumber], "touchend", onTouchEnd); } //キーイベント addEvent (window, "keydown", windowOnkeydown); addEvent (window, "keyup", windowOnkeyup); //出力を開始する try { audioContext = new AudioContext (); audioContext.audioWorklet.addModule ("processor.js").then (() => { let audioWorkletNodeClass = eval ("AudioWorkletNode"); opmpcmProcessor = new audioWorkletNodeClass ( audioContext, 'opmpcm-processor', { channelCount: 2, channelCountMode: "explicit" }); opmpcmProcessor.port.onmessage = e => { let command = e.data; console.log ("received " + command.c); }; opmpcmProcessor.port.start (); opmpcmProcessor.connect (audioContext.destination); audioAvailable = true; // setPresetNeiro (0); // }); } catch (e) { console.log ("Your browser does not support AudioWorklet."); } } //windowOnload addEvent (window, "load", windowOnload);