387
edits
(14 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
'''"Give It To Me Baby"''' | '''"Give It To Me Baby"''' [https://twitter.com/giucapan/status/735153547445215232 Video] | ||
<br><br> | |||
[[File:Baby.png|700px]] | [[File:Baby.png|700px]] | ||
<br><br> | |||
We did a little game, where you can control a dancefloor in a Unity Scene, with microphone input. | We did a little game, where you can control a dancefloor in a Unity Scene, with microphone input.<br> | ||
The player is requested to shout, beatbox or clap in front of the microphone, to move the dancers on the screen. | The player is requested to shout, beatbox or clap in front of the microphone, to move the dancers on the screen. | ||
<br> | |||
An audio signal is grabbed in Max/Msp and then sent to Unity via OSC. | An audio signal is grabbed in Max/Msp and then sent to Unity via OSC. | ||
In Unity the signal is used to control an object, which serves as the dance-floor for some SpriteAnimation of Dancers. When the floor moves the dancers get kicked around. | <br>In Unity the signal is used to control an object, which serves as the dance-floor for some SpriteAnimation of Dancers.<br> When the floor moves the dancers get kicked around. | ||
<br> | |||
When you start the game, there is music but no beat. You have the control over the beat. When you start using the mic, the beat is un-muted.<br> When you stop interacting, the message - "Give It To Me Baby!" - appears, which forces you to go on. | |||
<br> | |||
<strong>Who did what?</strong><br> | |||
Ben: Max Patch<br> | |||
Luca: Unity Setting & Spriteanimation<br> | |||
Ben&Luca: Unity Script | |||
<br> | |||
[[File:Signalflow.png|700px]] | [[File:Signalflow.png|700px]] | ||
<br><br><br><br> | |||
=Max/Msp= | =Max/Msp= | ||
===Grabbing the Audio Input=== | ===Grabbing the Audio Input=== | ||
<br><br> | |||
[[File:Max01.png|500px]] | [[File:Max01.png|500px]] | ||
<br><br> | |||
In Max you can grab any audio input. In our case we use a microphone connected to an audio interface. <br> The audio signal is then converted into a float value stream. With a threshold patch, we can set the minimum of input to trigger a bang.<br>The bang from the threshold we then send to a message box, containing a predefined OSC message string ( /goOnBang $1 ). | In Max you can grab any audio input. In our case we use a microphone connected to an audio interface. <br> The audio signal is then converted into a float value stream. With a threshold patch, we can set the minimum of input to trigger a bang.<br>The bang from the threshold we then send to a message box, containing a predefined OSC message string ( /goOnBang $1 ). | ||
<br> | |||
When a peak is detected, the Max patch also sends a message ( /Ben/x $1 ) to Unity via OSC. <br>"$1" is a variable which is replaced by a float "1.3". This value is defines the amount of height, and therefore how high the dancefloor gets lifted. | When a peak is detected, the Max patch also sends a message ( /Ben/x $1 ) to Unity via OSC. <br>"$1" is a variable which is replaced by a float "1.3". This value is defines the amount of height, and therefore how high the dancefloor gets lifted. | ||
<br><br><br><br> | |||
===Setting the threshold=== | ===Setting the threshold=== | ||
<br><br> | |||
[[File:Max02.png|500px]] | [[File:Max02.png|500px]] | ||
<br><br> | |||
To use a constant audiostream, and trigger things with it, you need something called "Envelope Follower". Therefore we used a sub-patch which comes with to standard max-externals.<br> | To use a constant audiostream, and trigger things with it, you need something called "Envelope Follower". Therefore we used a sub-patch which comes with to standard max-externals.<br> | ||
This patch detects peaks in the audio-signal, if you want to use a peak above a certain level you have to look at the gain and set the threshold then. | This patch detects peaks in the audio-signal, if you want to use a peak above a certain level you have to look at the gain and set the threshold then. | ||
<br><br><br><br> | |||
===Trigger Text and Mute Audio Sources in Unity=== | ===Trigger Text and Mute Audio Sources in Unity=== | ||
<br><br> | |||
[[File:Max03.png|500px]] | [[File:Max03.png|500px]] | ||
<br><br> | |||
We use the detected peaks in the mic signal, to trigger messages and mute the beat-loop in Unity. | We use the detected peaks in the mic signal, to trigger messages and mute the beat-loop in Unity. | ||
Therefore we send the OSC message ( /goOnBang $1 ) to the PC running Unity, via OSC.<br> | Therefore we send the OSC message ( /goOnBang $1 ) to the PC running Unity, via OSC.<br> | ||
When the player pauses for 350ms, the beat-loop stops, and the message - "Give It To Me Baby" - appears on the screen.<br> | When the player pauses for 350ms, the beat-loop stops, and the message - "Give It To Me Baby" - appears on the screen.<br> | ||
When another peak is detected, the Max patch sends a signal to Unity, which tells it to go on, with playing the beat-loop and the message on the screen disappears. | When another peak is detected, the Max patch sends a signal to Unity, which tells it to go on, with playing the beat-loop and the message on the screen disappears. | ||
<br><br><br><br> | |||
=Unity= | =Unity= | ||
Line 76: | Line 80: | ||
[[File:unity10.png|500px]] | [[File:unity10.png|500px]] | ||
[[File:unity12.png|500px]] | [[File:unity12.png|500px]] | ||
<br> | |||
[[File:unity3.png|500px]] | [[File:unity3.png|500px]] | ||
[[File:unity15.png|500px]] | [[File:unity15.png|500px]] | ||
Line 93: | Line 98: | ||
[[File:unity2.png|700px]] | [[File:unity2.png|700px]] | ||
[[File:unity4.png|600px]] | [[File:unity4.png|600px]] | ||
<br> | |||
[[File:unity5.png|700px]] | [[File:unity5.png|700px]] | ||
<br><br><br><br> | <br><br><br><br> |
edits