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>
<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>
<!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>

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

View File

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

View File

@ -757,6 +757,41 @@ export const DeviceArea = (_props: DeviceAreaProps) => {
);
}, [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 (
<div className="config-sub-area">
{deviceModeRow}
@ -769,6 +804,7 @@ export const DeviceArea = (_props: DeviceAreaProps) => {
{serverAudioOutputRow}
{clientMonitorRow}
{serverMonitorRow}
{monitorGainControl}
{outputRecorderRow}
<audio hidden id={AUDIO_ELEMENT_FOR_PLAY_RESULT}></audio>

View File

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

View File

@ -1,6 +1,6 @@
{
"name": "@dannadori/voice-changer-client-js",
"version": "1.0.165",
"version": "1.0.166",
"description": "",
"main": "dist/index.js",
"directories": {
@ -27,13 +27,13 @@
"license": "ISC",
"devDependencies": {
"@types/audioworklet": "^0.0.49",
"@types/node": "^20.4.5",
"@types/react": "18.2.17",
"@types/node": "^20.4.6",
"@types/react": "18.2.18",
"@types/react-dom": "18.2.7",
"eslint": "^8.46.0",
"eslint-config-prettier": "^8.9.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",
"npm-run-all": "^4.1.5",
"prettier": "^3.0.0",
@ -53,6 +53,6 @@
"protobufjs": "^7.2.4",
"react": "^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 inputGainNode: GainNode | null = null
private outputGainNode: GainNode | null = null
private monitorGainNode: GainNode | null = null
private vcInNode!: VoiceChangerWorkletNode
private vcOutNode!: VoiceChangerWorkletNode
private currentMediaStreamAudioDestinationNode!: MediaStreamAudioDestinationNode
private currentMediaStreamAudioDestinationMonitorNode!: MediaStreamAudioDestinationNode
private promiseForInitialize: Promise<void>
@ -72,6 +74,12 @@ export class VoiceChangerClient {
this.vcOutNode.connect(this.outputGainNode) // vc node -> output node
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) {
this.vf = await VoiceFocusDeviceTransformer.create({ variant: 'c20' })
const dummyMediaStream = createDummyMediaStream(this.ctx)
@ -185,6 +193,9 @@ export class VoiceChangerClient {
get stream(): MediaStream {
return this.currentMediaStreamAudioDestinationNode.stream
}
get monitorStream(): MediaStream {
return this.currentMediaStreamAudioDestinationMonitorNode.stream
}
start = async () => {
await this.vcInNode.start()
@ -239,6 +250,9 @@ export class VoiceChangerClient {
if (this.setting.outputGain != setting.outputGain) {
this.setOutputGain(setting.outputGain)
}
if (this.setting.monitorGain != setting.monitorGain) {
this.setMonitorGain(setting.monitorGain)
}
this.setting = setting
if (reconstructInputRequired) {
@ -261,6 +275,13 @@ export class VoiceChangerClient {
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
outputGain: number
monitorGain: number
}
///////////////////////
@ -499,7 +500,8 @@ export const DefaultClientSettng: ClientSetting = {
noiseSuppression: false,
noiseSuppression2: false,
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
if (audio.paused) {
audio.srcObject = voiceChangerClientRef.current.stream
audio.srcObject = voiceChangerClientRef.current.monitorStream
audio.play()
}
}

View File

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