Compare commits
No commits in common. "master" and "v0.1.0" have entirely different histories.
|
|
@ -1,3 +0,0 @@
|
|||
/mnt.d
|
||||
**/*.sw*
|
||||
**/__pycache__
|
||||
|
|
@ -4,9 +4,9 @@
|
|||
[submodule "git.d/rusty-pipe.d"]
|
||||
path = git.d/rusty-pipe.d
|
||||
url = https://gogs.inhome.blapointe.com/bel/rusty-pipe.git
|
||||
[submodule "git.d/stt.d"]
|
||||
path = git.d/stt.d
|
||||
url = https://gogs.inhome.blapointe.com/bel/stt.git
|
||||
[submodule "git.d/tts.d"]
|
||||
path = git.d/tts.d
|
||||
url = https://gogs.inhome.blapointe.com/bel/tts.git
|
||||
[submodule "git.d/stt.d"]
|
||||
path = git.d/stt.d
|
||||
url = https://gogs.inhome.blapointe.com/bel/stt
|
||||
|
|
|
|||
46
README.md
46
README.md
|
|
@ -1,15 +1,53 @@
|
|||
# Mayhem Party Venue
|
||||
# Hosting a Mayhem Party
|
||||
|
||||
# Clients
|
||||
|
||||
Send link to `http://localhost:17072`
|
||||
## Distribute `rusty-pipe`
|
||||
|
||||
```bash
|
||||
# https://www.reddit.com/r/rust/comments/5k8uab/crosscompiling_from_ubuntu_to_windows_with_rustup/
|
||||
(
|
||||
echo '[target.x86_64-pc-windows-gnu]'
|
||||
echo 'linker = "x86_64-w64-mingw32-gcc"'
|
||||
echo 'ar = "x86_64-w64-mingw32-gcc-ar"'
|
||||
) >> $HOME/.cargo/config
|
||||
sudo apt install mingw-w64
|
||||
rustup target add x86_64-pc-windows-gnu
|
||||
echo windows
|
||||
cargo build --release --target x86_64-pc-windows-gnu && ls target/x86_64-pc-windows-gnu/release/rusty-pipe.exe
|
||||
echo local
|
||||
cargo install --path ./
|
||||
```
|
||||
|
||||
Each client needs 1 executable and 1 config file with a unique user "name".
|
||||
|
||||
The server cannot be a client because sending, listening, and typing keyboard is bad. Maybe a VM on the client as a server would work tho.
|
||||
|
||||
See `./config.d/rusty-pipe.d`
|
||||
|
||||
# Server
|
||||
|
||||
## Code
|
||||
## TTS
|
||||
|
||||
`bash ./server.sh`
|
||||
`cd ./git.d/tts.d/larynx.d; bash run.sh`
|
||||
|
||||
## STT
|
||||
|
||||
`cd ./git.d/stt.d/whisper-2023; HOTWORDS=../../../config.d/stt.d/hotwords.txt MIC_TIMEOUT=2 URL=http://localhost:17071/config HEADERS=say='Eye herd {{hotword}}' BODY='[{"op":"replace", "path":"/Quiet", "value":true}]' python3 ./hotwords.py'
|
||||
|
||||
## `mayhem-party`
|
||||
|
||||
### Configs
|
||||
|
||||
`cd ./config.d/mayhem-party.d/remap.d; bash ./rotate.sh`
|
||||
|
||||
> rotate anytime via stdin or `pkill -SIGUSR1 -f rotate.sh`
|
||||
|
||||
### Binary
|
||||
|
||||
`bash -c 'true; source ./config.d/mayhem-party.d/env.env; mayhem-party'`
|
||||
|
||||
## Game Playing
|
||||
|
||||
Foreground
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +0,0 @@
|
|||
#! /bin/bash
|
||||
|
||||
curl -sS http://mp.home.blapointe.com:17071/gm/rpc/elect
|
||||
|
|
@ -1,14 +1,11 @@
|
|||
export DEBUG=true
|
||||
export MAIN_INTERVAL_DURATION=5ms
|
||||
|
||||
export RAW_UDP=17070
|
||||
|
||||
export PARSE_V01=true
|
||||
cp ./config.d/mayhem-party.d/v01{"",-live}.yaml
|
||||
export V01_CONFIG=./config.d/mayhem-party.d/v01-live.yaml
|
||||
export V01_CONFIG=./config.d/mayhem-party.d/v01.yaml
|
||||
|
||||
export WRAP_REFRESH_ON_SIGUSR1=true
|
||||
|
||||
export OUTPUT_KEYBOARD=${OUTPUT_KEYBOARD:-false}
|
||||
|
||||
#export RAW_UDP=17070
|
||||
export RAW_WS_PROXY_URL=http://localhost$(cat config.d/mayhem-party.d/v01-live.yaml | grep -A 10 feedback | grep addr: | awk '{print $NF}')
|
||||
export RAW_WS=17072
|
||||
export OUTPUT_KEYBOARD=false
|
||||
|
|
|
|||
|
|
@ -1,7 +0,0 @@
|
|||
#! /bin/bash
|
||||
|
||||
curl \
|
||||
-X POST \
|
||||
-i -sS \
|
||||
http://mp.home.blapointe.com:17071/gm/rpc/fillNonPlayerAliases \
|
||||
-d "[$(cat ./hotwords.txt | tr '\n' ' ')]"
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
mario
|
||||
luigi
|
||||
peach
|
||||
daisy
|
||||
wario
|
||||
waluigi
|
||||
bowser
|
||||
junior
|
||||
koopa
|
||||
shyguy
|
||||
boo
|
||||
toad
|
||||
toadette
|
||||
minigame
|
||||
win
|
||||
lose
|
||||
|
|
@ -1,173 +0,0 @@
|
|||
advance
|
||||
aliasing
|
||||
amiibo
|
||||
analoguestick
|
||||
animalcrossing
|
||||
artstyle
|
||||
battleroyal
|
||||
bigbrainacademy
|
||||
birdo
|
||||
bitgenerations
|
||||
bluetoad
|
||||
board
|
||||
boardgame
|
||||
boo
|
||||
boss
|
||||
bowser
|
||||
brainage
|
||||
capcom
|
||||
cardboardcutout
|
||||
cardgame
|
||||
category
|
||||
chainchomp
|
||||
characters
|
||||
charlesmartinet
|
||||
cpus
|
||||
customrobo
|
||||
destructoid
|
||||
diddykong
|
||||
die
|
||||
donkeykong
|
||||
ds
|
||||
editlinks
|
||||
educationalgames
|
||||
eurogamer
|
||||
famicomdetectiveclub
|
||||
fawful
|
||||
firebreath
|
||||
fireemblem
|
||||
fossilfighters
|
||||
gamebooks
|
||||
gameboyadvance
|
||||
gamecube
|
||||
gamemodes
|
||||
gamepro
|
||||
gamerevolution
|
||||
gamespot
|
||||
gametrailers
|
||||
goldensun
|
||||
goomba
|
||||
gr
|
||||
hammerbro
|
||||
healthpoints
|
||||
hepburn
|
||||
homeconsole
|
||||
hudsonsoft
|
||||
ign
|
||||
intellectuallydisabled
|
||||
isbn
|
||||
islandtour
|
||||
items
|
||||
japanese
|
||||
joystiq
|
||||
kamek
|
||||
kidicarus
|
||||
kirby
|
||||
kojikondo
|
||||
koopatroopa
|
||||
kotaku
|
||||
lcdgames
|
||||
leaderboards
|
||||
legosupermario
|
||||
listofvideogamesfeaturingmario
|
||||
luigi
|
||||
mahitoyokota
|
||||
mario
|
||||
marioartist
|
||||
marioclash
|
||||
mariokart
|
||||
mariopaint
|
||||
marioparty
|
||||
mariopartyadvance
|
||||
mariopartyds
|
||||
mariopartylegacy
|
||||
mariopartysuperstars
|
||||
mariopowertennis
|
||||
mattcasamassina
|
||||
mc
|
||||
metroid
|
||||
mii
|
||||
minigame
|
||||
minigames
|
||||
minusworld
|
||||
mother
|
||||
motioncontrol
|
||||
mushroomkingdom
|
||||
ndcube
|
||||
nintendo
|
||||
nintendocomicssystem
|
||||
nintendods
|
||||
nintendolife
|
||||
nintendoswitch
|
||||
nintendowire
|
||||
onlinemultiplayer
|
||||
othermedia
|
||||
pal
|
||||
papermario
|
||||
party
|
||||
partyvideogame
|
||||
pauline
|
||||
peaches
|
||||
pikmin
|
||||
pilotwings
|
||||
piranhaplant
|
||||
pokémon
|
||||
polygon
|
||||
princessdaisy
|
||||
princesspeach
|
||||
professorelvingadd
|
||||
puzzlegames
|
||||
puzzleleague
|
||||
racinggames
|
||||
rainbowroad
|
||||
raymanravingrabbids
|
||||
replayvalue
|
||||
ringmaster
|
||||
rosalina
|
||||
rumblepak
|
||||
ryandavis
|
||||
satoruiwata
|
||||
shigerumiyamoto
|
||||
shyguy
|
||||
siliconera
|
||||
spinyshell
|
||||
splatoon
|
||||
sportsgames
|
||||
starfox
|
||||
starrush
|
||||
storycampaign
|
||||
super
|
||||
supermario
|
||||
supermarioadventures
|
||||
supermarioparty
|
||||
supermariosunshine
|
||||
supermarioworld
|
||||
superprincesspeach
|
||||
superstars
|
||||
takashitezuka
|
||||
techradar
|
||||
thelegendarystarfy
|
||||
thelegendofzelda
|
||||
theverge
|
||||
toad
|
||||
toadette
|
||||
toadsworth
|
||||
touchscreen
|
||||
trustedreviews
|
||||
unofficialmedia
|
||||
variety
|
||||
videogamesportal
|
||||
vivian
|
||||
waluigi
|
||||
wario
|
||||
wars
|
||||
wii
|
||||
wiiparty
|
||||
wiiremote
|
||||
wiiu
|
||||
wiiugamepad
|
||||
yasuhisayamamura
|
||||
yearofluigi
|
||||
yōichikotabe
|
||||
yoshi
|
||||
yoshiakikoizumi
|
||||
|
|
@ -1,173 +0,0 @@
|
|||
advance
|
||||
aliasing
|
||||
amiibo
|
||||
analoguestick
|
||||
animalcrossing
|
||||
artstyle
|
||||
battleroyal
|
||||
bigbrainacademy
|
||||
birdo
|
||||
bitgenerations
|
||||
bluetoad
|
||||
board
|
||||
boardgame
|
||||
boo
|
||||
boss
|
||||
bowser
|
||||
brainage
|
||||
capcom
|
||||
cardboardcutout
|
||||
cardgame
|
||||
category
|
||||
chainchomp
|
||||
characters
|
||||
charlesmartinet
|
||||
cpus
|
||||
customrobo
|
||||
destructoid
|
||||
diddykong
|
||||
die
|
||||
donkeykong
|
||||
ds
|
||||
editlinks
|
||||
educationalgames
|
||||
eurogamer
|
||||
famicomdetectiveclub
|
||||
fawful
|
||||
firebreath
|
||||
fireemblem
|
||||
fossilfighters
|
||||
gamebooks
|
||||
gameboyadvance
|
||||
gamecube
|
||||
gamemodes
|
||||
gamepro
|
||||
gamerevolution
|
||||
gamespot
|
||||
gametrailers
|
||||
goldensun
|
||||
goomba
|
||||
gr
|
||||
hammerbro
|
||||
healthpoints
|
||||
hepburn
|
||||
homeconsole
|
||||
hudsonsoft
|
||||
ign
|
||||
intellectuallydisabled
|
||||
isbn
|
||||
islandtour
|
||||
items
|
||||
japanese
|
||||
joystiq
|
||||
kamek
|
||||
kidicarus
|
||||
kirby
|
||||
kojikondo
|
||||
koopatroopa
|
||||
kotaku
|
||||
lcdgames
|
||||
leaderboards
|
||||
legosupermario
|
||||
listofvideogamesfeaturingmario
|
||||
luigi
|
||||
mahitoyokota
|
||||
mario
|
||||
marioartist
|
||||
marioclash
|
||||
mariokart
|
||||
mariopaint
|
||||
marioparty
|
||||
mariopartyadvance
|
||||
mariopartyds
|
||||
mariopartylegacy
|
||||
mariopartysuperstars
|
||||
mariopowertennis
|
||||
mattcasamassina
|
||||
mc
|
||||
metroid
|
||||
mii
|
||||
minigame
|
||||
minigames
|
||||
minusworld
|
||||
mother
|
||||
motioncontrol
|
||||
mushroomkingdom
|
||||
ndcube
|
||||
nintendo
|
||||
nintendocomicssystem
|
||||
nintendods
|
||||
nintendolife
|
||||
nintendoswitch
|
||||
nintendowire
|
||||
onlinemultiplayer
|
||||
othermedia
|
||||
pal
|
||||
papermario
|
||||
party
|
||||
partyvideogame
|
||||
pauline
|
||||
peaches
|
||||
pikmin
|
||||
pilotwings
|
||||
piranhaplant
|
||||
pokémon
|
||||
polygon
|
||||
princessdaisy
|
||||
princesspeach
|
||||
professorelvingadd
|
||||
puzzlegames
|
||||
puzzleleague
|
||||
racinggames
|
||||
rainbowroad
|
||||
raymanravingrabbids
|
||||
replayvalue
|
||||
ringmaster
|
||||
rosalina
|
||||
rumblepak
|
||||
ryandavis
|
||||
satoruiwata
|
||||
shigerumiyamoto
|
||||
shyguy
|
||||
siliconera
|
||||
spinyshell
|
||||
splatoon
|
||||
sportsgames
|
||||
starfox
|
||||
starrush
|
||||
storycampaign
|
||||
super
|
||||
supermario
|
||||
supermarioadventures
|
||||
supermarioparty
|
||||
supermariosunshine
|
||||
supermarioworld
|
||||
superprincesspeach
|
||||
superstars
|
||||
takashitezuka
|
||||
techradar
|
||||
thelegendarystarfy
|
||||
thelegendofzelda
|
||||
theverge
|
||||
toad
|
||||
toadette
|
||||
toadsworth
|
||||
touchscreen
|
||||
trustedreviews
|
||||
unofficialmedia
|
||||
variety
|
||||
videogamesportal
|
||||
vivian
|
||||
waluigi
|
||||
wario
|
||||
wars
|
||||
wii
|
||||
wiiparty
|
||||
wiiremote
|
||||
wiiu
|
||||
wiiugamepad
|
||||
yasuhisayamamura
|
||||
yearofluigi
|
||||
yōichikotabe
|
||||
yoshi
|
||||
yoshiakikoizumi
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
#! /bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
bash ./shuffle.sh
|
||||
bash ./fill.sh
|
||||
bash ./players.sh
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
#! /bin/bash
|
||||
curl -sS -i http://mp.home.blapointe.com:17071/
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
#! /bin/bash
|
||||
curl -sS -i http://mp.home.blapointe.com:17071/gm/rpc/shuffle
|
||||
bash ./players.sh
|
||||
|
|
@ -1,64 +0,0 @@
|
|||
feedback:
|
||||
addr: :17071
|
||||
ttsurl: http://localhost:15002
|
||||
users: {}
|
||||
players:
|
||||
- transformation:
|
||||
"1": "1" # a
|
||||
"2": "2" # b
|
||||
"3": "3" # x
|
||||
"4": "4" # y
|
||||
"5": "5" # start
|
||||
w: "6" # stickUp
|
||||
a: "7" # stickLeft
|
||||
s: "8" # stickDown
|
||||
d: "9" # stickRight
|
||||
e: "0" # r
|
||||
q: "-" # l
|
||||
- transformation:
|
||||
"1": "q" # a
|
||||
"2": "w" # b
|
||||
"3": "e" # x
|
||||
"4": "r" # y
|
||||
"5": " " # "t" # start
|
||||
w: "y" # stickUp
|
||||
a: "u" # stickLeft
|
||||
s: "i" # stickDown
|
||||
d: "o" # stickRight
|
||||
e: "p" # r
|
||||
q: "=" # l
|
||||
- transformation:
|
||||
"1": "a" # a
|
||||
"2": "s" # b
|
||||
"3": "d" # x
|
||||
"4": "f" # y
|
||||
"5": " " # "g" # start
|
||||
w: "h" # stickUp
|
||||
a: "j" # stickLeft
|
||||
s: "k" # stickDown
|
||||
d: "l" # stickRight
|
||||
e: ";" # r
|
||||
q: "g" # l
|
||||
- transformation:
|
||||
"1": "z" # a
|
||||
"2": "x" # b
|
||||
"3": "c" # x
|
||||
"4": "v" # y
|
||||
"5": " " # "b" # start
|
||||
w: "n" # stickUp
|
||||
a: "m" # stickLeft
|
||||
s: "," # stickDown
|
||||
d: "." # stickRight
|
||||
e: "/" # r
|
||||
q: "b" # l
|
||||
quiet: false
|
||||
broadcast:
|
||||
message: "#early access"
|
||||
gm:
|
||||
hotwords:
|
||||
star:
|
||||
call: tap
|
||||
args: ['<']
|
||||
coin:
|
||||
call: tap
|
||||
args: ['>']
|
||||
|
|
@ -1,64 +1,24 @@
|
|||
feedback:
|
||||
addr: :17071
|
||||
ttsurl: http://localhost:15002
|
||||
users: {}
|
||||
users:
|
||||
bel:
|
||||
player: 2
|
||||
message: its bel
|
||||
broadcast:
|
||||
player: 0
|
||||
message: "8"
|
||||
players:
|
||||
- transformation: {}
|
||||
- transformation:
|
||||
"1": "1" # a
|
||||
"2": "2" # b
|
||||
"3": "3" # x
|
||||
"4": "4" # y
|
||||
"5": "5" # start
|
||||
w: "6" # stickUp
|
||||
a: "7" # stickLeft
|
||||
s: "8" # stickDown
|
||||
d: "9" # stickRight
|
||||
e: "0" # r
|
||||
q: "-" # l
|
||||
- transformation:
|
||||
"1": "q" # a
|
||||
"2": "w" # b
|
||||
"3": "e" # x
|
||||
"4": "r" # y
|
||||
"5": " " # "t" # start
|
||||
w: "y" # stickUp
|
||||
a: "u" # stickLeft
|
||||
s: "i" # stickDown
|
||||
d: "o" # stickRight
|
||||
e: "p" # r
|
||||
q: "=" # l
|
||||
- transformation:
|
||||
"1": "a" # a
|
||||
"2": "s" # b
|
||||
"3": "d" # x
|
||||
"4": "f" # y
|
||||
"5": " " # "g" # start
|
||||
w: "h" # stickUp
|
||||
a: "j" # stickLeft
|
||||
s: "k" # stickDown
|
||||
d: "l" # stickRight
|
||||
e: ";" # r
|
||||
q: "g" # l
|
||||
- transformation:
|
||||
"1": "z" # a
|
||||
"2": "x" # b
|
||||
"3": "c" # x
|
||||
"4": "v" # y
|
||||
"5": " " # "b" # start
|
||||
w: "n" # stickUp
|
||||
a: "m" # stickLeft
|
||||
s: "," # stickDown
|
||||
d: "." # stickRight
|
||||
e: "/" # r
|
||||
q: "b" # l
|
||||
quiet: false
|
||||
broadcast:
|
||||
message: "#early access"
|
||||
gm:
|
||||
hotwords:
|
||||
star:
|
||||
call: tap
|
||||
args: ['<']
|
||||
coin:
|
||||
call: tap
|
||||
args: ['>']
|
||||
"1": "5"
|
||||
"2": "6"
|
||||
"3": "7"
|
||||
"4": "8"
|
||||
a: f
|
||||
d: h
|
||||
e: "y"
|
||||
q: r
|
||||
s: g
|
||||
w: t
|
||||
quiet: true
|
||||
|
|
|
|||
|
|
@ -6,11 +6,10 @@ streams:
|
|||
gui:
|
||||
user: bel
|
||||
feedback:
|
||||
url_read: http://mayhem-party.home.blapointe.com:17071?user=bel
|
||||
url_say: http://mayhem-party.home.blapointe.com:17071?user=bel&say=
|
||||
url_send: http://mayhem-party.home.blapointe.com:17071/gm/rpc/vote?user=bel&payload=
|
||||
release_prefix: ""
|
||||
format_keys: '{"T":{{ms}},"U":"{{user}}","Y":"{{pressed}}","N":"{{released}}"}'
|
||||
url: http://mayhem-party.home.blapointe.com:17071?user=bel
|
||||
press: {prefix: "", suffix: ""}
|
||||
release: {prefix: "", suffix: ""}
|
||||
format: '{"T":{{ms}},"U":"{{user}}","Y":"{{pressed}}","N":"{{released}}"}'
|
||||
buttons:
|
||||
up: 'w'
|
||||
down: 's'
|
||||
|
|
@ -22,7 +21,6 @@ streams:
|
|||
b: '2'
|
||||
x: '3'
|
||||
y: '4'
|
||||
start: '5'
|
||||
output:
|
||||
debug: false
|
||||
engine:
|
||||
|
|
@ -6,11 +6,10 @@ streams:
|
|||
gui:
|
||||
user: zach
|
||||
feedback:
|
||||
url_read: http://mayhem-party.home.blapointe.com:17071?user=zach
|
||||
url_say: http://mayhem-party.home.blapointe.com:17071?user=zach&say=
|
||||
url_send: http://mayhem-party.home.blapointe.com:17071/gm/rpc/vote?user=zach&payload=
|
||||
release_prefix: ""
|
||||
format_keys: '{"T":{{ms}},"U":"{{user}}","Y":"{{pressed}}","N":"{{released}}"}'
|
||||
url: http://mayhem-party.home.blapointe.com:17071?user=zach
|
||||
press: {prefix: "", suffix: ""}
|
||||
release: {prefix: "", suffix: ""}
|
||||
format: '{"T":{{ms}},"U":"{{user}}","Y":"{{pressed}}","N":"{{released}}"}'
|
||||
buttons:
|
||||
up: 'w'
|
||||
down: 's'
|
||||
|
|
@ -22,7 +21,6 @@ streams:
|
|||
b: '2'
|
||||
x: '3'
|
||||
y: '4'
|
||||
start: '5'
|
||||
output:
|
||||
debug: false
|
||||
engine:
|
||||
|
|
@ -6,11 +6,10 @@ streams:
|
|||
gui:
|
||||
user: chase
|
||||
feedback:
|
||||
url_read: http://mayhem-party.home.blapointe.com:17071?user=chase
|
||||
url_say: http://mayhem-party.home.blapointe.com:17071?user=chase&say=
|
||||
url_send: http://mayhem-party.home.blapointe.com:17071/gm/rpc/vote?user=chase&payload=
|
||||
release_prefix: ""
|
||||
format_keys: '{"T":{{ms}},"U":"{{user}}","Y":"{{pressed}}","N":"{{released}}"}'
|
||||
url: http://mayhem-party.home.blapointe.com:17071?user=chase
|
||||
press: {prefix: "", suffix: ""}
|
||||
release: {prefix: "", suffix: ""}
|
||||
format: '{"T":{{ms}},"U":"{{user}}","Y":"{{pressed}}","N":"{{released}}"}'
|
||||
buttons:
|
||||
up: 'w'
|
||||
down: 's'
|
||||
|
|
@ -22,7 +21,6 @@ streams:
|
|||
b: '2'
|
||||
x: '3'
|
||||
y: '4'
|
||||
start: '5'
|
||||
output:
|
||||
debug: false
|
||||
engine:
|
||||
|
|
@ -6,11 +6,10 @@ streams:
|
|||
gui:
|
||||
user: mason
|
||||
feedback:
|
||||
url_read: http://mayhem-party.home.blapointe.com:17071?user=mason
|
||||
url_say: http://mayhem-party.home.blapointe.com:17071?user=mason&say=
|
||||
url_send: http://mayhem-party.home.blapointe.com:17071/gm/rpc/vote?user=mason&payload=
|
||||
release_prefix: ""
|
||||
format_keys: '{"T":{{ms}},"U":"{{user}}","Y":"{{pressed}}","N":"{{released}}"}'
|
||||
url: http://mayhem-party.home.blapointe.com:17071?user=mason
|
||||
press: {prefix: "", suffix: ""}
|
||||
release: {prefix: "", suffix: ""}
|
||||
format: '{"T":{{ms}},"U":"{{user}}","Y":"{{pressed}}","N":"{{released}}"}'
|
||||
buttons:
|
||||
up: 'w'
|
||||
down: 's'
|
||||
|
|
@ -22,7 +21,6 @@ streams:
|
|||
b: '2'
|
||||
x: '3'
|
||||
y: '4'
|
||||
start: '5'
|
||||
output:
|
||||
debug: false
|
||||
engine:
|
||||
|
|
@ -6,11 +6,10 @@ streams:
|
|||
gui:
|
||||
user: nat
|
||||
feedback:
|
||||
url_read: http://mayhem-party.home.blapointe.com:17071?user=nat
|
||||
url_say: http://mayhem-party.home.blapointe.com:17071?user=nat&say=
|
||||
url_send: http://mayhem-party.home.blapointe.com:17071/gm/rpc/vote?user=nat&payload=
|
||||
release_prefix: ""
|
||||
format_keys: '{"T":{{ms}},"U":"{{user}}","Y":"{{pressed}}","N":"{{released}}"}'
|
||||
url: http://mayhem-party.home.blapointe.com:17071?user=nat
|
||||
press: {prefix: "", suffix: ""}
|
||||
release: {prefix: "", suffix: ""}
|
||||
format: '{"T":{{ms}},"U":"{{user}}","Y":"{{pressed}}","N":"{{released}}"}'
|
||||
buttons:
|
||||
up: 'w'
|
||||
down: 's'
|
||||
|
|
@ -22,7 +21,6 @@ streams:
|
|||
b: '2'
|
||||
x: '3'
|
||||
y: '4'
|
||||
start: '5'
|
||||
output:
|
||||
debug: false
|
||||
engine:
|
||||
|
|
@ -6,11 +6,10 @@ streams:
|
|||
gui:
|
||||
user: roxy
|
||||
feedback:
|
||||
url_read: http://mayhem-party.home.blapointe.com:17071?user=roxy
|
||||
url_say: http://mayhem-party.home.blapointe.com:17071?user=roxy&say=
|
||||
url_send: http://mayhem-party.home.blapointe.com:17071/gm/rpc/vote?user=roxy&payload=
|
||||
release_prefix: ""
|
||||
format_keys: '{"T":{{ms}},"U":"{{user}}","Y":"{{pressed}}","N":"{{released}}"}'
|
||||
url: http://mayhem-party.home.blapointe.com:17071?user=roxy
|
||||
press: {prefix: "", suffix: ""}
|
||||
release: {prefix: "", suffix: ""}
|
||||
format: '{"T":{{ms}},"U":"{{user}}","Y":"{{pressed}}","N":"{{released}}"}'
|
||||
buttons:
|
||||
up: 'w'
|
||||
down: 's'
|
||||
|
|
@ -22,7 +21,6 @@ streams:
|
|||
b: '2'
|
||||
x: '3'
|
||||
y: '4'
|
||||
start: '5'
|
||||
output:
|
||||
debug: false
|
||||
engine:
|
||||
|
|
@ -6,11 +6,10 @@ streams:
|
|||
gui:
|
||||
user: bill
|
||||
feedback:
|
||||
url_read: http://mayhem-party.home.blapointe.com:17071?user=bill
|
||||
url_say: http://mayhem-party.home.blapointe.com:17071?user=bill&say=
|
||||
url_send: http://mayhem-party.home.blapointe.com:17071/gm/rpc/vote?user=bill&payload=
|
||||
release_prefix: ""
|
||||
format_keys: '{"T":{{ms}},"U":"{{user}}","Y":"{{pressed}}","N":"{{released}}"}'
|
||||
url: http://mayhem-party.home.blapointe.com:17071?user=bill
|
||||
press: {prefix: "", suffix: ""}
|
||||
release: {prefix: "", suffix: ""}
|
||||
format: '{"T":{{ms}},"U":"{{user}}","Y":"{{pressed}}","N":"{{released}}"}'
|
||||
buttons:
|
||||
up: 'w'
|
||||
down: 's'
|
||||
|
|
@ -22,7 +21,6 @@ streams:
|
|||
b: '2'
|
||||
x: '3'
|
||||
y: '4'
|
||||
start: '5'
|
||||
output:
|
||||
debug: false
|
||||
engine:
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
#! /bin/bash
|
||||
|
||||
echo source ./package.sh
|
||||
|
||||
set -e
|
||||
|
||||
cd ${based%/*}
|
||||
tar_f=${based##*/}.tar
|
||||
rm -f "$tar_f"
|
||||
tar -cf "$tar_f" ${based##*/}
|
||||
cleanup() { rm "$tar_f"; }
|
||||
trap cleanup EXIT
|
||||
|
||||
scp_scratch.sh "$tar_f" squeaky2x3@192.168.0.86:/volume1/video/FTP/
|
||||
ssh_scratch.sh ls /volume1/video/FTP/"$tar_f"
|
||||
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
#! /bin/bash
|
||||
|
||||
test -f ./rusty-pipe-signed.exe || exit 1
|
||||
|
||||
based=$(mktemp -d)
|
||||
for f in ./*.yaml; do
|
||||
d="$based/${f%.yaml}.d"
|
||||
mkdir -p "$d"
|
||||
cp "$f" "$d"/rusty-pipe.yaml
|
||||
cp "$(realpath ./rusty-pipe-signed.exe)" "$d"/rusty-pipe-windows.exe
|
||||
cp "$(realpath ./rusty-pipe-notwindows.bin)" "$d"/rusty-pipe-notwindows.bin
|
||||
done
|
||||
pushd "$based"
|
||||
for d in ./*/; do
|
||||
zip -r -7 ${d%/}.zip $d
|
||||
rm -rf "$d"
|
||||
done
|
||||
popd
|
||||
echo "$based"
|
||||
du -sh "$based"/*
|
||||
|
|
@ -1 +0,0 @@
|
|||
../../../rusty-pipe.d/target/release/rusty-pipe
|
||||
|
|
@ -1 +0,0 @@
|
|||
../../../rusty-pipe.d/target/x86_64-pc-windows-gnu/release/rusty-pipe-signed.exe
|
||||
|
|
@ -1 +1 @@
|
|||
Subproject commit b89ed62036e8c40575f9aa996f3aad4729ca9f80
|
||||
Subproject commit fbf4849517f74436063f29603a32252128d9c40d
|
||||
|
|
@ -1 +1 @@
|
|||
Subproject commit 31bdb6d92e40103c4be000f46ebcf5d2e2ff5920
|
||||
Subproject commit 25e99fbf931637b4f4aabcfdc019c4a9d8924f24
|
||||
|
|
@ -1 +1 @@
|
|||
Subproject commit b4d3e5a27cbdecfd70f6601d7b51ab9a07a045f7
|
||||
Subproject commit bde26ff2e5927c60fdf775df19279277a55086b3
|
||||
|
|
@ -1 +1 @@
|
|||
Subproject commit ce354d17885feb509dd3ecee68843e1c6e2c2957
|
||||
Subproject commit ad91c4547fdc40c9b1a5b71c80e11460c5ca5268
|
||||
144
server.sh
144
server.sh
|
|
@ -1,144 +0,0 @@
|
|||
# /bin/bash
|
||||
|
||||
main() {
|
||||
set -eo pipefail
|
||||
tty && read -p "git refresh? [yN] " a && test "$a" == "y" && (
|
||||
git config --global credential.helper store
|
||||
git submodule init
|
||||
git pull --recurse-submodules --jobs=10
|
||||
git submodule foreach git pull origin master
|
||||
)
|
||||
_tts
|
||||
_mayhem_party
|
||||
_discord
|
||||
_stt
|
||||
_dolphin
|
||||
while read; do
|
||||
pkill -SIGUSR1 -f mayhem-party
|
||||
done
|
||||
}
|
||||
|
||||
_cleanup() {
|
||||
pkill -f larynx
|
||||
pkill -f hotwords.py
|
||||
pkill -f rust-whisper
|
||||
pkill -f mayhem-party
|
||||
}
|
||||
cleanup() {
|
||||
pkill -f server.sh
|
||||
_cleanup
|
||||
}
|
||||
_cleanup
|
||||
trap cleanup EXIT
|
||||
|
||||
log() {
|
||||
echo "$(date) > $*" >&2
|
||||
}
|
||||
|
||||
_discord() {
|
||||
(
|
||||
export HOME="$PWD/mnt.d/discord.d"
|
||||
if ! snap list discord; then
|
||||
sudo snap install discord
|
||||
fi
|
||||
(
|
||||
exec snap run discord
|
||||
) &> /tmp/mayhem-party.discord.log &
|
||||
disown
|
||||
)
|
||||
}
|
||||
|
||||
_dolphin() {
|
||||
echo
|
||||
read -p "pls start dolphin"
|
||||
echo
|
||||
}
|
||||
|
||||
_mayhem_party() {
|
||||
log mayhem-party
|
||||
pushd ./git.d/mayhem-party.d
|
||||
go build
|
||||
popd
|
||||
log launching mayhem-party
|
||||
(
|
||||
source ./config.d/mayhem-party.d/env.env
|
||||
./git.d/mayhem-party.d/mayhem-party
|
||||
) &
|
||||
}
|
||||
|
||||
_tts() {
|
||||
log launching tts
|
||||
pushd ./git.d/tts.d/larynx.d/
|
||||
chmod -R 777 ./mnt.d || true
|
||||
bash ./run.sh
|
||||
popd
|
||||
}
|
||||
|
||||
_stt() {
|
||||
log stt
|
||||
(
|
||||
export HOME="$PWD/mnt.d/stt.d"
|
||||
mkdir -p "$HOME"
|
||||
cd "$HOME"
|
||||
bash ../../git.d/stt.d/rust-whisper.d/download_models.sh
|
||||
if [ -n "$PIP" ]; then
|
||||
pip3 install -r ../../git.d/stt.d/rust-whisper.d/requirements.txt
|
||||
fi
|
||||
|
||||
local device=$(
|
||||
pactl list \
|
||||
| grep Monitor.Source \
|
||||
| grep -v hdmi \
|
||||
| awk "{print \$NF}" \
|
||||
| head -n 1
|
||||
)
|
||||
if ! test -f /etc/asound.conf || ! grep "$device" /etc/asound.conf; then
|
||||
(
|
||||
echo "pcm.pulse_monitor {"
|
||||
echo " type pulse"
|
||||
echo " device $device"
|
||||
echo "}"
|
||||
echo "ctl.pulse_monitor {"
|
||||
echo " type pulse"
|
||||
echo " device $device"
|
||||
echo "}"
|
||||
) | sudo tee /etc/asound.conf
|
||||
fi
|
||||
|
||||
if [ -n "$PACTL_RESET" ]; then
|
||||
for i in $(pactl list short modules | grep secret | cut -f1); do
|
||||
pactl unload-module $i
|
||||
done
|
||||
fi
|
||||
name='my_secret_sink'
|
||||
for i in 1 2; do
|
||||
if ! pactl list | grep -q $name$i; then
|
||||
pactl load-module module-null-sink sink_name=$name$i channels=1
|
||||
pactl load-module module-remap-source master=$name$i.monitor source_name=shared-$name$i source_properties="device.description=shared-$name$i"
|
||||
mic_name="$(pactl list | grep -A 100 Name:.$name$i.monitor | grep device.description.=. | head -n 1 | sed 's/.* = //' | tr -d '"') Monitor"
|
||||
fi
|
||||
done
|
||||
|
||||
echo
|
||||
read -p "pavucontrol to change input to $name, ok? "
|
||||
echo
|
||||
log launching stt
|
||||
(
|
||||
export HOTWORDS=../../config.d/mayhem-party.d/v01-live.yaml@.users[].state.gm.alias,.gm.hotwords.KEYS
|
||||
export MIC_TIMEOUT=2
|
||||
export URL=http://localhost:17071/gm/rpc/broadcastSomeoneSaidAlias?message={{hotword}}
|
||||
export HEADERS=say="Eye herd {{hotword}}"
|
||||
export MIC_NAME="${MIC_NAME:-pulse_monitor}"
|
||||
export MODEL=tiny.en
|
||||
export P=2
|
||||
while ! python3 ../../git.d/stt.d/rust-whisper.d/hotwords.py; do
|
||||
sleep 5
|
||||
done
|
||||
) &
|
||||
)
|
||||
}
|
||||
|
||||
if [ "$0" == "$BASH_SOURCE" ]; then
|
||||
main "$@"
|
||||
fi
|
||||
|
||||
193
todo.yaml
193
todo.yaml
|
|
@ -1,193 +0,0 @@
|
|||
todo:
|
||||
- instructions how to spin up with pulseaudio GUI
|
||||
- rpc fill aliases UI
|
||||
- rpc elect UI
|
||||
- display election results
|
||||
- trigger dolphin pause via query param mapping to a button that is a pause hotkey
|
||||
scheduled: []
|
||||
done:
|
||||
- todo: sticky keyboard input mode for enable/disable explicitly
|
||||
ts: Thu Mar 23 20:55:52 MDT 2023
|
||||
- todo: case-sensitive
|
||||
ts: Fri Mar 24 13:39:26 MDT 2023
|
||||
- todo: rusty configs have "name" for each client so "if name == server_broadcasted_name
|
||||
{ debug_print_in_gui(server_broadcasted_message) }
|
||||
ts: Fri Mar 24 16:40:09 MDT 2023
|
||||
- todo: change from 'a','b','c' from rust to just 10,11,12 so playerName is known
|
||||
implicitly but then gotta translate back to char for keyboard things somewhere;
|
||||
space delimited?
|
||||
ts: Fri Mar 24 17:00:55 MDT 2023
|
||||
- todo: '"Button" to interface or strings'
|
||||
ts: Fri Mar 24 17:01:01 MDT 2023
|
||||
- todo: input.UDP as a raw provider
|
||||
ts: Fri Mar 24 19:58:59 MDT 2023
|
||||
- todo: input.MayhemParty as a logical wrapper
|
||||
ts: Fri Mar 24 19:58:59 MDT 2023
|
||||
- todo: change from 'a','b','c' from rust to just 11,21,31,41 so playerName is known
|
||||
implicitly from %10 but then gotta translate back to char for keyboard things
|
||||
somewhere; space delimited?
|
||||
ts: Fri Mar 24 19:58:59 MDT 2023
|
||||
- todo: input."Button" to interface or strings
|
||||
ts: Fri Mar 24 21:16:39 MDT 2023
|
||||
- todo: input.MayhemParty as a logical wrapper from %10 but then gotta translate back
|
||||
to char for keyboard things somewhere; space delimited?
|
||||
ts: Fri Mar 24 21:16:39 MDT 2023
|
||||
- todo: change from 'a','b','c' from rust to just 11,21,31,41 so playerName is known
|
||||
implicitly
|
||||
ts: Sat Mar 25 00:06:21 MDT 2023
|
||||
- todo: lag via UDP formatted inputs as space-delimited TS PID buttonIdx buttonIdx
|
||||
buttonIdx
|
||||
ts: Sat Mar 25 00:13:19 MDT 2023
|
||||
- todo: map keys triggered by user to player idx and their keys
|
||||
ts: Sat Mar 25 00:44:19 MDT 2023
|
||||
- todo: use button.V01Cfg; map keys triggered by user to player idx and their keys
|
||||
ts: Sat Mar 25 09:12:43 MDT 2023
|
||||
- todo: v01cfg includes messages to send per client and exposes tcp server for it
|
||||
ts: Sat Mar 25 10:09:06 MDT 2023
|
||||
- todo: v01cfg includes messages to send per client and exposes http server for it
|
||||
ts: Sat Mar 25 11:28:29 MDT 2023
|
||||
- todo: send clients messages to display
|
||||
ts: Sat Mar 25 11:28:29 MDT 2023
|
||||
- todo: input.MayhemParty as a logical wrapper from mod10 but then gotta translate
|
||||
back to char for keyboard things somewhere; space delimited?
|
||||
ts: Sat Mar 25 11:28:40 MDT 2023
|
||||
- todo: rusty configs have "name" for each client
|
||||
details: |
|
||||
'if name == server_broadcasted_name { debug_print_in_gui(server_broadcasted_message) }'
|
||||
ts: Sat Mar 25 11:28:40 MDT 2023
|
||||
- todo: rotation triggers
|
||||
subtasks:
|
||||
- minigame end
|
||||
- random word from cur wikipedia page
|
||||
- each person has their own hotword
|
||||
- only spectators have hotwords and must get a player to speak it
|
||||
- tribunal to vote who said it
|
||||
ts: Sat Mar 25 11:29:52 MDT 2023
|
||||
- todo: we have 7 players oooooof
|
||||
ts: Sat Mar 25 11:29:52 MDT 2023
|
||||
- todo: endpoint for v01 to start read-only mode so when hotword spoken, players are
|
||||
dcd without losing players
|
||||
ts: Sat Mar 25 23:16:47 MDT 2023
|
||||
- todo: tts for when someone said the word via larynx docker + http.get + https://pkg.go.dev/github.com/faiface/beep@v1.1.0/wav
|
||||
ts: Sun Mar 26 09:57:02 MDT 2023
|
||||
- todo: endpoint for v01 to start read-only mode so when hotword spoken, players are
|
||||
dcd without losing players; press a hotkey that is bound to dolphin emulator pause
|
||||
ts: Sun Mar 26 14:28:46 MDT 2023
|
||||
- todo: game master to coordinate config change
|
||||
ts: Mon Mar 27 11:01:10 MDT 2023
|
||||
- todo: rotation triggers
|
||||
subtasks:
|
||||
- todo: stdin
|
||||
subtasks:
|
||||
- minigame end
|
||||
- todo: voice recognition of hotwords to vote who dun it
|
||||
subtasks:
|
||||
- random word from cur wikipedia page
|
||||
- each person has their own hotword
|
||||
- only spectators have hotwords and must get a player to speak it
|
||||
- tribunal to vote who said it
|
||||
ts: Mon Mar 27 11:04:56 MDT 2023
|
||||
- todo: clients can send STT via box
|
||||
ts: Mon Mar 27 17:55:41 MDT 2023
|
||||
- todo: -venue needs to update for new env variables for GUI
|
||||
ts: Mon Mar 27 21:43:40 MDT 2023
|
||||
- todo: -venue needs to udpate hits hotword path for new Users.[].State.GM.Alias
|
||||
ts: Mon Mar 27 21:43:40 MDT 2023
|
||||
- todo: clients can vote
|
||||
ts: Mon Mar 27 21:43:40 MDT 2023
|
||||
- todo: rotation triggers
|
||||
subtasks:
|
||||
- ui for election start, election votes, election end stuff
|
||||
- todo: stdin
|
||||
subtasks:
|
||||
- minigame end
|
||||
- todo: voice recognition of hotwords to vote who dun it
|
||||
subtasks:
|
||||
- random word from cur wikipedia page
|
||||
- each person has their own hotword
|
||||
- only spectators have hotwords and must get a player to speak it
|
||||
- tribunal to vote who said it
|
||||
ts: Mon Mar 27 21:43:40 MDT 2023
|
||||
- todo: https via home.blapointe and rproxy
|
||||
ts: Mon Mar 27 21:43:53 MDT 2023
|
||||
- todo: single docker image to run all
|
||||
ts: Tue Mar 28 20:34:03 MDT 2023
|
||||
- todo: how to get audio from inside docker into discord?
|
||||
ts: Wed Mar 29 19:57:18 MDT 2023
|
||||
- todo: how to get audio from game into discord?
|
||||
ts: Wed Mar 29 19:57:18 MDT 2023
|
||||
- todo: stt in vm is nono hmmm
|
||||
details: |
|
||||
vm
|
||||
dolphin
|
||||
discord
|
||||
tts
|
||||
baremetal
|
||||
discord+mic | MODEL=tiny.en stt
|
||||
*
|
||||
ts: Wed Mar 29 21:41:25 MDT 2023
|
||||
- todo: stt in vm is nono hmmm
|
||||
details: |
|
||||
https://github.com/ggerganov/whisper.cpp
|
||||
:sparkles: go bindings too
|
||||
vm
|
||||
dolphin
|
||||
discord
|
||||
tts
|
||||
baremetal
|
||||
discord+mic | MODEL=tiny.en stt
|
||||
*
|
||||
ts: Fri Mar 31 11:05:29 MDT 2023
|
||||
- todo: challenge; what runs where?
|
||||
details: |
|
||||
native: stt, discord, dolphin
|
||||
dolphin needs native
|
||||
discord needs to be where dolphin is
|
||||
stt needs to be with discord
|
||||
ts: Fri Mar 31 16:46:09 MDT 2023
|
||||
- todo: challenge; what runs where?
|
||||
details: |
|
||||
native: stt, discord, dolphin, mayhem-party
|
||||
dolphin needs native
|
||||
discord needs to be where dolphin is
|
||||
stt needs to be with discord
|
||||
mayhem-party must be with dolphin
|
||||
vm: tts
|
||||
ok so VM/docker are dead to me that is good to know
|
||||
ts: Fri Mar 31 16:46:49 MDT 2023
|
||||
- todo: can i send VM discord output to a pipe for stt?
|
||||
ts: Fri Mar 31 16:47:21 MDT 2023
|
||||
- todo: all must run native, so manual setup learning time
|
||||
ts: Fri Mar 31 22:45:58 MDT 2023
|
||||
- todo: stt to rust-whisper and new-age hotwords.py
|
||||
ts: Fri Mar 31 22:45:58 MDT 2023
|
||||
- todo: audio pipes; can i send discord output to a pipe for stt?
|
||||
ts: Sat Apr 1 11:20:27 MDT 2023
|
||||
- todo: public gui script
|
||||
ts: Sun Apr 2 11:50:42 MDT 2023
|
||||
- todo: trigger a vote
|
||||
ts: Sun Apr 2 11:50:42 MDT 2023
|
||||
- todo: display vote progress
|
||||
ts: Sun Apr 2 11:50:42 MDT 2023
|
||||
- todo: audio dolhpin+tts, video dolphin to OBS to discord share
|
||||
ts: Sun Apr 2 12:36:51 MDT 2023
|
||||
- todo: server gui script
|
||||
ts: Sun Apr 2 12:36:51 MDT 2023
|
||||
- todo: trigger an election
|
||||
ts: Sun Apr 2 12:36:51 MDT 2023
|
||||
- todo: trigger a shuffle for init
|
||||
ts: Sun Apr 2 12:36:51 MDT 2023
|
||||
- todo: assign aliases
|
||||
ts: Sun Apr 2 12:36:51 MDT 2023
|
||||
- todo: rotation triggers
|
||||
subtasks:
|
||||
- ui for election start, election votes, election end stuff
|
||||
- todo: stdin
|
||||
subtasks:
|
||||
- minigame end
|
||||
- todo: voice recognition of hotwords to vote who dun it
|
||||
subtasks:
|
||||
- random word from cur wikipedia page
|
||||
- only spectators have hotwords and must get a player to speak it
|
||||
- tribunal to vote who said it
|
||||
ts: Sun Apr 2 12:36:51 MDT 2023
|
||||
Loading…
Reference in New Issue