Sound Blocks VR is an Accessible Digital Musical Instrument (ADMI) designed to enable users to engage in collaborative musical performances within augmented and virtual reality (AR/VR) environments. Built using Unity, this project integrates various libraries and SDKs to manage virtual components, support the MIDI (Musical Instrument Digital Interface) protocol for controlling synthesizers, and provide an immersive experience via the Meta XR All-in-One SDK.
Sound Blocks VR is freely available in the form of an Android application package (Android Package Kit, APK) at https://drive.google.com/file/d/1TKmtcN3NYhjutIRSk2Asxbth55V1UbWN/view?usp=share_link
- Scene Name:
WithMetaAllInOne
- Path:
Assets/Scenes/WithMetaAllInOne
- Description: This scene serves as the core environment where user interactions and musical performances are managed.
Located in Assets/Prefabs/
:
-
OnOverNote.prefab
- Function: The primary playable object in the scene. Users can interact with it by touching it to produce musical notes. It can be moved around the scene by grabbing it.
-
Canvas.prefab
- Function: This canvas is used to set the musical parameters associated with each
OnOverNote.prefab
spawned in the scene, allowing for sound customization.
- Function: This canvas is used to set the musical parameters associated with each
-
MidiStreamPlayer.prefab
- Function: Facilitates the transmission of MIDI messages to control sound synthesis.
-
PresetMajorparent.prefab
- Function: A collection of
OnOverNote.prefab
objects pre-configured to produce a major scale, allowing users to easily play a harmonious set of notes.
- Function: A collection of
-
ObjectsToSpawnCanvas.prefab
- Function: A canvas used to spawn
OnOverNote.prefab
andPresetMajorparent.prefab
objects, enabling users to introduce new musical elements into the scene.
- Function: A canvas used to spawn
-
Manager.cs
- Path:
Assets/Manager.cs
- Function: Contains common functions that handle the sending of MIDI messages, likely coordinating between user inputs and MIDI outputs.
- Path:
-
OnOverInteraction.cs
- Path:
Assets/OnOverInteraction.cs
- Function: Manages the interaction between the user’s hands or controllers and the in-scene objects, focusing on how users manipulate the
OnOverNote.prefab
.
- Path:
-
NoteSettings.cs
- Path:
Assets/NoteSettings.cs
- Function: Responsible for setting and managing the musical parameters of the objects, such as pitch, channel, and other note-specific settings.
- Path:
-
SpawnGO.cs
- Path:
Assets/SpawnGO.cs
- Function: Handles the spawning of
OnOverNote.prefab
andPresetMajorparent.prefab
in the scene, enabling dynamic creation of musical elements during the performance.
- Path:
- Meta XR All-in-One SDK: Provides tools for creating an immersive VR experience within Unity.
- MIDI Maestro Toolkit (Free Version): Integrates MIDI and sound synthesis functionalities into Unity, allowing for the creation and control of musical notes and instruments via MIDI.
This README provides a basic overview of the Sound Blocks VR project structure and key component For further details, refer to the specific scripts and assets within the project.