Compare commits
10 Commits
b8104380ca
...
ce7cbe1c9f
| Author | SHA1 | Date | |
|---|---|---|---|
| ce7cbe1c9f | |||
| fb7450d264 | |||
| 04c006937c | |||
| 7c24a1e1d1 | |||
| 4c99342a0e | |||
| bf0809fa86 | |||
| 8744bb65d4 | |||
| 5fb9020f79 | |||
| f9e41163ec | |||
| 54e98e568e |
@@ -0,0 +1,7 @@
|
|||||||
|
dnf update
|
||||||
|
dnf upgrade
|
||||||
|
./tree_cpy /svr/usr
|
||||||
|
./config.sh
|
||||||
|
|
||||||
|
dnf install nvim
|
||||||
|
dnf install vim
|
||||||
|
|||||||
+1
-1
@@ -16,7 +16,7 @@ src="$(readlink -f "$src")"
|
|||||||
|
|
||||||
find "$src" -type f | while IFS= read -r f; do
|
find "$src" -type f | while IFS= read -r f; do
|
||||||
rel="${f#$src/}"
|
rel="${f#$src/}"
|
||||||
target="$dst/$rel"
|
target="$dst$rel"
|
||||||
|
|
||||||
# ensure parent dir exists (but never replace dirs)
|
# ensure parent dir exists (but never replace dirs)
|
||||||
mkdir -p "$(dirname "$target")"
|
mkdir -p "$(dirname "$target")"
|
||||||
|
|||||||
Executable
+25
@@ -0,0 +1,25 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
if [ "$#" -lt 1 ] || [ "$#" -gt 3 ]; then
|
||||||
|
echo "Usage: $0 arg1 [arg2] [arg3]"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# interactive session check
|
||||||
|
if [ -t 0 ]; then
|
||||||
|
echo -n "Delete existing output files? [y/N]: "
|
||||||
|
read ans
|
||||||
|
case "$ans" in
|
||||||
|
y|Y) rm -f *.school ;;
|
||||||
|
*) echo "Aborted"; exit 0 ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
# process input file
|
||||||
|
while IFS= read -r line; do
|
||||||
|
new_f="${line%.*}.school"
|
||||||
|
f > "$new_f"
|
||||||
|
done < "$FILE"
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
+5
-1
@@ -1,7 +1,11 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
import os
|
||||||
|
try:
|
||||||
|
from atproto import Client
|
||||||
|
except ImportError:
|
||||||
|
os.system("pip3 install atproto")
|
||||||
from atproto import Client
|
from atproto import Client
|
||||||
import argparse
|
import argparse
|
||||||
import os
|
|
||||||
|
|
||||||
DEFAULT_DOMAIN = "bsky.social"
|
DEFAULT_DOMAIN = "bsky.social"
|
||||||
DEFAULT_NAME = "ni-bot"
|
DEFAULT_NAME = "ni-bot"
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
|
import subprocess
|
||||||
from bscon import connect
|
from bscon import connect
|
||||||
from bsdlprofile import TMP_DIR
|
from bsdlprofile import TMP_DIR
|
||||||
import os
|
import os
|
||||||
|
|||||||
Executable
+70
@@ -0,0 +1,70 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import argparse
|
||||||
|
pusher = {
|
||||||
|
'A': {'A': '20+', 'K': '20+', 'Q': '20+', 'J': '20+', 'T': '20+', '9': '20+', '8': '20+', '7': '20+', '6': '20+', '5': '20+', '4': '20+', '3': '20+', '2': '20+'},
|
||||||
|
'K': {'A': '20+', 'K': '20+', 'Q': '20+', 'J': '20+', 'T': '20+', '9': '20+', '8': '20+', '7': '20+', '6': '20+', '5': '20+', '4': '20+', '3': '19.9', '2': '19.3'},
|
||||||
|
'Q': {'A': '20+', 'K': '20+', 'Q': '20+', 'J': '20+', 'T': '20+', '9': '20+', '8': '20+', '7': '20+', '6': '20+', '5': '20+', '4': '16.3', '3': '13.5', '2': '12.7'},
|
||||||
|
'J': {'A': '20+', 'K': '20+', 'Q': '20+', 'J': '20+', 'T': '20+', '9': '20+', '8': '20+', '7': '20+', '6': '18.6', '5': '14.7', '4': '13.5', '3': '10.6', '2': '8.5'},
|
||||||
|
'T': {'A': '20+', 'K': '20+', 'Q': '20+', 'J': '20+', 'T': '20+', '9': '20+', '8': '20+', '7': '20+', '6': '20+', '5': '11.9', '4': '10.5', '3': '7.7', '2': '6.5'},
|
||||||
|
'9': {'A': '20+', 'K': '20+', 'Q': '20+', 'J': '20+', 'T': '20+', '9': '20+', '8': '20+', '7': '20+', '6': '20+', '5': '14.4', '4': '6.9', '3': '4.9', '2': '3.7'},
|
||||||
|
'8': {'A': '20+', 'K': '18.0', 'Q': '13.0', 'J': '13.3', 'T': '17.5', '9': '20+', '8': '20+', '7': '20+', '6': '20+', '5': '18.8', '4': '10.1', '3': '2.7', '2': '2.5'},
|
||||||
|
'7': {'A': '20+', 'K': '16.1', 'Q': '10.3', 'J': '8.5', 'T': '9.0', '9': '10.8', '8': '14.7', '7': '20+', '6': '20+', '5': '20+', '4': '13.9', '3': '2.5', '2': '2.1'},
|
||||||
|
'6': {'A': '20+', 'K': '15.1', 'Q': '9.6', 'J': '6.5', 'T': '5.7', '9': '5.2', '8': '7.0', '7': '10.7', '6': '20+', '5': '20+', '4': '16.3', '3': '2.5', '2': '2.0'},
|
||||||
|
'5': {'A': '20+', 'K': '14.2', 'Q': '8.9', 'J': '6.0', 'T': '4.1', '9': '3.5', '8': '3.0', '7': '2.6', '6': '2.4', '5': '20+', '4': '20+', '3': '2.2', '2': '2.0'},
|
||||||
|
'4': {'A': '20+', 'K': '13.1', 'Q': '7.9', 'J': '5.4', 'T': '3.8', '9': '2.7', '8': '2.3', '7': '2.1', '6': '2.0', '5': '2.1', '4': '20+', '3': '1.8', '2': '1.8'},
|
||||||
|
'3': {'A': '20+', 'K': '12.2', 'Q': '7.5', 'J': '5.0', 'T': '3.4', '9': '2.5', '8': '1.9', '7': '1.8', '6': '1.7', '5': '1.8', '4': '1.6', '3': '20+', '2': '1.7'},
|
||||||
|
'2': {'A': '20+', 'K': '11.6', 'Q': '7.0', 'J': '4.6', 'T': '2.9', '9': '2.2', '8': '1.8', '7': '1.6', '6': '1.5', '5': '1.5', '4': '1.4', '3': '1.4', '2': '20+'},
|
||||||
|
}
|
||||||
|
|
||||||
|
caller = {
|
||||||
|
'A': {'A': '20+', 'K': '20+', 'Q': '20+', 'J': '20+', 'T': '20+', '9': '20+', '8': '20+', '7': '20+', '6': '20+', '5': '20+', '4': '20+', '3': '20+', '2': '20+'},
|
||||||
|
'K': {'A': '20+', 'K': '20+', 'Q': '20+', 'J': '20+', 'T': '20+', '9': '20+', '8': '17.6', '7': '15.2', '6': '14.3', '5': '13.2', '4': '12.1', '3': '11.4', '2': '10.7'},
|
||||||
|
'Q': {'A': '20+', 'K': '20+', 'Q': '20+', 'J': '20+', 'T': '20+', '9': '16.1', '8': '13.0', '7': '10.5', '6': '9.9', '5': '8.9', '4': '8.4', '3': '7.8', '2': '7.2'},
|
||||||
|
'J': {'A': '20+', 'K': '20+', 'Q': '19.5', 'J': '20+', 'T': '18.0', '9': '13.4', '8': '10.6', '7': '8.8', '6': '7.0', '5': '6.9', '4': '6.1', '3': '5.8', '2': '5.6'},
|
||||||
|
'T': {'A': '20+', 'K': '20+', 'Q': '15.3', 'J': '12.7', 'T': '20+', '9': '11.5', '8': '9.3', '7': '7.4', '6': '6.3', '5': '5.2', '4': '5.2', '3': '4.8', '2': '4.5'},
|
||||||
|
'9': {'A': '20+', 'K': '17.1', 'Q': '11.7', 'J': '9.5', 'T': '8.4', '9': '20+', '8': '8.2', '7': '7.0', '6': '5.8', '5': '5.0', '4': '4.3', '3': '4.1', '2': '3.9'},
|
||||||
|
'8': {'A': '20+', 'K': '13.8', 'Q': '9.7', 'J': '7.6', 'T': '6.6', '9': '6.0', '8': '20+', '7': '6.5', '6': '5.6', '5': '4.8', '4': '4.1', '3': '3.6', '2': '3.5'},
|
||||||
|
'7': {'A': '20+', 'K': '12.4', 'Q': '8.0', 'J': '6.4', 'T': '5.5', '9': '5.0', '8': '4.7', '7': '20+', '6': '5.4', '5': '4.8', '4': '4.1', '3': '3.6', '2': '3.3'},
|
||||||
|
'6': {'A': '20+', 'K': '11.0', 'Q': '7.3', 'J': '5.4', 'T': '4.6', '9': '4.2', '8': '4.1', '7': '4.0', '6': '20+', '5': '4.9', '4': '4.3', '3': '3.8', '2': '3.3'},
|
||||||
|
'5': {'A': '20+', 'K': '10.2', 'Q': '6.8', 'J': '5.1', 'T': '4.0', '9': '3.7', '8': '3.6', '7': '3.6', '6': '3.7', '5': '20+', '4': '4.6', '3': '4.0', '2': '3.6'},
|
||||||
|
'4': {'A': '18.3', 'K': '9.1', 'Q': '6.2', 'J': '4.7', 'T': '3.8', '9': '3.3', '8': '3.2', '7': '3.2', '6': '3.3', '5': '3.5', '4': '20+', '3': '3.8', '2': '3.4'},
|
||||||
|
'3': {'A': '16.6', 'K': '8.7', 'Q': '5.9', 'J': '4.5', 'T': '3.6', '9': '3.1', '8': '2.9', '7': '2.9', '6': '2.9', '5': '3.1', '4': '3.0', '3': '20+', '2': '3.3'},
|
||||||
|
'2': {'A': '15.8', 'K': '8.1', 'Q': '5.6', 'J': '4.2', 'T': '3.5', '9': '3.0', '8': '2.8', '7': '2.6', '6': '2.7', '5': '2.8', '4': '2.7', '3': '2.6', '2': '15.0'},
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
parser = argparse.ArgumentParser(description="Poker hand coefficient and Nash calling info.")
|
||||||
|
|
||||||
|
#parser.add_argument("cards", type=str, help="ex:AK")
|
||||||
|
parser.add_argument("--cards", "-c", type=str, help="ex:AK")
|
||||||
|
args = parser.parse_args()
|
||||||
|
cards = args.cards
|
||||||
|
try:
|
||||||
|
cards[2]
|
||||||
|
except IndexError:
|
||||||
|
cards = cards + 'o'
|
||||||
|
print("pusher: " + get_pusher(cards[0].upper(), cards[1].upper(), cards[2] == 's'))
|
||||||
|
print("caller: " + get_call(cards[0].upper(), cards[1].upper(), cards[2] == 's'))
|
||||||
|
|
||||||
|
def get_call(card1, card2, suited):
|
||||||
|
if suited:
|
||||||
|
if card1 < card2:
|
||||||
|
card1, card2 = card2, card1
|
||||||
|
else:
|
||||||
|
if card1 > card2:
|
||||||
|
card1, card2 = card2, card1
|
||||||
|
return caller[card1][card2]
|
||||||
|
|
||||||
|
def get_pusher(card1, card2, suited):
|
||||||
|
if suited:
|
||||||
|
if card1 < card2:
|
||||||
|
card1, card2 = card2, card1
|
||||||
|
else:
|
||||||
|
if card1 > card2:
|
||||||
|
card1, card2 = card2, card1
|
||||||
|
return pusher[card1][card2]
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
|
|
||||||
Executable
+39
@@ -0,0 +1,39 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import sys
|
||||||
|
import numpy as np
|
||||||
|
from PIL import Image
|
||||||
|
|
||||||
|
def depth_map(w, h):
|
||||||
|
# simple demo: circular bump
|
||||||
|
y, x = np.ogrid[:h, :w]
|
||||||
|
cx, cy = w // 2, h // 2
|
||||||
|
r = min(w, h) // 3
|
||||||
|
d = ((x - cx)**2 + (y - cy)**2) <= r*r
|
||||||
|
return d.astype(np.float32)
|
||||||
|
|
||||||
|
def stereogram(depth, pattern_w=64, max_shift=32):
|
||||||
|
h, w = depth.shape
|
||||||
|
img = np.random.randint(0, 256, (h, w), dtype=np.uint8)
|
||||||
|
|
||||||
|
for y in range(h):
|
||||||
|
for x in range(pattern_w, w):
|
||||||
|
z = depth[y, x]
|
||||||
|
shift = int(z * max_shift)
|
||||||
|
src = x - pattern_w + shift
|
||||||
|
if src >= 0:
|
||||||
|
img[y, x] = img[y, src]
|
||||||
|
return img
|
||||||
|
|
||||||
|
def main(argc, argv):
|
||||||
|
w = int(argv[1]) if argc > 1 else 600
|
||||||
|
h = int(argv[2]) if argc > 2 else 400
|
||||||
|
out = argv[3] if argc > 3 else "stereogram.png"
|
||||||
|
|
||||||
|
d = depth_map(w, h)
|
||||||
|
s = stereogram(d)
|
||||||
|
|
||||||
|
Image.fromarray(s).save(out)
|
||||||
|
print(out)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main(len(sys.argv), sys.argv)
|
||||||
Executable
+19
@@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ "$#" -ne 2 ]; then
|
||||||
|
echo "Usage: $0 <file> <column_number>"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
file="$1"
|
||||||
|
col="$2"
|
||||||
|
|
||||||
|
awk -v c="$col" '
|
||||||
|
{
|
||||||
|
if ($c ~ /^-?[0-9]+([.][0-9]+)?$/)
|
||||||
|
sum += $c
|
||||||
|
}
|
||||||
|
END {
|
||||||
|
print sum
|
||||||
|
}
|
||||||
|
' "$file"
|
||||||
Executable
+7
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
sudo usermod -a -G audio $USER
|
||||||
|
sudo dnf install git-core qjackctl gcc-c++ cabal-install
|
||||||
|
sudo dnf install supercollider
|
||||||
|
VERSION=$(git ls-remote https://github.com/musikinformatik/SuperDirt.git | grep tags | tail -n1 | awk -F/ '{print $NF})
|
||||||
|
echo run scland
|
||||||
|
echo paste: Quarks.checkForUpdates({Quarks.install("SuperDirt", "v1.7.4"); thisProcess.recompile()})
|
||||||
@@ -1,28 +1,20 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
set -euo pipefail
|
set -uo pipefail # drop -e
|
||||||
|
|
||||||
LIST=${1:-list}
|
LIST=${1:-list}
|
||||||
FILE=${2:-}
|
FILE=${2:-}
|
||||||
|
|
||||||
usage() {
|
[[ -z "$FILE" ]] && { echo "usage: $0 [wordlist] <zipfile>"; exit 1; }
|
||||||
echo "usage: $0 [wordlist] <zipfile>"
|
|
||||||
echo "default wordlist: ./list"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
[[ -z "$FILE" ]] && usage
|
|
||||||
[[ ! -f "$LIST" ]] && { echo "missing wordlist: $LIST"; exit 1; }
|
|
||||||
[[ ! -f "$FILE" ]] && { echo "missing zip: $FILE"; exit 1; }
|
|
||||||
|
|
||||||
i=0
|
i=0
|
||||||
|
|
||||||
while IFS= read -r line; do
|
while IFS= read -r line; do
|
||||||
((i++))
|
((i++))
|
||||||
|
|
||||||
(( i % 1000 == 0 )) && echo "$i tried..."
|
(( i % 1000 == 0 )) && echo "$i tried..."
|
||||||
|
|
||||||
if unzip -P "$line" -t "$FILE" >/dev/null 2>&1; then
|
unzip -P "$line" -t "$FILE" >/dev/null 2>&1
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
echo "FOUND: $line"
|
echo "FOUND: $line"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|||||||
+4
-1
@@ -13,7 +13,10 @@ LOG_CONN_DIR=/var/log/tcpd
|
|||||||
LOG_CONN=$LOG_CONN_DIR/lasts.log
|
LOG_CONN=$LOG_CONN_DIR/lasts.log
|
||||||
NET_STATUS=/tmp/status.txt
|
NET_STATUS=/tmp/status.txt
|
||||||
SSH=177
|
SSH=177
|
||||||
IAMUTOPIST=128.65.199.189
|
GITEA=83.228.210.97
|
||||||
|
REPRO=83.228.247.250
|
||||||
|
FAIRPOLL=128.65.199.13
|
||||||
|
|
||||||
|
|
||||||
JOURNAL_DIR=$HOME/journal
|
JOURNAL_DIR=$HOME/journal
|
||||||
PERSO_DIR=$HOME/perso
|
PERSO_DIR=$HOME/perso
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
var o, p;
|
||||||
|
o = [
|
||||||
|
Archive.prNew, IdentityDictionary.prNew, Array.prNew(32)
|
||||||
|
];
|
||||||
|
p = [
|
||||||
|
// Archive
|
||||||
|
0, [ dictionary: o[1] ],
|
||||||
|
// IdentityDictionary
|
||||||
|
1, [ array: o[2], size: 0,
|
||||||
|
proto: nil, parent: nil,
|
||||||
|
know: false ],
|
||||||
|
// Array
|
||||||
|
2, [ nil, nil, nil, nil,
|
||||||
|
nil, nil, nil, nil,
|
||||||
|
nil, nil, nil, nil,
|
||||||
|
nil, nil, nil, nil,
|
||||||
|
nil, nil, nil, nil,
|
||||||
|
nil, nil, nil, nil,
|
||||||
|
nil, nil, nil, nil,
|
||||||
|
nil, nil, nil, nil ]
|
||||||
|
];
|
||||||
|
prUnarchive(o,p);
|
||||||
Submodule usr/home/SuperCollider/downloaded-quarks/Dirt-Samples added at c74fc80f8d
+1
Submodule usr/home/SuperCollider/downloaded-quarks/SuperDirt added at adb0ed30a0
+1
Submodule usr/home/SuperCollider/downloaded-quarks/Vowel added at ab59caa870
+1
Submodule usr/home/SuperCollider/downloaded-quarks/quarks added at 0bc7e426ac
@@ -0,0 +1,8 @@
|
|||||||
|
includePaths:
|
||||||
|
- /home/pain/.local/share/SuperCollider/downloaded-quarks/Vowel
|
||||||
|
- /home/pain/.local/share/SuperCollider/downloaded-quarks/Dirt-Samples
|
||||||
|
- /home/pain/.local/share/SuperCollider/downloaded-quarks/SuperDirt
|
||||||
|
excludePaths:
|
||||||
|
[]
|
||||||
|
postInlineWarnings: false
|
||||||
|
excludeDefaultPaths: false
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
/*
|
||||||
|
This is an example startup file.
|
||||||
|
If you want to modify it, best copy it elsewhere to keep the git repository clean.
|
||||||
|
|
||||||
|
You can then load it by calling
|
||||||
|
"path/to/my/superdirt_startup.scd".load
|
||||||
|
from the supercollider startup file
|
||||||
|
|
||||||
|
The supercollider startup file is to be found in
|
||||||
|
Platform.userAppSupportDir +/+ "startup.scd",
|
||||||
|
or via the menu File > Open startup file
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
(
|
||||||
|
s.reboot { // server options are only updated on reboot
|
||||||
|
// configure the sound server: here you could add hardware specific options
|
||||||
|
// see http://doc.sccode.org/Classes/ServerOptions.html
|
||||||
|
s.options.numBuffers = 1024 * 256; // increase this if you need to load more samples
|
||||||
|
s.options.memSize = 8192 * 32; // increase this if you get "alloc failed" messages
|
||||||
|
s.options.numWireBufs = 2048; // increase this if you get "exceeded number of interconnect buffers" messages
|
||||||
|
s.options.maxNodes = 1024 * 32; // increase this if you are getting drop outs and the message "too many nodes"
|
||||||
|
s.options.numOutputBusChannels = 2; // set this to your hardware output channel size, if necessary
|
||||||
|
s.options.numInputBusChannels = 2; // set this to your hardware output channel size, if necessary
|
||||||
|
// boot the server and start SuperDirt
|
||||||
|
s.waitForBoot {
|
||||||
|
~dirt.stop; // stop any old ones, avoid duplicate dirt (if it is nil, this won't do anything)
|
||||||
|
~dirt = SuperDirt(2, s); // two output channels, increase if you want to pan across more channels
|
||||||
|
~dirt.loadSoundFiles; // load samples (path containing a wildcard can be passed in)
|
||||||
|
~dirt.loadSoundFiles("/home/pain/Music/tidal/sounds/samples/*"); // load samples (path containing a wildcard can be passed in)
|
||||||
|
// for example: ~dirt.loadSoundFiles("/Users/myUserName/Dirt/samples/*");
|
||||||
|
// s.sync; // optionally: wait for samples to be read
|
||||||
|
~dirt.start(57120, 0 ! 12); // start listening on port 57120, create two busses each sending audio to channel 0
|
||||||
|
SuperDirt.default = ~dirt; // make this instance available in sclang (optional)
|
||||||
|
|
||||||
|
// optional, needed for convenient access from sclang:
|
||||||
|
(
|
||||||
|
~d1 = ~dirt.orbits[0]; ~d2 = ~dirt.orbits[1]; ~d3 = ~dirt.orbits[2];
|
||||||
|
~d4 = ~dirt.orbits[3]; ~d5 = ~dirt.orbits[4]; ~d6 = ~dirt.orbits[5];
|
||||||
|
~d7 = ~dirt.orbits[6]; ~d8 = ~dirt.orbits[7]; ~d9 = ~dirt.orbits[8];
|
||||||
|
~d10 = ~dirt.orbits[9]; ~d11 = ~dirt.orbits[10]; ~d12 = ~dirt.orbits[11];
|
||||||
|
);
|
||||||
|
|
||||||
|
// directly below here, in your own copy of this file, you could add further code that you want to call on startup
|
||||||
|
// this makes sure the server and ~dirt are running
|
||||||
|
// you can keep this separate and make it easier to switch between setups
|
||||||
|
// by using "path/to/my/file.scd".load and if necessary commenting out different load statements
|
||||||
|
// ...
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
s.latency = 0.3; // increase this if you get "late" messages
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
);
|
||||||
|
|
||||||
Reference in New Issue
Block a user