{"ast":null,"code":"var _jsxFileName = \"D:\\\\Project\\\\UC_Trains_Voice\\\\react-demo\\\\src\\\\Route\\\\Assessment.tsx\",\n  _s = $RefreshSig$();\nimport React, { useState, useEffect } from 'react';\nimport { getPitch } from '../function/getPitch';\nimport { useNavigate } from 'react-router-dom';\nimport { Button } from 'antd';\nimport { Slider } from 'antd';\nimport { Typography } from 'antd';\nimport '../CSS/Timer.css'; // Import CSS for styling\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst {\n  Paragraph\n} = Typography;\nconst fontAlign = \"center\";\nconst fontSizePara = 17;\nconst Assessment = () => {\n  _s();\n  const [page, setPage] = useState('intro');\n  const [showRecording, setShowRecording] = useState(false);\n  const [isRecording, setIsRecording] = useState(false); // State to track recording status\n  const [isStopped, setIsStopped] = useState(true); // State to track if the recording has stopped\n  const [seconds, setSeconds] = useState(3);\n  const [pitch, setPitch] = useState(null);\n  const [ePitch, setEPitch] = useState(null);\n  const [eMeanPitch, setEMeanPitch] = useState(null);\n  const [rainbowPitch, setRainbowPitch] = useState(null);\n  const [rainbowMeanPitch, setRainbowMeanPitch] = useState(null);\n  const marks = {\n    0: 'No Effort',\n    100: 'A Lot of Effort'\n  };\n  useEffect(() => {\n    // Start the timer interval\n    const interval = setInterval(() => {\n      if (isRecording && !isStopped) {\n        setSeconds(prevSeconds => prevSeconds + 1);\n        getPitch(config, handlePitchDetected);\n      } else {\n        setPitch(null); // Reset the pitch value when not recording\n        setSeconds(prevSeconds => prevSeconds - 1);\n      }\n    }, 1000);\n    if (page === 'recording1' && pitch !== null) {\n      console.log('eeee: ', pitch);\n      setEPitch(prevEPitch => prevEPitch ? [...prevEPitch, pitch] : [pitch]);\n    } else if (page === 'recording2' && pitch !== null) {\n      console.log('rainbow: ', pitch);\n      setRainbowPitch(prevRainbowPitch => prevRainbowPitch ? [...prevRainbowPitch, pitch] : [pitch]);\n    }\n    // Clear the interval and set recording status when timer hits 0\n    if (seconds === 0) {\n      setIsRecording(true);\n    }\n    if (isStopped) {\n      setPitch(null);\n      clearInterval(interval);\n      console.log('Pitch Values: ', ePitch);\n      if (ePitch !== null) {\n        setEMeanPitch(ePitch.reduce((a, b) => a + b, 0) / ePitch.length);\n      }\n      console.log('Rainbow Pitch Values: ', rainbowPitch);\n      if (rainbowPitch !== null) {\n        setRainbowMeanPitch(rainbowPitch.reduce((a, b) => a + b, 0) / rainbowPitch.length);\n      }\n    }\n    // Cleanup function to clear the interval when the component unmounts\n    return () => clearInterval(interval);\n  }, [seconds, isRecording, isStopped]); // useEffect will re-run whenever 'seconds', 'isStopped' or 'isRecording' changes\n\n  const handlePitchDetected = detectedPitch => {\n    setPitch(detectedPitch);\n  };\n  const handlePageChange = newPage => {\n    setSeconds(3); // Reset the timer to 5 seconds\n    setIsRecording(false); // Reset the recording status\n    setPitch(null);\n    setIsStopped(true); // Reset the stopped status\n    if (newPage === 'recording1' || newPage === 'recording2') {\n      setShowRecording(true);\n    } else {\n      setShowRecording(false);\n    }\n    setPage(newPage);\n  };\n  const startTimer = () => {\n    setSeconds(3); // Reset the timer to 5 seconds\n    setIsRecording(false); // Reset the recording status\n    setPitch(null);\n    setIsStopped(false); // Reset the stopped status\n  };\n  const redoTimer = () => {\n    setIsRecording(false);\n    startTimer();\n    setIsStopped(true);\n    if (page === 'recording1') {\n      setEPitch(null);\n    } else if (page === 'recording2') {\n      setRainbowPitch(null);\n    }\n  };\n  const stopTimer = () => {\n    setIsStopped(true); // Set the stopped status to true\n    setPitch(null);\n  };\n  const config = {\n    SRATE: 48000,\n    fxmin: 50,\n    fxlow: 50 + 50,\n    fxhigh: 600 - 200,\n    fxmax: 600\n  };\n  const navigate = useNavigate();\n  const goToSample = () => {};\n  // Calculate minutes and seconds from total seconds\n  const minutes = Math.floor(seconds / 60);\n  const remainingSeconds = seconds % 60;\n\n  // Format minutes and seconds with leading zeros\n  const formattedMinutes = String(minutes).padStart(2, '0');\n  const formattedSeconds = String(remainingSeconds).padStart(2, '0');\n  return /*#__PURE__*/_jsxDEV(\"div\", {\n    children: [page === 'intro' && /*#__PURE__*/_jsxDEV(\"div\", {\n      style: {\n        width: \"100%\",\n        textAlign: \"center\"\n      },\n      children: /*#__PURE__*/_jsxDEV(Typography, {\n        children: [/*#__PURE__*/_jsxDEV(Typography.Title, {\n          level: 2,\n          children: \"Welcome to the Assessment Module\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 151,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(Paragraph, {\n          children: \"This module will analyze your voice and give you some basic information about it. Press Start to begin.\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 152,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(Button, {\n          onClick: () => handlePageChange('recording1'),\n          children: \"Start\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 155,\n          columnNumber: 13\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 150,\n        columnNumber: 11\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 149,\n      columnNumber: 9\n    }, this), showRecording && /*#__PURE__*/_jsxDEV(\"div\", {\n      style: {\n        width: \"100%\",\n        textAlign: \"center\"\n      },\n      children: /*#__PURE__*/_jsxDEV(Typography, {\n        children: [/*#__PURE__*/_jsxDEV(Typography.Title, {\n          level: 2,\n          children: \"Recording Section\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 163,\n          columnNumber: 13\n        }, this), page === 'recording1' && /*#__PURE__*/_jsxDEV(\"div\", {\n          style: {\n            width: \"100%\",\n            textAlign: \"center\"\n          },\n          children: [/*#__PURE__*/_jsxDEV(Paragraph, {\n            style: {\n              textAlign: fontAlign,\n              fontSize: fontSizePara\n            },\n            children: \"Hold an ee sound for five secounds. Press Record to begin recording.\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 166,\n            columnNumber: 13\n          }, this), !isRecording ? /*#__PURE__*/_jsxDEV(Button, {\n            onClick: startTimer,\n            children: \"Record\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 170,\n            columnNumber: 15\n          }, this) : /*#__PURE__*/_jsxDEV(\"div\", {\n            children: [/*#__PURE__*/_jsxDEV(Button, {\n              onClick: stopTimer,\n              children: \"Stop\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 173,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(Button, {\n              onClick: () => handlePageChange('recording2'),\n              children: \"Continue\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 175,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(Button, {\n              onClick: redoTimer,\n              children: \"Redo\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 176,\n              columnNumber: 17\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 172,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n            className: `timer-container ${isRecording ? 'recording' : ''}`,\n            children: [!isRecording && /*#__PURE__*/_jsxDEV(\"div\", {\n              className: \"recording-indicator\",\n              children: \"Starting in...\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 181,\n              columnNumber: 30\n            }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n              className: \"timer\",\n              children: [formattedMinutes, \":\", formattedSeconds]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 182,\n              columnNumber: 14\n            }, this), isRecording && /*#__PURE__*/_jsxDEV(\"div\", {\n              className: \"recording-indicator\",\n              children: \"Recording...\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 183,\n              columnNumber: 33\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 180,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 165,\n          columnNumber: 9\n        }, this), page === 'recording2' && /*#__PURE__*/_jsxDEV(\"div\", {\n          style: {\n            width: \"100%\",\n            textAlign: \"center\"\n          },\n          children: [/*#__PURE__*/_jsxDEV(Paragraph, {\n            style: {\n              textAlign: fontAlign,\n              fontSize: fontSizePara\n            },\n            children: [\"Read the following text out loud. Press Record to begin recording, and press Stop when you are finished. \", /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 192,\n              columnNumber: 118\n            }, this), \"| \", '\\t', /*#__PURE__*/_jsxDEV(\"i\", {\n              children: \"\\\"The rainbow is a division of white light into many beautiful colors. These take the shape of a long round arch, with its path high above, and its two ends apparently beyond the horizon\\\"\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 193,\n              columnNumber: 21\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 191,\n            columnNumber: 13\n          }, this), !isRecording ? /*#__PURE__*/_jsxDEV(Button, {\n            onClick: startTimer,\n            children: \"Record\"\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 196,\n            columnNumber: 15\n          }, this) : /*#__PURE__*/_jsxDEV(\"div\", {\n            children: [/*#__PURE__*/_jsxDEV(Button, {\n              onClick: stopTimer,\n              children: \"Stop\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 199,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(Button, {\n              onClick: () => handlePageChange('survey'),\n              children: \"Continue\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 201,\n              columnNumber: 17\n            }, this), /*#__PURE__*/_jsxDEV(Button, {\n              onClick: redoTimer,\n              children: \"Redo\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 202,\n              columnNumber: 17\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 198,\n            columnNumber: 15\n          }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n            className: `timer-container ${isRecording ? 'recording' : ''}`,\n            children: [!isRecording && /*#__PURE__*/_jsxDEV(\"div\", {\n              className: \"recording-indicator\",\n              children: [\"Starting in \", formattedSeconds, \"...\"]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 207,\n              columnNumber: 30\n            }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n              className: \"timer\",\n              children: [formattedMinutes, \":\", formattedSeconds]\n            }, void 0, true, {\n              fileName: _jsxFileName,\n              lineNumber: 208,\n              columnNumber: 14\n            }, this), isRecording && /*#__PURE__*/_jsxDEV(\"div\", {\n              className: \"recording-indicator\",\n              children: \"Recording...\"\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 209,\n              columnNumber: 33\n            }, this)]\n          }, void 0, true, {\n            fileName: _jsxFileName,\n            lineNumber: 206,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 190,\n          columnNumber: 9\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 162,\n        columnNumber: 9\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 161,\n      columnNumber: 10\n    }, this), page === 'survey' && /*#__PURE__*/_jsxDEV(\"div\", {\n      style: {\n        width: \"100%\",\n        textAlign: \"center\"\n      },\n      children: /*#__PURE__*/_jsxDEV(Typography, {\n        children: [/*#__PURE__*/_jsxDEV(Typography.Title, {\n          level: 2,\n          children: \"Survey Section\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 219,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(Paragraph, {\n          style: {\n            textAlign: fontAlign,\n            fontSize: fontSizePara\n          },\n          children: \"Rate the physical vocal effort needed to create your target voice:\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 220,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          style: {\n            width: '75%',\n            margin: '0 auto'\n          },\n          children: /*#__PURE__*/_jsxDEV(Slider, {\n            marks: marks,\n            defaultValue: 0 // Set default value (0 for \"Very Easy\")\n            ,\n            tooltip: {\n              formatter: null\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 224,\n            columnNumber: 13\n          }, this)\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 223,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 230,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 231,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(Paragraph, {\n          style: {\n            textAlign: fontAlign,\n            fontSize: fontSizePara\n          },\n          children: \"Rate the cognitive vocal effort needed to create your target voice:\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 232,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n          style: {\n            width: '75%',\n            margin: '0 auto'\n          },\n          children: [/*#__PURE__*/_jsxDEV(Slider, {\n            marks: marks,\n            defaultValue: 0 // Set default value (0 for \"Very Easy\")\n            ,\n            tooltip: {\n              formatter: null\n            }\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 236,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 241,\n            columnNumber: 13\n          }, this), /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 242,\n            columnNumber: 13\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 235,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(Button, {\n          onClick: () => handlePageChange('results'),\n          children: \"Finish Assesment\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 244,\n          columnNumber: 13\n        }, this)]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 218,\n        columnNumber: 13\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 217,\n      columnNumber: 9\n    }, this), page === 'results' && /*#__PURE__*/_jsxDEV(\"div\", {\n      style: {\n        width: \"100%\",\n        textAlign: \"center\"\n      },\n      children: /*#__PURE__*/_jsxDEV(Typography, {\n        children: [/*#__PURE__*/_jsxDEV(Typography.Title, {\n          level: 2,\n          children: \"Results Section\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 251,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(\"b\", {\n          children: \"Mean Pitch 'eee':\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 252,\n          columnNumber: 13\n        }, this), \" \", eMeanPitch, \" Hz\", /*#__PURE__*/_jsxDEV(\"br\", {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 253,\n          columnNumber: 13\n        }, this), /*#__PURE__*/_jsxDEV(\"b\", {\n          children: \"Mean Pitch Rainbow Para:\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 254,\n          columnNumber: 13\n        }, this), \" \", rainbowMeanPitch, \" Hz\"]\n      }, void 0, true, {\n        fileName: _jsxFileName,\n        lineNumber: 250,\n        columnNumber: 13\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 249,\n      columnNumber: 9\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 147,\n    columnNumber: 5\n  }, this);\n};\n_s(Assessment, \"n+C7FEOSdRXc4s0QxOPVaDUC24I=\", false, function () {\n  return [useNavigate];\n});\n_c = Assessment;\nexport default Assessment;\nvar _c;\n$RefreshReg$(_c, \"Assessment\");","map":{"version":3,"names":["React","useState","useEffect","getPitch","useNavigate","Button","Slider","Typography","jsxDEV","_jsxDEV","Paragraph","fontAlign","fontSizePara","Assessment","_s","page","setPage","showRecording","setShowRecording","isRecording","setIsRecording","isStopped","setIsStopped","seconds","setSeconds","pitch","setPitch","ePitch","setEPitch","eMeanPitch","setEMeanPitch","rainbowPitch","setRainbowPitch","rainbowMeanPitch","setRainbowMeanPitch","marks","interval","setInterval","prevSeconds","config","handlePitchDetected","console","log","prevEPitch","prevRainbowPitch","clearInterval","reduce","a","b","length","detectedPitch","handlePageChange","newPage","startTimer","redoTimer","stopTimer","SRATE","fxmin","fxlow","fxhigh","fxmax","navigate","goToSample","minutes","Math","floor","remainingSeconds","formattedMinutes","String","padStart","formattedSeconds","children","style","width","textAlign","Title","level","fileName","_jsxFileName","lineNumber","columnNumber","onClick","fontSize","className","margin","defaultValue","tooltip","formatter","_c","$RefreshReg$"],"sources":["D:/Project/UC_Trains_Voice/react-demo/src/Route/Assessment.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\r\nimport { getPitch, IPitchDetectionConfig } from '../function/getPitch';\r\nimport hark from 'hark';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport type { CollapseProps } from 'antd';\r\nimport { Collapse, Button, Anchor } from 'antd';\r\nimport { Slider } from 'antd';\r\nimport { Divider, Typography, Col, Row, Space } from 'antd';\r\nimport { LeftOutlined } from '@ant-design/icons'; \r\nimport '../CSS/Timer.css'; // Import CSS for styling\r\nimport { get } from 'jquery';\r\nimport { start } from 'repl';\r\n\r\n\r\n\r\ninterface AssessmentProps {\r\n}\r\n\r\nconst { Paragraph } = Typography;\r\nconst fontAlign = \"center\";\r\nconst fontSizePara = 17;\r\n\r\n\r\nconst Assessment: React.FC<AssessmentProps> = () => {\r\n  const [page, setPage] = useState<'intro' |'recording1' | 'recording2' | 'survey' | 'results'>('intro');\r\n  const [showRecording, setShowRecording] = useState(false);\r\n  const [isRecording, setIsRecording] = useState(false); // State to track recording status\r\n  const [isStopped, setIsStopped] = useState(true); // State to track if the recording has stopped\r\n  const [seconds, setSeconds] = useState<number>(3);\r\n  const [pitch, setPitch] = useState<number | null>(null);\r\n  const [ePitch, setEPitch] = useState<number[] | null>(null);\r\n  const [eMeanPitch, setEMeanPitch] = useState<number | null>(null);\r\n  const [rainbowPitch, setRainbowPitch] = useState<number[] | null>(null);\r\n  const [rainbowMeanPitch, setRainbowMeanPitch] = useState<number | null>(null);\r\n  \r\n\r\n  const marks = {\r\n    0: 'No Effort',\r\n    100: 'A Lot of Effort',\r\n  };\r\n\r\n  \r\n  useEffect(() => {\r\n    // Start the timer interval\r\n    const interval = setInterval(() => {\r\n      if (isRecording && !isStopped) {\r\n        setSeconds(prevSeconds => prevSeconds + 1);\r\n        getPitch(config, handlePitchDetected);\r\n      } else {\r\n        setPitch(null); // Reset the pitch value when not recording\r\n        setSeconds(prevSeconds => prevSeconds - 1);\r\n      }\r\n    }, 1000);\r\n    \r\n\r\n\r\n    if (page === 'recording1' && pitch !== null) {\r\n      console.log('eeee: ',pitch);\r\n      setEPitch(prevEPitch => (prevEPitch ? [...prevEPitch, pitch] : [pitch]));\r\n    }\r\n    else if (page === 'recording2' && pitch !== null) {\r\n      console.log('rainbow: ',pitch);\r\n      setRainbowPitch(prevRainbowPitch => (prevRainbowPitch ? [...prevRainbowPitch, pitch] : [pitch]));\r\n    }\r\n    // Clear the interval and set recording status when timer hits 0\r\n    if (seconds === 0) {\r\n      setIsRecording(true);\r\n    }\r\n    if (isStopped) {\r\n      setPitch(null);\r\n      clearInterval(interval);\r\n      console.log('Pitch Values: ', ePitch);\r\n      if (ePitch !== null){\r\n        setEMeanPitch(ePitch.reduce((a, b) => a + b, 0) / ePitch.length);\r\n      }\r\n      console.log('Rainbow Pitch Values: ', rainbowPitch);\r\n      if (rainbowPitch !== null){\r\n        setRainbowMeanPitch(rainbowPitch.reduce((a, b) => a + b, 0) / rainbowPitch.length);\r\n      }\r\n    }\r\n    // Cleanup function to clear the interval when the component unmounts\r\n    return () => clearInterval(interval);\r\n  }, [seconds, isRecording, isStopped]); // useEffect will re-run whenever 'seconds', 'isStopped' or 'isRecording' changes\r\n\r\n  const handlePitchDetected = (detectedPitch: number | null) => {\r\n    setPitch(detectedPitch);\r\n  };\r\n\r\n  const handlePageChange = (newPage: 'intro' |'recording1' | 'recording2' | 'survey' | 'results') => {\r\n    setSeconds(3); // Reset the timer to 5 seconds\r\n    setIsRecording(false); // Reset the recording status\r\n    setPitch(null); \r\n    setIsStopped(true); // Reset the stopped status\r\n    if (newPage === 'recording1' || newPage === 'recording2') {\r\n      setShowRecording(true);\r\n    }\r\n    else{\r\n      setShowRecording(false);\r\n    }\r\n    setPage(newPage);\r\n  };\r\n  \r\n  const startTimer = () => {\r\n    setSeconds(3); // Reset the timer to 5 seconds\r\n    setIsRecording(false); // Reset the recording status\r\n    setPitch(null); \r\n    setIsStopped(false); // Reset the stopped status\r\n  };\r\n\r\n  const redoTimer = () => {\r\n    setIsRecording(false);\r\n    startTimer();\r\n    setIsStopped(true);\r\n    if (page === 'recording1'){\r\n      setEPitch(null);\r\n    }\r\n    else if (page === 'recording2'){\r\n      setRainbowPitch(null);\r\n    }\r\n  }\r\n\r\n  const stopTimer = () => {\r\n    setIsStopped(true); // Set the stopped status to true\r\n    setPitch(null); \r\n  }\r\n\r\n  const config: IPitchDetectionConfig = {\r\n    SRATE: 48000,\r\n    fxmin: 50,\r\n    fxlow: 50 + 50,\r\n    fxhigh: 600 - 200, \r\n    fxmax: 600\r\n  };\r\n\r\n  const navigate = useNavigate();\r\n  const goToSample = () => {\r\n    \r\n  };\r\n  // Calculate minutes and seconds from total seconds\r\n  const minutes = Math.floor(seconds / 60);\r\n  const remainingSeconds = seconds % 60;\r\n\r\n  // Format minutes and seconds with leading zeros\r\n  const formattedMinutes = String(minutes).padStart(2, '0');\r\n  const formattedSeconds = String(remainingSeconds).padStart(2, '0');\r\n  return (\r\n    <div>\r\n      {page === 'intro' &&(\r\n        <div style={{ width: \"100%\", textAlign: \"center\" }}>\r\n          <Typography>\r\n            <Typography.Title level={2}>Welcome to the Assessment Module</Typography.Title>\r\n            <Paragraph>\r\n              This module will analyze your voice and give you some basic information about it. Press Start to begin.\r\n            </Paragraph>\r\n            <Button  onClick={() => handlePageChange('recording1')}>Start</Button>\r\n          </Typography>\r\n        </div>\r\n      )}\r\n\r\n      {showRecording && (\r\n         <div style={{ width: \"100%\", textAlign: \"center\" }}>\r\n        <Typography>\r\n            <Typography.Title level={2}>Recording Section</Typography.Title>\r\n        {page === 'recording1' && (\r\n        <div style={{ width: \"100%\", textAlign: \"center\" }}>\r\n            <Paragraph style={{ textAlign: fontAlign, fontSize: fontSizePara }}>\r\n            Hold an ee sound for five secounds. Press Record to begin recording.\r\n            </Paragraph>\r\n            {!isRecording ? (\r\n              <Button onClick={startTimer}>Record</Button>\r\n            ) : (\r\n              <div>\r\n                <Button onClick={stopTimer}>Stop</Button>\r\n                {/* <Button onClick={startTimer}>Replay</Button> */}\r\n                <Button onClick={() => handlePageChange('recording2')}>Continue</Button>\r\n                <Button onClick={redoTimer}>Redo</Button> \r\n              </div>\r\n            )}\r\n\r\n            <div className={`timer-container ${isRecording ? 'recording' : ''}`}>\r\n            {!isRecording && <div className=\"recording-indicator\">Starting in...</div>}\r\n             <div className=\"timer\">{formattedMinutes}:{formattedSeconds}</div>\r\n                {isRecording && <div className=\"recording-indicator\">Recording...</div>}\r\n             </div>\r\n\r\n        </div>\r\n        )} \r\n\r\n        {page === 'recording2' && (\r\n        <div style={{ width: \"100%\", textAlign: \"center\" }}>\r\n            <Paragraph style={{ textAlign: fontAlign, fontSize: fontSizePara }}>\r\n            Read the following text out loud. Press Record to begin recording, and press Stop when you are finished. <br/>\r\n            | {'\\t'}<i>\"The rainbow is a division of white light into many beautiful colors. These take the shape of a long round arch, with its path high above, and its two ends apparently beyond the horizon\"</i>\r\n            </Paragraph>\r\n            {!isRecording ? (\r\n              <Button onClick={startTimer}>Record</Button>\r\n            ) : (\r\n              <div>\r\n                <Button onClick={stopTimer}>Stop</Button>\r\n                {/* <Button onClick={startTimer}>Replay</Button> */}\r\n                <Button onClick={() => handlePageChange('survey')}>Continue</Button>\r\n                <Button onClick={redoTimer}>Redo</Button> \r\n              </div>\r\n            )}\r\n\r\n            <div className={`timer-container ${isRecording ? 'recording' : ''}`} >\r\n            {!isRecording && <div className=\"recording-indicator\">Starting in {formattedSeconds}...</div>}\r\n             <div className=\"timer\">{formattedMinutes}:{formattedSeconds}</div>\r\n                {isRecording && <div className=\"recording-indicator\">Recording...</div>}\r\n             </div>\r\n            </div>\r\n        )}\r\n        </Typography>\r\n        </div>\r\n      )}  \r\n      {page === 'survey' && (\r\n        <div style={{ width: \"100%\", textAlign: \"center\" }}>\r\n            <Typography>\r\n            <Typography.Title level={2}>Survey Section</Typography.Title>\r\n            <Paragraph style={{ textAlign: fontAlign, fontSize: fontSizePara }}>\r\n            Rate the physical vocal effort needed to create your target voice:\r\n            </Paragraph>  \r\n            <div style={{ width: '75%', margin: '0 auto' }}>\r\n            <Slider\r\n              marks={marks}\r\n              defaultValue={0} // Set default value (0 for \"Very Easy\")\r\n              tooltip={{formatter: null}}\r\n            />\r\n            </div>\r\n            <br />\r\n            <br />\r\n            <Paragraph style={{ textAlign: fontAlign, fontSize: fontSizePara }}>\r\n            Rate the cognitive vocal effort needed to create your target voice:\r\n            </Paragraph>  \r\n            <div style={{ width: '75%', margin: '0 auto' }}>\r\n            <Slider\r\n              marks={marks}\r\n              defaultValue={0} // Set default value (0 for \"Very Easy\")\r\n              tooltip={{formatter: null}}\r\n            />\r\n            <br />\r\n            <br />\r\n            </div>\r\n            <Button onClick={() => handlePageChange('results')}>Finish Assesment</Button>\r\n          </Typography>\r\n        </div>\r\n        )}\r\n        {page === 'results' && (\r\n        <div style={{ width: \"100%\", textAlign: \"center\" }}>\r\n            <Typography>\r\n            <Typography.Title level={2}>Results Section</Typography.Title>\r\n            <b>Mean Pitch 'eee':</b> {eMeanPitch} Hz\r\n            <br />\r\n            <b>Mean Pitch Rainbow Para:</b> {rainbowMeanPitch} Hz\r\n          </Typography>\r\n        </div>\r\n        )}  \r\n    </div>\r\n    \r\n  );\r\n};\r\n\r\nexport default Assessment;"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}