Giter Club home page Giter Club logo

volcanicarts / vrcosc Goto Github PK

View Code? Open in Web Editor NEW
327.0 5.0 29.0 8.11 MB

Modular OSC program creator, toolkit, and router made for VRChat. Show your heartrate, time, hardware stats, speech to text, control Spotify, and more! Includes drag-and-drop prefabs for your avatar.

License: GNU General Public License v3.0

C# 100.00%
vrchat heartrate osc vrc vrchat-osc vrchat-tool vrchat-avatars media spotify vrchat-avatar vrchat-sdk3 csharp osu-framework windows haptics speech-recognition speech-to-text vrcosc pishock chatbox

vrcosc's Introduction

VRCOSC

A modular OSC program creator and toolkit made for VRChat built on top of the osu!framework

release version downloads downloads@latest commits
ko-fi
discord

V2

V2 is a rewrite of the app currently in beta. It'll be released when it's ready, but is a huge advancement over the current version.

Featuring:

  • Module packages: Release a module on GitHub and have it appear in the app for anyone to download
  • Profiles: For those that want different modules per avatar, profiles can automatically change how the modules behave based on which avatar you're wearing
  • Better performance: With virtually 0 CPU usage and no GPU usage, it can quietly run in the background while you're in VR with no performance hit
  • Module generalisation: Have a prefab you've wanted to connect to VROSC? Now you can. All the parameters are generic and customisable
  • More module features: All the modules have been upgraded with more customisability, and more have been added
  • ChatBox V4: An improved animation system with truly limitless customisation
  • Improved SDK: For those that want to make and distribute modules with our framework, it's easier than ever

If you're interested in beta testing the app, grab the V2 Beta role in the Discord Server. Any and all feedback is welcomed!

About

VRCOSC is intended to act as a wrapper around VRChat's OSC system to make creating OSC programs easier, provide interfaces for other APIs and frameworks that might be useful to an OSC project, and act as a centralised source for useful OSC programs so that a user will only need to download a single application. Our framework supports developing your own modules to save you the trouble of having to setup everything yourself, as well as allowing other people to seamlessly use your module on their PC. Check out how to create a module here.

VRCOSC's powerful ChatBox design system allows you to display what you want, when you want, how you want. Check out the ChatBox-Config forum channel of our Discord Server to see some of the configs people have created! The ChatBox uses a community-created list to block all modules apart from the accessibility and health related modules (SpeechToText, Pulsoid, and Hyperate) from using the ChatBox when in club/event worlds as a courtesy to performers and event staff. You can turn this off in VRCOSC's settings, but we recommend you keep it on for respect.

VRCOSC's router lets you route other OSC programs through our app to stop port binding issues. Common setups can be found on the Routing Wiki page.

We have a Discord Server for posting suggestions or to get help with anything to do with VRCOSC.

If you like VRCOSC, please star the repo. It really helps!

Featuring:

  • Responsive GUI generation
  • Automated configuration management
  • A powerful ChatBox design system
  • An in-built router to work with other OSC apps
  • Program modularity for easy development
  • Automatic updates
  • Common API interfaces
  • Drag-and-drop Unity prefabs

Getting Started

  • Download VRCOSCSetup.exe from the Releases page
  • Tick the modules you'd like to use
  • Download any prefabs you want and add them to your avatar (Guides are available inside each prefab)
  • Press the run button!

Check the FAQ if you have any issues with installing or using any of the prefabs.

Official Modules

If you have a module idea join the Discord Server and tell us or create it yourself!

Note: The VRCOSC-Controls.unitypackage prefab is global controls for VRCOSC. It does not require a module to use.

All prefabs listed can be downloaded from the Releases page

Module Description Prefab
Media Allows for media display in the ChatBox and full control over media from your action menu VRCOSC-Media.unitypackage
Pulsoid pulsoid Connects to Pulsoid to display your live heartrate in-game - Supported Devices VRCOSC-Heartrate.unitypackage
HypeRate Connects to HypeRate.io to display your live heartrate in-game - Supported Devices VRCOSC-Heartrate.unitypackage
Speech To Text Run Speech To Text using any language model and display the result in your ChatBox
Clock Sends your local time as hours, minutes, and seconds to be displayed on a wrist watch VRCOSC-Watch.unitypackage
PiShock Allow you to control groups of PiShock shockers directly from your avatar VRCOSC-PiShock.unitypackage
Hardware Stats Gather's hardware stats to send to your avatar and display in the ChatBox
Haptic Control Allows for triggering controller haptics using variables from your avatar
OpenVR Statistics Gets statistics from your OpenVR (SteamVR) session VRCOSC-Trackers.unitypackage
OpenVR Controller Statistics Gets controller statistics from your OpenVR (SteamVR) session
Gesture Extensions Allows for custom gestures to be sent to VRChat from your Index controllers
AFK Display Displays how long you've been AFK for in the ChatBox
Process Manager Open and close apps on your PC using avatar parameters
Weather Gets weather from a postcode/zipcode/city to display in the ChatBox
Counter Counts how many times a parameter on your avatar changes to be displayed in the ChatBox
ChatBox Text Displays custom text in the ChatBox that can also function like a ticker tape
Discord Allows for toggling of mute and deafen from the action menu VRCOSC-Discord.unitypackage
Exchange Rate Retrieves exchange rate information for currencies and displays them in the ChatBox

License

This program is licensed under the GNU General Public License V3. Please see the license file for more information.

Other libraries included in this project may contain different licenses. See the license files in their repos for more information.

vrcosc's People

Contributors

blackofworld avatar buckminsterfullerene02 avatar dependabot[bot] avatar volcanicarts avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

vrcosc's Issues

VRCOSC will crash if idle too long/Pi Shock API latency

I've noticed through out all my VR sessions VRCOSC constantly crashes every 1 to 2 hours especially when it's been idle for too long.
(aka doing nothing)

And even while not in use in VR like referencing it for unity work. (Fresh windows start up.)
It also will freeze/crash and exiting via the icon on the task bar and alt+F4 doesn't even work during a freeze
(I have to kill it via task manager)

If you have any logs in any place or any way for me to test what it could be that's causing it let me know!
But it's very infuriating to use this application and it's persisted even on a fresh install of windows.

Also when calling to the PiShock API VRCOSC takes an extra 1-2 seconds before it actually sends the API request after parameters are changed. (This should be instant)

It was instant when I first used it but it no longer is after 4 or 5 uses.

OSC Query is not used

OSC Query is not used which causes an exception to throw when being used with other OSC apps - a good example is VRCFT which also has yet to migrate.

Autopause messes up on websites where music loads too fast.

On Youtube its not an issue since the autopause that the VRCOSC has is short enough and Youtube takes forever to load the next video. On something like SoundCloud, at least for me, skipping a song/leaving it to switch to the next will start the next song, then autopauses. This issue only started during the new update

`HardwareStatsModule` memory leak

Creating an issue here to make it public if anyone has any ideas on how to solve this.

From my research it seems that polling for hardware stats (using a PerformanceCounter) in Windows leaks memory. Possibly Related

I've definitely confirmed this problem still exists by polling the method 100/s and over a few minutes it leaked over 2gbs of RAM. I haven't confirmed whether this actually fills up your memory or not by that much in that time however, since GC is quite smart. Obviously this isn't good for extended VRChat sessions when people want their hardware (and possibly more in the future) stats to update at a reasonable rate, I.E, 1/s. Especially for people that have low amounts of RAM in their system.

I've done my best in the past to optimise the module (back when I did the refactor from ComputerStats to HardwareStats by reusing the same counters) which seemed to help but hasn't removed the issue entirely.

I'm uncertain as to whether this is a problem with .NET or if there is some kind of alternative library to get around this.

If anyone has any info on this problem, post a reply here.

VRCOSC crashing VRChat with HR option turned on

I use this app for basic heartrate display via Pulsoid, but every time I do so, VRChat hard crashes after having been active for a while (10-20 minutes, varies) and then proceeds to not open anymore until I restart SteamVR.

What could this be? I have uninstalled and reinstalled to latest version but I'm still getting crashes like those. Could it simply just be some sort of background software issue?

Multiple Modules

Is there a Way to display like clock and media at once without them interrupting the other?

GPU VRAM is not showing on AMD Graphics Cards

Not sure if anyone elese has this issue but only the VRAM does not display for me when using an AMD GPU. Everything else works but that.

Current Setup:

Ryzen 7 7800X3D
RX 7800 XT
Windows 11

Add wikipage for Gesture Extensions

I've tried finding information how and which gestures this module detects on this wiki and on the discord and haven't found any. I've looked at the source and wrote up a small note that should be useful for people trying to implement it in their avatar (especially the table).

VRCOSC GestureExtensions Wikipage Proposal.md

I am confident this should cover the entirety of the plugin, but please kindly correct my english.

clock module has missing parameters

VRCOSC_5HOHRGdUby

should have "VRCOSC/Clock/Period" as an output
also 12/24 hour switch does nothing and doesnt even save in the module .json

ps- sorry for lack of tags, or link to my attempt at making a patch- prematurely hit enter

[Request] Google Fit API Supported (Non-Brands as not supporting hyperate/pulsroid)

would like see integration of Google Fit API pull Heart Rate system, it might require 0Auth2 in localhost Connection and store they Google Access Token Localy for Security reasons.

since some non-brands doesn't support hyperate or pulsroid platforms and only has supported is google fit Relay integrations including fitbit as well.

i have heart rate watch that only supports google fit. if able make this feature be useful for most watches for Android Users.

WindowsMediaProvider causes Chrash

Application: VRCOSC.exe
CoreCLR Version: 6.0.2824.12007
.NET Version: 6.0.28
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IO.FileNotFoundException: The Device is not ready. (0x80070015)
at VRCOSC.Game.Providers.Media.WindowsMediaProvider.onCurrentSessionChanged(GlobalSystemMediaTransportControlsSessionManager _, CurrentSessionChangedEventArgs _2)
at System.Threading.Tasks.Task.<>c.b__128_1(Object state)
at System.Threading.QueueUserWorkItemCallbackDefaultContext.Execute()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()
at System.Threading.Thread.StartCallback()
--- End of stack trace from previous location ---
at osu.Framework.Platform.GameHost.<>c__DisplayClass141_0.b__0()
at osu.Framework.Threading.ScheduledDelegate.RunTaskInternal()
at osu.Framework.Threading.Scheduler.Update()
at osu.Framework.Threading.GameThread.processFrame()

May take a look myself.
Not sure what is causing the issue. Playing Music from Plex via Chrome as it does not pick up Plexamp.

Memory Leak issue

When running VRCOSC for a while, it seems to cascade into memory leak issues.

Taskmgr_K4hXw2hpqe

Media module not showing album name?

This a bug or something? Tried it with the Cisfinitum track in question, and some of the Genshin Impact Soundtrack tracks. Latest version of VLC.
Knipsel

Hyperate BPM dropping to 0 since update

Hyperate bpm since update has been frequently displaying 0 bpm between updates.
It still displays actual, accurate readings, but often shows 0 for a few seconds.

PiShock Custom commands?

Would there be a way to add custom commands to it?
I know it has intensity, duration, group etc... but there seems to be no way to add "plus" or "minus"
The reason i ask for it, is because i want to add something for my Avatar that people can push inworld like https://dasprid.gumroad.com/l/llfyq but without using this osc-manager tool from the creator.
Because if you use that manager and get shocked the music played display of VRCOSC is gone and i would rather to use VRCOSC

The requested address is not valid in its context

Im getting this error when ever it starts its forwaring to my routed devices but I dont know what its requesting that it cant get

2024-03-05 04:04:53 [verbose]: AppManager state changed to Started
2024-03-05 04:05:35 [verbose]: Performing save for file router.json
2024-03-05 04:05:38 [verbose]: Performing save for file router.json
2024-03-05 04:05:38 [verbose]: Performing save for file router.json
2024-03-05 04:05:41 [verbose]: Performing save for file router.json
2024-03-05 04:05:42 [verbose]: AppManager state changed to Stopping
2024-03-05 04:05:42 [verbose]: AppManager state changed to Stopped
2024-03-05 04:05:42 [verbose]: AppManager state changed to Starting
2024-03-05 04:05:42 [error]: The requested address is not valid in its context.
2024-03-05 04:05:42 [error]: System.Net.Sockets.SocketException (10049): The requested address is not valid in its context.
2024-03-05 04:05:42 [error]: at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, String callerName)
2024-03-05 04:05:42 [error]: at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
2024-03-05 04:05:42 [error]: at System.Net.Sockets.Socket.Bind(EndPoint localEP)
2024-03-05 04:05:42 [error]: at VRCOSC.Game.OSC.Client.OscReceiver.Enable()
2024-03-05 04:05:42 [error]: OscReceiver experienced an exception
2024-03-05 04:05:42 [error]: System.Net.Sockets.SocketException (10049): The requested address is not valid in its context.
2024-03-05 04:05:42 [error]: at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, String callerName)
2024-03-05 04:05:42 [error]: at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
2024-03-05 04:05:42 [error]: at System.Net.Sockets.Socket.Bind(EndPoint localEP)
2024-03-05 04:05:42 [error]: at VRCOSC.Game.OSC.Client.OscReceiver.Enable()
2024-03-05 04:05:42 [verbose]: AppManager state changed to Started

VRCOSC Media Chatbox format reset

Whenever you close VRCOSC and reopen it, the text always resets back to the default(picture). It doesn't save your changes to it, and it only seems to be that option, all the rest save fine for me.
image

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.