{"ast":null,"code":"var _jsxFileName = \"/var/www/gavt/src/hooks/useTemString.tsx\",\n  _s = $RefreshSig$();\nimport { useState } from 'react';\nimport { Typography, Row, Col } from 'antd';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nconst {\n  Title,\n  Paragraph,\n  Text,\n  Link\n} = Typography;\nconst fontSizePara = 17;\nconst fontAlign = \"justify\";\nconst paragraphStyle = {\n  textAlign: fontAlign,\n  fontSize: fontSizePara,\n  fontFamily: \"'Roboto', 'sans-serif'\"\n};\nexport function useTemString() {\n  _s();\n  const [syllablesString, setSyllablesString] = useState([['Big', '-ger', 'and', 'bet', '-ter'], ['Drum', 'and', 'bu', '-gle', 'corps'], ['He', 'has', 'a', 'good', 'job'], ['Be', '-fore', 'and', 'af', '-ter'], ['Come', 'back', 'right', 'a', '-way'], ['Blow', 'up', 'the', 'bal', '-loon']]);\n  const [stairFilenames, setStairFilenames] = useState([\"Bigger and better\", \"Drum and bugle corps\", \"He has a good job\", \"Before and after\", \"Come back right away\", \"Blow up the balloon\"]);\n  const [heteronymFilenames, setHeteronymFilenames] = useState([\"ADdress adDRESS\", \"CONduct conDUCT\", \"CONflict conFLICT\", \"CONtent conTENT\", \"CONsole conSOLE\", \"CONtest conTEST\", \"CONtrast conTRAST\", \"CONtract conTRACT\", \"DEsert deSERT\", \"CONvert conVERT\", \"EScort esCORT\", \"EXport exPORT\", \"CONvict conVICT\", \"EXtract exTRACT\", \"IMport imPORT\", \"DIgest diGEST\", \"INcrease inCREASE\", \"INsult inSULT\", \"PROduce proDUCE\", \"REcord reCORD\", \"TRANSfer transFER\", \"IMprint imPRINT\", \"INsert inSERT\", \"COMpound comPOUND\", \"INvalid inVALID\", \"OBject obJECT\", \"MINute minUTE\", \"PERmit perMIT\", \"PROject proJECT\", \"PREsent preSENT\"]);\n  const items_3 = [{\n    key: '1',\n    label: /*#__PURE__*/_jsxDEV(Typography.Title, {\n      id: \"part-3-1\",\n      level: 4,\n      style: {\n        margin: 0\n      },\n      children: \"Setting\"\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 71,\n      columnNumber: 14\n    }, this),\n    children: /*#__PURE__*/_jsxDEV(_Fragment, {\n      children: [/*#__PURE__*/_jsxDEV(Paragraph, {\n        children: \"The possible settings are:\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 74,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(Paragraph, {\n        children: /*#__PURE__*/_jsxDEV(\"ul\", {\n          children: [/*#__PURE__*/_jsxDEV(\"li\", {\n            children: /*#__PURE__*/_jsxDEV(\"p\", {\n              children: [/*#__PURE__*/_jsxDEV(\"strong\", {\n                children: \"Model selection\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 78,\n                columnNumber: 20\n              }, this), \": Lets you pick between several prerecorded voices to serve as a target \\\"avatar\\\". These are currently used only in the Syllables exercise.\"]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 78,\n              columnNumber: 17\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 77,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(\"li\", {\n            children: /*#__PURE__*/_jsxDEV(\"p\", {\n              children: [/*#__PURE__*/_jsxDEV(\"strong\", {\n                children: \"Exercise selection\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 81,\n                columnNumber: 20\n              }, this), \": Lets you pick between Constant, Stair, and Syllable exercises.\"]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 81,\n              columnNumber: 17\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 80,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(\"li\", {\n            children: /*#__PURE__*/_jsxDEV(\"p\", {\n              children: [/*#__PURE__*/_jsxDEV(\"strong\", {\n                children: \"Coordinate Display Mode\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 84,\n                columnNumber: 20\n              }, this), \": changes the pitch display between hertz and musical notes. You can also change this by clicking the vertical scale on the graph itself.\"]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 84,\n              columnNumber: 17\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 83,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(\"li\", {\n            children: /*#__PURE__*/_jsxDEV(\"p\", {\n              children: [/*#__PURE__*/_jsxDEV(\"strong\", {\n                children: \"Pitch display range\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 87,\n                columnNumber: 20\n              }, this), \": Changes the scale of the pitch graph. The blue part represents the current scale, and the white balls on the left and right can be dragged with your mouse to change the minimum or maximum of the scale. By default, it shows 100-300 Hz, but the maximum range is 50-600  Hz.\"]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 87,\n              columnNumber: 17\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 86,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(\"li\", {\n            children: /*#__PURE__*/_jsxDEV(\"p\", {\n              children: [/*#__PURE__*/_jsxDEV(\"strong\", {\n                children: \"Pitch Indicator position (Only appears in the Constant exercise)\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 90,\n                columnNumber: 20\n              }, this), \": Changes where the \\\"current pitch\\\" Pitch indicator appears in the graph.\"]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 90,\n              columnNumber: 17\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 89,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(\"li\", {\n            children: /*#__PURE__*/_jsxDEV(\"p\", {\n              children: [/*#__PURE__*/_jsxDEV(\"strong\", {\n                children: \"Pitch Indicator speed\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 93,\n                columnNumber: 20\n              }, this), \": Changes the speed with which the \\\"current pitch\\\" indicator ball moves across the screen.\"]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 93,\n              columnNumber: 17\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 92,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(\"li\", {\n            children: /*#__PURE__*/_jsxDEV(\"p\", {\n              children: [/*#__PURE__*/_jsxDEV(\"strong\", {\n                children: \"Auto-Start when Voice Detected\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 96,\n                columnNumber: 20\n              }, this), \": If this is enabled and the pitch module is paused, it will automatically start tracking pitch when the module detects sound on your microphone. If this is disabled, you must manually start it after pausing it.\"]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 96,\n              columnNumber: 17\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 95,\n            columnNumber: 15\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 76,\n          columnNumber: 13\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 75,\n        columnNumber: 11\n      }, this)]\n    }, void 0, true)\n  }, {\n    key: '2',\n    label: /*#__PURE__*/_jsxDEV(Typography.Title, {\n      id: \"part-3-2\",\n      level: 4,\n      style: {\n        margin: 0\n      },\n      children: \"Constant exercise\"\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 105,\n      columnNumber: 14\n    }, this),\n    children: /*#__PURE__*/_jsxDEV(_Fragment, {\n      children: [/*#__PURE__*/_jsxDEV(Paragraph, {\n        children: \"The Constant exercise is the most basic exercise. When you talk, it shows your current pitch with a large black dot and the last few seconds of your pitch with small red dots. If you stop talking, the graph keeps moving but does not show new red dots.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 108,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(Paragraph, {\n        children: \"On the right side of the graph, you can see a vertical slider. Moving this slider up and down creates a constant pitch target that is shown as a horizontal dark blue line across the screen. You can try to match this target. If your pitch is close enough to the target, the target line changes from blue to yellow. You can change the target as you exercise if you want.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 111,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(Paragraph, {\n        children: \"If you want something to read while you practice matching a target pitch, you can use the Upload txt file button below the graph to upload a .txt file with text of your choosing. In the .txt file, a semicolon should indicate a new line . While reading, you can then move between lines using the Forward/Backward buttons underneath the text. Other file formats are not currently supported but are planned for future releases.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 114,\n        columnNumber: 11\n      }, this)]\n    }, void 0, true)\n  }, {\n    key: '3',\n    label: /*#__PURE__*/_jsxDEV(Typography.Title, {\n      id: \"part-3-3\",\n      level: 4,\n      style: {\n        margin: 0\n      },\n      children: \"Stair Exercise\"\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 122,\n      columnNumber: 14\n    }, this),\n    children: /*#__PURE__*/_jsxDEV(_Fragment, {\n      children: [/*#__PURE__*/_jsxDEV(Paragraph, {\n        children: \"When you talk, the Staircase exercise shows your current pitch with a large black dot and the last few seconds of your pitch with small red dots. If you stop talking, the graph keeps moving but does not show new red dots. This is the same as in the Constant exercise.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 125,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(Paragraph, {\n        children: \"A dark blue line shows a sequence of pitches for you to match within a few seconds. You can change the location of these 'target' pitches using the light blue vertical slider to the right of the graph \\u2013 drag the bottom white ball up/down to move the lowest target or drag the top white ball to move the highest target.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 128,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(Paragraph, {\n        children: \"Pressing the Play button starts moving the current pitch indicator. Press it when you are ready to try matching the pitches. You can pause at any time, and once the indicator gets to the end, you can press Play again to restart. As you speak, the dark blue target pitch curve will change to yellow if your pitch is close to it.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 131,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(Paragraph, {\n        children: \"If you would like to have some sounds to make while matching the target pitches, the Show/Hide buttons  below the graph display a 5-syllable phrase. The full phrase is shown below the Show/Hide buttons, and each individual syllable is shown on one of the target pitch lines. The Forward/Backward buttons let you move to the next/previous phrase, and the Retry button resets the current phrase.  You don't have to use this function, it's just if you want to have something to say.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 134,\n        columnNumber: 11\n      }, this)]\n    }, void 0, true)\n  }, {\n    key: '4',\n    label: /*#__PURE__*/_jsxDEV(Typography.Title, {\n      id: \"part-3-3\",\n      level: 4,\n      style: {\n        margin: 0\n      },\n      children: \"Heteronyms Exercise\"\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 142,\n      columnNumber: 14\n    }, this),\n    children: /*#__PURE__*/_jsxDEV(_Fragment, {\n      children: [/*#__PURE__*/_jsxDEV(Paragraph, {\n        children: \"Heteronyms are words that are spelled the same way but pronounced differently - for example, by stressing a different syllable. In the Heteronyms exercise, the text below the graph shows two different ways to stress the same word, with the stressed variable in capital letters - for example, ADdress and adDRESS.          \"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 145,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(Paragraph, {\n        children: \"Pressing the Play button starts moving the current pitch indicator, as in the Constant and Stair exercises. Speak the word with the two variants of word stress and see how your pitch changes during the word - the stressed syllable should have a higher pitch.          \"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 147,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(Paragraph, {\n        children: \"The target curve on the graph (shown in dark blue) is simply a descending pitch followed by an ascending pitch. You do not need to match this curve exactly, it's just a reminder that the stressed syllable should have a higher pitch.          \"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 149,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(Paragraph, {\n        children: \"Finally, the Forward/Backward buttons let you move to the next or previous pair of heteronyms, and the Retry button lets you try the same pair of heteronyms again.          \"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 151,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(Paragraph, {\n        children: \"The heteronyms exercise is a bit different from the Constant and Stair exercises since it does not help you directly maintain a higher pitch - it simply teaches the concept of upward and downward pitch within a word, which can serve as the basis for other gender-affirming voice exercises.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 153,\n        columnNumber: 11\n      }, this)]\n    }, void 0, true)\n  }, {\n    key: '5',\n    label: /*#__PURE__*/_jsxDEV(Typography.Title, {\n      id: \"part-3-4\",\n      level: 4,\n      style: {\n        margin: 0\n      },\n      children: \"Syllables Exercise\"\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 161,\n      columnNumber: 14\n    }, this),\n    children: /*#__PURE__*/_jsxDEV(_Fragment, {\n      children: [/*#__PURE__*/_jsxDEV(Paragraph, {\n        children: \"To use the Syllables exercise, you must first select an avatar in the Options menu. Once you have done that, the Syllables exercise shows pitch curves from that recorded avatar while speaking 2-, 3-, 4-, or 5-syllable phrases in dark blue. As in the other two exercises, the graph shows your current pitch with a large black dot and the last few seconds of your pitch with small red dots. If you stop talking, the graph keeps moving but does not show new red dots.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 164,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(Paragraph, {\n        children: \"The goal of the exercise is to match the avatar's pitch curve as you say the same phrase. The target phrase is shown below the graph in green. Pressing the Play button starts moving the current pitch indicator. Press it when you are ready to try matching the curve. You can pause at any time, and once the indicator gets to the end, you can press Play again to restart the same phrase. As you speak, the dark blue target pitch curve will change to yellow if your pitch is close to it.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 167,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(Paragraph, {\n        children: \"Once the phrase finishes, you can press the Retry button to try matching it again, or press Forward/Backward to move to the next or previous phrase. The next two phrases are shown in grey below the current phrase.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 170,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(Paragraph, {\n        children: \"If you want to hear the phrase spoken by your selected avatar, press the Listen button. The dark blue curve will change to yellow as the phrase is played to indicate the timing.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 173,\n        columnNumber: 11\n      }, this)]\n    }, void 0, true)\n  }, {\n    key: '6',\n    label: /*#__PURE__*/_jsxDEV(Typography.Title, {\n      id: \"part-3-5\",\n      level: 4,\n      style: {\n        margin: 0\n      },\n      children: \"Suggestions\"\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 181,\n      columnNumber: 14\n    }, this),\n    children: /*#__PURE__*/_jsxDEV(_Fragment, {\n      children: [/*#__PURE__*/_jsxDEV(Paragraph, {\n        children: \"If you have limited ability to control your pitch, we recommend starting with the Constant exercise. Measure your current pitch and set the target pitch (with the slider on the right) to somewhere above your regular pitch. The \\\"stereotypical\\\" value for female pitch is about 200 Hz. Make sustained sounds (for example, \\\"aaaaaaaaaaa\\\") and try to consistently match the target pitch. Once you can consistently match the target pitch with all five vowels (a, e, i, o, u), try speaking longer phrases at the target pitch.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 184,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(Paragraph, {\n        children: \"When you feel comfortable matching the target pitch in the Constant exercise for short periods of time, add the Staircase exercise to your practice rotation. You can start by hiding the target text and just matching the target pitches with a sustained vowel sound (for example, \\\"aaaaa\\\" moving up and down in pitch). Once you can do that with all five vowel sounds, turn the target text on and try speaking the phrases. Once you can do that, you may also try the Syllables exercise, though you do not necessarily need to do the Syllables exercise \\u2013 the Constant and Staircase will give you the fundamentals.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 187,\n        columnNumber: 11\n      }, this), /*#__PURE__*/_jsxDEV(Paragraph, {\n        children: \"If this is all of your voice practice, do it for 10-15 minutes two times a day. It will help you learn pitch control, though you should keep in mind that pitch is not the only component of transgender voice. You will want to move on to other components of voice as well.\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 190,\n        columnNumber: 11\n      }, this)]\n    }, void 0, true)\n  }];\n  // const [component, setComponent] = useState<string>(\"ConstantTxt\");\n  const shortDescription = component => {\n    switch (component) {\n      // case 'Constant':\n      //   return <Constant ballPosition={ballPosition} isRetry={isRetry} setPlayingPause={setPlayingPause} setPlaying={setPlaying} COLORS={COLORS} showNotesPar={showNotesPar} size={size} config={config} isPlaying={isPlaying} />;\n      case 'ConstantTxt':\n        return /*#__PURE__*/_jsxDEV(Row, {\n          children: [/*#__PURE__*/_jsxDEV(Col, {\n            span: 5\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 205,\n            columnNumber: 11\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 14,\n            children: /*#__PURE__*/_jsxDEV(Typography, {\n              style: {\n                paddingLeft: \"30px\",\n                paddingRight: \"40px\"\n              },\n              children: /*#__PURE__*/_jsxDEV(Paragraph, {\n                style: paragraphStyle,\n                children: \"The Constant exercise is the most basic exercise. Try to match a constant pitch target using whatever sounds you prefer - short sounds, full monologues, or select/upload a text file for you to read below. You can change the pitch target using the slider to the right.\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 212,\n                columnNumber: 13\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 208,\n              columnNumber: 11\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 207,\n            columnNumber: 11\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 5\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 218,\n            columnNumber: 11\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 204,\n          columnNumber: 11\n        }, this);\n      // <>1</>\n      case 'Stair':\n        return /*#__PURE__*/_jsxDEV(Row, {\n          children: [/*#__PURE__*/_jsxDEV(Col, {\n            span: 5\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 226,\n            columnNumber: 11\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 14,\n            children: /*#__PURE__*/_jsxDEV(Typography, {\n              style: {\n                paddingLeft: \"30px\",\n                paddingRight: \"40px\"\n              },\n              children: /*#__PURE__*/_jsxDEV(Paragraph, {\n                style: paragraphStyle,\n                children: \"The Stair exercise asks you to match a series of five pitch targets. You can change the lowest and highest target using the slider to the right. You can use whatever sounds you prefer, or you can use the Show/Hide button below to show 5-syllable phrases that you can say at the five target pitches.\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 233,\n                columnNumber: 13\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 229,\n              columnNumber: 11\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 228,\n            columnNumber: 11\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 5\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 239,\n            columnNumber: 11\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 225,\n          columnNumber: 11\n        }, this);\n      case 'Fixed':\n        return /*#__PURE__*/_jsxDEV(Row, {\n          children: [/*#__PURE__*/_jsxDEV(Col, {\n            span: 5\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 246,\n            columnNumber: 11\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 14,\n            children: /*#__PURE__*/_jsxDEV(Typography, {\n              style: {\n                paddingLeft: \"30px\",\n                paddingRight: \"40px\"\n              },\n              children: /*#__PURE__*/_jsxDEV(Paragraph, {\n                style: paragraphStyle,\n                children: \"The human curve exercise gives you pitch curves of actual humans speaking different phrases (2 to 5 syllables long). Try to match the pitch curve with your own speech! You can use the Listen button below to hear the actual recording, and you can select different model speakers in the Options menu.            \"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 253,\n                columnNumber: 13\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 249,\n              columnNumber: 11\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 248,\n            columnNumber: 11\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 5\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 258,\n            columnNumber: 11\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 245,\n          columnNumber: 11\n        }, this);\n      case 'Heteronym':\n        return /*#__PURE__*/_jsxDEV(Row, {\n          children: [/*#__PURE__*/_jsxDEV(Col, {\n            span: 5\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 265,\n            columnNumber: 11\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 14,\n            children: /*#__PURE__*/_jsxDEV(Typography, {\n              style: {\n                paddingLeft: \"30px\",\n                paddingRight: \"40px\"\n              },\n              children: /*#__PURE__*/_jsxDEV(Paragraph, {\n                style: paragraphStyle,\n                children: \"The heteronyms exercise asks you to speak two words that are written the same way but pronounced differently - for example, address as a verb vs. address as a noun. Practice stressing different syllables to make your pitch curve go up or down!\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 272,\n                columnNumber: 13\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 268,\n              columnNumber: 11\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 267,\n            columnNumber: 11\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 5\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 278,\n            columnNumber: 11\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 264,\n          columnNumber: 11\n        }, this);\n      default:\n        return /*#__PURE__*/_jsxDEV(Row, {\n          children: [/*#__PURE__*/_jsxDEV(Col, {\n            span: 5\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 285,\n            columnNumber: 11\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 14,\n            children: /*#__PURE__*/_jsxDEV(Typography, {\n              style: {\n                paddingLeft: \"30px\",\n                paddingRight: \"40px\"\n              },\n              children: /*#__PURE__*/_jsxDEV(Paragraph, {\n                style: paragraphStyle,\n                children: \"The Constant exercise is the most basic exercise. Try to match a constant pitch target using whatever sounds you prefer - short sounds, full monologues, or select/upload a text file for you to read below. You can change the pitch target using the slider to the right.\"\n              }, void 0, false, {\n                fileName: _jsxFileName,\n                lineNumber: 292,\n                columnNumber: 13\n              }, this)\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 288,\n              columnNumber: 11\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 287,\n            columnNumber: 11\n          }, this), /*#__PURE__*/_jsxDEV(Col, {\n            span: 5\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 298,\n            columnNumber: 11\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 284,\n          columnNumber: 11\n        }, this);\n    }\n  };\n  return {\n    syllablesString,\n    stairFilenames,\n    heteronymFilenames,\n    items_3,\n    shortDescription\n  };\n}\n_s(useTemString, \"tCEfpAQalIn5lnd5CWL5KgnkxiI=\");","map":{"version":3,"names":["useState","Typography","Row","Col","jsxDEV","_jsxDEV","Fragment","_Fragment","Title","Paragraph","Text","Link","fontSizePara","fontAlign","paragraphStyle","textAlign","fontSize","fontFamily","useTemString","_s","syllablesString","setSyllablesString","stairFilenames","setStairFilenames","heteronymFilenames","setHeteronymFilenames","items_3","key","label","id","level","style","margin","children","fileName","_jsxFileName","lineNumber","columnNumber","shortDescription","component","span","paddingLeft","paddingRight"],"sources":["/var/www/gavt/src/hooks/useTemString.tsx"],"sourcesContent":["import { useState } from 'react';\nimport type { CollapseProps } from 'antd';\nimport { Typography, Row, Col,  } from 'antd';\nimport type { TourProps } from 'antd';\n\n\nconst { Title, Paragraph, Text, Link } = Typography;\n\nconst fontSizePara = 17;\nconst fontAlign = \"justify\";\nconst paragraphStyle:React.CSSProperties = {\n  textAlign: fontAlign,  \n  fontSize: fontSizePara,\n  fontFamily: \"'Roboto', 'sans-serif'\",\n};\n\nexport function useTemString() {\n  const [syllablesString, setSyllablesString] = useState<string[][]>([\n    ['Big', '-ger', 'and', 'bet', '-ter'],\n    ['Drum', 'and', 'bu', '-gle', 'corps'],\n    ['He', 'has', 'a', 'good', 'job'],\n    ['Be', '-fore', 'and', 'af', '-ter'],\n    ['Come', 'back', 'right', 'a', '-way'],\n    ['Blow', 'up', 'the', 'bal', '-loon']\n  ]);\n\n  const [stairFilenames, setStairFilenames] = useState<string[]>([\n    \"Bigger and better\",\n    \"Drum and bugle corps\",\n    \"He has a good job\",\n    \"Before and after\",\n    \"Come back right away\",\n    \"Blow up the balloon\"\n  ]);\n\n  const [heteronymFilenames, setHeteronymFilenames] = useState<string[]>([\n    \"ADdress adDRESS\",\n    \"CONduct conDUCT\",\n    \"CONflict conFLICT\",\n    \"CONtent conTENT\",\n    \"CONsole conSOLE\",\n    \"CONtest conTEST\",\n    \"CONtrast conTRAST\",\n    \"CONtract conTRACT\",\n    \"DEsert deSERT\",\n    \"CONvert conVERT\",\n    \"EScort esCORT\",\n    \"EXport exPORT\",\n    \"CONvict conVICT\",\n    \"EXtract exTRACT\",\n    \"IMport imPORT\",\n    \"DIgest diGEST\",\n    \"INcrease inCREASE\",\n    \"INsult inSULT\",\n    \"PROduce proDUCE\",\n    \"REcord reCORD\",\n    \"TRANSfer transFER\",\n    \"IMprint imPRINT\",\n    \"INsert inSERT\",\n    \"COMpound comPOUND\",\n    \"INvalid inVALID\",\n    \"OBject obJECT\",\n    \"MINute minUTE\",\n    \"PERmit perMIT\",\n    \"PROject proJECT\",\n    \"PREsent preSENT\"\n  ]);\n  const items_3: CollapseProps['items'] = [\n    {\n      key: '1',\n      label: <Typography.Title id=\"part-3-1\" level={4} style={{ margin: 0 }}>Setting</Typography.Title>,\n      children: (\n        <>\n          <Paragraph>The possible settings are:</Paragraph>\n          <Paragraph>\n            <ul>\n              <li>\n                <p><strong>Model selection</strong>: Lets you pick between several prerecorded voices to serve as a target \"avatar\". These are currently used only in the Syllables exercise.</p>\n              </li>\n              <li>\n                <p><strong>Exercise selection</strong>: Lets you pick between Constant, Stair, and Syllable exercises.</p>\n              </li>\n              <li>\n                <p><strong>Coordinate Display Mode</strong>: changes the pitch display between hertz and musical notes. You can also change this by clicking the vertical scale on the graph itself.</p>\n              </li>\n              <li>\n                <p><strong>Pitch display range</strong>: Changes the scale of the pitch graph. The blue part represents the current scale, and the white balls on the left and right can be dragged with your mouse to change the minimum or maximum of the scale. By default, it shows 100-300 Hz, but the maximum range is 50-600  Hz.</p>\n              </li>\n              <li>\n                <p><strong>Pitch Indicator position (Only appears in the Constant exercise)</strong>: Changes where the \"current pitch\" Pitch indicator appears in the graph.</p>\n              </li>\n              <li>\n                <p><strong>Pitch Indicator speed</strong>: Changes the speed with which the \"current pitch\" indicator ball moves across the screen.</p>\n              </li>\n              <li>\n                <p><strong>Auto-Start when Voice Detected</strong>: If this is enabled and the pitch module is paused, it will automatically start tracking pitch when the module detects sound on your microphone. If this is disabled, you must manually start it after pausing it.</p>\n              </li>\n            </ul>\n          </Paragraph>\n        </>\n      ),\n    },\n    {\n      key: '2',\n      label: <Typography.Title id=\"part-3-2\" level={4} style={{ margin: 0 }}>Constant exercise</Typography.Title>,\n      children: (\n        <>\n          <Paragraph>\n            The Constant exercise is the most basic exercise. When you talk, it shows your current pitch with a large black dot and the last few seconds of your pitch with small red dots. If you stop talking, the graph keeps moving but does not show new red dots.\n          </Paragraph>\n          <Paragraph>\n            On the right side of the graph, you can see a vertical slider. Moving this slider up and down creates a constant pitch target that is shown as a horizontal dark blue line across the screen. You can try to match this target. If your pitch is close enough to the target, the target line changes from blue to yellow. You can change the target as you exercise if you want.\n          </Paragraph>\n          <Paragraph>\n            If you want something to read while you practice matching a target pitch, you can use the Upload txt file button below the graph to upload a .txt file with text of your choosing. In the .txt file, a semicolon should indicate a new line . While reading, you can then move between lines using the Forward/Backward buttons underneath the text. Other file formats are not currently supported but are planned for future releases.\n          </Paragraph>\n        </>\n      ),\n    },\n    {\n      key: '3',\n      label: <Typography.Title id=\"part-3-3\" level={4} style={{ margin: 0 }}>Stair Exercise</Typography.Title>,\n      children: (\n        <>\n          <Paragraph>\n            When you talk, the Staircase exercise shows your current pitch with a large black dot and the last few seconds of your pitch with small red dots. If you stop talking, the graph keeps moving but does not show new red dots. This is the same as in the Constant exercise.\n          </Paragraph>\n          <Paragraph>\n            A dark blue line shows a sequence of pitches for you to match within a few seconds. You can change the location of these 'target' pitches using the light blue vertical slider to the right of the graph – drag the bottom white ball up/down to move the lowest target or drag the top white ball to move the highest target.\n          </Paragraph>\n          <Paragraph>\n            Pressing the Play button starts moving the current pitch indicator. Press it when you are ready to try matching the pitches. You can pause at any time, and once the indicator gets to the end, you can press Play again to restart. As you speak, the dark blue target pitch curve will change to yellow if your pitch is close to it.\n          </Paragraph>\n          <Paragraph>\n            If you would like to have some sounds to make while matching the target pitches, the Show/Hide buttons  below the graph display a 5-syllable phrase. The full phrase is shown below the Show/Hide buttons, and each individual syllable is shown on one of the target pitch lines. The Forward/Backward buttons let you move to the next/previous phrase, and the Retry button resets the current phrase.  You don't have to use this function, it's just if you want to have something to say.\n          </Paragraph>\n        </>\n      ),\n    },\n    {\n      key: '4',\n      label: <Typography.Title id=\"part-3-3\" level={4} style={{ margin: 0 }}>Heteronyms Exercise</Typography.Title>,\n      children: (\n        <>\n          <Paragraph>\n          Heteronyms are words that are spelled the same way but pronounced differently - for example, by stressing a different syllable. In the Heteronyms exercise, the text below the graph shows two different ways to stress the same word, with the stressed variable in capital letters - for example, ADdress and adDRESS.          </Paragraph>\n          <Paragraph>\n          Pressing the Play button starts moving the current pitch indicator, as in the Constant and Stair exercises. Speak the word with the two variants of word stress and see how your pitch changes during the word - the stressed syllable should have a higher pitch.          </Paragraph>\n          <Paragraph>\n          The target curve on the graph (shown in dark blue) is simply a descending pitch followed by an ascending pitch. You do not need to match this curve exactly, it's just a reminder that the stressed syllable should have a higher pitch.          </Paragraph>\n          <Paragraph>\n          Finally, the Forward/Backward buttons let you move to the next or previous pair of heteronyms, and the Retry button lets you try the same pair of heteronyms again.          </Paragraph>\n          <Paragraph>\n          The heteronyms exercise is a bit different from the Constant and Stair exercises since it does not help you directly maintain a higher pitch - it simply teaches the concept of upward and downward pitch within a word, which can serve as the basis for other gender-affirming voice exercises.\n           </Paragraph>\n        </>\n      ),\n    },\n    {\n      key: '5',\n      label: <Typography.Title id=\"part-3-4\" level={4} style={{ margin: 0 }}>Syllables Exercise</Typography.Title>,\n      children: (\n        <>\n          <Paragraph>\n            To use the Syllables exercise, you must first select an avatar in the Options menu. Once you have done that, the Syllables exercise shows pitch curves from that recorded avatar while speaking 2-, 3-, 4-, or 5-syllable phrases in dark blue. As in the other two exercises, the graph shows your current pitch with a large black dot and the last few seconds of your pitch with small red dots. If you stop talking, the graph keeps moving but does not show new red dots.\n          </Paragraph>\n          <Paragraph>\n            The goal of the exercise is to match the avatar's pitch curve as you say the same phrase. The target phrase is shown below the graph in green. Pressing the Play button starts moving the current pitch indicator. Press it when you are ready to try matching the curve. You can pause at any time, and once the indicator gets to the end, you can press Play again to restart the same phrase. As you speak, the dark blue target pitch curve will change to yellow if your pitch is close to it.\n          </Paragraph>\n          <Paragraph>\n            Once the phrase finishes, you can press the Retry button to try matching it again, or press Forward/Backward to move to the next or previous phrase. The next two phrases are shown in grey below the current phrase.\n          </Paragraph>\n          <Paragraph>\n            If you want to hear the phrase spoken by your selected avatar, press the Listen button. The dark blue curve will change to yellow as the phrase is played to indicate the timing.\n          </Paragraph>\n        </>\n      ),\n    },\n    {\n      key: '6',\n      label: <Typography.Title id=\"part-3-5\" level={4} style={{ margin: 0 }}>Suggestions</Typography.Title>,\n      children: (\n        <>\n          <Paragraph>\n            If you have limited ability to control your pitch, we recommend starting with the Constant exercise. Measure your current pitch and set the target pitch (with the slider on the right) to somewhere above your regular pitch. The \"stereotypical\" value for female pitch is about 200 Hz. Make sustained sounds (for example, \"aaaaaaaaaaa\") and try to consistently match the target pitch. Once you can consistently match the target pitch with all five vowels (a, e, i, o, u), try speaking longer phrases at the target pitch.\n          </Paragraph>\n          <Paragraph>\n            When you feel comfortable matching the target pitch in the Constant exercise for short periods of time, add the Staircase exercise to your practice rotation. You can start by hiding the target text and just matching the target pitches with a sustained vowel sound (for example, \"aaaaa\" moving up and down in pitch). Once you can do that with all five vowel sounds, turn the target text on and try speaking the phrases. Once you can do that, you may also try the Syllables exercise, though you do not necessarily need to do the Syllables exercise – the Constant and Staircase will give you the fundamentals.\n          </Paragraph>\n          <Paragraph>\n            If this is all of your voice practice, do it for 10-15 minutes two times a day. It will help you learn pitch control, though you should keep in mind that pitch is not the only component of transgender voice. You will want to move on to other components of voice as well.\n          </Paragraph>\n        </>\n      ),\n    },\n  ];\n  // const [component, setComponent] = useState<string>(\"ConstantTxt\");\n  const shortDescription = (component:string): React.ReactNode => {\n    switch (component) {\n      // case 'Constant':\n      //   return <Constant ballPosition={ballPosition} isRetry={isRetry} setPlayingPause={setPlayingPause} setPlaying={setPlaying} COLORS={COLORS} showNotesPar={showNotesPar} size={size} config={config} isPlaying={isPlaying} />;\n      case 'ConstantTxt':\n        return (\n          <Row>\n          <Col span={5}>\n          </Col>\n          <Col span={14}>\n          <Typography style={{ paddingLeft: \"30px\", paddingRight: \"40px\" }}>\n            {/* <div className=\"centerTitle\">\n              <Title className=\"customTitle\">CONSTANT EXERCISES</Title>\n            </div> */}\n            <Paragraph style={paragraphStyle}>\n            The Constant exercise is the most basic exercise. Try to match a constant pitch target using whatever sounds you prefer - short sounds, full monologues, or select/upload a text file for you to read below. You can change the pitch target using the slider to the right.  \n            </Paragraph >\n          </Typography>\n          </Col>\n        \n          <Col span={5}>\n          </Col>\n          </Row>\n        )\n        // <>1</>\n      case 'Stair':\n        return (\n          <Row>\n          <Col span={5}>\n          </Col>\n          <Col span={14}>\n          <Typography style={{ paddingLeft: \"30px\", paddingRight: \"40px\" }}>\n            {/* <div className=\"centerTitle\">\n              <Title className=\"customTitle\">STAIR EXERCISES</Title>\n            </div> */}\n            <Paragraph style={paragraphStyle}>\n            The Stair exercise asks you to match a series of five pitch targets. You can change the lowest and highest target using the slider to the right. You can use whatever sounds you prefer, or you can use the Show/Hide button below to show 5-syllable phrases that you can say at the five target pitches.\n            </Paragraph >\n          </Typography>\n          </Col>\n        \n          <Col span={5}>\n          </Col>\n          </Row>\n        )\n      case 'Fixed':\n        return (\n          <Row>\n          <Col span={5}>\n          </Col>\n          <Col span={14}>\n          <Typography style={{ paddingLeft: \"30px\", paddingRight: \"40px\" }}>\n            {/* <div className=\"centerTitle\">\n              <Title className=\"customTitle\">HUMAN CURVE EXERCISES</Title>\n            </div> */}\n            <Paragraph style={paragraphStyle}>\n            The human curve exercise gives you pitch curves of actual humans speaking different phrases (2 to 5 syllables long). Try to match the pitch curve with your own speech! You can use the Listen button below to hear the actual recording, and you can select different model speakers in the Options menu.            </Paragraph >\n          </Typography>\n          </Col>\n        \n          <Col span={5}>\n          </Col>\n          </Row>\n        )\n      case 'Heteronym':\n        return (\n          <Row>\n          <Col span={5}>\n          </Col>\n          <Col span={14}>\n          <Typography style={{ paddingLeft: \"30px\", paddingRight: \"40px\" }}>\n            {/* <div className=\"centerTitle\">\n              <Title className=\"customTitle\">HETERONYMS EXERCISES</Title>\n            </div> */}\n            <Paragraph style={paragraphStyle}>\n            The heteronyms exercise asks you to speak two words that are written the same way but pronounced differently - for example, address as a verb vs. address as a noun. Practice stressing different syllables to make your pitch curve go up or down!\n            </Paragraph >\n          </Typography>\n          </Col>\n        \n          <Col span={5}>\n          </Col>\n          </Row>\n        )\n      default:\n        return (\n          <Row>\n          <Col span={5}>\n          </Col>\n          <Col span={14}>\n          <Typography style={{ paddingLeft: \"30px\", paddingRight: \"40px\" }}>\n            {/* <div className=\"centerTitle\">\n              <Title className=\"customTitle\">CONSTANT EXERCISES</Title>\n            </div> */}\n            <Paragraph style={paragraphStyle}>\n            The Constant exercise is the most basic exercise. Try to match a constant pitch target using whatever sounds you prefer - short sounds, full monologues, or select/upload a text file for you to read below. You can change the pitch target using the slider to the right.  \n            </Paragraph >\n          </Typography>\n          </Col>\n        \n          <Col span={5}>\n          </Col>\n          </Row>\n        )\n    }\n  }\n\n  return {\n    syllablesString,\n    stairFilenames,\n    heteronymFilenames,\n    items_3,\n    shortDescription,\n\n\n  };\n}"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}