improve: separate gain between out/monitor

This commit is contained in:
w-okada 2023-08-03 09:56:32 +09:00
parent 0e878edc1e
commit 51906ba4f1
12 changed files with 321 additions and 1382 deletions

View File

@ -1,10 +1 @@
<!DOCTYPE html> <!doctype html><html style="width:100%;height:100%;overflow:hidden"><head><meta charset="utf-8"/><title>Voice Changer Client Demo</title><script defer="defer" src="index.js"></script></head><body style="width:100%;height:100%;margin:0"><div id="app" style="width:100%;height:100%"></div></body></html>
<html style="width: 100%; height: 100%; overflow: hidden">
<head>
<meta charset="utf-8" />
<title>Voice Changer Client Demo</title>
<script defer src="index.js"></script></head>
<body style="width: 100%; height: 100%; margin: 0px">
<div id="app" style="width: 100%; height: 100%"></div>
</body>
</html>

File diff suppressed because one or more lines are too long

31
client/demo/dist/index.js.LICENSE.txt vendored Normal file
View File

@ -0,0 +1,31 @@
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
/**
* @license React
* react-dom.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/**
* @license React
* react.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/**
* @license React
* scheduler.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

View File

@ -9,11 +9,11 @@
"version": "1.0.0", "version": "1.0.0",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"@dannadori/voice-changer-client-js": "^1.0.165", "@dannadori/voice-changer-client-js": "^1.0.166",
"@fortawesome/fontawesome-svg-core": "^6.4.0", "@fortawesome/fontawesome-svg-core": "^6.4.2",
"@fortawesome/free-brands-svg-icons": "^6.4.0", "@fortawesome/free-brands-svg-icons": "^6.4.2",
"@fortawesome/free-regular-svg-icons": "^6.4.0", "@fortawesome/free-regular-svg-icons": "^6.4.2",
"@fortawesome/free-solid-svg-icons": "^6.4.0", "@fortawesome/free-solid-svg-icons": "^6.4.2",
"@fortawesome/react-fontawesome": "^0.2.0", "@fortawesome/react-fontawesome": "^0.2.0",
"protobufjs": "^7.2.4", "protobufjs": "^7.2.4",
"react": "^18.2.0", "react": "^18.2.0",
@ -25,8 +25,8 @@
"@babel/preset-env": "^7.22.9", "@babel/preset-env": "^7.22.9",
"@babel/preset-react": "^7.22.5", "@babel/preset-react": "^7.22.5",
"@babel/preset-typescript": "^7.22.5", "@babel/preset-typescript": "^7.22.5",
"@types/node": "^20.4.5", "@types/node": "^20.4.6",
"@types/react": "^18.2.17", "@types/react": "^18.2.18",
"@types/react-dom": "^18.2.7", "@types/react-dom": "^18.2.7",
"autoprefixer": "^10.4.14", "autoprefixer": "^10.4.14",
"babel-loader": "^9.1.3", "babel-loader": "^9.1.3",
@ -35,7 +35,7 @@
"eslint": "^8.46.0", "eslint": "^8.46.0",
"eslint-config-prettier": "^8.9.0", "eslint-config-prettier": "^8.9.0",
"eslint-plugin-prettier": "^5.0.0", "eslint-plugin-prettier": "^5.0.0",
"eslint-plugin-react": "^7.33.0", "eslint-plugin-react": "^7.33.1",
"eslint-webpack-plugin": "^4.0.1", "eslint-webpack-plugin": "^4.0.1",
"html-loader": "^4.2.0", "html-loader": "^4.2.0",
"html-webpack-plugin": "^5.5.3", "html-webpack-plugin": "^5.5.3",
@ -167,21 +167,21 @@
} }
}, },
"node_modules/@aws-sdk/client-chime-sdk-messaging": { "node_modules/@aws-sdk/client-chime-sdk-messaging": {
"version": "3.379.1", "version": "3.382.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/client-chime-sdk-messaging/-/client-chime-sdk-messaging-3.379.1.tgz", "resolved": "https://registry.npmjs.org/@aws-sdk/client-chime-sdk-messaging/-/client-chime-sdk-messaging-3.382.0.tgz",
"integrity": "sha512-VFPUJRr3Q+4p/jyMA0p3bEHk40ZbeiLwXR0QZ7syRynnLdAmYbURmpFjOamILroP36+Y68D1I0ON+uToeqoLYQ==", "integrity": "sha512-2Ur6onaZjNCtz66CvSYO0G92TbON7iLaIJT/4tm4HmH4xJIFxPO9zDMPA8n1QXoHShPYNYF9isKmn7CP3GmGhg==",
"dependencies": { "dependencies": {
"@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-browser": "3.0.0",
"@aws-crypto/sha256-js": "3.0.0", "@aws-crypto/sha256-js": "3.0.0",
"@aws-sdk/client-sts": "3.379.1", "@aws-sdk/client-sts": "3.382.0",
"@aws-sdk/credential-provider-node": "3.379.1", "@aws-sdk/credential-provider-node": "3.382.0",
"@aws-sdk/middleware-host-header": "3.379.1", "@aws-sdk/middleware-host-header": "3.379.1",
"@aws-sdk/middleware-logger": "3.378.0", "@aws-sdk/middleware-logger": "3.378.0",
"@aws-sdk/middleware-recursion-detection": "3.378.0", "@aws-sdk/middleware-recursion-detection": "3.378.0",
"@aws-sdk/middleware-signing": "3.379.1", "@aws-sdk/middleware-signing": "3.379.1",
"@aws-sdk/middleware-user-agent": "3.379.1", "@aws-sdk/middleware-user-agent": "3.382.0",
"@aws-sdk/types": "3.378.0", "@aws-sdk/types": "3.378.0",
"@aws-sdk/util-endpoints": "3.378.0", "@aws-sdk/util-endpoints": "3.382.0",
"@aws-sdk/util-user-agent-browser": "3.378.0", "@aws-sdk/util-user-agent-browser": "3.378.0",
"@aws-sdk/util-user-agent-node": "3.378.0", "@aws-sdk/util-user-agent-node": "3.378.0",
"@smithy/config-resolver": "^2.0.1", "@smithy/config-resolver": "^2.0.1",
@ -249,18 +249,18 @@
"integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig=="
}, },
"node_modules/@aws-sdk/client-sso": { "node_modules/@aws-sdk/client-sso": {
"version": "3.379.1", "version": "3.382.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.379.1.tgz", "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.382.0.tgz",
"integrity": "sha512-2N16TPnRcq+seNP8VY/Zq7kfnrUOrJMbVNpyDZWGe5Qglua3n8v/FzxmXFNI87MiSODq8IHtiXhggWhefCd+TA==", "integrity": "sha512-ge11t4hJllOF8pBNF0p1X52lLqUsLGAoey24fvk3fyvvczeLpegGYh2kdLG0iwFTDgRxaUqK+kboH5Wy9ux/pw==",
"dependencies": { "dependencies": {
"@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-browser": "3.0.0",
"@aws-crypto/sha256-js": "3.0.0", "@aws-crypto/sha256-js": "3.0.0",
"@aws-sdk/middleware-host-header": "3.379.1", "@aws-sdk/middleware-host-header": "3.379.1",
"@aws-sdk/middleware-logger": "3.378.0", "@aws-sdk/middleware-logger": "3.378.0",
"@aws-sdk/middleware-recursion-detection": "3.378.0", "@aws-sdk/middleware-recursion-detection": "3.378.0",
"@aws-sdk/middleware-user-agent": "3.379.1", "@aws-sdk/middleware-user-agent": "3.382.0",
"@aws-sdk/types": "3.378.0", "@aws-sdk/types": "3.378.0",
"@aws-sdk/util-endpoints": "3.378.0", "@aws-sdk/util-endpoints": "3.382.0",
"@aws-sdk/util-user-agent-browser": "3.378.0", "@aws-sdk/util-user-agent-browser": "3.378.0",
"@aws-sdk/util-user-agent-node": "3.378.0", "@aws-sdk/util-user-agent-node": "3.378.0",
"@smithy/config-resolver": "^2.0.1", "@smithy/config-resolver": "^2.0.1",
@ -292,18 +292,18 @@
} }
}, },
"node_modules/@aws-sdk/client-sso-oidc": { "node_modules/@aws-sdk/client-sso-oidc": {
"version": "3.379.1", "version": "3.382.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.379.1.tgz", "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.382.0.tgz",
"integrity": "sha512-B6hZ2ysPyvafCMf6gls1jHI/IUviVZ4+TURpNfUBqThg/hZ1IMxc4BLkXca6VlgzYR+bWU8GKiClS9fFH6mu0g==", "integrity": "sha512-hTfvB1ftbrqaz7qiEkmRobzUQwG34oZlByobn8Frdr5ZQbJk969bX6evQAPyKlJEr26+kL9TnaX+rbLR/+gwHQ==",
"dependencies": { "dependencies": {
"@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-browser": "3.0.0",
"@aws-crypto/sha256-js": "3.0.0", "@aws-crypto/sha256-js": "3.0.0",
"@aws-sdk/middleware-host-header": "3.379.1", "@aws-sdk/middleware-host-header": "3.379.1",
"@aws-sdk/middleware-logger": "3.378.0", "@aws-sdk/middleware-logger": "3.378.0",
"@aws-sdk/middleware-recursion-detection": "3.378.0", "@aws-sdk/middleware-recursion-detection": "3.378.0",
"@aws-sdk/middleware-user-agent": "3.379.1", "@aws-sdk/middleware-user-agent": "3.382.0",
"@aws-sdk/types": "3.378.0", "@aws-sdk/types": "3.378.0",
"@aws-sdk/util-endpoints": "3.378.0", "@aws-sdk/util-endpoints": "3.382.0",
"@aws-sdk/util-user-agent-browser": "3.378.0", "@aws-sdk/util-user-agent-browser": "3.378.0",
"@aws-sdk/util-user-agent-node": "3.378.0", "@aws-sdk/util-user-agent-node": "3.378.0",
"@smithy/config-resolver": "^2.0.1", "@smithy/config-resolver": "^2.0.1",
@ -405,21 +405,21 @@
"integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig=="
}, },
"node_modules/@aws-sdk/client-sts": { "node_modules/@aws-sdk/client-sts": {
"version": "3.379.1", "version": "3.382.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.379.1.tgz", "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.382.0.tgz",
"integrity": "sha512-gEnKuk9bYjThvmxCgOgCn1qa+rRX8IgIRE2+xhbWhlpDanozhkDq9aMB5moX4tBNYQEmi1LtGD+JOvOoZRnToQ==", "integrity": "sha512-G5wgahrOqmrljjyLVGASIZUXIIdalbCo0z4PuFHdb2R2CVfwO8renfgrmk4brT9tIxIfen5bRA7ftXMe7yrgRA==",
"dependencies": { "dependencies": {
"@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-browser": "3.0.0",
"@aws-crypto/sha256-js": "3.0.0", "@aws-crypto/sha256-js": "3.0.0",
"@aws-sdk/credential-provider-node": "3.379.1", "@aws-sdk/credential-provider-node": "3.382.0",
"@aws-sdk/middleware-host-header": "3.379.1", "@aws-sdk/middleware-host-header": "3.379.1",
"@aws-sdk/middleware-logger": "3.378.0", "@aws-sdk/middleware-logger": "3.378.0",
"@aws-sdk/middleware-recursion-detection": "3.378.0", "@aws-sdk/middleware-recursion-detection": "3.378.0",
"@aws-sdk/middleware-sdk-sts": "3.379.1", "@aws-sdk/middleware-sdk-sts": "3.379.1",
"@aws-sdk/middleware-signing": "3.379.1", "@aws-sdk/middleware-signing": "3.379.1",
"@aws-sdk/middleware-user-agent": "3.379.1", "@aws-sdk/middleware-user-agent": "3.382.0",
"@aws-sdk/types": "3.378.0", "@aws-sdk/types": "3.378.0",
"@aws-sdk/util-endpoints": "3.378.0", "@aws-sdk/util-endpoints": "3.382.0",
"@aws-sdk/util-user-agent-browser": "3.378.0", "@aws-sdk/util-user-agent-browser": "3.378.0",
"@aws-sdk/util-user-agent-node": "3.378.0", "@aws-sdk/util-user-agent-node": "3.378.0",
"@smithy/config-resolver": "^2.0.1", "@smithy/config-resolver": "^2.0.1",
@ -506,13 +506,13 @@
"integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig=="
}, },
"node_modules/@aws-sdk/credential-provider-ini": { "node_modules/@aws-sdk/credential-provider-ini": {
"version": "3.379.1", "version": "3.382.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.379.1.tgz", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.382.0.tgz",
"integrity": "sha512-YhEsJIskzCFwIIKiMN9GSHQkgWwj/b7rq0ofhsXsCRimFtdVkmMlB9veE6vtFAuXpX/WOGWdlWek1az0V22uuw==", "integrity": "sha512-31pi44WWri2WQmagqptUv7x3Nq8pQ6H06OCQx5goEm77SosSdwQwyBPrS9Pg0yI9aljFAxF+rZ75degsCorbQg==",
"dependencies": { "dependencies": {
"@aws-sdk/credential-provider-env": "3.378.0", "@aws-sdk/credential-provider-env": "3.378.0",
"@aws-sdk/credential-provider-process": "3.378.0", "@aws-sdk/credential-provider-process": "3.378.0",
"@aws-sdk/credential-provider-sso": "3.379.1", "@aws-sdk/credential-provider-sso": "3.382.0",
"@aws-sdk/credential-provider-web-identity": "3.378.0", "@aws-sdk/credential-provider-web-identity": "3.378.0",
"@aws-sdk/types": "3.378.0", "@aws-sdk/types": "3.378.0",
"@smithy/credential-provider-imds": "^2.0.0", "@smithy/credential-provider-imds": "^2.0.0",
@ -531,14 +531,14 @@
"integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig=="
}, },
"node_modules/@aws-sdk/credential-provider-node": { "node_modules/@aws-sdk/credential-provider-node": {
"version": "3.379.1", "version": "3.382.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.379.1.tgz", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.382.0.tgz",
"integrity": "sha512-39Y4OHKn6a8lY8YJhSLLw08aZytWxfvSjM4ObIEnE6hjLl8gsL9vROKKITsh3q6iGQ1EDSWMWZL50aOh3LJUIg==", "integrity": "sha512-q6AWCCb0E0cH/Y5Dtln0QssbCBXDbV4PoTV3EdRuGoJcHyNfHJ8X0mqcc7k44wG4Piazu+ufZThvn43W7W9a4g==",
"dependencies": { "dependencies": {
"@aws-sdk/credential-provider-env": "3.378.0", "@aws-sdk/credential-provider-env": "3.378.0",
"@aws-sdk/credential-provider-ini": "3.379.1", "@aws-sdk/credential-provider-ini": "3.382.0",
"@aws-sdk/credential-provider-process": "3.378.0", "@aws-sdk/credential-provider-process": "3.378.0",
"@aws-sdk/credential-provider-sso": "3.379.1", "@aws-sdk/credential-provider-sso": "3.382.0",
"@aws-sdk/credential-provider-web-identity": "3.378.0", "@aws-sdk/credential-provider-web-identity": "3.378.0",
"@aws-sdk/types": "3.378.0", "@aws-sdk/types": "3.378.0",
"@smithy/credential-provider-imds": "^2.0.0", "@smithy/credential-provider-imds": "^2.0.0",
@ -577,12 +577,12 @@
"integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig=="
}, },
"node_modules/@aws-sdk/credential-provider-sso": { "node_modules/@aws-sdk/credential-provider-sso": {
"version": "3.379.1", "version": "3.382.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.379.1.tgz", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.382.0.tgz",
"integrity": "sha512-PhGtu1+JbUntYP/5CSfazQhWsjUBiksEuhg9fLhYl5OAgZVjVygbgoNVUz/gM7gZJSEMsasTazkn7yZVzO/k7w==", "integrity": "sha512-tKCQKqxnAHeRD7pQNmDmLWwC7pt5koo6yiQTVQ382U+8xx7BNsApE1zdC4LrtrVN1FYqVbw5kXjYFtSCtaUxGA==",
"dependencies": { "dependencies": {
"@aws-sdk/client-sso": "3.379.1", "@aws-sdk/client-sso": "3.382.0",
"@aws-sdk/token-providers": "3.379.1", "@aws-sdk/token-providers": "3.382.0",
"@aws-sdk/types": "3.378.0", "@aws-sdk/types": "3.378.0",
"@smithy/property-provider": "^2.0.0", "@smithy/property-provider": "^2.0.0",
"@smithy/shared-ini-file-loader": "^2.0.0", "@smithy/shared-ini-file-loader": "^2.0.0",
@ -715,12 +715,12 @@
"integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig=="
}, },
"node_modules/@aws-sdk/middleware-user-agent": { "node_modules/@aws-sdk/middleware-user-agent": {
"version": "3.379.1", "version": "3.382.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.379.1.tgz", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.382.0.tgz",
"integrity": "sha512-4zIGeAIuutcRieAvovs82uBNhJBHuxfxaAUqrKiw49xUBG7xeNVUl+DYPSpbALbEIy4ujfwWCBOOWVCt6dyUZg==", "integrity": "sha512-LFRW1jmXOrOAd3911ktn6oaYmuurNnulbdRMOUdwz99GGdLVFipQhOi9idKswb8IOhPa4jEVQt25Kcv7ctvu0A==",
"dependencies": { "dependencies": {
"@aws-sdk/types": "3.378.0", "@aws-sdk/types": "3.378.0",
"@aws-sdk/util-endpoints": "3.378.0", "@aws-sdk/util-endpoints": "3.382.0",
"@smithy/protocol-http": "^2.0.1", "@smithy/protocol-http": "^2.0.1",
"@smithy/types": "^2.0.2", "@smithy/types": "^2.0.2",
"tslib": "^2.5.0" "tslib": "^2.5.0"
@ -735,11 +735,11 @@
"integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig=="
}, },
"node_modules/@aws-sdk/token-providers": { "node_modules/@aws-sdk/token-providers": {
"version": "3.379.1", "version": "3.382.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.379.1.tgz", "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.382.0.tgz",
"integrity": "sha512-NlYPkArJ7A/txCrjqqkje+4hsv7pSOqm+Qdx3BUIOc7PRYrBVs/XwThxUkGceSntVXoNlO8g9DFL0NY53/wb8Q==", "integrity": "sha512-axn4IyPpHdkXi8G06KCB3tPz79DipZFFH9N9YVDpLMnDYTdfX36HGdYzINaQc+z+XPbEpa1ZpoIzWScHRjFjdg==",
"dependencies": { "dependencies": {
"@aws-sdk/client-sso-oidc": "3.379.1", "@aws-sdk/client-sso-oidc": "3.382.0",
"@aws-sdk/types": "3.378.0", "@aws-sdk/types": "3.378.0",
"@smithy/property-provider": "^2.0.0", "@smithy/property-provider": "^2.0.0",
"@smithy/shared-ini-file-loader": "^2.0.0", "@smithy/shared-ini-file-loader": "^2.0.0",
@ -773,9 +773,9 @@
"integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig=="
}, },
"node_modules/@aws-sdk/util-endpoints": { "node_modules/@aws-sdk/util-endpoints": {
"version": "3.378.0", "version": "3.382.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.378.0.tgz", "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.382.0.tgz",
"integrity": "sha512-NU5C2l2xAXxpyB5nT0fIhahLPlJoJdzHWw4uC53KH9b4PrjHtgvgCN8beIsD3QxyfgeoM4A5J9Auo6WurfRnLw==", "integrity": "sha512-flajPyjmjNG67fXk7l4GoTB/7J11VBqtFZXuuAZKhKU07Ia3IQupsFqNf5lV8D44ZgjnKH0fTGnv3dUALjW7Wg==",
"dependencies": { "dependencies": {
"@aws-sdk/types": "3.378.0", "@aws-sdk/types": "3.378.0",
"tslib": "^2.5.0" "tslib": "^2.5.0"
@ -2710,9 +2710,9 @@
} }
}, },
"node_modules/@dannadori/voice-changer-client-js": { "node_modules/@dannadori/voice-changer-client-js": {
"version": "1.0.165", "version": "1.0.166",
"resolved": "https://registry.npmjs.org/@dannadori/voice-changer-client-js/-/voice-changer-client-js-1.0.165.tgz", "resolved": "https://registry.npmjs.org/@dannadori/voice-changer-client-js/-/voice-changer-client-js-1.0.166.tgz",
"integrity": "sha512-B3zmoGerfxYah6VpktHMP0Bf4Z5qpT6VswXCiP7tOJt8OOBE6Bu8ipBc/vdVxaUiXtX/SrKvxPtjJ5lP4YIE5A==", "integrity": "sha512-cptgFxKtXfJVFpzYeMhJtDhVKr3o/g+mXlABCyp4OJviGiAGd2UJCK7rsDXFJ+eXcp8TARqOmVcnfWxxDjDaqA==",
"dependencies": { "dependencies": {
"@types/readable-stream": "^4.0.0", "@types/readable-stream": "^4.0.0",
"amazon-chime-sdk-js": "^3.15.0", "amazon-chime-sdk-js": "^3.15.0",
@ -2721,7 +2721,7 @@
"protobufjs": "^7.2.4", "protobufjs": "^7.2.4",
"react": "^18.2.0", "react": "^18.2.0",
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
"socket.io-client": "^4.7.1" "socket.io-client": "^4.7.2"
} }
}, },
"node_modules/@discoveryjs/json-ext": { "node_modules/@discoveryjs/json-ext": {
@ -2805,57 +2805,57 @@
} }
}, },
"node_modules/@fortawesome/fontawesome-common-types": { "node_modules/@fortawesome/fontawesome-common-types": {
"version": "6.4.0", "version": "6.4.2",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.4.0.tgz", "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.4.2.tgz",
"integrity": "sha512-HNii132xfomg5QVZw0HwXXpN22s7VBHQBv9CeOu9tfJnhsWQNd2lmTNi8CSrnw5B+5YOmzu1UoPAyxaXsJ6RgQ==", "integrity": "sha512-1DgP7f+XQIJbLFCTX1V2QnxVmpLdKdzzo2k8EmvDOePfchaIGQ9eCHj2up3/jNEbZuBqel5OxiaOJf37TWauRA==",
"hasInstallScript": true, "hasInstallScript": true,
"engines": { "engines": {
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/@fortawesome/fontawesome-svg-core": { "node_modules/@fortawesome/fontawesome-svg-core": {
"version": "6.4.0", "version": "6.4.2",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.4.0.tgz", "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.4.2.tgz",
"integrity": "sha512-Bertv8xOiVELz5raB2FlXDPKt+m94MQ3JgDfsVbrqNpLU9+UE2E18GKjLKw+d3XbeYPqg1pzyQKGsrzbw+pPaw==", "integrity": "sha512-gjYDSKv3TrM2sLTOKBc5rH9ckje8Wrwgx1CxAPbN5N3Fm4prfi7NsJVWd1jklp7i5uSCVwhZS5qlhMXqLrpAIg==",
"hasInstallScript": true, "hasInstallScript": true,
"dependencies": { "dependencies": {
"@fortawesome/fontawesome-common-types": "6.4.0" "@fortawesome/fontawesome-common-types": "6.4.2"
}, },
"engines": { "engines": {
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/@fortawesome/free-brands-svg-icons": { "node_modules/@fortawesome/free-brands-svg-icons": {
"version": "6.4.0", "version": "6.4.2",
"resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.4.0.tgz", "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.4.2.tgz",
"integrity": "sha512-qvxTCo0FQ5k2N+VCXb/PZQ+QMhqRVM4OORiO6MXdG6bKolIojGU/srQ1ptvKk0JTbRgaJOfL2qMqGvBEZG7Z6g==", "integrity": "sha512-LKOwJX0I7+mR/cvvf6qIiqcERbdnY+24zgpUSouySml+5w8B4BJOx8EhDR/FTKAu06W12fmUIcv6lzPSwYKGGg==",
"hasInstallScript": true, "hasInstallScript": true,
"dependencies": { "dependencies": {
"@fortawesome/fontawesome-common-types": "6.4.0" "@fortawesome/fontawesome-common-types": "6.4.2"
}, },
"engines": { "engines": {
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/@fortawesome/free-regular-svg-icons": { "node_modules/@fortawesome/free-regular-svg-icons": {
"version": "6.4.0", "version": "6.4.2",
"resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.4.0.tgz", "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.4.2.tgz",
"integrity": "sha512-ZfycI7D0KWPZtf7wtMFnQxs8qjBXArRzczABuMQqecA/nXohquJ5J/RCR77PmY5qGWkxAZDxpnUFVXKwtY/jPw==", "integrity": "sha512-0+sIUWnkgTVVXVAPQmW4vxb9ZTHv0WstOa3rBx9iPxrrrDH6bNLsDYuwXF9b6fGm+iR7DKQvQshUH/FJm3ed9Q==",
"hasInstallScript": true, "hasInstallScript": true,
"dependencies": { "dependencies": {
"@fortawesome/fontawesome-common-types": "6.4.0" "@fortawesome/fontawesome-common-types": "6.4.2"
}, },
"engines": { "engines": {
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/@fortawesome/free-solid-svg-icons": { "node_modules/@fortawesome/free-solid-svg-icons": {
"version": "6.4.0", "version": "6.4.2",
"resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.4.0.tgz", "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.4.2.tgz",
"integrity": "sha512-kutPeRGWm8V5dltFP1zGjQOEAzaLZj4StdQhWVZnfGFCvAPVvHh8qk5bRrU4KXnRRRNni5tKQI9PBAdI6MP8nQ==", "integrity": "sha512-sYwXurXUEQS32fZz9hVCUUv/xu49PEJEyUOsA51l6PU/qVgfbTb2glsTEaJngVVT8VqBATRIdh7XVgV1JF1LkA==",
"hasInstallScript": true, "hasInstallScript": true,
"dependencies": { "dependencies": {
"@fortawesome/fontawesome-common-types": "6.4.0" "@fortawesome/fontawesome-common-types": "6.4.2"
}, },
"engines": { "engines": {
"node": ">=6" "node": ">=6"
@ -4100,9 +4100,9 @@
"dev": true "dev": true
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "20.4.5", "version": "20.4.6",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.5.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.6.tgz",
"integrity": "sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg==" "integrity": "sha512-q0RkvNgMweWWIvSMDiXhflGUKMdIxBo2M2tYM/0kEGDueQByFzK4KZAgu5YHGFNxziTlppNpTIBcqHQAxlfHdA=="
}, },
"node_modules/@types/prop-types": { "node_modules/@types/prop-types": {
"version": "15.7.5", "version": "15.7.5",
@ -4123,9 +4123,9 @@
"dev": true "dev": true
}, },
"node_modules/@types/react": { "node_modules/@types/react": {
"version": "18.2.17", "version": "18.2.18",
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.17.tgz", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.18.tgz",
"integrity": "sha512-u+e7OlgPPh+aryjOm5UJMX32OvB2E3QASOAqVMY6Ahs90djagxwv2ya0IctglNbNTexC12qCSMZG47KPfy1hAA==", "integrity": "sha512-da4NTSeBv/P34xoZPhtcLkmZuJ+oYaCxHmyHzwaDQo9RQPBeXV+06gEk2FpqEcsX9XrnNLvRpVh6bdavDSjtiQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@types/prop-types": "*", "@types/prop-types": "*",
@ -5005,9 +5005,9 @@
} }
}, },
"node_modules/browserslist": { "node_modules/browserslist": {
"version": "4.21.9", "version": "4.21.10",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz",
"integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
@ -5024,9 +5024,9 @@
} }
], ],
"dependencies": { "dependencies": {
"caniuse-lite": "^1.0.30001503", "caniuse-lite": "^1.0.30001517",
"electron-to-chromium": "^1.4.431", "electron-to-chromium": "^1.4.477",
"node-releases": "^2.0.12", "node-releases": "^2.0.13",
"update-browserslist-db": "^1.0.11" "update-browserslist-db": "^1.0.11"
}, },
"bin": { "bin": {
@ -5128,9 +5128,9 @@
"dev": true "dev": true
}, },
"node_modules/caniuse-lite": { "node_modules/caniuse-lite": {
"version": "1.0.30001517", "version": "1.0.30001518",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001518.tgz",
"integrity": "sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==", "integrity": "sha512-rup09/e3I0BKjncL+FesTayKtPrdwKhUufQFd3riFw1hHg8JmIFoInYfB102cFcY/pPgGmdyl/iy+jgiDi2vdA==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
@ -5953,9 +5953,9 @@
"dev": true "dev": true
}, },
"node_modules/electron-to-chromium": { "node_modules/electron-to-chromium": {
"version": "1.4.476", "version": "1.4.482",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.476.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.482.tgz",
"integrity": "sha512-gzWl1m8pNy+5Kj17XcziNcbOhripjTqR2wAQmtdlFUngPYuFy7zUpJScVQAvCvQSFHNk3mS5fetNKW6BSpytFg==", "integrity": "sha512-h+UqpfmEr1Qkk0zp7ej/jid7CXoq4m4QzW6wNTb0ELJ/BZCpA4wgUylBIMGCe621tnr4l5VmoHjdoSx2lbnNJA==",
"dev": true "dev": true
}, },
"node_modules/emoji-regex": { "node_modules/emoji-regex": {
@ -5974,21 +5974,21 @@
} }
}, },
"node_modules/engine.io-client": { "node_modules/engine.io-client": {
"version": "6.5.1", "version": "6.5.2",
"resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.1.tgz", "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.2.tgz",
"integrity": "sha512-hE5wKXH8Ru4L19MbM1GgYV/2Qo54JSMh1rlJbfpa40bEWkCKNo3ol2eOtGmowcr+ysgbI7+SGL+by42Q3pt/Ng==", "integrity": "sha512-CQZqbrpEYnrpGqC07a9dJDz4gePZUgTPMU3NKJPSeQOyw27Tst4Pl3FemKoFGAlHzgZmKjoRmiJvbWfhCXUlIg==",
"dependencies": { "dependencies": {
"@socket.io/component-emitter": "~3.1.0", "@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.1", "debug": "~4.3.1",
"engine.io-parser": "~5.1.0", "engine.io-parser": "~5.2.1",
"ws": "~8.11.0", "ws": "~8.11.0",
"xmlhttprequest-ssl": "~2.0.0" "xmlhttprequest-ssl": "~2.0.0"
} }
}, },
"node_modules/engine.io-parser": { "node_modules/engine.io-parser": {
"version": "5.1.0", "version": "5.2.1",
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.1.0.tgz", "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz",
"integrity": "sha512-enySgNiK5tyZFynt3z7iqBR+Bto9EVVVvDFuTT0ioHCGbzirZVGDGiQjZzEp8hWl6hd5FSVytJGuScX1C1C35w==", "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==",
"engines": { "engines": {
"node": ">=10.0.0" "node": ">=10.0.0"
} }
@ -6258,9 +6258,9 @@
} }
}, },
"node_modules/eslint-plugin-react": { "node_modules/eslint-plugin-react": {
"version": "7.33.0", "version": "7.33.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.0.tgz", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.1.tgz",
"integrity": "sha512-qewL/8P34WkY8jAqdQxsiL82pDUeT7nhs8IsuXgfgnsEloKCT4miAV9N9kGtx7/KM9NH/NCGUE7Edt9iGxLXFw==", "integrity": "sha512-L093k0WAMvr6VhNwReB8VgOq5s2LesZmrpPdKz/kZElQDzqS7G7+DnKoqT+w4JwuiGeAhAvHO0fvy0Eyk4ejDA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"array-includes": "^3.1.6", "array-includes": "^3.1.6",
@ -8388,9 +8388,9 @@
} }
}, },
"node_modules/jsx-ast-utils": { "node_modules/jsx-ast-utils": {
"version": "3.3.4", "version": "3.3.5",
"resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.4.tgz", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
"integrity": "sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw==", "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"array-includes": "^3.1.6", "array-includes": "^3.1.6",
@ -10677,9 +10677,9 @@
} }
}, },
"node_modules/signal-exit": { "node_modules/signal-exit": {
"version": "4.0.2", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
"integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": ">=14" "node": ">=14"
@ -10701,13 +10701,13 @@
} }
}, },
"node_modules/socket.io-client": { "node_modules/socket.io-client": {
"version": "4.7.1", "version": "4.7.2",
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.1.tgz", "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.2.tgz",
"integrity": "sha512-Qk3Xj8ekbnzKu3faejo4wk2MzXA029XppiXtTF/PkbTg+fcwaTw1PlDrTrrrU4mKoYC4dvlApOnSeyLCKwek2w==", "integrity": "sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w==",
"dependencies": { "dependencies": {
"@socket.io/component-emitter": "~3.1.0", "@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.2", "debug": "~4.3.2",
"engine.io-client": "~6.5.1", "engine.io-client": "~6.5.2",
"socket.io-parser": "~4.2.4" "socket.io-parser": "~4.2.4"
}, },
"engines": { "engines": {

View File

@ -26,8 +26,8 @@
"@babel/preset-env": "^7.22.9", "@babel/preset-env": "^7.22.9",
"@babel/preset-react": "^7.22.5", "@babel/preset-react": "^7.22.5",
"@babel/preset-typescript": "^7.22.5", "@babel/preset-typescript": "^7.22.5",
"@types/node": "^20.4.5", "@types/node": "^20.4.6",
"@types/react": "^18.2.17", "@types/react": "^18.2.18",
"@types/react-dom": "^18.2.7", "@types/react-dom": "^18.2.7",
"autoprefixer": "^10.4.14", "autoprefixer": "^10.4.14",
"babel-loader": "^9.1.3", "babel-loader": "^9.1.3",
@ -36,7 +36,7 @@
"eslint": "^8.46.0", "eslint": "^8.46.0",
"eslint-config-prettier": "^8.9.0", "eslint-config-prettier": "^8.9.0",
"eslint-plugin-prettier": "^5.0.0", "eslint-plugin-prettier": "^5.0.0",
"eslint-plugin-react": "^7.33.0", "eslint-plugin-react": "^7.33.1",
"eslint-webpack-plugin": "^4.0.1", "eslint-webpack-plugin": "^4.0.1",
"html-loader": "^4.2.0", "html-loader": "^4.2.0",
"html-webpack-plugin": "^5.5.3", "html-webpack-plugin": "^5.5.3",
@ -54,11 +54,11 @@
"webpack-dev-server": "^4.15.1" "webpack-dev-server": "^4.15.1"
}, },
"dependencies": { "dependencies": {
"@dannadori/voice-changer-client-js": "^1.0.165", "@dannadori/voice-changer-client-js": "^1.0.166",
"@fortawesome/fontawesome-svg-core": "^6.4.0", "@fortawesome/fontawesome-svg-core": "^6.4.2",
"@fortawesome/free-brands-svg-icons": "^6.4.0", "@fortawesome/free-brands-svg-icons": "^6.4.2",
"@fortawesome/free-regular-svg-icons": "^6.4.0", "@fortawesome/free-regular-svg-icons": "^6.4.2",
"@fortawesome/free-solid-svg-icons": "^6.4.0", "@fortawesome/free-solid-svg-icons": "^6.4.2",
"@fortawesome/react-fontawesome": "^0.2.0", "@fortawesome/react-fontawesome": "^0.2.0",
"protobufjs": "^7.2.4", "protobufjs": "^7.2.4",
"react": "^18.2.0", "react": "^18.2.0",

View File

@ -757,6 +757,41 @@ export const DeviceArea = (_props: DeviceAreaProps) => {
); );
}, [monitorHostApi, serverSetting.serverSetting, serverSetting.updateServerSettings, serverSetting.serverSetting.enableServerAudio]); }, [monitorHostApi, serverSetting.serverSetting, serverSetting.updateServerSettings, serverSetting.serverSetting.enableServerAudio]);
const monitorGainControl = useMemo(() => {
const currentMonitorGain = serverSetting.serverSetting.enableServerAudio == 0 ? setting.voiceChangerClientSetting.monitorGain : serverSetting.serverSetting.serverMonitorAudioGain;
const monitorValueUpdatedAction =
serverSetting.serverSetting.enableServerAudio == 0
? async (val: number) => {
await setVoiceChangerClientSetting({ ...setting.voiceChangerClientSetting, monitorGain: val });
}
: async (val: number) => {
await serverSetting.updateServerSettings({ ...serverSetting.serverSetting, serverMonitorAudioGain: val });
};
return (
<div className="config-sub-area-control">
<div className="config-sub-area-control-title left-padding-2">gain</div>
<div className="config-sub-area-control-field">
<div className="config-sub-area-control-field-auido-io">
<span className="character-area-slider-control-slider">
<input
type="range"
min="0.1"
max="10.0"
step="0.1"
value={currentMonitorGain}
onChange={(e) => {
monitorValueUpdatedAction(Number(e.target.value));
}}
></input>
</span>
<span className="character-area-slider-control-val">{currentMonitorGain}</span>
</div>
</div>
</div>
);
}, [serverSetting.serverSetting, setting, setVoiceChangerClientSetting, serverSetting.updateServerSettings]);
return ( return (
<div className="config-sub-area"> <div className="config-sub-area">
{deviceModeRow} {deviceModeRow}
@ -769,6 +804,7 @@ export const DeviceArea = (_props: DeviceAreaProps) => {
{serverAudioOutputRow} {serverAudioOutputRow}
{clientMonitorRow} {clientMonitorRow}
{serverMonitorRow} {serverMonitorRow}
{monitorGainControl}
{outputRecorderRow} {outputRecorderRow}
<audio hidden id={AUDIO_ELEMENT_FOR_PLAY_RESULT}></audio> <audio hidden id={AUDIO_ELEMENT_FOR_PLAY_RESULT}></audio>

View File

@ -1,12 +1,12 @@
{ {
"name": "@dannadori/voice-changer-client-js", "name": "@dannadori/voice-changer-client-js",
"version": "1.0.165", "version": "1.0.166",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@dannadori/voice-changer-client-js", "name": "@dannadori/voice-changer-client-js",
"version": "1.0.165", "version": "1.0.166",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"@types/readable-stream": "^4.0.0", "@types/readable-stream": "^4.0.0",
@ -16,17 +16,17 @@
"protobufjs": "^7.2.4", "protobufjs": "^7.2.4",
"react": "^18.2.0", "react": "^18.2.0",
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
"socket.io-client": "^4.7.1" "socket.io-client": "^4.7.2"
}, },
"devDependencies": { "devDependencies": {
"@types/audioworklet": "^0.0.49", "@types/audioworklet": "^0.0.49",
"@types/node": "^20.4.5", "@types/node": "^20.4.6",
"@types/react": "18.2.17", "@types/react": "18.2.18",
"@types/react-dom": "18.2.7", "@types/react-dom": "18.2.7",
"eslint": "^8.46.0", "eslint": "^8.46.0",
"eslint-config-prettier": "^8.9.0", "eslint-config-prettier": "^8.9.0",
"eslint-plugin-prettier": "^5.0.0", "eslint-plugin-prettier": "^5.0.0",
"eslint-plugin-react": "^7.33.0", "eslint-plugin-react": "^7.33.1",
"eslint-webpack-plugin": "^4.0.1", "eslint-webpack-plugin": "^4.0.1",
"npm-run-all": "^4.1.5", "npm-run-all": "^4.1.5",
"prettier": "^3.0.0", "prettier": "^3.0.0",
@ -140,21 +140,21 @@
} }
}, },
"node_modules/@aws-sdk/client-chime-sdk-messaging": { "node_modules/@aws-sdk/client-chime-sdk-messaging": {
"version": "3.379.1", "version": "3.382.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/client-chime-sdk-messaging/-/client-chime-sdk-messaging-3.379.1.tgz", "resolved": "https://registry.npmjs.org/@aws-sdk/client-chime-sdk-messaging/-/client-chime-sdk-messaging-3.382.0.tgz",
"integrity": "sha512-VFPUJRr3Q+4p/jyMA0p3bEHk40ZbeiLwXR0QZ7syRynnLdAmYbURmpFjOamILroP36+Y68D1I0ON+uToeqoLYQ==", "integrity": "sha512-2Ur6onaZjNCtz66CvSYO0G92TbON7iLaIJT/4tm4HmH4xJIFxPO9zDMPA8n1QXoHShPYNYF9isKmn7CP3GmGhg==",
"dependencies": { "dependencies": {
"@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-browser": "3.0.0",
"@aws-crypto/sha256-js": "3.0.0", "@aws-crypto/sha256-js": "3.0.0",
"@aws-sdk/client-sts": "3.379.1", "@aws-sdk/client-sts": "3.382.0",
"@aws-sdk/credential-provider-node": "3.379.1", "@aws-sdk/credential-provider-node": "3.382.0",
"@aws-sdk/middleware-host-header": "3.379.1", "@aws-sdk/middleware-host-header": "3.379.1",
"@aws-sdk/middleware-logger": "3.378.0", "@aws-sdk/middleware-logger": "3.378.0",
"@aws-sdk/middleware-recursion-detection": "3.378.0", "@aws-sdk/middleware-recursion-detection": "3.378.0",
"@aws-sdk/middleware-signing": "3.379.1", "@aws-sdk/middleware-signing": "3.379.1",
"@aws-sdk/middleware-user-agent": "3.379.1", "@aws-sdk/middleware-user-agent": "3.382.0",
"@aws-sdk/types": "3.378.0", "@aws-sdk/types": "3.378.0",
"@aws-sdk/util-endpoints": "3.378.0", "@aws-sdk/util-endpoints": "3.382.0",
"@aws-sdk/util-user-agent-browser": "3.378.0", "@aws-sdk/util-user-agent-browser": "3.378.0",
"@aws-sdk/util-user-agent-node": "3.378.0", "@aws-sdk/util-user-agent-node": "3.378.0",
"@smithy/config-resolver": "^2.0.1", "@smithy/config-resolver": "^2.0.1",
@ -222,18 +222,18 @@
"integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig=="
}, },
"node_modules/@aws-sdk/client-sso": { "node_modules/@aws-sdk/client-sso": {
"version": "3.379.1", "version": "3.382.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.379.1.tgz", "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.382.0.tgz",
"integrity": "sha512-2N16TPnRcq+seNP8VY/Zq7kfnrUOrJMbVNpyDZWGe5Qglua3n8v/FzxmXFNI87MiSODq8IHtiXhggWhefCd+TA==", "integrity": "sha512-ge11t4hJllOF8pBNF0p1X52lLqUsLGAoey24fvk3fyvvczeLpegGYh2kdLG0iwFTDgRxaUqK+kboH5Wy9ux/pw==",
"dependencies": { "dependencies": {
"@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-browser": "3.0.0",
"@aws-crypto/sha256-js": "3.0.0", "@aws-crypto/sha256-js": "3.0.0",
"@aws-sdk/middleware-host-header": "3.379.1", "@aws-sdk/middleware-host-header": "3.379.1",
"@aws-sdk/middleware-logger": "3.378.0", "@aws-sdk/middleware-logger": "3.378.0",
"@aws-sdk/middleware-recursion-detection": "3.378.0", "@aws-sdk/middleware-recursion-detection": "3.378.0",
"@aws-sdk/middleware-user-agent": "3.379.1", "@aws-sdk/middleware-user-agent": "3.382.0",
"@aws-sdk/types": "3.378.0", "@aws-sdk/types": "3.378.0",
"@aws-sdk/util-endpoints": "3.378.0", "@aws-sdk/util-endpoints": "3.382.0",
"@aws-sdk/util-user-agent-browser": "3.378.0", "@aws-sdk/util-user-agent-browser": "3.378.0",
"@aws-sdk/util-user-agent-node": "3.378.0", "@aws-sdk/util-user-agent-node": "3.378.0",
"@smithy/config-resolver": "^2.0.1", "@smithy/config-resolver": "^2.0.1",
@ -265,18 +265,18 @@
} }
}, },
"node_modules/@aws-sdk/client-sso-oidc": { "node_modules/@aws-sdk/client-sso-oidc": {
"version": "3.379.1", "version": "3.382.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.379.1.tgz", "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.382.0.tgz",
"integrity": "sha512-B6hZ2ysPyvafCMf6gls1jHI/IUviVZ4+TURpNfUBqThg/hZ1IMxc4BLkXca6VlgzYR+bWU8GKiClS9fFH6mu0g==", "integrity": "sha512-hTfvB1ftbrqaz7qiEkmRobzUQwG34oZlByobn8Frdr5ZQbJk969bX6evQAPyKlJEr26+kL9TnaX+rbLR/+gwHQ==",
"dependencies": { "dependencies": {
"@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-browser": "3.0.0",
"@aws-crypto/sha256-js": "3.0.0", "@aws-crypto/sha256-js": "3.0.0",
"@aws-sdk/middleware-host-header": "3.379.1", "@aws-sdk/middleware-host-header": "3.379.1",
"@aws-sdk/middleware-logger": "3.378.0", "@aws-sdk/middleware-logger": "3.378.0",
"@aws-sdk/middleware-recursion-detection": "3.378.0", "@aws-sdk/middleware-recursion-detection": "3.378.0",
"@aws-sdk/middleware-user-agent": "3.379.1", "@aws-sdk/middleware-user-agent": "3.382.0",
"@aws-sdk/types": "3.378.0", "@aws-sdk/types": "3.378.0",
"@aws-sdk/util-endpoints": "3.378.0", "@aws-sdk/util-endpoints": "3.382.0",
"@aws-sdk/util-user-agent-browser": "3.378.0", "@aws-sdk/util-user-agent-browser": "3.378.0",
"@aws-sdk/util-user-agent-node": "3.378.0", "@aws-sdk/util-user-agent-node": "3.378.0",
"@smithy/config-resolver": "^2.0.1", "@smithy/config-resolver": "^2.0.1",
@ -378,21 +378,21 @@
"integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig=="
}, },
"node_modules/@aws-sdk/client-sts": { "node_modules/@aws-sdk/client-sts": {
"version": "3.379.1", "version": "3.382.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.379.1.tgz", "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.382.0.tgz",
"integrity": "sha512-gEnKuk9bYjThvmxCgOgCn1qa+rRX8IgIRE2+xhbWhlpDanozhkDq9aMB5moX4tBNYQEmi1LtGD+JOvOoZRnToQ==", "integrity": "sha512-G5wgahrOqmrljjyLVGASIZUXIIdalbCo0z4PuFHdb2R2CVfwO8renfgrmk4brT9tIxIfen5bRA7ftXMe7yrgRA==",
"dependencies": { "dependencies": {
"@aws-crypto/sha256-browser": "3.0.0", "@aws-crypto/sha256-browser": "3.0.0",
"@aws-crypto/sha256-js": "3.0.0", "@aws-crypto/sha256-js": "3.0.0",
"@aws-sdk/credential-provider-node": "3.379.1", "@aws-sdk/credential-provider-node": "3.382.0",
"@aws-sdk/middleware-host-header": "3.379.1", "@aws-sdk/middleware-host-header": "3.379.1",
"@aws-sdk/middleware-logger": "3.378.0", "@aws-sdk/middleware-logger": "3.378.0",
"@aws-sdk/middleware-recursion-detection": "3.378.0", "@aws-sdk/middleware-recursion-detection": "3.378.0",
"@aws-sdk/middleware-sdk-sts": "3.379.1", "@aws-sdk/middleware-sdk-sts": "3.379.1",
"@aws-sdk/middleware-signing": "3.379.1", "@aws-sdk/middleware-signing": "3.379.1",
"@aws-sdk/middleware-user-agent": "3.379.1", "@aws-sdk/middleware-user-agent": "3.382.0",
"@aws-sdk/types": "3.378.0", "@aws-sdk/types": "3.378.0",
"@aws-sdk/util-endpoints": "3.378.0", "@aws-sdk/util-endpoints": "3.382.0",
"@aws-sdk/util-user-agent-browser": "3.378.0", "@aws-sdk/util-user-agent-browser": "3.378.0",
"@aws-sdk/util-user-agent-node": "3.378.0", "@aws-sdk/util-user-agent-node": "3.378.0",
"@smithy/config-resolver": "^2.0.1", "@smithy/config-resolver": "^2.0.1",
@ -479,13 +479,13 @@
"integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig=="
}, },
"node_modules/@aws-sdk/credential-provider-ini": { "node_modules/@aws-sdk/credential-provider-ini": {
"version": "3.379.1", "version": "3.382.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.379.1.tgz", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.382.0.tgz",
"integrity": "sha512-YhEsJIskzCFwIIKiMN9GSHQkgWwj/b7rq0ofhsXsCRimFtdVkmMlB9veE6vtFAuXpX/WOGWdlWek1az0V22uuw==", "integrity": "sha512-31pi44WWri2WQmagqptUv7x3Nq8pQ6H06OCQx5goEm77SosSdwQwyBPrS9Pg0yI9aljFAxF+rZ75degsCorbQg==",
"dependencies": { "dependencies": {
"@aws-sdk/credential-provider-env": "3.378.0", "@aws-sdk/credential-provider-env": "3.378.0",
"@aws-sdk/credential-provider-process": "3.378.0", "@aws-sdk/credential-provider-process": "3.378.0",
"@aws-sdk/credential-provider-sso": "3.379.1", "@aws-sdk/credential-provider-sso": "3.382.0",
"@aws-sdk/credential-provider-web-identity": "3.378.0", "@aws-sdk/credential-provider-web-identity": "3.378.0",
"@aws-sdk/types": "3.378.0", "@aws-sdk/types": "3.378.0",
"@smithy/credential-provider-imds": "^2.0.0", "@smithy/credential-provider-imds": "^2.0.0",
@ -504,14 +504,14 @@
"integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig=="
}, },
"node_modules/@aws-sdk/credential-provider-node": { "node_modules/@aws-sdk/credential-provider-node": {
"version": "3.379.1", "version": "3.382.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.379.1.tgz", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.382.0.tgz",
"integrity": "sha512-39Y4OHKn6a8lY8YJhSLLw08aZytWxfvSjM4ObIEnE6hjLl8gsL9vROKKITsh3q6iGQ1EDSWMWZL50aOh3LJUIg==", "integrity": "sha512-q6AWCCb0E0cH/Y5Dtln0QssbCBXDbV4PoTV3EdRuGoJcHyNfHJ8X0mqcc7k44wG4Piazu+ufZThvn43W7W9a4g==",
"dependencies": { "dependencies": {
"@aws-sdk/credential-provider-env": "3.378.0", "@aws-sdk/credential-provider-env": "3.378.0",
"@aws-sdk/credential-provider-ini": "3.379.1", "@aws-sdk/credential-provider-ini": "3.382.0",
"@aws-sdk/credential-provider-process": "3.378.0", "@aws-sdk/credential-provider-process": "3.378.0",
"@aws-sdk/credential-provider-sso": "3.379.1", "@aws-sdk/credential-provider-sso": "3.382.0",
"@aws-sdk/credential-provider-web-identity": "3.378.0", "@aws-sdk/credential-provider-web-identity": "3.378.0",
"@aws-sdk/types": "3.378.0", "@aws-sdk/types": "3.378.0",
"@smithy/credential-provider-imds": "^2.0.0", "@smithy/credential-provider-imds": "^2.0.0",
@ -550,12 +550,12 @@
"integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig=="
}, },
"node_modules/@aws-sdk/credential-provider-sso": { "node_modules/@aws-sdk/credential-provider-sso": {
"version": "3.379.1", "version": "3.382.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.379.1.tgz", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.382.0.tgz",
"integrity": "sha512-PhGtu1+JbUntYP/5CSfazQhWsjUBiksEuhg9fLhYl5OAgZVjVygbgoNVUz/gM7gZJSEMsasTazkn7yZVzO/k7w==", "integrity": "sha512-tKCQKqxnAHeRD7pQNmDmLWwC7pt5koo6yiQTVQ382U+8xx7BNsApE1zdC4LrtrVN1FYqVbw5kXjYFtSCtaUxGA==",
"dependencies": { "dependencies": {
"@aws-sdk/client-sso": "3.379.1", "@aws-sdk/client-sso": "3.382.0",
"@aws-sdk/token-providers": "3.379.1", "@aws-sdk/token-providers": "3.382.0",
"@aws-sdk/types": "3.378.0", "@aws-sdk/types": "3.378.0",
"@smithy/property-provider": "^2.0.0", "@smithy/property-provider": "^2.0.0",
"@smithy/shared-ini-file-loader": "^2.0.0", "@smithy/shared-ini-file-loader": "^2.0.0",
@ -688,12 +688,12 @@
"integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig=="
}, },
"node_modules/@aws-sdk/middleware-user-agent": { "node_modules/@aws-sdk/middleware-user-agent": {
"version": "3.379.1", "version": "3.382.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.379.1.tgz", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.382.0.tgz",
"integrity": "sha512-4zIGeAIuutcRieAvovs82uBNhJBHuxfxaAUqrKiw49xUBG7xeNVUl+DYPSpbALbEIy4ujfwWCBOOWVCt6dyUZg==", "integrity": "sha512-LFRW1jmXOrOAd3911ktn6oaYmuurNnulbdRMOUdwz99GGdLVFipQhOi9idKswb8IOhPa4jEVQt25Kcv7ctvu0A==",
"dependencies": { "dependencies": {
"@aws-sdk/types": "3.378.0", "@aws-sdk/types": "3.378.0",
"@aws-sdk/util-endpoints": "3.378.0", "@aws-sdk/util-endpoints": "3.382.0",
"@smithy/protocol-http": "^2.0.1", "@smithy/protocol-http": "^2.0.1",
"@smithy/types": "^2.0.2", "@smithy/types": "^2.0.2",
"tslib": "^2.5.0" "tslib": "^2.5.0"
@ -708,11 +708,11 @@
"integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig=="
}, },
"node_modules/@aws-sdk/token-providers": { "node_modules/@aws-sdk/token-providers": {
"version": "3.379.1", "version": "3.382.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.379.1.tgz", "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.382.0.tgz",
"integrity": "sha512-NlYPkArJ7A/txCrjqqkje+4hsv7pSOqm+Qdx3BUIOc7PRYrBVs/XwThxUkGceSntVXoNlO8g9DFL0NY53/wb8Q==", "integrity": "sha512-axn4IyPpHdkXi8G06KCB3tPz79DipZFFH9N9YVDpLMnDYTdfX36HGdYzINaQc+z+XPbEpa1ZpoIzWScHRjFjdg==",
"dependencies": { "dependencies": {
"@aws-sdk/client-sso-oidc": "3.379.1", "@aws-sdk/client-sso-oidc": "3.382.0",
"@aws-sdk/types": "3.378.0", "@aws-sdk/types": "3.378.0",
"@smithy/property-provider": "^2.0.0", "@smithy/property-provider": "^2.0.0",
"@smithy/shared-ini-file-loader": "^2.0.0", "@smithy/shared-ini-file-loader": "^2.0.0",
@ -746,9 +746,9 @@
"integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig=="
}, },
"node_modules/@aws-sdk/util-endpoints": { "node_modules/@aws-sdk/util-endpoints": {
"version": "3.378.0", "version": "3.382.0",
"resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.378.0.tgz", "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.382.0.tgz",
"integrity": "sha512-NU5C2l2xAXxpyB5nT0fIhahLPlJoJdzHWw4uC53KH9b4PrjHtgvgCN8beIsD3QxyfgeoM4A5J9Auo6WurfRnLw==", "integrity": "sha512-flajPyjmjNG67fXk7l4GoTB/7J11VBqtFZXuuAZKhKU07Ia3IQupsFqNf5lV8D44ZgjnKH0fTGnv3dUALjW7Wg==",
"dependencies": { "dependencies": {
"@aws-sdk/types": "3.378.0", "@aws-sdk/types": "3.378.0",
"tslib": "^2.5.0" "tslib": "^2.5.0"
@ -2068,9 +2068,9 @@
"dev": true "dev": true
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "20.4.5", "version": "20.4.6",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.5.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.6.tgz",
"integrity": "sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg==" "integrity": "sha512-q0RkvNgMweWWIvSMDiXhflGUKMdIxBo2M2tYM/0kEGDueQByFzK4KZAgu5YHGFNxziTlppNpTIBcqHQAxlfHdA=="
}, },
"node_modules/@types/prop-types": { "node_modules/@types/prop-types": {
"version": "15.7.5", "version": "15.7.5",
@ -2091,9 +2091,9 @@
"dev": true "dev": true
}, },
"node_modules/@types/react": { "node_modules/@types/react": {
"version": "18.2.17", "version": "18.2.18",
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.17.tgz", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.18.tgz",
"integrity": "sha512-u+e7OlgPPh+aryjOm5UJMX32OvB2E3QASOAqVMY6Ahs90djagxwv2ya0IctglNbNTexC12qCSMZG47KPfy1hAA==", "integrity": "sha512-da4NTSeBv/P34xoZPhtcLkmZuJ+oYaCxHmyHzwaDQo9RQPBeXV+06gEk2FpqEcsX9XrnNLvRpVh6bdavDSjtiQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@types/prop-types": "*", "@types/prop-types": "*",
@ -2890,9 +2890,9 @@
} }
}, },
"node_modules/browserslist": { "node_modules/browserslist": {
"version": "4.21.9", "version": "4.21.10",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz",
"integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
@ -2909,9 +2909,9 @@
} }
], ],
"dependencies": { "dependencies": {
"caniuse-lite": "^1.0.30001503", "caniuse-lite": "^1.0.30001517",
"electron-to-chromium": "^1.4.431", "electron-to-chromium": "^1.4.477",
"node-releases": "^2.0.12", "node-releases": "^2.0.13",
"update-browserslist-db": "^1.0.11" "update-browserslist-db": "^1.0.11"
}, },
"bin": { "bin": {
@ -2997,9 +2997,9 @@
} }
}, },
"node_modules/caniuse-lite": { "node_modules/caniuse-lite": {
"version": "1.0.30001517", "version": "1.0.30001518",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001518.tgz",
"integrity": "sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==", "integrity": "sha512-rup09/e3I0BKjncL+FesTayKtPrdwKhUufQFd3riFw1hHg8JmIFoInYfB102cFcY/pPgGmdyl/iy+jgiDi2vdA==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
@ -3545,9 +3545,9 @@
"dev": true "dev": true
}, },
"node_modules/electron-to-chromium": { "node_modules/electron-to-chromium": {
"version": "1.4.476", "version": "1.4.482",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.476.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.482.tgz",
"integrity": "sha512-gzWl1m8pNy+5Kj17XcziNcbOhripjTqR2wAQmtdlFUngPYuFy7zUpJScVQAvCvQSFHNk3mS5fetNKW6BSpytFg==", "integrity": "sha512-h+UqpfmEr1Qkk0zp7ej/jid7CXoq4m4QzW6wNTb0ELJ/BZCpA4wgUylBIMGCe621tnr4l5VmoHjdoSx2lbnNJA==",
"dev": true "dev": true
}, },
"node_modules/emoji-regex": { "node_modules/emoji-regex": {
@ -3575,21 +3575,21 @@
} }
}, },
"node_modules/engine.io-client": { "node_modules/engine.io-client": {
"version": "6.5.1", "version": "6.5.2",
"resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.1.tgz", "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.2.tgz",
"integrity": "sha512-hE5wKXH8Ru4L19MbM1GgYV/2Qo54JSMh1rlJbfpa40bEWkCKNo3ol2eOtGmowcr+ysgbI7+SGL+by42Q3pt/Ng==", "integrity": "sha512-CQZqbrpEYnrpGqC07a9dJDz4gePZUgTPMU3NKJPSeQOyw27Tst4Pl3FemKoFGAlHzgZmKjoRmiJvbWfhCXUlIg==",
"dependencies": { "dependencies": {
"@socket.io/component-emitter": "~3.1.0", "@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.1", "debug": "~4.3.1",
"engine.io-parser": "~5.1.0", "engine.io-parser": "~5.2.1",
"ws": "~8.11.0", "ws": "~8.11.0",
"xmlhttprequest-ssl": "~2.0.0" "xmlhttprequest-ssl": "~2.0.0"
} }
}, },
"node_modules/engine.io-parser": { "node_modules/engine.io-parser": {
"version": "5.1.0", "version": "5.2.1",
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.1.0.tgz", "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz",
"integrity": "sha512-enySgNiK5tyZFynt3z7iqBR+Bto9EVVVvDFuTT0ioHCGbzirZVGDGiQjZzEp8hWl6hd5FSVytJGuScX1C1C35w==", "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==",
"engines": { "engines": {
"node": ">=10.0.0" "node": ">=10.0.0"
} }
@ -3850,9 +3850,9 @@
} }
}, },
"node_modules/eslint-plugin-react": { "node_modules/eslint-plugin-react": {
"version": "7.33.0", "version": "7.33.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.0.tgz", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.1.tgz",
"integrity": "sha512-qewL/8P34WkY8jAqdQxsiL82pDUeT7nhs8IsuXgfgnsEloKCT4miAV9N9kGtx7/KM9NH/NCGUE7Edt9iGxLXFw==", "integrity": "sha512-L093k0WAMvr6VhNwReB8VgOq5s2LesZmrpPdKz/kZElQDzqS7G7+DnKoqT+w4JwuiGeAhAvHO0fvy0Eyk4ejDA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"array-includes": "^3.1.6", "array-includes": "^3.1.6",
@ -5508,9 +5508,9 @@
} }
}, },
"node_modules/jsx-ast-utils": { "node_modules/jsx-ast-utils": {
"version": "3.3.4", "version": "3.3.5",
"resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.4.tgz", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
"integrity": "sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw==", "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"array-includes": "^3.1.6", "array-includes": "^3.1.6",
@ -7464,9 +7464,9 @@
} }
}, },
"node_modules/signal-exit": { "node_modules/signal-exit": {
"version": "4.0.2", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
"integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": ">=14" "node": ">=14"
@ -7476,13 +7476,13 @@
} }
}, },
"node_modules/socket.io-client": { "node_modules/socket.io-client": {
"version": "4.7.1", "version": "4.7.2",
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.1.tgz", "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.2.tgz",
"integrity": "sha512-Qk3Xj8ekbnzKu3faejo4wk2MzXA029XppiXtTF/PkbTg+fcwaTw1PlDrTrrrU4mKoYC4dvlApOnSeyLCKwek2w==", "integrity": "sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w==",
"dependencies": { "dependencies": {
"@socket.io/component-emitter": "~3.1.0", "@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.2", "debug": "~4.3.2",
"engine.io-client": "~6.5.1", "engine.io-client": "~6.5.2",
"socket.io-parser": "~4.2.4" "socket.io-parser": "~4.2.4"
}, },
"engines": { "engines": {

View File

@ -1,6 +1,6 @@
{ {
"name": "@dannadori/voice-changer-client-js", "name": "@dannadori/voice-changer-client-js",
"version": "1.0.165", "version": "1.0.166",
"description": "", "description": "",
"main": "dist/index.js", "main": "dist/index.js",
"directories": { "directories": {
@ -27,13 +27,13 @@
"license": "ISC", "license": "ISC",
"devDependencies": { "devDependencies": {
"@types/audioworklet": "^0.0.49", "@types/audioworklet": "^0.0.49",
"@types/node": "^20.4.5", "@types/node": "^20.4.6",
"@types/react": "18.2.17", "@types/react": "18.2.18",
"@types/react-dom": "18.2.7", "@types/react-dom": "18.2.7",
"eslint": "^8.46.0", "eslint": "^8.46.0",
"eslint-config-prettier": "^8.9.0", "eslint-config-prettier": "^8.9.0",
"eslint-plugin-prettier": "^5.0.0", "eslint-plugin-prettier": "^5.0.0",
"eslint-plugin-react": "^7.33.0", "eslint-plugin-react": "^7.33.1",
"eslint-webpack-plugin": "^4.0.1", "eslint-webpack-plugin": "^4.0.1",
"npm-run-all": "^4.1.5", "npm-run-all": "^4.1.5",
"prettier": "^3.0.0", "prettier": "^3.0.0",
@ -53,6 +53,6 @@
"protobufjs": "^7.2.4", "protobufjs": "^7.2.4",
"react": "^18.2.0", "react": "^18.2.0",
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
"socket.io-client": "^4.7.1" "socket.io-client": "^4.7.2"
} }
} }

View File

@ -23,9 +23,11 @@ export class VoiceChangerClient {
private currentMediaStreamAudioSourceNode: MediaStreamAudioSourceNode | null = null private currentMediaStreamAudioSourceNode: MediaStreamAudioSourceNode | null = null
private inputGainNode: GainNode | null = null private inputGainNode: GainNode | null = null
private outputGainNode: GainNode | null = null private outputGainNode: GainNode | null = null
private monitorGainNode: GainNode | null = null
private vcInNode!: VoiceChangerWorkletNode private vcInNode!: VoiceChangerWorkletNode
private vcOutNode!: VoiceChangerWorkletNode private vcOutNode!: VoiceChangerWorkletNode
private currentMediaStreamAudioDestinationNode!: MediaStreamAudioDestinationNode private currentMediaStreamAudioDestinationNode!: MediaStreamAudioDestinationNode
private currentMediaStreamAudioDestinationMonitorNode!: MediaStreamAudioDestinationNode
private promiseForInitialize: Promise<void> private promiseForInitialize: Promise<void>
@ -72,6 +74,12 @@ export class VoiceChangerClient {
this.vcOutNode.connect(this.outputGainNode) // vc node -> output node this.vcOutNode.connect(this.outputGainNode) // vc node -> output node
this.outputGainNode.connect(this.currentMediaStreamAudioDestinationNode) this.outputGainNode.connect(this.currentMediaStreamAudioDestinationNode)
this.currentMediaStreamAudioDestinationMonitorNode = ctx44k.createMediaStreamDestination() // output node
this.monitorGainNode = ctx44k.createGain()
this.monitorGainNode.gain.value = this.setting.monitorGain
this.vcOutNode.connect(this.monitorGainNode) // vc node -> monitor node
this.monitorGainNode.connect(this.currentMediaStreamAudioDestinationMonitorNode)
if (this.vfEnable) { if (this.vfEnable) {
this.vf = await VoiceFocusDeviceTransformer.create({ variant: 'c20' }) this.vf = await VoiceFocusDeviceTransformer.create({ variant: 'c20' })
const dummyMediaStream = createDummyMediaStream(this.ctx) const dummyMediaStream = createDummyMediaStream(this.ctx)
@ -185,6 +193,9 @@ export class VoiceChangerClient {
get stream(): MediaStream { get stream(): MediaStream {
return this.currentMediaStreamAudioDestinationNode.stream return this.currentMediaStreamAudioDestinationNode.stream
} }
get monitorStream(): MediaStream {
return this.currentMediaStreamAudioDestinationMonitorNode.stream
}
start = async () => { start = async () => {
await this.vcInNode.start() await this.vcInNode.start()
@ -239,6 +250,9 @@ export class VoiceChangerClient {
if (this.setting.outputGain != setting.outputGain) { if (this.setting.outputGain != setting.outputGain) {
this.setOutputGain(setting.outputGain) this.setOutputGain(setting.outputGain)
} }
if (this.setting.monitorGain != setting.monitorGain) {
this.setMonitorGain(setting.monitorGain)
}
this.setting = setting this.setting = setting
if (reconstructInputRequired) { if (reconstructInputRequired) {
@ -261,6 +275,13 @@ export class VoiceChangerClient {
this.outputGainNode.gain.value = val this.outputGainNode.gain.value = val
} }
setMonitorGain = (val: number) => {
if (!this.monitorGainNode) {
return
}
this.monitorGainNode.gain.value = val
}
///////////////////////////////////////////////////// /////////////////////////////////////////////////////
// コンポーネント設定、操作 // コンポーネント設定、操作
///////////////////////////////////////////////////// /////////////////////////////////////////////////////

View File

@ -469,6 +469,7 @@ export type VoiceChangerClientSetting = {
inputGain: number inputGain: number
outputGain: number outputGain: number
monitorGain: number
} }
/////////////////////// ///////////////////////
@ -499,7 +500,8 @@ export const DefaultClientSettng: ClientSetting = {
noiseSuppression: false, noiseSuppression: false,
noiseSuppression2: false, noiseSuppression2: false,
inputGain: 1.0, inputGain: 1.0,
outputGain: 1.0 outputGain: 1.0,
monitorGain: 1.0
} }
} }

View File

@ -223,7 +223,7 @@ export const useClient = (props: UseClientProps): ClientState => {
} }
const audio = document.getElementById(elemId) as HTMLAudioElement const audio = document.getElementById(elemId) as HTMLAudioElement
if (audio.paused) { if (audio.paused) {
audio.srcObject = voiceChangerClientRef.current.stream audio.srcObject = voiceChangerClientRef.current.monitorStream
audio.play() audio.play()
} }
} }

View File

@ -46,6 +46,7 @@ class ServerDeviceSettings:
serverReadChunkSize: int = 256 serverReadChunkSize: int = 256
serverInputAudioGain: float = 1.0 serverInputAudioGain: float = 1.0
serverOutputAudioGain: float = 1.0 serverOutputAudioGain: float = 1.0
serverMonitorAudioGain: float = 1.0
exclusiveMode: bool = False exclusiveMode: bool = False
@ -66,6 +67,7 @@ EditableServerDeviceSettings = {
"floatData": [ "floatData": [
"serverInputAudioGain", "serverInputAudioGain",
"serverOutputAudioGain", "serverOutputAudioGain",
"serverMonitorAudioGain",
], ],
"boolData": [ "boolData": [
"exclusiveMode" "exclusiveMode"
@ -153,7 +155,7 @@ class ServerDevice:
self.outQueue.put(out_wav) self.outQueue.put(out_wav)
outputChannels = outdata.shape[1] # Monitorへのアウトプット outputChannels = outdata.shape[1] # Monitorへのアウトプット
outdata[:] = np.repeat(out_wav, outputChannels).reshape(-1, outputChannels) / 32768.0 outdata[:] = np.repeat(out_wav, outputChannels).reshape(-1, outputChannels) / 32768.0
outdata[:] = outdata * self.settings.serverOutputAudioGain outdata[:] = outdata * self.settings.serverMonitorAudioGain
except Exception as e: except Exception as e:
print("[Voice Changer] ex:", e) print("[Voice Changer] ex:", e)
@ -196,8 +198,7 @@ class ServerDevice:
self.monQueue.get() self.monQueue.get()
outputChannels = outdata.shape[1] outputChannels = outdata.shape[1]
outdata[:] = np.repeat(mon_wav, outputChannels).reshape(-1, outputChannels) / 32768.0 outdata[:] = np.repeat(mon_wav, outputChannels).reshape(-1, outputChannels) / 32768.0
outdata[:] = outdata * self.settings.serverOutputAudioGain # GainはOutputのものをを流用 outdata[:] = outdata * self.settings.serverMonitorAudioGain
# Monitorモードが有効の場合はサンプリングレートはmonitorデバイスが優先されているためリサンプリング不要
except Exception as e: except Exception as e:
print("[Voice Changer][ServerDevice][audioMonitor_callback] ex:", e) print("[Voice Changer][ServerDevice][audioMonitor_callback] ex:", e)
# import traceback # import traceback