Comments (17)
I just had a thought, though it's only tangentially related to this issue. Maybe the audio range should not be set directly, maybe it should be changed with the view zoom. So if you want to listen to a specific conversation, you just zoom in on it. If you want to hear the entire room, you zoom all the way out.
from calla.
Yeah, there's definitely potential for doing all kind of things with tile metadata. I think it'd be cool to have some tiles be "walls" that define parameters for a low-pass filter to attenuate the sound. It'd be neat to have moderators be able to put bad users in a penalty box, where the bad user gets warped into a door-less room whose walls block sound from all users. Maybe certain tiles could be switches that people could operate to make things happen, like open doors or play music. For issue #35, there'd definitely be tiles that change the room you're in.
I've also started thinking of alternative interfaces to Jitsi. A WebXR interface in full 3D. A more traditional teleconference interface with users spread around the edges of the screen, but still spatialized according to the center of the screen (or maybe even infer a listener position at a Z-axis distance away from the center of the screen!) It might make sense to split the repo into two: this one to be the default 2D RPG game interface, a second one is the spatialization protocol for Jitsi. Or maybe vice-versa, but I think people probably come here looking for the full package of what they find on the website.
from calla.
I-personally-wontfix
. I'm just trying to focus on the core concept and not get distracted by extraneous features. There will be some movement of files in the repository pretty soon, so the delineation between the Calla library and the example "game" app on the website is more clear.
from calla.
In the HN post I made, one used suggested a podium where a user could stand to be heard by everyone: https://news.ycombinator.com/item?id=22772800
I like the metaphor over an explicit configuration setting. What do you think?
from calla.
A possible way to consider this would be per-tile custom properties. You could have properties for both mic and speaker "decay"; the resulting volume adjustment to an audio stream would be the product of the distance, speaker decay of the source tile, and mic decay of the sink tile. Then a "podium" would have 0 source decay, an "observation tower" might have 0 mic decay, maybe a "nap corner" would have a very large mic decay, etc.
If you want to get really fancy, you could consider the product of decays along each tile along the path between source and sink -- then would enable e.g. room walls that provide sound barriers.
from calla.
Other potential enhancements could be some form of one-way regions, i.e. everyone sitting at a table can hear each other but nothing else; those hovering next to the table can hear the table chatter but can't themselves be heard. I'm thinking of this in the context of a virtual board gaming session, which could maybe be further augmented with #50 mapping a stream of the game board onto the table for everyone to see. Things like this might suggest a jitsi spatialization protocol could be valuable as a standalone library for developers to further experiment.
from calla.
from calla.
I just realized that the original issue listed here could be handled by adding a Gain node to user audio sources. The following diagram is a proposed map of audio nodes per-user. The current nodes are "Source", "Positioning", "Spatialization" and "Destination" (though technically Positioning and Spatialization are the same node, we can introduce some math to change how we set the positioning for presenters to achieve louder audio, but also maintain directionality).
from calla.
I like the metaphor, too. I think it aligns with our goal: reproducing the dynamics that exist in person. I still think it's appropriate to be able to whisper or shout though. I want it to be as organic as possible of course, so I don't love the idea of a slider, but not sure what alternative there might be.
from calla.
First off, thanks for sharing this amazing project!
Maybe this is too contrived, but this thread go me thinking on how "shouting" might work in a digital space like Lozya, and how it might be possible in a way that's analogous to an in-person space. I was hoping to share :)
Technically, people can yell non-stop in a public space, but social norms kinda make it so that if you're going to yell at the top of your lungs, you can essentially only do it for a few seconds due to social pressure.
So maybe to speak at "normal" volume, there could be a little replenishing bar that replenished in realtime (ie. you can talk at normal volume as much as you want), but if you choose to speak louder by yelling, then you only get a short burst. And maybe the podium, if it exists, just kinda bends the established rules a bit. Moderators could choose what sort of "social norms" exist in a space -- as in, a digital church service might have a different ability for loud-speaking, compared to an online hackathon or a simulated "movie night in the park". (e.g., "darren! you here?" or "i have an announcement.... if anyone's interested to talk about X, we'll be over by the well")
Anyhow, thanks for considering! :)
from calla.
To play around with such matters, I made a tilemap with all sorts of features that relate to the discussion above.
(I tried loading it into my Calla though, and the Collision property doesn't seem to be having an effect?)
from calla.
The "True" value either needs to be lowercase, or this code needs to be changed to account for casing: https://github.com/capnmidnight/Calla/blob/master/js/src/TileSet.js#L30
from calla.
Oh there's also another issue: https://github.com/capnmidnight/Calla/blob/master/js/src/TileMap.js#L92 only checks for collisions on layer 0, not all layers.
Also, when using an avatar emoji, it displays in the tile above the one it's actually in. Using an avatar URL works as intended.
from calla.
Sorry, any final closing comments? Is this covered elsewhere, or wontfix
, or is there another place to track now? Thanks so much :)
from calla.
k rockin. my understanding from that is that you'd like the issue queue to be your personal backlog with high signal-to-noise, and not a repository of feature requests from non-contributors. Admittedly not how I use mine, but I can empathize with that. Thanks! I'll stay tuned to see where you're going with this
(I'm currently deep into using High Fidelity for my own events, but am anticipating to be lured away from that in the future)
from calla.
No, not necessarily. Well... IDK.
I'm just trying to make sure this particular repo is just about the Calla library.
For the game app that is visible on the site, I'm in the process of moving that to a separate project/separate repo. There are features that I'd like to implement that necessitate creating a backend database for it. This repository will always have the current version of the game app available for reference as an example, but I want to make sure it stays "back-end agnostic".
All while juggling my day job, which is also using Calla, so again the need to be back-end agnostic.
So I guess, in that sense, yes, I want this issue list to be clear of feature requests from non-contributors. That sort of thing would go in the issues list of the eventual repo for the game app.
from calla.
ooohhhh ok that makes sense :) Thanks for clarifying @capnmidnight!
Also, do you have a synchronous chat space? If not, might you be interested to create one, perhaps using Gitter? I'm not a code contributor yet, but I suppose I have some general topics I'd be eager to riff on.
As context, I used to co-organize weekly hacknights for a few years (40-70 ppl). I feel like we had some interesting ways of thinking about physical space and human interaction, and we've be fortunate to share and socialize our model internationally. Anyhow, I'm super eager to replicate the atmosphere digitally, and I've mostly been doing that with High Fidelity: https://hackmd.io/Wv8m0dxvSmu4tF02Htb24Q?both (HiFi gets a lot of things right, but in the long term, I'm much more interested in tying myself to a FOSS project I can actually contribute to!)
from calla.
Related Issues (20)
- Run away from azure
- Announcer mode HOT 2
- Development environment on localhost? HOT 4
- Bandwidth reduction HOT 3
- Installation instructions HOT 5
- how this project share the position of the users HOT 1
- build calla lib HOT 5
- Basic example not working properly HOT 2
- error when import in reactjs HOT 1
- Variables not declared HOT 8
- dynamic import lib-jitsi-meet HOT 1
- One server or two? HOT 11
- Refresh statement on iOS devices HOT 1
- Something with the join form broke on Safari HOT 1
- Spatial aspect did not work in a call between two Chrome users HOT 1
- Build instructions HOT 4
- Possibility of pure client-side implementation (i.e. no ASP.NET)? HOT 9
- Game view not available? HOT 1
- Possibility to use other mapping systems? HOT 1
- Avatars are not always removed from map after leaving room HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from calla.