24 Commits

Author SHA1 Message Date
Bel LaPointe
1a0b9143be mayhem-party to websockets and http over rusty-pipe 2023-04-09 12:01:40 -06:00
Bel LaPointe
ac55a08796 mayhem-party config to http ui 2023-04-09 11:55:42 -06:00
Bel LaPointe
3653f286f8 wip 2023-04-06 17:25:51 -06:00
bel
5a9dcac684 git pull 2023-04-05 22:46:55 -06:00
Bel LaPointe
86bd0d851d scripts 2023-04-05 22:46:22 -06:00
bel
55aae5a55f hotwords file and more mayhem-info.sh 2023-04-05 22:30:45 -06:00
bel
d559f5244f mayhem-party.sh things 2023-04-05 22:24:49 -06:00
bel
df2c5cb0ad ALMOST 2023-04-05 22:09:43 -06:00
bel
53cab7e43c rename configs 2023-04-05 21:06:11 -06:00
bel
5062abdfc7 update v01.yaml for 4 players 2023-04-05 21:02:11 -06:00
bel
d80b73a052 FRIENDSHIP 2023-04-05 20:49:45 -06:00
bel
5d70ac0002 upgrade 2023-04-05 20:48:39 -06:00
bel
c2d2cda761 readme 2023-04-02 12:55:00 -06:00
bel
6eb6cdbd49 autostart discord with custom HOME and dont unset secret_sinks unless $PACTL_RESET=true 2023-04-02 12:54:24 -06:00
bel
70ca9d645a todo 2023-04-02 12:36:52 -06:00
bel
5fff9525e0 OK WE PASSING ISH 2023-04-02 12:35:54 -06:00
bel
fd31ede89e todo 2023-04-02 11:50:43 -06:00
bel
3b9437fc9c ok so i dont need to share screen BUT i need to get audio from TTS to stream so maybe obs indeed 2023-04-02 11:49:06 -06:00
bel
78b00ac62a less sudo and 2 virtual devices 2023-04-02 11:40:10 -06:00
bel
42212e3d10 manual run reveals sharing fullscreen does NOT capture audio so i gotta be more verbose with user messages i guess 2023-04-02 10:50:56 -06:00
bel
b2742b3631 git pull 2023-04-02 09:49:12 -06:00
bel
cc3e3f87fc retain a static v01.yaml 2023-04-02 09:48:55 -06:00
bel
3ce34e20bb add comments and start to v01 2023-04-02 09:48:12 -06:00
bel
495861c261 oops need start button oof 2023-04-02 09:41:58 -06:00
26 changed files with 273 additions and 87 deletions

View File

@@ -40,11 +40,3 @@ See `./config.d/rusty-pipe.d`
## Game Playing
Foreground
#### Discord
Yep
#### Dolphin
Yep

View File

@@ -0,0 +1,3 @@
#! /bin/bash
curl -sS http://mp.home.blapointe.com:17071/gm/rpc/elect

View File

@@ -1,11 +1,14 @@
export DEBUG=true
export MAIN_INTERVAL_DURATION=5ms
export RAW_UDP=17070
export PARSE_V01=true
export V01_CONFIG=./config.d/mayhem-party.d/v01.yaml
cp ./config.d/mayhem-party.d/v01{"",-live}.yaml
export V01_CONFIG=./config.d/mayhem-party.d/v01-live.yaml
export WRAP_REFRESH_ON_SIGUSR1=true
export OUTPUT_KEYBOARD=false
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

View File

@@ -0,0 +1,7 @@
#! /bin/bash
curl \
-X POST \
-i -sS \
http://mp.home.blapointe.com:17071/gm/rpc/fillNonPlayerAliases \
-d "[$(cat ./hotwords.txt | tr '\n' ' ')]"

View File

@@ -0,0 +1,18 @@
mario
luigi
peach
daisy
wario
waluigi
bowser
junior
koopa
shyguy
boo
toad
toadette
coin
star
minigame
win
lose

View File

@@ -0,0 +1,7 @@
#! /bin/bash
set -e
bash ./shuffle.sh
bash ./fill.sh
bash ./players.sh

View File

@@ -0,0 +1,2 @@
#! /bin/bash
curl -sS -i http://mp.home.blapointe.com:17071/

View File

@@ -0,0 +1,3 @@
#! /bin/bash
curl -sS -i http://mp.home.blapointe.com:17071/gm/rpc/shuffle
bash ./players.sh

View File

@@ -0,0 +1,56 @@
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"

View File

@@ -1,41 +1,56 @@
feedback:
addr: :17071
ttsurl: http://localhost:15002
users:
bel:
meta:
lasttsms: 1680371007738
lastlag: 0
state:
player: 1
message: ""
gm:
alias: ""
lastalias: ""
vote: ""
zach:
meta:
lasttsms: 1679978514018
lastlag: 0
state:
player: 0
message: ""
gm:
alias: ""
lastalias: ""
vote: ""
users: {}
players:
- transformation:
"1": "5"
"2": "6"
"3": "7"
"4": "8"
a: f
d: h
e: "y"
q: r
s: g
w: t
"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: ""
message: "#early access"

View File

@@ -22,6 +22,7 @@ streams:
b: '2'
x: '3'
y: '4'
start: '5'
output:
debug: false
engine:

View File

@@ -22,6 +22,7 @@ streams:
b: '2'
x: '3'
y: '4'
start: '5'
output:
debug: false
engine:

View File

@@ -22,6 +22,7 @@ streams:
b: '2'
x: '3'
y: '4'
start: '5'
output:
debug: false
engine:

View File

@@ -22,6 +22,7 @@ streams:
b: '2'
x: '3'
y: '4'
start: '5'
output:
debug: false
engine:

View File

@@ -22,6 +22,7 @@ streams:
b: '2'
x: '3'
y: '4'
start: '5'
output:
debug: false
engine:

View File

@@ -0,0 +1,16 @@
#! /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"

View File

@@ -0,0 +1,20 @@
#! /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"/*

View File

@@ -22,6 +22,7 @@ streams:
b: '2'
x: '3'
y: '4'
start: '5'
output:
debug: false
engine:

View File

@@ -0,0 +1 @@
../../../rusty-pipe.d/target/release/rusty-pipe

View File

@@ -0,0 +1 @@
../../../rusty-pipe.d/target/x86_64-pc-windows-gnu/release/rusty-pipe-signed.exe

View File

@@ -22,6 +22,7 @@ streams:
b: '2'
x: '3'
y: '4'
start: '5'
output:
debug: false
engine:

View File

@@ -36,11 +36,22 @@ log() {
}
_discord() {
read -p "pls start discord"
(
export HOME="$PWD/mnt.d/discord.d"
if ! snap list discord; then
sudo snap install discord
fi
(
snap run discord
) &> /tmp/mayhem-party.discord.log &
disown
)
}
_dolphin() {
echo
read -p "pls start dolphin"
echo
}
_mayhem_party() {
@@ -81,31 +92,39 @@ _stt() {
| awk "{print \$NF}" \
| head -n 1
)
(
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
for i in $(pactl list short modules | grep secret | cut -f1); do
pactl unload-module $i
done
name='my_secret_sink'
if ! pactl list | grep -q $name; then
pactl load-module module-null-sink sink_name=$name channels=1
pactl load-module module-remap-source master=$name.monitor source_name=shared-$name source_properties="device.description=shared-$name" #channels=1
mic_name="$(pactl list | grep -A 100 Name:.$name.monitor | grep device.description.=. | head -n 1 | sed 's/.* = //' | tr -d '"') Monitor"
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
read -p "pavucontrol to change input to $mic_name, ok? "
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.yaml@.users[].state.gm.alias
export HOTWORDS=../../config.d/mayhem-party.d/v01-live.yaml@.users[].state.gm.alias
export MIC_TIMEOUT=2
export URL=http://localhost:17071/gm/rpc/broadcastSomeoneSaidAlias?message={{hotword}}
export HEADERS=say="Eye herd {{hotword}}"

View File

@@ -1,21 +1,9 @@
todo:
- trigger a vote
- trigger an election
- trigger a shuffle for init
- assign aliases
- display vote progress
- 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
- 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
scheduled: []
done:
- todo: sticky keyboard input mode for enable/disable explicitly
@@ -175,3 +163,31 @@ done:
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