Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - exkalibr

Stran: [1] 2 3 ... 27
1
Vývoj / Re:Skript pro míchání zvuků a mikrofonu v Audacity
« kdy: 14. 12. 2025, 11:16:49 »
Dodal jsem to GPT po krokách:
$ pactl list short sources
133   alsa_output.pci-0000_00_1b.0.pro-output-0.monitor   PipeWire   s32le 2 ch 48000 Hz   SUSPENDED
134   alsa_output.pci-0000_00_1b.0.pro-output-3.monitor   PipeWire   s32le 8 ch 48000 Hz   SUSPENDED
135   alsa_input.pci-0000_00_1b.0.pro-input-0   PipeWire   s32le 2 ch 48000 Hz   RUNNING
user@Toshi:~/Bash$ pactl list short sinks
133   alsa_output.pci-0000_00_1b.0.pro-output-0   PipeWire   s32le 2 ch 48000 Hz   SUSPENDED
134   alsa_output.pci-0000_00_1b.0.pro-output-3   PipeWire   s32le 8 ch 48000 Hz   SUSPENDED

plus případné chybové hlášky.

Když se to spustí:
$ ./pulse-zeslab.sh
Fyzický výstup (selected): alsa_output.pci-0000_00_1b.0.pro-output-0
Mikrofon (selected): alsa_input.pci-0000_00_1b.0.pro-input-0
alsa_output.pci-0000_00_1b.0.pro-output-0.monitor
Odstraňuji předchozí modul-loopback / MixSink / MixSource (pokud existují)...
Null-sink MixSink existuje (nebudu znovu vytvářet).
MixSink index: <unknown>
Vytvářím loopback: alsa_input.pci-0000_00_1b.0.pro-input-0
alsa_output.pci-0000_00_1b.0.pro-output-0.monitor -> MixSink ...
Record loop module id: 536870913
Spuštěn temporary parec pid=2150404
Poznámka: record sink-input zatím nevznikl (Audacity při spuštění nahrávání ho probudí).
Vytvářím monitor loopback: alsa_input.pci-0000_00_1b.0.pro-input-0
alsa_output.pci-0000_00_1b.0.pro-output-0.monitor -> alsa_output.pci-0000_00_1b.0.pro-output-0 (attenuated monitoring)...
Monitor loop module id: 536870914
Poznámka: monitor sink-input nevznikl — probuď mic nahráváním v Audacity a pak spusť 'pactl list short sink-inputs' pro nastavení.
Virtual source MixSource již existuje.
Virtual source index: <unknown>

HOTOVO: Audacity vyber zdroj 'MixSource' (Mix of system apps + mic at full volume).
Pro zahrnutí VLC do záznamu: přesuň jeho sink-input do MixSink nebo duplikuj fyzický monitor do MixSink.


V Pavucntrol nahrávání vidím že tam vznikly dva loopbacky pro vstup.
Na vstupní kartě vidím Build in Audio pro jak kdyby tam běžel nějaký šum nebo co. Mám sice zapojený mic ale tento indikátor "Ticho" nereaguje pokud mluvím, takže asi šum - ale toto tam vlastně vidím defaultně i po restartu pulse.

Ale nejde to audacity spustit nebo to krachuje, musím opravit zvuk, vše vrátit jinak audacity ani nespustím.

2
Vývoj / Skript pro míchání zvuků a mikrofonu v Audacity
« kdy: 14. 12. 2025, 09:50:46 »
Dobrý den,
snažil jsem se včera, a dnes ráno rozjet skript, protože chci v audacity zaznamenat svůj rozhovor s GPT. Ale marně, nepodařilo se mi to. Včera se mi akorád povedlo slyšet svůj hlas ve sluchátkách a donutit GPT, aby dal příkaz jak to zeslabit na cca 42%. Nahrával se zvuk z přehrávané písničky ve vlc ale písničku jsem neslyšel během toho aktuálního přehrávání přes vlc. Myslím nefungovaly nahlas ty systémové zvuky abych to slyšel ve sluchátkách. A můj hlas se nepovedlo nahrát.

Mám Mint 21.3 xFce.
 
Skript co jsem od něho dostal:
Kód: [Vybrat]
#!/usr/bin/env bash
set -euo pipefail

# ====== CONFIG ======
MIC_PATTERN='input'              # pattern (lowercase) který hledá v 2. sloupci sources
NULL_SINK_NAME='MixSink'         # null-sink pro nahrávání (mix)
VIRTUAL_SRC_NAME='MixSource'     # virtuální zdroj pro Audacity (monitor null-sinku)
MONITOR_ATTEN='42%'              # poslechová hlasitost mikrofonu pro sluchátka
ACTIVATE_TRIES=60                # kolikrát čekat na vznik sink-input (0.1s krok)
SLEEP_STEP=0.1

# ====== helper ======
cmd_exists() { command -v "$1" >/dev/null 2>&1; }

# ====== najdi fyzický sink (prefer RUNNING, jinak první) ======
DEFAULT_SINK=$(pactl list short sinks \
  | sed -E 's/[[:space:]]+/ /g' \
  | awk '{
      if($4=="RUNNING" && !found){ print $2; found=1; next }
      if(!first) first=$2
    }
    END{ if(!found) print first }' \
  || true)

if [ -z "$DEFAULT_SINK" ]; then
  echo "Nelze zjistit fyzický sink." >&2
  exit 1
fi

# ====== najdi mikrofon (preferuj sources, 2. sloupec obsahuje 'input') ======
MIC_SRC=$(pactl list short sources \
  | sed -E 's/[[:space:]]+/ /g' \
  | awk -v pat="$MIC_PATTERN" 'BEGIN{lc_pat=tolower(pat)}
      {
        s=tolower($2)
        if(s ~ lc_pat){ print $2; exit }
        if(!first) first=$2
      }
      END{ if(NR>0 && !found) print first }' \
  || true)

if [ -z "$MIC_SRC" ]; then
  echo "Nenalezen source mikrofonu (pattern: $MIC_PATTERN)." >&2
  exit 1
fi

echo "Fyzický výstup (selected): $DEFAULT_SINK"
echo "Mikrofon (selected): $MIC_SRC"

# ====== cleanup předchozích modulů vztahujících se k našim jménům / mic ======
echo "Odstraňuji předchozí modul-loopback / MixSink / MixSource (pokud existují)..."
pactl list short modules | while read -r id name rest; do
  if [ "$name" = "module-loopback" ] && echo "$rest" | grep -q -F "$MIC_SRC"; then
    echo "  unload-module $id (loopback referející mic)"
    pactl unload-module "$id" || true
  elif echo "$rest" | grep -q -F "$NULL_SINK_NAME"; then
    echo "  unload-module $id (referuje $NULL_SINK_NAME)"
    pactl unload-module "$id" || true
  elif echo "$rest" | grep -q -F "$VIRTUAL_SRC_NAME"; then
    echo "  unload-module $id (referuje $VIRTUAL_SRC_NAME)"
    pactl unload-module "$id" || true
  fi
done

# také pro jistotu odpojit moduly přes přesný řetězec jména
pactl list short modules | awk -v n1="$NULL_SINK_NAME" -v n2="$VIRTUAL_SRC_NAME" '$0 ~ n1 || $0 ~ n2 {print $1}' \
  | xargs -r -n1 -I{} pactl unload-module {} >/dev/null 2>&1 || true

# ====== vytvoř null-sink MixSink pokud neexistuje ======
if pactl list short sinks | sed -E 's/[[:space:]]+/ /g' | awk -v n="$NULL_SINK_NAME" '$2==n{print; exit}' >/dev/null 2>&1; then
  echo "Null-sink $NULL_SINK_NAME existuje (nebudu znovu vytvářet)."
else
  echo "Vytvářím null-sink $NULL_SINK_NAME..."
  pactl load-module module-null-sink sink_name="$NULL_SINK_NAME" sink_properties=device.description="$NULL_SINK_NAME"
fi

NULL_SINK_IDX=$(pactl list short sinks | sed -E 's/[[:space:]]+/ /g' | awk -v n="$NULL_SINK_NAME" '$2==n{print $1; exit}' || true)
echo "MixSink index: ${NULL_SINK_IDX:-<unknown>}"

# ====== vytvoř loopback mikrofon -> MixSink (pro nahrávání Audacity) ======
echo "Vytvářím loopback: $MIC_SRC -> $NULL_SINK_NAME ..."
RECORD_LOOP_MOD=$(pactl load-module module-loopback source="$MIC_SRC" sink="$NULL_SINK_NAME" latency_msec=1 || true)
if [ -z "$RECORD_LOOP_MOD" ]; then
  echo "Chyba: nelze vytvořit record-loop." >&2
  exit 1
fi
echo "Record loop module id: $RECORD_LOOP_MOD"

# ====== probuď mic dočasným čtením (pokud dostupné) ======
ACT_PID=""
if cmd_exists parec; then
  parec -d "$MIC_SRC" >/dev/null 2>&1 &
  ACT_PID=$!
  echo "Spuštěn temporary parec pid=$ACT_PID"
elif cmd_exists pw-cat; then
  pw-cat -d "$MIC_SRC" >/dev/null 2>&1 &
  ACT_PID=$!
  echo "Spuštěn temporary pw-cat pid=$ACT_PID"
else
  echo "parec/pw-cat nenalezeny — pokud bude MIC SUSPENDED, nahrávání ho probudí."
fi

# ====== počkej na sink-input pro record loop (nezbytné pro případné nastavení) ======
REC_SINK_INPUT=""
for i in $(seq 1 $ACTIVATE_TRIES); do
  REC_SINK_INPUT=$(pactl list short sink-inputs | sed -E 's/[[:space:]]+/ /g' | awk -v m="$RECORD_LOOP_MOD" '$3==m{print $1; exit}' || true)
  if [ -n "$REC_SINK_INPUT" ]; then break; fi
  sleep "$SLEEP_STEP"
done

if [ -n "$REC_SINK_INPUT" ]; then
  echo "Record sink-input id: $REC_SINK_INPUT"
else
  echo "Poznámka: record sink-input zatím nevznikl (Audacity při spuštění nahrávání ho probudí)."
fi

# ====== vytvoř monitorovací loopback: mic -> fyzický sink (pro poslech), a ztlum jej ======
echo "Vytvářím monitor loopback: $MIC_SRC -> $DEFAULT_SINK (attenuated monitoring)..."
MON_LOOP_MOD=$(pactl load-module module-loopback source="$MIC_SRC" sink="$DEFAULT_SINK" latency_msec=1 || true)
if [ -n "$MON_LOOP_MOD" ]; then
  echo "Monitor loop module id: $MON_LOOP_MOD"
  MON_SINK_INPUT=""
  for i in $(seq 1 $ACTIVATE_TRIES); do
    MON_SINK_INPUT=$(pactl list short sink-inputs | sed -E 's/[[:space:]]+/ /g' | awk -v m="$MON_LOOP_MOD" '$3==m{print $1; exit}' || true)
    if [ -n "$MON_SINK_INPUT" ]; then
      pactl set-sink-input-volume "$MON_SINK_INPUT" "$MONITOR_ATTEN"
      echo "Monitor sink-input $MON_SINK_INPUT nastavena na $MONITOR_ATTEN"
      break
    fi
    sleep "$SLEEP_STEP"
  done
  if [ -z "$MON_SINK_INPUT" ]; then
    echo "Poznámka: monitor sink-input nevznikl — probuď mic nahráváním v Audacity a pak spusť 'pactl list short sink-inputs' pro nastavení."
  fi
else
  echo "Nepodařilo se vytvořit monitor loopback." >&2
fi

# ====== vytvoř virtuální zdroj (monitor MixSink) pro Audacity ======
if pactl list short sources | sed -E 's/[[:space:]]+/ /g' | awk -v n="$VIRTUAL_SRC_NAME" '$2==n{print $2; exit}'; then
  echo "Virtual source $VIRTUAL_SRC_NAME již existuje."
else
  echo "Vytvářím virtual source $VIRTUAL_SRC_NAME z $NULL_SINK_NAME.monitor..."
  pactl load-module module-virtual-source source_name="$VIRTUAL_SRC_NAME" source_properties=device.description="$VIRTUAL_SRC_NAME" master="$NULL_SINK_NAME.monitor"
fi

VIRT_SRC_IDX=$(pactl list short sources | sed -E 's/[[:space:]]+/ /g' | awk -v n="$VIRTUAL_SRC_NAME" '$2==n{print $1; exit}' || true)
echo "Virtual source index: ${VIRT_SRC_IDX:-<unknown>}"

# ====== cleanup activator ======
if [ -n "${ACT_PID:-}" ]; then
  sleep 0.1
  kill "$ACT_PID" >/dev/null 2>&1 || true
fi

echo
echo "HOTOVO: Audacity vyber zdroj '$VIRTUAL_SRC_NAME' (Mix of system apps + mic at full volume)."
echo "Pro zahrnutí VLC do záznamu: přesuň jeho sink-input do $NULL_SINK_NAME nebo duplikuj fyzický monitor do MixSink."

Skript pro unload
Kód: [Vybrat]
#!/usr/bin/env bash
set -euo pipefail

# ===== Nastavení =====
VIRTUAL_SRC_NAME='MixSource'   # virtuální zdroj pro Audacity
NULL_SINK_NAME='MixSink'       # null-sink pro smíchání zvuků

# ===== Odpojit všechny loopback moduly =====
echo "Odpojuji všechny loopbacky..."
while IFS= read -r id; do
    if pactl unload-module "$id"; then
        echo "Odpojen loopback modul $id"
    else
        echo "Chyba při odpojování loopback modulu $id" >&2
    fi
done < <(pactl list short modules | awk '/module-loopback/ {print $1}')

# ===== Odstranit virtuální zdroj =====
if pactl list short sources | awk '{print $2}' | grep -Fxq "$VIRTUAL_SRC_NAME"; then
    echo "Odstraňuji virtuální zdroj '$VIRTUAL_SRC_NAME'..."
    MODULE_ID=$(pactl list short modules | awk -v src="$VIRTUAL_SRC_NAME" '$0 ~ src {print $1; exit}')
    if [ -n "$MODULE_ID" ]; then
        pactl unload-module "$MODULE_ID" && echo "Odpojen virtuální zdroj '$VIRTUAL_SRC_NAME'"
    fi
fi

# ===== Odstranit null-sink =====
if pactl list short sinks | awk '{print $2}' | grep -Fxq "$NULL_SINK_NAME"; then
    echo "Odstraňuji null-sink '$NULL_SINK_NAME'..."
    MODULE_ID=$(pactl list short modules | awk -v sink="$NULL_SINK_NAME" '$0 ~ sink {print $1; exit}')
    if [ -n "$MODULE_ID" ]; then
        pactl unload-module "$MODULE_ID" && echo "Odpojen null-sink '$NULL_SINK_NAME'"
    fi
fi

echo "Hotovo. Všechny loopbacky, virtuální zdroje a null-sinky odstraněny."

A protože přestaly fungovat zvuky - přehrávání, tak je ještě třeba to opravit
Kód: [Vybrat]
systemctl --user restart pipewire pipewire-pulse wireplumber || systemctl --user restart pipewire pipewire-pulse pulseaudio || true

Pomůžete mi s tím prosím?

3
O serveru Root.cz / Re:Dva dotazy k forum root
« kdy: 04. 12. 2024, 13:35:06 »
Nabízím práci
"Pracovní inzeráty hledající zaměstnance. Vkládání pracovních nabídek je zpoplatněno."
a "Nabízím zakázku" zpoplatněné není? V popisu je "Poptávky po provedení komerční zakázky."
Já měl na mysli - jméno účtu pro mě by se rovnalo jméno názvu mé značky (ale jako fyzická osoba nemám podnik). A vložený inzerát by mohl znít: Hledám práci...

Ale mě to přijde divné že to není roztříděné. No asi spíš zajdu na jiný portál to bude mít větší smysl.

4
O serveru Root.cz / Re:Dva dotazy k forum root
« kdy: 04. 12. 2024, 12:40:42 »
Nějaké portály zaměřené přímo na grafiku?

5
O serveru Root.cz / Dva dotazy k forum root
« kdy: 04. 12. 2024, 12:19:36 »
Chci se zeptat jestli si můžu udělat ještě jeden účet nebo je to proti pravidlům (pravidla jsou kde?). Zřídil bych si účet pod jménem pod jakým budu propagovat svou značku ale jako fyzická osoba.

Druhá záležitost se týká těch zakázek. Všechno to tu je orientované na HW nebo SW, ale chtělo by to - respektive, dle mého názoru by bylo dobré kdyby bylo možné roztřídit ty poptávky a nabídky podle oboru: Např. čistě Programování nebo čistě Grafika. Grafiku tu moc nevidím. Nebo možná Programování, www celkově a grafika zvlášť... Takže nemyslím grafiku jako GPU.

6
Odkladiště / Re:Webdesign - funkcia vs forma
« kdy: 04. 12. 2024, 12:15:55 »
Ale jo jsou problémy na této stránce , na programujte nebo na webnode, tady to ale ještě jde. Vyhovět všem asi nejde, je to dost něco jiného když někdo přistupuje z PC a někdo zas z mobilu.

7
kvm ok není v repozitáři apt
a proč tak složitě?
https://help.ubuntu.com/community/KVM/Installation
Na co kvm??? Nechápu. Vždyť stačí příkaz
$ egrep -c '(vmx|svm)' /proc/cpuinfo
0
If 0 it means that your CPU doesn't support hardware virtualization.
If 1 or more it does - but you still need to make sure that virtualization is enabled in the BIOS.

Já ani nechci instalovat další programy, pravděpodobně by to zase jen zpomalilo systém.

8
Díky za rešeršé. Tak se dívám na nastavení Relace a spouštění - Automatické spouštění:
A zdá se, že se tam dá více věcí vypnout. Jako tiskárnu nepoužívám. Aktualizace uživatelských složek - nechápu na co...
AT-SPI bus - nevím co to je.
Blueberry asi nepoužívám.
Bluetooth agent... nepoužívám Bluetooth.
Geoclue demo agent - ten by neměl být aktivován, to jsem odinstaloval, ale je aktivované.
Mint welcome je aktivovaný - ale ve skutečnosti se mi nic nezobrazuje po startu.
Tracker File System Miner - to jsem trvale vypnul - ale taky je zaškrtnutý.

Myslím že tu HW akceleraci jsem v minulosti zkoušel rozjet, a že to nešlo. To si pamatuju.

9
Zdravím,
zkoušel jsem už několikrát zastavit tyto služby a nikdy se mi to nepovedlo. Dočasně pracuji na VM a každý proces na víc mi dost zpomaluje PC hlavně při startu. Nevíte tedy jak je zastavit nejlépe trvale nebo tumbler i odinstalovat. Tumbler taky zpomaluje při otevírání souborů. Ale Thunar používám jen nechci aby běžel nějaký jeho proces v paměti (aby se spouštěl) když startuju PC (což jsou tak tři hodiny, protože na Win XP s 3.5GB RAM jsem rád, že to vůbec najede).

10
Desktop / Re:Nastavení Grubu na Mint 21.3 Virginia (Xfce)
« kdy: 16. 09. 2024, 22:46:35 »
JJ,
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

11
Desktop / Re:Nastavení Grubu na Mint 21.3 Virginia (Xfce)
« kdy: 16. 09. 2024, 12:45:39 »
Asi to bylo že jsem zmáčknul klávesu během té nabídky proč to nenajelo.

/etc/default/grub.d
$ ls
init-select.cfg  50_linuxmint.cfg

Ten konfigurák jsem stále nenašel.

12
Desktop / Nastavení Grubu na Mint 21.3 Virginia (Xfce)
« kdy: 14. 09. 2024, 07:47:06 »
Dočasně provozuji linux na VM kde byl Mint 20 a udělal jsem upgrade na 21.3. Jenže co jsem dnes zjistil, že po zapnutí VM a spuštění PC (čekal jsem hodinu) grub automaticky nenajel. Tak jsem se chtěl podívat do konfiguráku jestli tam je aktivní automatické najíždění a časovač, ale našel jsem tam jen tunu sraček... samé funkce if else fi, prase aby se v tom vyznalo. Tak se chci zeptat jak ta konfigurace funguje protože já se v tom nevyznám.

13
No jenže něco chybí a stránka nechce posílat ty správné data. Takže musím zkusit ty hlavičky. Takže si myslím že tam jde o souhlas s GDP nebo něco podobného, aby věděli že jsem přijal js, mám ho uložený nebo něco podobného.

14
Respektive jsem zjistil, že stránka mi procházet jde (tedy i stahovat stránky na odkazech), i když jsem v prohlížeči nepotvrdil to tlačítko se souhlasem, ale je tam přesto tato cookie:

cookie_consent_level:"%7B%22strictly-necessary%22%3Atrue%2C%22functionality%22%3Afalse%2C%22tracking%22%3Afalse%2C%22targeting%22%3Afalse%7D"

Možná by tedy stačilo jen přidat to mezi odesílané cookies, aby si server "myslel" že jsem ten js normálně načetl.

15


Je tam připojený js soubor asi ajax. A myslím, že je to tak zabalený že to nerozluští ani chatGPT, sice orientačně ví o čem to je, ale nevím jak odeslat ten souhlas ... a vyzvednout a uložit ty cookies co pošle.

Stran: [1] 2 3 ... 27