{"id":15387,"date":"2026-07-01T14:04:21","date_gmt":"2026-07-01T05:04:21","guid":{"rendered":"https:\/\/rakkokeyword.com\/techo\/?p=15387"},"modified":"2026-07-01T14:04:21","modified_gmt":"2026-07-01T05:04:21","slug":"tool-tuning-piano","status":"publish","type":"post","link":"https:\/\/rakkokeyword.com\/techo\/tool-tuning-piano\/","title":{"rendered":"\u97f3\u5408\u305b\u30d4\u30a2\u30ce\uff08\u9375\u76e4\uff09"},"content":{"rendered":"\n<div id=\"tp_container\">\n    <style>\n        \/* \u30c4\u30fc\u30eb\u672c\u4f53\u306e\u30b9\u30bf\u30a4\u30eb *\/\n        #tp_container {\n            width: 100%;\n            max-width: 720px;\n            margin: 0 auto;\n            margin-bottom: 40px;\n            background-color: #ffffff;\n            color: #333333;\n            font-family: sans-serif;\n            box-sizing: border-box;\n            user-select: none;\n        }\n        #tp_container p {\n            margin: 0;\n            padding: 0;\n            font-size: 14px;\n            font-weight: bold;\n        }\n        .tp_panel {\n            display: flex;\n            flex-wrap: wrap;\n            gap: 15px;\n            margin-bottom: 20px;\n            align-items: center;\n        }\n        .tp_flex_row {\n            display: flex;\n            align-items: center;\n            gap: 10px;\n        }\n        .tp_btn {\n            background-color: #13284B;\n            color: #ffffff;\n            border: 1px solid transparent; \/* OFF\u6642\u306eborder\u3068\u30b5\u30a4\u30ba\u3092\u5408\u308f\u305b\u308b\u305f\u3081 *\/\n            box-sizing: border-box;\n            border-radius: 4px;\n            height: 40px;\n            padding: 0 16px;\n            font-size: 14px;\n            cursor: pointer;\n            transition: opacity 0.2s, background-color 0.2s, color 0.2s, border 0.2s;\n        }\n        .tp_btn:hover {\n            opacity: 0.9;\n        }\n        .tp_btn:active {\n            opacity: 0.7;\n        }\n        .tp_btn.tp_btn_off {\n            background-color: #F3F4F6;\n            color: #555555;\n            border: 1px solid #C9CDD3;\n        }\n        .tp_btn_small {\n            background-color: #13284B;\n            color: #ffffff;\n            border: none;\n            border-radius: 4px;\n            height: 30px;\n            width: 30px;\n            font-size: 16px;\n            font-weight: bold;\n            cursor: pointer;\n            display: flex;\n            justify-content: center;\n            align-items: center;\n        }\n        .tp_btn_small:active {\n            opacity: 0.7;\n        }\n        input[type=\"range\"].tp_slider {\n            cursor: pointer;\n            width: 100px;\n        }\n        \n        \/* \u9375\u76e4\u30a8\u30ea\u30a2 *\/\n        #tp_keyboard_area {\n            position: relative;\n            height: 220px;\n            width: 100%;\n            display: flex;\n            touch-action: none;\n        }\n        .tp_key {\n            border: 1px solid #333333;\n            box-sizing: border-box;\n            border-radius: 0 0 4px 4px;\n            cursor: pointer;\n            position: relative;\n            display: flex;\n            flex-direction: column;\n            justify-content: flex-end;\n            align-items: center;\n            padding-bottom: 15px;\n            transition: background-color 0.1s;\n        }\n        .tp_key_white {\n            background-color: #ffffff;\n            flex: 1;\n            z-index: 1;\n            height: 100%;\n        }\n        .tp_key_white.tp_playing {\n            background-color: #dddddd;\n        }\n        .tp_key_black {\n            background-color: #333333;\n            color: #ffffff;\n            position: absolute;\n            width: calc(100% \/ 8 * 0.6);\n            height: 60%;\n            z-index: 2;\n            top: 0;\n            transform: translateX(-50%);\n            border-radius: 0 0 4px 4px;\n        }\n        .tp_key_black.tp_playing {\n            background-color: #666666;\n        }\n        .tp_label {\n            text-align: center;\n            pointer-events: none;\n            font-size: 12px;\n            line-height: 1.2;\n        }\n        .tp_note_name {\n            font-weight: bold;\n            font-size: 14px;\n        }\n        .tp_key_name {\n            font-size: 11px;\n            color: #777;\n        }\n        .tp_key_black .tp_key_name {\n            color: #ccc;\n        }\n        .tp_hide_guide .tp_label {\n            display: none;\n        }\n    <\/style>\n\n    <!-- \u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u30d1\u30cd\u30eb -->\n    <div class=\"tp_panel\">\n        <div class=\"tp_flex_row\">\n            <p>\u97f3\u91cf<\/p>\n            <input type=\"range\" id=\"tp_vol_slider\" class=\"tp_slider\" min=\"0\" max=\"1\" step=\"0.05\" value=\"0.5\">\n        <\/div>\n        <div class=\"tp_flex_row\">\n            <p>\u30aa\u30af\u30bf\u30fc\u30d6<\/p>\n            <button id=\"tp_oct_down\" class=\"tp_btn_small\">\u2013<\/button>\n            <p id=\"tp_oct_display\" style=\"width:16px; text-align:center;\">4<\/p>\n            <button id=\"tp_oct_up\" class=\"tp_btn_small\">+<\/button>\n        <\/div>\n        <div class=\"tp_flex_row\">\n            <p>\u57fa\u6e96\u5468\u6ce2\u6570(A)<\/p>\n            <input type=\"range\" id=\"tp_freq_slider\" class=\"tp_slider\" min=\"435\" max=\"445\" step=\"1\" value=\"440\">\n            <p id=\"tp_freq_display\" style=\"width:55px; white-space:nowrap;\">440Hz<\/p>\n        <\/div>\n        <!-- \u521d\u671f\u72b6\u614b\u3092\u30bb\u30c3\u30c8 (\u30b5\u30b9\u30c6\u30a3\u30f3\u306fOFF\u3001\u30ac\u30a4\u30c9\u306fON) -->\n        <button id=\"tp_sustain_btn\" class=\"tp_btn tp_btn_off\">\u30b5\u30b9\u30c6\u30a3\u30f3: OFF<\/button>\n        <button id=\"tp_guide_btn\" class=\"tp_btn\">\u30ac\u30a4\u30c9\u8868\u793a: ON<\/button>\n    <\/div>\n\n    <!-- \u57fa\u6e96\u97f3\u30d1\u30cd\u30eb -->\n    <div class=\"tp_panel\">\n        <p>\u57fa\u6e96\u97f3<\/p>\n        <button class=\"tp_btn tp_ref_btn\" data-note-index=\"0\" data-id=\"ref_C\">C (\u30c9)<\/button>\n        <button class=\"tp_btn tp_ref_btn\" data-note-index=\"2\" data-id=\"ref_D\">D (\u30ec)<\/button>\n        <button class=\"tp_btn tp_ref_btn\" data-note-index=\"4\" data-id=\"ref_E\">E (\u30df)<\/button>\n        <button class=\"tp_btn tp_ref_btn\" data-note-index=\"7\" data-id=\"ref_G\">G (\u30bd)<\/button>\n        <button class=\"tp_btn tp_ref_btn\" data-note-index=\"9\" data-id=\"ref_A\" id=\"tp_ref_btn_A\">A (\u30e9=440Hz)<\/button>\n    <\/div>\n\n    <!-- \u9375\u76e4\u30e1\u30a4\u30f3UI -->\n    <div id=\"tp_keyboard_area\"><\/div>\n\n    <script>\n        document.addEventListener('DOMContentLoaded', () => {\n            \/\/ --- \u72b6\u614b\u7ba1\u7406\u5909\u6570 ---\n            let tp_audioCtx = null;\n            let tp_masterGain = null;\n            let tp_activeOscillators = {};\n            \n            let tp_currentOctave = 4;\n            let tp_isSustain = false;\n            let tp_isGuideOn = true;\n            let tp_volume = 0.5;\n            let tp_baseFreq = 440; \/\/ \u57fa\u6e96\u5468\u6ce2\u6570\n\n            \/\/ --- \u9375\u76e4\u69cb\u6210\u30c7\u30fc\u30bf (1\u30aa\u30af\u30bf\u30fc\u30d6 + 1\u97f3) ---\n            const tp_keyConfig = [\n                { note: 'C',  keyMap: 'z', isBlack: false },\n                { note: 'C#', keyMap: 's', isBlack: true  },\n                { note: 'D',  keyMap: 'x', isBlack: false },\n                { note: 'D#', keyMap: 'd', isBlack: true  },\n                { note: 'E',  keyMap: 'c', isBlack: false },\n                { note: 'F',  keyMap: 'v', isBlack: false },\n                { note: 'F#', keyMap: 'g', isBlack: true  },\n                { note: 'G',  keyMap: 'b', isBlack: false },\n                { note: 'G#', keyMap: 'h', isBlack: true  },\n                { note: 'A',  keyMap: 'n', isBlack: false },\n                { note: 'A#', keyMap: 'j', isBlack: true  },\n                { note: 'B',  keyMap: 'm', isBlack: false },\n                { note: 'C',  keyMap: ',', isBlack: false }\n            ];\n\n            const tp_keyboardArea = document.getElementById('tp_keyboard_area');\n            const tp_volSlider = document.getElementById('tp_vol_slider');\n            const tp_octDisplay = document.getElementById('tp_oct_display');\n            const tp_freqSlider = document.getElementById('tp_freq_slider');\n            const tp_freqDisplay = document.getElementById('tp_freq_display');\n            const tp_refBtnA = document.getElementById('tp_ref_btn_A');\n\n            \/\/ --- \u521d\u671f\u5316\u30fbUI\u69cb\u7bc9 ---\n            function tp_initKeyboard() {\n                tp_keyboardArea.innerHTML = '';\n                let whiteKeyCount = 0;\n                \n                tp_keyConfig.forEach((kData, index) => {\n                    const keyEl = document.createElement('div');\n                    keyEl.id = 'tp_key_' + index;\n                    \n                    const labelHtml = '<div class=\"tp_label\">' +\n                                      '<div class=\"tp_note_name\">' + kData.note + '<\/div>' +\n                                      '<div class=\"tp_key_name\">[' + kData.keyMap.toUpperCase() + ']<\/div>' +\n                                      '<\/div>';\n                    \n                    if (kData.isBlack) {\n                        keyEl.className = 'tp_key tp_key_black';\n                        \/\/ \u767d\u9375\u306e\u5e45(100%\/8)\u3092\u5143\u306b\u914d\u7f6e\u4f4d\u7f6e\u3092\u8a08\u7b97\n                        keyEl.style.left = (whiteKeyCount * (100 \/ 8)) + '%';\n                        keyEl.innerHTML = labelHtml;\n                    } else {\n                        keyEl.className = 'tp_key tp_key_white';\n                        keyEl.innerHTML = labelHtml;\n                        whiteKeyCount++;\n                    }\n\n                    \/\/ \u30a4\u30d9\u30f3\u30c8\u30ea\u30b9\u30ca\u30fc\u767b\u9332 (\u30de\u30a6\u30b9\u30fb\u30bf\u30c3\u30c1)\n                    keyEl.addEventListener('mousedown', (e) => { e.preventDefault(); tp_handlePress(index); });\n                    keyEl.addEventListener('touchstart', (e) => { e.preventDefault(); tp_handlePress(index); });\n                    \n                    keyEl.addEventListener('mouseup', (e) => { e.preventDefault(); tp_handleRelease(index); });\n                    keyEl.addEventListener('mouseleave', (e) => { e.preventDefault(); tp_handleRelease(index); });\n                    keyEl.addEventListener('touchend', (e) => { e.preventDefault(); tp_handleRelease(index); });\n\n                    tp_keyboardArea.appendChild(keyEl);\n                });\n            }\n\n            \/\/ \u5468\u6ce2\u6570\u8a08\u7b97 (\u57fa\u6e96\u5468\u6ce2\u6570\u3068\u30ad\u30fc\u756a\u53f7\u306b\u57fa\u3065\u304f)\n            function tp_getFrequency(noteIndex, octave) {\n                \/\/ C4\u306eMIDI\u30ce\u30fc\u30c8\u756a\u53f7\u306f60\u3001A4\u306f69\n                const midiNote = 60 + (octave - 4) * 12 + noteIndex;\n                return tp_baseFreq * Math.pow(2, (midiNote - 69) \/ 12);\n            }\n\n            \/\/ --- \u30aa\u30fc\u30c7\u30a3\u30aa\u5236\u5fa1 ---\n            function tp_initAudio() {\n                if (!tp_audioCtx) {\n                    const AudioContext = window.AudioContext || window.webkitAudioContext;\n                    tp_audioCtx = new AudioContext();\n                    tp_masterGain = tp_audioCtx.createGain();\n                    tp_masterGain.gain.value = tp_volume;\n                    tp_masterGain.connect(tp_audioCtx.destination);\n                }\n                if (tp_audioCtx.state === 'suspended') {\n                    tp_audioCtx.resume();\n                }\n            }\n\n            function tp_playNote(id, freq) {\n                tp_initAudio();\n                \n                \/\/ \u3059\u3067\u306b\u9cf4\u3063\u3066\u3044\u308b\u5834\u5408\u306f\u51e6\u7406\n                if (tp_activeOscillators[id]) {\n                    if (tp_isSustain) {\n                        \/\/ \u30b5\u30b9\u30c6\u30a3\u30f3ON\u6642\u306e\u30c8\u30b0\u30eb\u52d5\u4f5c\uff1a\u9cf4\u3063\u3066\u3044\u308b\u97f3\u3092\u6b62\u3081\u308b\n                        tp_stopNoteForce(id);\n                    }\n                    return; \n                }\n\n                const t = tp_audioCtx.currentTime;\n\n                const gainNode = tp_audioCtx.createGain();\n                gainNode.gain.value = 0;\n                \n                \/\/ \u30a2\u30bf\u30c3\u30af: \u975e\u5e38\u306b\u77ed\u3044\u6642\u9593\u3067\u6700\u5927\u97f3\u91cf\u3078\n                gainNode.gain.setTargetAtTime(1, t, 0.005);\n                \/\/ \u30c7\u30a3\u30b1\u30a4: \u30d4\u30a2\u30ce\u98a8\u306e\u81ea\u7136\u306a\u6e1b\u8870\uff08\u62bc\u3057\u3063\u3071\u306a\u3057\u3067\u3082\u5f90\u3005\u306b\u6d88\u3048\u308b\uff09\n                gainNode.gain.setTargetAtTime(0, t + 0.02, 1.2);\n\n                \/\/ \u57fa\u97f3 (\u5c11\u3057\u4e38\u307f\u306e\u3042\u308btriangle)\n                const osc1 = tp_audioCtx.createOscillator();\n                osc1.type = 'triangle';\n                osc1.frequency.value = freq;\n\n                \/\/ \u7b2c2\u500d\u97f3 (1\u30aa\u30af\u30bf\u30fc\u30d6\u4e0a\u306esine\u6ce2\u3067\u660e\u308b\u3055\u3092\u8ffd\u52a0)\n                const osc2 = tp_audioCtx.createOscillator();\n                osc2.type = 'sine';\n                osc2.frequency.value = freq * 2;\n                const gain2 = tp_audioCtx.createGain();\n                gain2.gain.value = 0.5;\n\n                \/\/ \u7b2c3\u500d\u97f3 (1\u30aa\u30af\u30bf\u30fc\u30d6+\u5b8c\u51685\u5ea6\u4e0a\u306esine\u6ce2\u3067\u539a\u307f\u3092\u8ffd\u52a0)\n                const osc3 = tp_audioCtx.createOscillator();\n                osc3.type = 'sine';\n                osc3.frequency.value = freq * 3;\n                const gain3 = tp_audioCtx.createGain();\n                gain3.gain.value = 0.2;\n\n                osc1.connect(gainNode);\n                \n                osc2.connect(gain2);\n                gain2.connect(gainNode);\n\n                osc3.connect(gain3);\n                gain3.connect(gainNode);\n\n                gainNode.connect(tp_masterGain);\n\n                osc1.start(t);\n                osc2.start(t);\n                osc3.start(t);\n\n                \/\/ \u97f3\u304c\u5b8c\u5168\u306b\u6d88\u3048\u5207\u308b\u9803(5\u79d2\u5f8c)\u306b\u5185\u90e8\u72b6\u614b\u3092\u81ea\u52d5\u30af\u30ea\u30fc\u30f3\u30a2\u30c3\u30d7\n                const timeoutId = setTimeout(() => {\n                    if (tp_activeOscillators[id] && tp_activeOscillators[id].timeoutId === timeoutId) {\n                        const node = tp_activeOscillators[id];\n                        node.oscs.forEach(osc => { try { osc.stop(); } catch(e){} });\n                        delete tp_activeOscillators[id];\n                        const el = document.getElementById(id);\n                        if (el) el.classList.remove('tp_playing');\n                    }\n                }, 5000);\n\n                tp_activeOscillators[id] = { \n                    oscs: [osc1, osc2, osc3], \n                    gain: gainNode,\n                    timeoutId: timeoutId\n                };\n                \n                const el = document.getElementById(id);\n                if (el) el.classList.add('tp_playing');\n            }\n\n            function tp_stopNoteForce(id) {\n                if (tp_activeOscillators[id]) {\n                    const node = tp_activeOscillators[id];\n                    const t = tp_audioCtx.currentTime;\n                    \n                    clearTimeout(node.timeoutId);\n\n                    \/\/ \u30ea\u30ea\u30fc\u30b9: \u30ad\u30fc\u3092\u96e2\u3057\u305f\u6642\u306e\u7d20\u65e9\u3044\u6e1b\u8870\uff08\u30ce\u30a4\u30ba\u9632\u6b62\uff09\n                    node.gain.gain.cancelScheduledValues(t);\n                    node.gain.gain.setTargetAtTime(0, t, 0.05); \/\/ \u6642\u5b9a\u65700.05\u3067\u30b9\u30c3\u3068\u6d88\u3048\u308b\n                    \n                    node.oscs.forEach(osc => {\n                        try {\n                            osc.stop(t + 0.3); \/\/ \u5b8c\u5168\u306b\u6e1b\u8870\u3057\u3066\u304b\u3089\u30aa\u30b7\u30ec\u30fc\u30bf\u30fc\u3092\u505c\u6b62\n                        } catch (e) {}\n                    });\n                    \n                    delete tp_activeOscillators[id];\n                }\n                const el = document.getElementById(id);\n                if (el) el.classList.remove('tp_playing');\n            }\n\n            function tp_stopAllNotes() {\n                Object.keys(tp_activeOscillators).forEach(id => {\n                    tp_stopNoteForce(id);\n                });\n            }\n\n            \/\/ --- \u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u30fc ---\n            function tp_handlePress(index) {\n                const freq = tp_getFrequency(index, tp_currentOctave);\n                tp_playNote('tp_key_' + index, freq);\n            }\n\n            function tp_handleRelease(index) {\n                if (!tp_isSustain) {\n                    tp_stopNoteForce('tp_key_' + index);\n                }\n            }\n\n            \/\/ \u57fa\u6e96\u97f3\u30dc\u30bf\u30f3\u306e\u30a4\u30d9\u30f3\u30c8\n            document.querySelectorAll('.tp_ref_btn').forEach(btn => {\n                const id = btn.getAttribute('data-id');\n                \/\/ data-note-index\u3092\u7528\u3044\u3066\u52d5\u7684\u306b\u5468\u6ce2\u6570\u3092\u8a08\u7b97\uff08\u30aa\u30af\u30bf\u30fc\u30d6\u306f\u4e2d\u592e\u306e4\u3067\u56fa\u5b9a\uff09\n                const noteIndex = parseInt(btn.getAttribute('data-note-index'), 10);\n                \n                const pressHandler = (e) => { \n                    e.preventDefault(); \n                    const freq = tp_getFrequency(noteIndex, 4);\n                    tp_playNote(id, freq); \n                    btn.classList.add('tp_playing'); \n                };\n                const releaseHandler = (e) => { \n                    e.preventDefault(); \n                    if (!tp_isSustain) tp_stopNoteForce(id); \n                    if(!tp_activeOscillators[id]) btn.classList.remove('tp_playing');\n                };\n\n                btn.addEventListener('mousedown', pressHandler);\n                btn.addEventListener('touchstart', pressHandler);\n                btn.addEventListener('mouseup', releaseHandler);\n                btn.addEventListener('mouseleave', releaseHandler);\n                btn.addEventListener('touchend', releaseHandler);\n            });\n\n            \/\/ \u30ad\u30fc\u30dc\u30fc\u30c9\u64cd\u4f5c\n            document.addEventListener('keydown', (e) => {\n                if (e.repeat) return; \/\/ \u30aa\u30fc\u30c8\u30ea\u30d4\u30fc\u30c8\u7121\u8996\n                const key = e.key.toLowerCase();\n                const index = tp_keyConfig.findIndex(k => k.keyMap === key);\n                if (index !== -1) {\n                    tp_handlePress(index);\n                }\n            });\n\n            document.addEventListener('keyup', (e) => {\n                const key = e.key.toLowerCase();\n                const index = tp_keyConfig.findIndex(k => k.keyMap === key);\n                if (index !== -1) {\n                    tp_handleRelease(index);\n                }\n            });\n\n            \/\/ \u30b3\u30f3\u30c8\u30ed\u30fc\u30ebUI\u306e\u30a4\u30d9\u30f3\u30c8\n            document.getElementById('tp_vol_slider').addEventListener('input', (e) => {\n                tp_volume = parseFloat(e.target.value);\n                if (tp_masterGain) {\n                    tp_masterGain.gain.setValueAtTime(tp_volume, tp_audioCtx.currentTime);\n                }\n            });\n\n            document.getElementById('tp_oct_up').addEventListener('click', () => {\n                if (tp_currentOctave < 6) {\n                    tp_stopAllNotes();\n                    tp_currentOctave++;\n                    document.getElementById('tp_oct_display').innerText = tp_currentOctave;\n                }\n            });\n\n            document.getElementById('tp_oct_down').addEventListener('click', () => {\n                if (tp_currentOctave > 2) {\n                    tp_stopAllNotes();\n                    tp_currentOctave--;\n                    document.getElementById('tp_oct_display').innerText = tp_currentOctave;\n                }\n            });\n\n            \/\/ \u57fa\u6e96\u5468\u6ce2\u6570(A)\u306e\u5909\u66f4\u30a4\u30d9\u30f3\u30c8\n            tp_freqSlider.addEventListener('input', (e) => {\n                tp_baseFreq = parseInt(e.target.value, 10);\n                tp_freqDisplay.innerText = tp_baseFreq + 'Hz';\n                tp_refBtnA.innerText = 'A (\u30e9=' + tp_baseFreq + 'Hz)';\n                tp_stopAllNotes(); \/\/ \u5909\u66f4\u6642\u306b\u73fe\u5728\u9cf4\u3063\u3066\u3044\u308b\u97f3\u3092\u30ea\u30bb\u30c3\u30c8\n            });\n\n            document.getElementById('tp_sustain_btn').addEventListener('click', (e) => {\n                tp_isSustain = !tp_isSustain;\n                const btn = e.target;\n                if (tp_isSustain) {\n                    btn.innerText = '\u30b5\u30b9\u30c6\u30a3\u30f3: ON';\n                    btn.classList.remove('tp_btn_off');\n                } else {\n                    btn.innerText = '\u30b5\u30b9\u30c6\u30a3\u30f3: OFF';\n                    btn.classList.add('tp_btn_off');\n                    tp_stopAllNotes(); \/\/ OFF\u6642\u306f\u9cf4\u308a\u3063\u3071\u306a\u3057\u306e\u97f3\u3092\u5f37\u5236\u30ea\u30bb\u30c3\u30c8\n                }\n            });\n\n            document.getElementById('tp_guide_btn').addEventListener('click', (e) => {\n                tp_isGuideOn = !tp_isGuideOn;\n                const btn = e.target;\n                if (tp_isGuideOn) {\n                    btn.innerText = '\u30ac\u30a4\u30c9\u8868\u793a: ON';\n                    btn.classList.remove('tp_btn_off');\n                    document.getElementById('tp_keyboard_area').classList.remove('tp_hide_guide');\n                } else {\n                    btn.innerText = '\u30ac\u30a4\u30c9\u8868\u793a: OFF';\n                    btn.classList.add('tp_btn_off');\n                    document.getElementById('tp_keyboard_area').classList.add('tp_hide_guide');\n                }\n            });\n\n            \/\/ \u8d77\u52d5\u6642\u306e\u521d\u671f\u5316\n            tp_initKeyboard();\n        });\n    <\/script>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u4e0d\u8981\u3067\u3001PC\u3084\u30b9\u30de\u30fc\u30c8\u30d5\u30a9\u30f3\u306e\u30d6\u30e9\u30a6\u30b6\u304b\u3089\u3059\u3050\u306b\u97f3\u3092\u9cf4\u3089\u305b\u308b\u7121\u6599\u306eWEB\u30d4\u30a2\u30ce\u30fb\u57fa\u6e96\u97f3\u518d\u751f\u30c4\u30fc\u30eb\u3067\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-0\">\u3053\u306e\u30c4\u30fc\u30eb\u3067\u3067\u304d\u308b\u3053\u3068<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306e\u30c4\u30fc\u30eb\u3067\u306f\u3001\u4e3b\u306b\u4ee5\u4e0b\u306e\u6a5f\u80fd\u3092\u5229\u7528\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u30d6\u30e9\u30a6\u30b6\u4e0a\u3067\u306e\u9375\u76e4\u6f14\u594f<\/strong>\uff1a\u30af\u30ea\u30c3\u30af\u3084\u30bf\u30c3\u30d7\u3001PC\u306e\u30ad\u30fc\u30dc\u30fc\u30c9\u5165\u529b\u3067\u30d4\u30a2\u30ce\u306e\u97f3\u3092\u9cf4\u3089\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u57fa\u6e96\u5468\u6ce2\u6570\u306e\u5fae\u8abf\u6574<\/strong>\uff1aA\uff08\u30e9\uff09\u306e\u97f3\u3092435Hz\u304b\u3089445Hz\u306e\u9593\u30671Hz\u5358\u4f4d\u3067\u5909\u66f4\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u57fa\u6e96\u97f3\u306e\u30ef\u30f3\u30bf\u30c3\u30c1\u518d\u751f<\/strong>\uff1a\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u306b\u3088\u304f\u4f7f\u308f\u308c\u308bC\uff08\u30c9\uff09\u3001D\uff08\u30ec\uff09\u3001E\uff08\u30df\uff09\u3001G\uff08\u30bd\uff09\u3001A\uff08\u30e9\uff09\u306e\u97f3\u3092\u30dc\u30bf\u30f3\u4e00\u3064\u3067\u9cf4\u3089\u305b\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30aa\u30af\u30bf\u30fc\u30d6\u306e\u5909\u66f4<\/strong>\uff1a\u4f4e\u3044\u97f3\u304b\u3089\u9ad8\u3044\u97f3\u307e\u3067\u3001\u6f14\u594f\u3059\u308b\u97f3\u57df\u3092\u7c21\u5358\u306b\u5207\u308a\u66ff\u3048\u3089\u308c\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30b5\u30b9\u30c6\u30a3\u30f3\u6a5f\u80fd<\/strong>\uff1a\u97f3\u3092\u9577\u304f\u4f38\u3070\u3057\u305f\u307e\u307e\uff08\u9cf4\u3089\u3057\u3063\u3071\u306a\u3057\uff09\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-1\">WEB\u30d4\u30a2\u30ce\u30fb\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u30c4\u30fc\u30eb\u306e\u4f7f\u3044\u65b9<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u521d\u5fc3\u8005\u306e\u65b9\u3067\u3082\u8ff7\u308f\u305a\u4f7f\u3048\u308b\u3088\u3046\u3001\u5404\u9805\u76ee\u306e\u64cd\u4f5c\u65b9\u6cd5\u3092\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u9375\u76e4\u306e\u5f3e\u304d\u65b9<\/strong> <br>\u753b\u9762\u4e0a\u306e\u9375\u76e4\u3092\u30de\u30a6\u30b9\u3067\u30af\u30ea\u30c3\u30af\u3001\u307e\u305f\u306f\u30b9\u30de\u30fc\u30c8\u30d5\u30a9\u30f3\u3067\u30bf\u30c3\u30d7\u3057\u3066\u6f14\u594f\u3057\u307e\u3059\u3002PC\u3092\u3054\u5229\u7528\u306e\u5834\u5408\u306f\u3001\u30ad\u30fc\u30dc\u30fc\u30c9\u306e\u300cZ\u300d\u304b\u3089\u300c,\uff08\u30ab\u30f3\u30de\uff09\u300d\u306e\u5217\u3092\u62bc\u3059\u3053\u3068\u3067\u3082\u6f14\u594f\u304c\u53ef\u80fd\u3067\u3059\uff08\u30ac\u30a4\u30c9\u8868\u793aON\u3067\u5bfe\u5fdc\u30ad\u30fc\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\uff09\u3002<\/li>\n\n\n\n<li><strong>\u97f3\u91cf\u30fb\u30aa\u30af\u30bf\u30fc\u30d6\u306e\u8abf\u6574<\/strong> <br>\u4e0a\u90e8\u306e\u30b9\u30e9\u30a4\u30c0\u30fc\u3067\u97f3\u91cf\u3092\u3001\u30d7\u30e9\u30b9\u30fb\u30de\u30a4\u30ca\u30b9\u30dc\u30bf\u30f3\u3067\u97f3\u57df\uff08\u30aa\u30af\u30bf\u30fc\u30d6\uff09\u3092\u8abf\u6574\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u57fa\u6e96\u5468\u6ce2\u6570\u306e\u5909\u66f4<\/strong> <br>\u300c\u57fa\u6e96\u5468\u6ce2\u6570(A)\u300d\u306e\u30b9\u30e9\u30a4\u30c0\u30fc\u3092\u52d5\u304b\u3059\u3053\u3068\u3067\u3001\u57fa\u672c\u3068\u306a\u308b\u30d4\u30c3\u30c1\u3092\u5909\u66f4\u3067\u304d\u307e\u3059\u3002\u6a19\u6e96\u306f440Hz\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30b5\u30b9\u30c6\u30a3\u30f3\u6a5f\u80fd\u306e\u6d3b\u7528<\/strong> <br>\u300c\u30b5\u30b9\u30c6\u30a3\u30f3: OFF\u300d\u306e\u30dc\u30bf\u30f3\u3092\u62bc\u3057\u3066\u300cON\u300d\u306b\u3059\u308b\u3068\u3001\u9375\u76e4\u304b\u3089\u6307\u3092\u96e2\u3057\u3066\u3082\u97f3\u304c\u9cf4\u308a\u7d9a\u3051\u307e\u3059\u3002\u3082\u3046\u4e00\u5ea6\u62bc\u3059\u3068\u97f3\u304c\u6b62\u307e\u308a\u307e\u3059\u3002\u4e21\u624b\u3092\u96e2\u3057\u3066\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u4f5c\u696d\u306b\u96c6\u4e2d\u3057\u305f\u3044\u5834\u5408\u306a\u3069\u306b\u4fbf\u5229\u3067\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-2\">\u3053\u306e\u30c4\u30fc\u30eb\u3067\u53d6\u5f97\u3059\u308b\u60c5\u5831\u306e\u57fa\u790e\u77e5\u8b58<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u97f3\u697d\u3084\u697d\u5668\u306e\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u306b\u95a2\u308f\u308b\u3001\u77e5\u3063\u3066\u304a\u304d\u305f\u3044\u57fa\u790e\u77e5\u8b58\u3092\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u57fa\u6e96\u5468\u6ce2\u6570\uff08440Hz\u3068442Hz\u306e\u9055\u3044\uff09<\/strong> <br>\u97f3\u697d\u306e\u4e16\u754c\u3067\u306f\u3001A\uff08\u30e9\uff09\u306e\u97f3\u306e\u9ad8\u3055\u3092\u57fa\u6e96\u306b\u5168\u4f53\u306e\u97f3\u7a0b\u3092\u5408\u308f\u305b\u307e\u3059\u3002\u56fd\u969b\u7684\u306a\u6a19\u6e96\u898f\u683c\u306f\u300cA=440Hz\u300d\u3067\u3059\u304c\u3001\u73fe\u4ee3\u306e\u5439\u594f\u697d\u3084\u30aa\u30fc\u30b1\u30b9\u30c8\u30e9\u3001\u30d4\u30a2\u30ce\u306e\u8abf\u5f8b\u306a\u3069\u3067\u306f\u3001\u3088\u308a\u83ef\u3084\u304b\u3067\u660e\u308b\u3044\u97ff\u304d\u3092\u5f97\u308b\u305f\u3081\u306b\u300cA=442Hz\u300d\u304c\u63a1\u7528\u3055\u308c\u308b\u3053\u3068\u304c\u3088\u304f\u3042\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30aa\u30af\u30bf\u30fc\u30d6<\/strong> <br>\u30c9\u30ec\u30df\u30d5\u30a1\u30bd\u30e9\u30b7\u30c9\u306e8\u97f3\u306e\u5468\u671f\u306e\u3053\u3068\u3067\u3059\u3002\u6570\u5b57\u304c\u5c0f\u3055\u304f\u306a\u308b\u307b\u3069\u4f4e\u3044\u97f3\u306b\u3001\u5927\u304d\u304f\u306a\u308b\u307b\u3069\u9ad8\u3044\u97f3\u306b\u306a\u308a\u307e\u3059\uff08\u4e00\u822c\u7684\u306a\u30d4\u30a2\u30ce\u306e\u4e2d\u592e\u306e\u30c9\u306f\u300c\u30aa\u30af\u30bf\u30fc\u30d64\u300d\u3067\u3059\uff09\u3002<\/li>\n\n\n\n<li><strong>\u30b5\u30b9\u30c6\u30a3\u30f3<\/strong> <br>\u97f3\u304c\u6301\u7d9a\u3059\u308b\u3053\u3068\u3092\u6307\u3057\u307e\u3059\u3002\u5b9f\u969b\u306e\u30d4\u30a2\u30ce\u306e\u53f3\u5074\u306b\u3042\u308b\u30da\u30c0\u30eb\uff08\u30c0\u30f3\u30d1\u30fc\u30da\u30c0\u30eb\uff09\u3092\u8e0f\u3093\u3060\u3068\u304d\u306e\u3088\u3046\u306b\u3001\u97f3\u3092\u9577\u304f\u97ff\u304b\u305b\u308b\u52b9\u679c\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-3\">\u3053\u306e\u30c4\u30fc\u30eb\u304c\u5f79\u7acb\u3064\u3068\u304d\u306f\u3069\u3093\u306a\u3068\u304d\uff1f \u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u306f\uff1f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u65e5\u5e38\u306e\u97f3\u697d\u30e9\u30a4\u30d5\u306e\u3055\u307e\u3056\u307e\u306a\u30b7\u30fc\u30f3\u3067\u3054\u6d3b\u7528\u3044\u305f\u3060\u3051\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u30a2\u30b3\u30fc\u30b9\u30c6\u30a3\u30c3\u30af\u30ae\u30bf\u30fc\u3084\u30d0\u30a4\u30aa\u30ea\u30f3\u306e\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0<\/strong> <br>\u30b9\u30de\u30db\u3067\u57fa\u6e96\u97f3\u3092\u30b5\u30b9\u30c6\u30a3\u30f3\uff08\u9cf4\u3089\u3057\u3063\u3071\u306a\u3057\uff09\u72b6\u614b\u306b\u3057\u3001\u4e21\u624b\u3092\u4f7f\u3063\u3066\u697d\u5668\u306e\u30da\u30b0\u3092\u56de\u3057\u306a\u304c\u3089\u8033\u3067\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u3092\u5408\u308f\u305b\u308b\u969b\u306b\u6700\u9069\u3067\u3059\u3002<\/li>\n\n\n\n<li><strong>\u5439\u594f\u697d\u3084\u30d0\u30f3\u30c9\u7df4\u7fd2\u524d\u306e\u30d4\u30c3\u30c1\u5408\u308f\u305b<\/strong> <br>\u5168\u4f53\u3067\u97f3\u3092\u5408\u308f\u305b\u308b\u969b\u3001\u30c1\u30e5\u30fc\u30ca\u30fc\u304c\u624b\u5143\u306b\u306a\u304f\u3066\u3082\u3001\u30b9\u30de\u30fc\u30c8\u30d5\u30a9\u30f3\u3092\u958b\u3051\u3070\u3059\u3050\u306b\u6b63\u78ba\u306a442Hz\u306a\u3069\u306e\u57fa\u6e96\u97f3\u3092\u9cf4\u3089\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u52d5\u753b\u8996\u8074\u4e2d\u306e\u8033\u30b3\u30d4\u30fb\u97f3\u7a0b\u78ba\u8a8d<\/strong> <br>YouTube\u306a\u3069\u3067\u66f2\u3092\u8074\u3044\u3066\u3044\u308b\u6700\u4e2d\u306b\u300c\u4eca\u306e\u30e1\u30ed\u30c7\u30a3\u306f\u4f55\u306e\u97f3\u3060\u308d\u3046\uff1f\u300d\u3068\u6c17\u306b\u306a\u3063\u305f\u3068\u304d\u3001\u30d6\u30e9\u30a6\u30b6\u306e\u5225\u30bf\u30d6\u3067\u3053\u306e\u30c4\u30fc\u30eb\u3092\u958b\u3051\u3070\u3001\u30b5\u30c3\u3068\u97f3\u3092\u62fe\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u767a\u58f0\u7df4\u7fd2\u3084\u97f3\u611f\u30c8\u30ec\u30fc\u30cb\u30f3\u30b0<\/strong> <br>\u5916\u51fa\u5148\u3084\u30ab\u30e9\u30aa\u30b1\u306a\u3069\u3067\u3001\u81ea\u5206\u306e\u6b4c\u3044\u51fa\u3057\u306e\u30d4\u30c3\u30c1\uff08\u97f3\u7a0b\uff09\u304c\u5408\u3063\u3066\u3044\u308b\u304b\u78ba\u8a8d\u3059\u308b\u305f\u3081\u306e\u30ac\u30a4\u30c9\u30e1\u30ed\u30c7\u30a3\u3068\u3057\u3066\u5f79\u7acb\u3061\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u97f3\u91cf \u30aa\u30af\u30bf\u30fc\u30d6 \u2013 4 + \u57fa\u6e96\u5468\u6ce2\u6570(A) 440Hz \u30b5\u30b9\u30c6\u30a3\u30f3: OFF \u30ac\u30a4\u30c9\u8868\u793a: ON \u57fa\u6e96\u97f3 C (\u30c9) D (\u30ec) E (\u30df) G (\u30bd) A (\u30e9=440Hz) \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u4e0d\u8981\u3067\u3001PC\u3084\u30b9\u30de\u30fc\u30c8\u30d5\u30a9 &#8230; <\/p>\n","protected":false},"author":4,"featured_media":15439,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,39],"tags":[],"class_list":["post-15387","post","type-post","status-publish","format-standard","has-post-thumbnail","category-tool","category-life","entry"],"_links":{"self":[{"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/posts\/15387","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/comments?post=15387"}],"version-history":[{"count":10,"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/posts\/15387\/revisions"}],"predecessor-version":[{"id":15440,"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/posts\/15387\/revisions\/15440"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/media\/15439"}],"wp:attachment":[{"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/media?parent=15387"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/categories?post=15387"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rakkokeyword.com\/techo\/wp-json\/wp\/v2\/tags?post=15387"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}