Giter Site home page Giter Site logo

Comments (17)

capnmidnight avatar capnmidnight commented on August 23, 2024 2

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.

capnmidnight avatar capnmidnight commented on August 23, 2024 2

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.

capnmidnight avatar capnmidnight commented on August 23, 2024 2

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.

capnmidnight avatar capnmidnight commented on August 23, 2024 1

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.

mooomooo avatar mooomooo commented on August 23, 2024 1

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.

mooomooo avatar mooomooo commented on August 23, 2024 1

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.

capnmidnight avatar capnmidnight commented on August 23, 2024 1

from calla.

capnmidnight avatar capnmidnight commented on August 23, 2024 1

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).

image

from calla.

DRich222 avatar DRich222 commented on August 23, 2024

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.

patcon avatar patcon commented on August 23, 2024

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.

mooomooo avatar mooomooo commented on August 23, 2024

To play around with such matters, I made a tilemap with all sorts of features that relate to the discussion above.

room.zip

(I tried loading it into my Calla though, and the Collision property doesn't seem to be having an effect?)

from calla.

capnmidnight avatar capnmidnight commented on August 23, 2024

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.

mooomooo avatar mooomooo commented on August 23, 2024

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.

patcon avatar patcon commented on August 23, 2024

Sorry, any final closing comments? Is this covered elsewhere, or wontfix, or is there another place to track now? Thanks so much :)

from calla.

patcon avatar patcon commented on August 23, 2024

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.

capnmidnight avatar capnmidnight commented on August 23, 2024

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.

patcon avatar patcon commented on August 23, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.