All Projects → GRIS-UdeM → SpatGRIS

GRIS-UdeM / SpatGRIS

Licence: GPL-3.0 license
Sound spatialization tool

Programming Languages

C++
36643 projects - #6 most used programming language
Max
122 projects

Projects that are alternatives of or similar to SpatGRIS

Cryptoapp
Cryptocurrency App with MVP Design Pattern to track all the coins data in realtime for android & iOS . Written in dart using Flutter SDK.
Stars: ✭ 223 (+502.7%)
Mutual labels:  realtime
Real Time Cpp
Real-Time C++ Companion Code
Stars: ✭ 242 (+554.05%)
Mutual labels:  realtime
Rxdb
🔄 A client side, offline-first, reactive database for JavaScript Applications
Stars: ✭ 16,670 (+44954.05%)
Mutual labels:  realtime
Netdata
Dockerfile for building netdata
Stars: ✭ 223 (+502.7%)
Mutual labels:  realtime
Nakama Godot
Godot client for Nakama server written in GDScript.
Stars: ✭ 240 (+548.65%)
Mutual labels:  realtime
Socketcluster Client
JavaScript client for SocketCluster
Stars: ✭ 250 (+575.68%)
Mutual labels:  realtime
Sanity
The Sanity Studio – Collaborate in real-time on structured content
Stars: ✭ 3,007 (+8027.03%)
Mutual labels:  realtime
QuickTraceiOSLogger
A real time iOS log trace tool, view iOS log with pc web browser under local area network, which will automatically scroll like xcode. 一个实时的iOS日志跟踪工具,在局域网中使用 PC Web 浏览器查看 iOS 日志,它将像xcode一样自动滚动。
Stars: ✭ 16 (-56.76%)
Mutual labels:  realtime
Xaos
Real-time interactive fractal zoomer
Stars: ✭ 239 (+545.95%)
Mutual labels:  realtime
Cat
CAT 作为服务端项目基础组件,提供了 Java, C/C++, Node.js, Python, Go 等多语言客户端,已经在美团点评的基础架构中间件框架(MVC框架,RPC框架,数据库框架,缓存框架等,消息队列,配置系统等)深度集成,为美团点评各业务线提供系统丰富的性能指标、健康状况、实时告警等。
Stars: ✭ 16,236 (+43781.08%)
Mutual labels:  realtime
Realm Cocoa
Realm is a mobile database: a replacement for Core Data & SQLite
Stars: ✭ 14,778 (+39840.54%)
Mutual labels:  realtime
Realmcontent
Light Realm-powered content management system
Stars: ✭ 237 (+540.54%)
Mutual labels:  realtime
Chisel.prototype
Work in progress prototype for the Chisel Level Editor, for Unity
Stars: ✭ 247 (+567.57%)
Mutual labels:  realtime
Nakama Unity
Unity client for Nakama server.
Stars: ✭ 222 (+500%)
Mutual labels:  realtime
trystero
🤝 Serverless WebRTC matchmaking for painless P2P — Make any site multiplayer in a few lines — Use BitTorrent, IPFS, or Firebase
Stars: ✭ 512 (+1283.78%)
Mutual labels:  realtime
Traffic Accounting Nginx Module
Monitor the incoming and outgoing traffic metrics in realtime for NGINX
Stars: ✭ 222 (+500%)
Mutual labels:  realtime
Butterfly Server
The Everything is Real-Time C# Backend for Single Page Applications
Stars: ✭ 247 (+567.57%)
Mutual labels:  realtime
livebook
Automate code & data workflows with interactive Elixir notebooks
Stars: ✭ 3,402 (+9094.59%)
Mutual labels:  realtime
CoCreate-dashboard
A simple dashboard component in vanilla javascript. Easily configured using HTML5 attributes and/or JavaScript API.
Stars: ✭ 20 (-45.95%)
Mutual labels:  realtime
Algotrading
Algorithmic trading framework for cryptocurrencies.
Stars: ✭ 249 (+572.97%)
Mutual labels:  realtime

SpatGRIS

SpatGRIS is a sound spatialization software that frees composers and sound designers from the constraints of real-world speaker setups.

With the ControlGRIS plugin distributed with SpatGRIS, rich spatial trajectories can be composed directly in your DAW and reproduced in real-time on any speaker layout. It is fast, stable, cross-platform, easy to learn and works with the tools you already know.

SpatGRIS supports any speaker setup, including 2D layouts like quad, 5.1 or octophonic rings, and 3D layouts like speaker domes, concert halls, theatres, etc. Projects can also be mixed down to stereo using a binaural head-related transfer function or simple stereo panning.

It can handle up to 128 inputs and outputs simultaneously and features 3D and 2D views that help visualizing sources motions and monitor sound activity.

SpatGRIS is developed by the Groupe de recherche en immersion spatiale (GRIS) at Université de Montréal and is in active development. Updates are published on a regular basis.

alt text

Using a virtual audio device

If you want to use SpatGRIS and ControlGRIS on the same computer, you will need a virtual audio device that can route the audio from your DAW to SpatGRIS.

MacOS

We officially support using BlackHole. A 128 channels version is distributed alongside SpatGRIS.

Windows

If you are a Reaper user, ReaRoute seems to be the best-working virtual interface available at this time on Windows. Because ASIO dissalows interfacing with two different audio devices simoultaneously, sound has to be sent back to Reaper.

If you use an other DAW, there is a donationware called VB-CABLE Virtual Audio Device that sorta works, although it seems to have trouble staying in sync with SpatGRIS and is limited to 32 channels.

Linux

While we do not support a specific routing solution on Linux, there are a lot of different ways of creating loopback audio ports with either JACK, ALSA or PulseAudio.

Building

1. Install dependencies

Download and extract Juce 7.0.2

Additional dependencies on Linux :
sudo apt-get install clang++-14 ladspa-sdk freeglut3-dev libasound2-dev \
libcurl4-openssl-dev libfreetype6-dev libx11-dev libxcomposite-dev \
libxcursor-dev libxinerama-dev libxrandr-dev mesa-common-dev libjack-dev
Additional dependencies on Windows :

The freeglut library must be globally available.

Usage of vcpkg is highly recommended on Windows.

# as an admin
vcpkg install freeglut:x64-windows
vcpkg integrate install

2. Generating project files

cd <ServerGRIS-path>
<path-to-projucer> --resave SpatGRIS.jucer

Compiling

Go to the generated Builds/ folder.

On Windows, use the Visual Studio 2022 solution file.

On MacOS, use the Xcode project. You will have to supply your own developer ID to XCode.

On Linux :

cd Builds/LinuxMakeFile
make CONFIG=Release CXX=clang++-14 -j 8

Running

SpatGRIS must be launched from the project root directory.

Using custom OSC interfaces

OSC can be sent directly to SpatGRIS without having to use ControlGRIS.

There is an example patch made for MAX 7 provided in this repo (osc_max_example.maxpat).

Please note that angles are always measured clockwise, starting from the upstage center (the positive Y direction).

The server address is always /spat/serv.

pol moves a source using polar coordinates in radians.
#parameter type allowed values meaning
1 string pol -
2 int [1, 128] Source index
3 float any azimuth angle
4 float any elevation angle
5 float [-3.0, 3.0] radius
6 float [0, 1] Horizontal span
7 float [0, 1] Vertical span

ex : The message /spat/serv pol 7 0.0 0.78 0.5 0.1 0.2 moves the source #7 in the front at half elevation and placed at half the distance from the origin, with an horizontal span of 10% and a vertical span of 20%.

deg moves a source using polar coordinates in degrees.

index type allowed values meaning
1 string deg -
2 int [1, 128] Source index
3 float any azimuth angle
4 float any elevation angle
5 float [-3.0, 3.0] radius
6 float [0, 1] Horizontal span
7 float [0, 1] Vertical span

ex : The message /spat/serv deg 7 -90.0 45.0 0.5 0.1 0.2 moves the source #7 at the extreme left, at half elevation and half the distance of the space, with an horizontal span of 10% and a vertical span of 20%.

car moves a source using cartesian coordinates.

index type allowed values meaning
1 string car -
2 int [1, 128] Source index
3 float [-1.66, 1.66] x (left/right)
4 float [-1.66, 1.66] y (back/front)
5 float [-1.66, 1.66] z (down/up)
6 float [0, 1] Horizontal span
7 float [0, 1] Vertical span

ex : The message /spat/serv car 7 1.0 1.0 1.0 0.0 0.0 moves the source #7 at the top right corner, with no horizontal or vertical spans.

clr clears a source's position.

index type allowed values meaning
1 string clr clear
2 int [1, 128] Source index

ex : The message /spat/serv clr 7 clears the seventh source's position.

alg sets a source's hybrid spatialization mode.

index type allowed values meaning
1 string alg -
2 int [1, 128] Source index
3 string dome or cube Algorithm

ex : The message /spat/serv alg 7 cube sets the seventh source's spatialization algorithm to "cube" (only works in hybrid mode).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].