{"id":7255,"date":"2025-03-26T07:44:54","date_gmt":"2025-03-26T07:44:54","guid":{"rendered":"https:\/\/tsugi-studio.com\/blog\/?p=7255"},"modified":"2025-03-27T07:10:06","modified_gmt":"2025-03-27T07:10:06","slug":"new-workflow-for-game-sound-design","status":"publish","type":"post","link":"https:\/\/tsugi-studio.com\/blog\/2025\/03\/26\/new-workflow-for-game-sound-design\/","title":{"rendered":"New game sound design workflow"},"content":{"rendered":"<p>In this post, we will describe a new workflow for the creation of sound effects for your game cinematics or animations. By controlling GameSynth directly from your game middleware (via the <a href=\"https:\/\/tsugi-studio.com\/blog\/2023\/06\/27\/introduction-to-the-gamesynth-tool-api\/\">GameSynth Tool API<\/a>), you will be able to create perfectly matching sound effects in real-time. Although we will be using Unity, you can do the same with any other game engine.<\/p>\n<h3>Example 1: Transforming the voice of a demon lady based on the \u201cwrath\u201d parameter in the game<\/h3>\n<div class=\"media-wrap\">\n    <a class=\"litymp3\" href=\"https:\/\/youtu.be\/x84En0aoZ98\" data-lity=\"\"><img decoding=\"async\" src=\"https:\/\/tsugi-studio.com\/blog\/wp-content\/uploads\/2025\/03\/Devil_Demo.jpg\" alt=\"\"><br \/>\n<\/a>\n    <\/div>\n<h3>Example 2: \u00a0Controlling the engine\u2019s noise based on the ship\u2019s altitude and speed<\/h3>\n<div class=\"media-wrap\">\n    <a class=\"litymp3\" href=\"https:\/\/youtu.be\/MKHVHa9AIRk\" data-lity=\"\"><img decoding=\"async\" src=\"https:\/\/tsugi-studio.com\/blog\/wp-content\/uploads\/2025\/03\/Spaceship_Demo.jpg\" alt=\"\"><br \/>\n<\/a>\n    <\/div>\n<h2 class=\"tsugiblog-blackheader\" style=\"margin-top: 40px; padding: 12px 18px; max-width: 670px; background-position: right center; background-repeat: no-repeat; background-size: contain; letter-spacing: 0.05em; color: #ffffff; background-color: #161d26; background-image: url('https:\/\/tsugi-studio.com\/blog\/wp-content\/uploads\/2025\/03\/header-bg3.png');\">GameSynth and Game middleware<\/h2>\n<p>Out of the box, GameSynth offers several ways to interface with your game middleware. For instance, it is possible to import animation curves as automation in the tool, to drive the sound parameters from motion. GameSynth can also automatically generate sound variations and export them to your game project with a single click, creating any required files and assets, and setting parameters as needed.<\/p>\n<p>Using the GameSynth Tool API will allow you to go even further, writing scripts that will remotely control many aspects of GameSynth, for instance allowing you to browse its patch repository and <a href=\"https:\/\/tsugi-studio.com\/blog\/2023\/06\/27\/the-gamesynth-tool-api-and-unity\/\">render sounds directly into your Unity project<\/a>.<\/p>\n<h2 class=\"tsugiblog-blackheader\" style=\"margin-top: 40px; padding: 12px 18px; max-width: 670px; background-position: right center; background-repeat: no-repeat; background-size: contain; letter-spacing: 0.05em; color: #ffffff; background-color: #161d26; background-image: url('https:\/\/tsugi-studio.com\/blog\/wp-content\/uploads\/2025\/03\/header-bg0.png');\">Sending messages in real-time<\/h2>\n<p>The GameSynth Tool API makes it also possible to <a href=\"https:\/\/tsugi-studio.com\/web\/gamesynth\/api\/en\/commands.html#play\">play<\/a> and <a href=\"https:\/\/tsugi-studio.com\/web\/gamesynth\/api\/en\/commands.html#stop\">stop<\/a> the current patch, and even to <a href=\"https:\/\/tsugi-studio.com\/web\/gamesynth\/api\/en\/commands.html#set_metavalue\">set its meta-parameter values<\/a>. By associating game variables or the camera movement with the meta-parameters, it becomes possible to generate sound effects in real-time that perfectly match what is happening in the game editor. This is great when you want to design the sounds for in-game animations or cinematics!<\/p>\n<p>First, since the GameSynth Tool API communicates via TCP\/IP, you will need to add a tiny bit of code to send the messages. You can use the server code provided with our <a href=\"https:\/\/tsugi-studio.com\/web\/gamesynth\/api\/en\/examples.html#unity-scripts\">Unity demos<\/a>.<\/p>\n<div class=\"media-wrap\" style=\"margin-bottom:25px;\"><img decoding=\"async\" src=\"https:\/\/tsugi-studio.com\/blog\/wp-content\/uploads\/2025\/03\/schema.png\" alt=\"\u901a\u4fe1\u306e\u6982\u7565\u56f3\"><\/div>\n<p>Then, you just need to set up meta-parameters in your GameSynth patch and update their values from your game code. This can be done easily by sending a single string to the GameSynth Tool API. You can either reference the meta-parameter by index or by name.<\/p>\n<p>For instance, when referencing by name, you may send the following string:<\/p>\n<p><em>\u201cset_metavalue BY_NAME energy 0.7\u201d<\/em><\/p>\n<p>Don\u2019t forget to add quotes around the name if it contains any spaces, and note that the value you send must be normalized between 0 and 1.<\/p>\n<p>Now let\u2019s see how we implemented the examples above!<\/p>\n<h2 class=\"tsugiblog-blackheader\" style=\"margin-top: 40px; padding: 12px 18px; max-width: 670px; background-position: right center; background-repeat: no-repeat; background-size: contain; letter-spacing: 0.05em; color: #ffffff; background-color: #161d26; background-image: url('https:\/\/tsugi-studio.com\/blog\/wp-content\/uploads\/2025\/03\/header-bg1.png');\">Demon Lady Example<\/h2>\n<p>In this example, by adjusting a single \u201cwrath\u201d parameter, we changed the appearance of a character from a human to a demon, making her progressively grow horns and adding flames in the background. The value of the \u201cwrath\u201d parameter, mapped between 0 and 1, was sent to GameSynth on each update.<\/p>\n<p>On the GameSynth side, a \u2018wrath\u2019 meta parameter was created. It is connected to multiple sound parameters in the effect rack of the Voice FX model, such as the amount of pitch shifting, reverberation, gain, etc\u2026 The patch used is based on the \u201cAlien Hive\u201d preset.<\/p>\n<p>Thank you to voice actress\u00a0<a href=\"https:\/\/twitter.com\/y_asm\">Yui Asami<\/a> for providing the original voice sample!<\/p>\n<p><a class=\"litymp3\" href=\"https:\/\/tsugi-studio.com\/blog\/wp-content\/uploads\/2025\/03\/Voice_Patch.mp4\" data-lity=\"\"><img decoding=\"async\" src=\"https:\/\/tsugi-studio.com\/blog\/wp-content\/uploads\/2025\/03\/1.jpg\" alt=\"\"><\/a><\/p>\n<h2 class=\"tsugiblog-blackheader\" style=\"margin-top: 40px; padding: 12px 18px; max-width: 670px; background-position: right center; background-repeat: no-repeat; background-size: contain; letter-spacing: 0.05em; color: #ffffff; background-color: #161d26; background-image: url('https:\/\/tsugi-studio.com\/blog\/wp-content\/uploads\/2025\/03\/header-bg2.png');\">Spaceship Engine Example<\/h2>\n<p>In this example, we use 3 parameters linked to the motion of the spaceship: altitude, speed, and position, and send the corresponding parameter values to GameSynth on every update.<\/p>\n<p>In the GameSynth patch, we defined 3 three meta-parameters controlling engine power, wind deflection noise, and panning. The patch itself is based on the \u201cAntigrav Speeder\u201d patch available in the GameSynth repository and uses Noise, Beam, and Mega Saw generators to produce the engine sound.<\/p>\n<p><a class=\"litymp3\" href=\"https:\/\/tsugi-studio.com\/blog\/wp-content\/uploads\/2025\/03\/SpaceShip_Patch.mp4\" data-lity=\"\"><img decoding=\"async\" src=\"https:\/\/tsugi-studio.com\/blog\/wp-content\/uploads\/2025\/03\/2.jpg\" alt=\"\"><\/a><\/p>\n<h2 class=\"tsugiblog-blackheader\" style=\"margin-top: 40px; padding: 12px 18px; max-width: 670px; background-position: right center; background-repeat: no-repeat; background-size: contain; letter-spacing: 0.05em; color: #ffffff; background-color: #161d26; background-image: url('https:\/\/tsugi-studio.com\/blog\/wp-content\/uploads\/2025\/03\/header-bg3.png');\">Advantages<\/h2>\n<p>In addition to being able to generate wave files, GameSynth can be controlled remotely by other tools and engines. This makes it possible to define entirely new workflows to create sound effects.<\/p>\n<p>In the examples above, not only will the sound effects perfectly match what is happening in the game, but it is easy to create as many variations as needed (e.g., by moving the spaceship around) or to quickly edit the audio effect (e.g., by adjusting the sound parameters of the Voice FX patch for the demon lady).<\/p>\n<p>In addition, it opens the door to various applications outside of the gaming world, for example digital installations that can benefit from the increased interactivity and high audio quality provided by the procedural audio engine of GameSynth.<\/p>\n<div class=\"media-wrap\">\n     <a class=\"litymp3\" href=\"https:\/\/youtu.be\/BwRxjzrYdss\" data-lity=\"\"><img decoding=\"async\" src=\"https:\/\/tsugi-studio.com\/blog\/wp-content\/uploads\/2025\/03\/Robot_Demo.jpg\" alt=\"\"><br \/>\n<\/a>\n    <\/div>\n<p>&nbsp;<\/p>\n<p><a class=\"gs-learn-more\" href=\"https:\/\/tsugi-studio.com\/web\/en\/products-gamesynth.html\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/tsugi-studio.com\/blog\/wp-content\/uploads\/2020\/06\/2020_06_Introducing-Modular-Weapons-Modules-banner-1.png\" alt=\"GameSynth\"><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this post, we will describe a new workflow for the creation of sound effects for your game cinematics or animations. By controlling GameSynth<\/p>\n","protected":false},"author":1,"featured_media":7257,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15,12,6],"tags":[],"class_list":["post-7255","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-procedural-audio","category-tutorial","category-gamesynth"],"_links":{"self":[{"href":"https:\/\/tsugi-studio.com\/blog\/wp-json\/wp\/v2\/posts\/7255","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tsugi-studio.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tsugi-studio.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tsugi-studio.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tsugi-studio.com\/blog\/wp-json\/wp\/v2\/comments?post=7255"}],"version-history":[{"count":24,"href":"https:\/\/tsugi-studio.com\/blog\/wp-json\/wp\/v2\/posts\/7255\/revisions"}],"predecessor-version":[{"id":7282,"href":"https:\/\/tsugi-studio.com\/blog\/wp-json\/wp\/v2\/posts\/7255\/revisions\/7282"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tsugi-studio.com\/blog\/wp-json\/wp\/v2\/media\/7257"}],"wp:attachment":[{"href":"https:\/\/tsugi-studio.com\/blog\/wp-json\/wp\/v2\/media?parent=7255"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tsugi-studio.com\/blog\/wp-json\/wp\/v2\/categories?post=7255"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tsugi-studio.com\/blog\/wp-json\/wp\/v2\/tags?post=7255"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}