GithubHelp home page GithubHelp logo

ironmine / gabin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from one-click-studio/gabin

0.0 0.0 0.0 234.37 MB

Automate camera switching with OBS, Bitfocus Companion and any audio api.

Home Page: https://oneclickstudio.fr

License: MIT License

JavaScript 0.31% TypeScript 34.68% CSS 1.02% HTML 0.07% Vue 63.93%

gabin's Introduction

Gabin

Automate camera switching with OBS, Bitfocus Companion and any audio api.

Screenshot 2023-01-18 at 10 08 19

Download

You can download the latest version of Gabin here.

Features

  • โšก๏ธ Vue 3, pnpm - born with fastness
  • ๐Ÿ–Œ๏ธ unocss for ultra-fast tailwind-compatible styling
  • ๐Ÿ’ฌ socketIo for main/renderer communication
  • ๐Ÿš€ GitHub Actions to build & release app

Usage

Development

pnpm i
pnpm dev

Build

pnpm build

Known issues

  • ASIO is not working with XR32 audio mixer

Documentation

CLI

Gabin can be called in command line with several options :

  • -h, --help : Display this message
  • -d, --debug : Enable debug mode
  • -v, --version : Display version
  • --no-auto-open : Disable auto open in browser

Environment variables

You can add environment variables :

  • GABIN_HOST : Hostname to use (default: localhost)
  • GABIN_HTTP_PORT : Port to use (default: 1510)
  • GABIN_OSC_PORT : Port to use (default: 32123)
  • GABIN_BASE_URL : Base url to use (default: /)
  • GABIN_LOGS_FOLDER : Folder to store logs (default: $appdata/gabin/gabin.log)
  • GABIN_CONFIG_FOLDER : Folder to store config (default: $appdata/gabin/database.json)

Video mixers options

  • OBS : Gabin communicates directly with OBS via websocket to trigger shots and listen to scene change (needs OBS v28+)
  • VMIX : Gabin communicates directly with VMIX via TCP socket to trigger shots and listen to scene change
  • OSC : Gabin will triggers the paths you indicate for each shot and listen to scene change on his OSC port (more details below)

OSC API/module

By default, Gabin listen OSC on localhost:32123

API

Even if you don't choose OSC as video mixer, you can control Gabin through OSC

Command :

path params description
/gabin/on none power Gabin on
/gabin/off none power Gabin off
/gabin/config config: string add or edit this config
/gabin/profile profileName: string set this profile as active
/scene/$NAME_OF_YOUR_SCENE none tell Gabin what the current scene is
/source/$NAME_OF_YOUR_SOURCE none trigger a specific shot
/mic/$NAME_OF_YOUR_MIC availabe: 1,0 toggle mic availability
/autocam autocam: 1,0 toggle autocam

Request :

path params description
/gabin/is-ready host: string, port: number, path: string get TRUE if Gabin is connected
/gabin/profiles host: string, port: number, path: string get all profiles
/gabin/devices host: string, port: number, path: string get all audio devices

Register :

path params description
/register/shot host: string, port: number, path: string get updated on each triggered shot
/register/autocam host: string, port: number, path: string get updated when play/pause Gabin
/register/defaultProfile host: string, port: number, path: string get updated when new default profile is set

Other options

  • allow shot to be in scene but prevent from showing automatically

In the json database, go under profiles > settings > autocam > containers > mics > cams > source > options. There you can add a noIllu options, a boolean (true or false)

  • allow/forbid some shots depending on which mics are availables

In the json database, go under profiles > settings > autocam > containers > mics > cams > source > options. There you can add a matching options, the value must be a array of strings. You have to specify for each mics either :

  • the mic number : it has to be available
  • - : it has to be not available
  • * : the availability does not matter

E.g.:

profiles > settings > autocam > containers > mics > cams > source > options
[...]
{
  "source": {
    "name": "large shot 1",
    "options": {
      "matching": ["1234"]
    }
  },
  "weight": 5
},
{
  "source": {
    "name": "large shot 2",
    "options": {
      "matching": ["1*3-"]
    }
  },
  "weight": 10
},
[...]

The "large shot 1" may be shot if all the 4 mics are availables. Here, the "large shot 2" may be shot if :

  • the 1st and the 3rd mics are availables
  • the 4th mic is not available

Made in ๐Ÿ‡ซ๐Ÿ‡ท by OneClickStudio.

gabin's People

Contributors

tillderoquefeuil avatar michael-dm avatar ironmine avatar bdebon avatar

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.