Archive for Institutes

Blok 3 – 2016

Hier wat links over Unity en audio.

Hoe maak ik een metronoom?

Met AudioSettings.dspTime kun je de tijd op audiorate opvragen. Let op: dit is de tijd die is verstreken sinds je computer is opgestart, dus werk altijd met relatieve tijd.

https://docs.unity3d.com/ScriptReference/AudioSettings-dspTime.html
(Voorbeelden voor JS en C#).

Hoe speel ik audio af zonder latency?

Met dspTime kun je het moment bepalen waarop de audio afgespeeld zou moeten worden. Met audio.PlayScheduled zet je het even klaar en wordt het op de juiste tijd getriggerd.
https://docs.unity3d.com/ScriptReference/AudioSource.PlayScheduled.html

Hier kun je een project downloaden waarin je dit meteen kunt testen.
http://sid.hku.nl/downloads/?dir=lesmateriaal%2Fsid-blok3%2Ffiles%2F2016

Het wapengeluid onderbreekt. Dat is lelijk.

Kijk naar het AutoFire script en kijk eens naar:

function OnStartFire () 

Hier zie je het euvel: het is volgens mij een loop die aan en uit gezet wordt als je de muisknop indrukt cq loslaat.

PlayOneShot is hetzelfde als PlayClipAtPoint alleen geef je bij de laatste een 3d-positie mee (dus dat is wel handig). Unity maakt het object aan, en verwijdert het als het klaar is met afspelen.

Handige Unity Functies

FindObject(s)OfType

Met deze functies kun je alle instances van een bepaald script selecteren en dan een functie laten uitvoeren. Les op de s: alle objecten of 1 object.
https://docs.unity3d.com/ScriptReference/Object.FindObjectOfType.html
https://docs.unity3d.com/ScriptReference/Object.FindObjectsOfType.html

Andere gameobjecten benaderen

Zo kun je andere gameobjecten linken en iets doorgeven:
[LINK]

PlayClipAtPoint

Speelt een clip in de wereld af, en ruimt het object weer op als het klaar is met afspelen. Handig…

[LINK]

Code is:

AudioSource.PlayClipAtPoint(clip, new Vector3 (5, 1, 2));

Maar je kunt natuurlijk ook de positie van het ‘parent’-object gebruiken (bv. de speler). Je kunt ook nog het volume instellen.

AudioSource.PlayClipAtPoint(clip, transform.position);
AudioSource.PlayClipAtPoint(clip, transform.position, volume);

 

Ik ben Sid. Hoe maak ik een synth voor livesynthese?

Met de Native Audio Plugin SDK, zie https://docs.unity3d.com/Manual/AudioMixerNativeAudioPlugin.html

Hoe maak ik Editor Extensies (Ruben)?

Zie https://docs.unity3d.com/Manual/ExtendingTheEditor.html

De FMOD integration is vernieuwd?

Sinds versie Ja, de oude code is bv.

FMOD_StudioSystem.instance.PlayOneShot(endOfTurbo, transform.position);

Vervang die door:

FMODUnity.RuntimeManager.PlayOneShot(endOfTurbo, transform.position);

of door het event direct aan te roepen:

MODUnity.RuntimeManager.PlayOneShot(“event:/endOfTurbo”, transform.position);

Als je geen OneShot afspeelt maar een studiosystem:

SlitScore = FMODUnity.RuntimeManager.CreateInstance(“{ba0fe66d-901b-415b-b672-e360a8b6cddc}”);

Het komt dus neer op een simpele find replace van de code!

Zie ook de migration guide (http://www.fmod.org/documentation/#content/generated/engine_new_unity/migration.html) maar let op: die beschrijft alleen C# en Angry Bots is in JS. Het editorscript dat belooft je code automatisch te updaten werkt alleen bij C#. JavaScript moet je zelf – handmatig – doen, maar Unity geeft met de errors precies aan waar de problemen zitten.

My experiences with ROLI Seaboard Rise

Roli Seaboard Rise

This week, I had the pleasure to test a Roli Seaboard. Here are some of my findings.

Plus:

  • Most sensitive ‘keyboard’ interface I’ve ever touched. Superior polyphonic, after touch pressure, sliding and gliding. If I compare this to touch interfaces on for instance iPad, this is so much more musical!
  • Very interesting for creating, modifying sounds, sound design, ambiences, etc.
  • It is very flat. If this is on your desk, you hardly have to lift your arm, which is rather nice from an ergonomic perspective.
  • This thing looks fantastic and the build quality is truly superior to any MIDI keyboard I’ve ever played.
  • Very silent interaction. No rattling keys or clicking knobs.
  • Easy to integrate. This is a MIDI (over USB/Bluetooth) controller, so it’ll work like it’s supposed to.

Minus:

  • This is not a keyboard for PIANO or ORGAN playing. The silicone rubber introduces friction and you’re not going to enjoy playing your fast Jimmy Smith licks on a piece of silicone.
  • Pitch bend range in many VST synths is not adjustable. The default usually is set to 2 semitones, which is far from ideal. If it’s set to 2 semitones, sliding a note to a different key will not correspond to the position on the keyboard. A deal-breaker.
  • It is a dust collector. Rubber loves dust. Keep your studio clean! Also, the rubber underneath the Seaboard has to be kept clean, since the Seaboard will move when you glide over the keys.
  • This reminds me a bit of playing an Ashbory bass. The rubber surface feels a bit rough. The Ashbory is played with talc, I wonder if this also improves the feeling of the Seaboard.
  • Even the Seaboard 25 is heavy to carry.

Interesting:

  • You have to learn how to play it, and also how to integrate it in your DAW. You’ll probably frown when you first play it. Chances are you’ll love it after two days.
  • This is not a piano keyboard controller. It’s a new and different way of controlling and shaping sound in a DAW. Playing the Seaboard is like playing octopuses. Playing octopuses is interesting and inspiring. Is this why it’s called the Seaboard?

Here is a video demonstrating my first experiences with the Seaboard.

International Computer Music Conference ICMC2016 (CfP and announcement)

ICMCbackground

International Computer Music Conference ICMC2016.
(12 – 16 September 2016, Utrecht, the Netherlands)

ICMC 2016 will be hosted in the city of Utrecht, by HKU University of the Arts Utrecht, HKU Music and Technology and the annual new music festival Gaudeamus Muziekweek.
The conference begins with a concert on the evening of Sunday 11 September 2016 and ends with a concert on the evening of Friday 16 September.

The main theme of the conference will be Is the sky the limit?
This theme will be addressed in five sub-themes:

  1. Is the sky determined by technology or aesthetics?
    2. Is the sky local?
    3. Educating for the sky
    4. Does the sky need a composer or musician?
    5. Stretching the sky

http://www.icmc2016.com

Read more

Getting Started with FMOD Unity Integration (Blok3)

Download

Download FMOD Studio and Studio Integration. Install Studio and import the package in Unity.

There are FMOD studio Projects (examples) in the FMOD Studio application folder.

Integration

FMOD studio integration manual (the manual)

Horse Awesome Game’ FMOD and Unity (the simple example created during the lesson, contains both Unity and FMOD Studio). This is JavaScript code, if your game programmer works in C# it is best to use C# code.

For C# examples, see the Example Scripts in the FMOD folder in the integration package. Refer to the manual, section Contents / Example Scripts for a description. The example scripts are named FMODAsset, FMOD_Listener, FMOD_StudioSystem and FMOD_StudioEventEmitter. With these sample scripts, you’re ready to go.

FMOD

Again, use the SAME versions of FMOD Studio and FMOD Integration. Make sure your game programmer does the same. If not, you might get crazy amounts of errors in Unity. You might ask why I’m repeating myself over and over on this, but I’ve seen this happening over and over again.
If there are crazy amounts of errors, ask you programmer to double check the version.

During the lesson I showed:

  1. Create an Event
  2. Import Sounds into
  3. Create a Multi Sound
  4. Assign the event to a bank before building
  5. Building
  6. Export GUIDs

Remember:

  • Play percentage (right click sounds in multi sound)
  • Random value via add modulation (right click volume or pitch)
  • Seek Speed

Great tutorials to get started are all over YouTube. This playlist is rather complete:

Unity

After importing the package you’ll get an FMOD tab in Unity (menu at the top of the screen).

Import banks om het FMOD project te importeren en selecteer de folder Build in je FMOD-project.

Play music with a parameter (JS)

For C#, see FMOD_StudioSystem.cs in the Unity folder.

 

// Place at the top of a script

var Music : FMOD.Studio.EventInstance;

var Intensity : FMOD.Studio.ParameterInstance;

// Place in Awake and change the GUID-code (in GUIDs txt in your build folder).

Music = FMOD_StudioSystem.instance.GetEvent(“{ba0fe66d-901b-415b-b672-e360a8b6cddc}”);

Music.getParameter(“Intensity”, Intensity);

{

Debug.LogError(“Awe parameter not found on music event”);

return;

}

// start music

Music.start();

// Pass the parameter – somewhere in a function, e.g. Update() or OnCollisionExit()

Intensity.setValue(0.0);

Intensity.setValue(0.28);

Intensity.setValue(1.0);

Play in C#

using UnityEngine;
using System.Collections;

public class RobotSound : MonoBehaviour {

//looping sound with a parameter
FMOD.Studio.EventInstance walkingSound;
FMOD.Studio.ParameterInstance speed;

//oneShot + “initiation”
string deathExplode = “event:/enemies/explodeSmall”;

//initialise looping sound
void Start()
{
walkingSound = FMOD_StudioSystem.instance.GetEvent(“event:/enemies/movingSmall”);
walkingSound.getParameter(“parameterNameinFMOD”, out speed);
}

//Start and stop looping sound
void startWalking()
{
walkingSound.start();
}
void stopWalking()
{
walkingSound.stop(FMOD.Studio.STOP_MODE.ALLOWFADEOUT);
//OR
walkingSound.stop(FMOD.Studio.STOP_MODE.IMMEDIATE);
}

//oneShots start
void playExposion()
{
FMOD_StudioSystem.instance.PlayOneShot(deathExplode, transform.position);
}

//cleanup EventInstance, PlayOneShot() does not need this
//stop audio before cleanup!
void onDeath_or_Delete()
{
walkingSound.stop(FMOD.Studio.STOP_MODE.IMMEDIATE);
walkingSound.release();
}
}

Questions?

If there’s anything wrong, check/search the FMOD/Unity forum:
http://www.fmod.org/forum/viewforum.php?f=30

If there’s something really wrong and buggy, you could ask the developers at the FMOD in Unity questions section:
http://www.fmod.org/questions/categories/unity
You might have to wait for several days, especially over the weekend, so don’t rely on this when you have a deadline!

You could also email me. Just do it if you dare. 😀

Pitfalls

FMOD Studio has bugs. A lot of them. Fortunately, these are constantly being fixed, which is a good thing. That is why it’s tempting to update Studio and Unity Integration. Beware that new versions could introduce new issues with other code and libraries. FMOD projects are not necessarily backwards compatible, so you might make a copy first before upgrading your project.

Make backups. Make Backups. Make Backups! Make Backups! Just zip your FMOD project folder every now and then. I’ve completely destroyed an FMOD Studio project by opening it on a PC first and then on a Mac. FMOD support was willing to assist me on recovering the project but I was happy to restore a backup which opened fine.

“Being too busy to worry about backup is like being too busy driving a car to put on a seatbelt.” — T.E. Ronneberg

The Game Pulse – Timing Game Events and Music Events [PDF]

Here’s a pointer to a paper in which we examine how to design nonlinear music systems that allow for music events to coincide and correspond with dynamically changing game events. We address the challenges of connecting nonlinear music systems to gameplay and distinguish three approaches for timing time music events and game events: Trail, Sync and Lead. We explore these three approaches in the design case study Gluddle versus The Supervision, a game created by the authors. Our preliminary findings illustrate the benefits of combining Trail, Sync and Lead, positively influencing the game experience, but also the need for extra attention to gameplay balance and technical implementation.

Download The Game Pulse – Timing Game Events and Music Events

By Richard van Tol and Sander Huiberts – Proceedings Innovation In Music 2013. Innovation In Music 2013. Edited by R. Hepworth-Sawyer, J.Hodgson, R. Toulson & J.L. Paterson. ISBN 978-0-9561516-8-1

One Note Salsa and Composing for Fire Trucks. Exploring the creative design process of game composition throughout history.

By Sander Huiberts – Creative Design Practices – HKU University of the Arts Utrecht – School of Music & Technology

HKU_tweekleurig_illustratief_zwart_groen

HKU – Creative Design Practices Research

Introduction

This article addresses the findings of a practice-based investigation into the process of game music creation throughout the past forty years. In this research project, four composition students of the Utrecht School of the Arts created game music restricted by the limitations that counted for early game composers and reflected upon the implications for their design process. By doing this, we hoped to get an understanding of the way the creative design process of a game composer is influenced by such limitations, point out the challenges that arise when composing with these drastic restrictions and discern the techniques that could still be relevant for game composers.

The project was initiated by the Creative Design Practices research programme at the Utrecht School of the Arts, which researches creative design processes and investigates how designers collaborate. Four students subscribed to the project that started in spring of 2012: Alexander Wttewaall, Pablo Ham, Stijn Frishert and Yme de Jong.

This investigation of the design processes of game music formed part of a larger research project on the history of game music that was started in 2012 in cooperation with Muziekinstituut Multimedia (MiMM) and Utrecht University.
Read more

Play Angrier Bots – Angry Bots Audio Revisited (HKU)

Angry Bots

Angry Bots

At HKU University of the Arts Utrecht we offer a four year course on audio design for games and interaction. In the first seven weeks of the third year, students are challenged to implement their newly created sound and music into Unity‘s tech demo Angry Bots. For most students, this means a first experience with hacking, programming and coding.

Read more

Game Sound & Immersion – Annotations

Gijs Driesenaar sent me his annotations of Captivating Sound: the Role of Audio for Immersion in Games. If you’re a little short on time but would like to know what’s in the thesis, you can consider this the essence of the book. The numbers refer to page numbers. [Download as PDF]

6. This thesis explores the relation between game audio and (computer) game immersion. Audio is studied using the IEZA‐model (Interface, Effect, Zone, Affect) and the SCI‐model(Sensory- Challenge-based- and Imaginative Immersion), and several design issues are described. This yields a conceptual framework that describes various audio design issues that can be used to reflect upon conceptual decisions relevant for the design of audio in relation to immersion.

Read more

By request – IEZA framework high resolution PNG

Are you looking for a higher resolution image of the IEZA framework for your thesis, site or duvet cover? Look no futher, here it is, just click the image and download!

IEZA Framework for Game Audio - Large dimensions

IEZA Framework for Game Audio – Large dimensions.

 

Karmaflow: the world’s first Rock Opera Videogame!

Karmaflow Rock Opera Game

Karmaflow Rock Opera Game

Have you already heard about Karmaflow? Karmaflow is an indie-game that combines a stylistic platform/puzzle adventure game with the audio-visual narrative of an interactive rock opera, featuring several singers from famous rock and metalbands. Now this sounds like something unheard in the field of games…as well as the field of game audio. The project is initiated by Ivo van Dijk, who realized the impressive rock opera Equilibrio several years ago. The teaser trailer is available here:

Read more