AlsaMixerSound Bash Shell Betiği (alsaremixersound.sh)

Programlama ve Script dilleri konusunda bilgi paylaşım alanıdır.
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15600
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2708 kez
Teşekkür edildi: 5621 kez

AlsaMixerSound Bash Shell Betiği (alsaremixersound.sh)

Mesaj gönderen TRWE_2012 »

Merhabalar

Uzun bir zamandır yapmayı planladığım betik idi.Sonuç çok güzel oldu...

Resim
KOD İÇERİĞİ :

Kod: Tümünü seç

#!/usr/bin/env bash
# ================================================
# alsaremixersound.sh — amixer/alsamixer tabanlı ses yöneticisi
# Kullanım: ./alsaremixersound.sh [--artir] [--azalt] [--mute]
#            [--unmute] [--kart] [--kanallar] [--menu]
# ================================================

KANAL="Master"
ADIM=5

# ---------- Fonksiyonlar ----------

ses_artir() {
    amixer -q sset "$KANAL" "${ADIM}%+"
    echo "Ses artırıldı → $(ses_seviyesi)"
}

ses_azalt() {
    amixer -q sset "$KANAL" "${ADIM}%-"
    echo "Ses azaltıldı → $(ses_seviyesi)"
}

mute_yap() {
    amixer -q sset "$KANAL" mute
    echo "Ses kapatıldı (Mute) ✘"
}

unmute_yap() {
    amixer -q sset "$KANAL" unmute
    echo "Ses açıldı (Unmute) ✔"
}

ses_seviyesi() {
    amixer sget "$KANAL" | grep -o '[0-9]*%' | head -1
}

kart_goster() {
    echo "=== Aktif Ses Kartı ==="
    cat /proc/asound/card*/id 2>/dev/null | while read -r satir; do
        echo "  Kart: $satir"
    done
    echo "  Sürücü: $(aplay -l 2>/dev/null | grep 'card' | head -3)"
}

kanal_listesi() {
    echo "=== Kanal Listesi ==="
    amixer scontrols | sed 's/Simple mixer control /  /' | sed "s/'//g"
}

ana_menu() {
    while true; do
        clear
        echo "==============================="
        echo "   SES YÖNETİCİSİ"
        echo "   Seviye: $(ses_seviyesi)"
        echo "==============================="
        echo "  1) Ses Artır  (+${ADIM}%)"
        echo "  2) Ses Azalt  (-${ADIM}%)"
        echo "  3) Mute (Ses Kapat)"
        echo "  4) Unmute (Ses Aç)"
        echo "  5) Aktif Ses Kartını Göster"
        echo "  6) Kanal Listesi"
        echo "  0) Çıkış"
        echo "==============================="
        read -rp "Seçim: " secim
        case "$secim" in
            1) ses_artir ;;
            2) ses_azalt ;;
            3) mute_yap ;;
            4) unmute_yap ;;
            5) kart_goster ;;
            6) kanal_listesi ;;
            0) echo "Çıkılıyor..."; break ;;
            *) echo "Geçersiz seçim." ;;
        esac
        read -rp "Devam için Enter..." _
    done
}

# ---------- Argüman Ayrıştırıcı ----------

if [[ $# -eq 0 ]]; then
    ana_menu
else
    case "$1" in
        --artir)    ses_artir ;;
        --azalt)    ses_azalt ;;
        --mute)     mute_yap ;;
        --unmute)   unmute_yap ;;
        --kart)     kart_goster ;;
        --kanallar) kanal_listesi ;;
        --menu)     ana_menu ;;
        *)
            echo "Bilinmeyen argüman: $1"
            echo "Kullanım: $0 [--artir|--azalt|--mute|--unmute|--kart|--kanallar|--menu]"
            exit 1
            ;;
    esac
fi
Güle güle kullanın..
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15600
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2708 kez
Teşekkür edildi: 5621 kez

Re: AlsaMixerSound Bash Shell Betiği (alsaremixersound.sh)

Mesaj gönderen TRWE_2012 »

LXDE Menü'de Kullanmak İçin Oluşturduğum Linux Kısayolu = .desktop dosyası
Resim
İçeriği :

Kod: Tümünü seç

#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=true
Exec=bash '/home/linuxmaster/Belgeler/Bash SHELL BETİKLERİ/kodlanan betikler 2026/alsaremixersound.sh'
Name[tr]=AlsaRemixSound Control v1.0
Comment[tr]=Ses sistemini terminal'den kontrol etme
Name=AlsaRemixSound Control v1.0
Comment=Ses sistemini terminal'den kontrol etme
Icon=volume-knob
Siz burada yanlızca

Exec = ile Icon= tam yollarını kendinize göre ayarlayacaksınız...
Kullanıcı avatarı
bekobey
Byte2
Byte2
Mesajlar: 95
Kayıt: 09 Nis 2021, 09:48
cinsiyet: Erkek
Teşekkür etti: 202 kez
Teşekkür edildi: 105 kez

Re: AlsaMixerSound Bash Shell Betiği (alsaremixersound.sh)

Mesaj gönderen bekobey »

Eline sağlık, bir sorum olacak,
Bu betik sesi %100 den daha fazla artış sağlar mı?
Geçen gün online bir toplantı yapıyorduk, monitör hoparlöründen ses alınca çok zayıftı, sound booster diye bir program ile geçici bir çözüm buldum ama böyle kalıcı olanı daha iyi olurdu! :yupii:
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15600
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2708 kez
Teşekkür edildi: 5621 kez

Re: AlsaMixerSound Bash Shell Betiği (alsaremixersound.sh)

Mesaj gönderen TRWE_2012 »

bekobey yazdı: 15 Mar 2026, 18:21 Eline sağlık, bir sorum olacak,
Bu betik sesi %100 den daha fazla artış sağlar mı?
Geçen gün online bir toplantı yapıyorduk, monitör hoparlöründen ses alınca çok zayıftı, sound booster diye bir program ile geçici bir çözüm buldum ama böyle kalıcı olanı daha iyi olurdu! :yupii:
Öncelikle teşekkür ederim açtığım konuya riayet (katılım sağlama) ettiğiniz için...Sorunuza gelecek olursak bir araştırma yapayım kendi çapımda, ama sizden ricam donanım bilgilerinizi buraya yazarsanız.(kullandığınız dağıtım türüne göre) O zaman kesin bir betik kodlaması yapabilirim.Saygılarımla
Kullanıcı avatarı
Kayserilifatih
Exabyte1
Exabyte1
Mesajlar: 10256
Kayıt: 30 Ağu 2024, 20:48
cinsiyet: Erkek
Teşekkür etti: 963 kez
Teşekkür edildi: 7645 kez

Re: AlsaMixerSound Bash Shell Betiği (alsaremixersound.sh)

Mesaj gönderen Kayserilifatih »

Benim anlamadığım dalga şu yani bu yazdığın betik her linux makinede çalışmıyor da makine veya dağıtım mı seçiyor peki sen bunu hangi dağıtım için yaptın merak ettim.
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15600
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2708 kez
Teşekkür edildi: 5621 kez

Re: AlsaMixerSound Bash Shell Betiği (alsaremixersound.sh)

Mesaj gönderen TRWE_2012 »

Bash shell betikleri genel olarak dağıtımdan bağımsız çalışır. Ama "kesinlikle çalışır" demek biraz iddialı olur.Birkaç istisna var. Alpine Linux gibi minimal dağıtımlarda Bash varsayılan olarak gelmez, onun yerine sh kullanılır. Betik Bash'e özgü sözdizimi içeriyorsa orada tökezler. Bir de betik içinde paket yöneticisi komutu varsa , mesela apt install , Red Hat tabanlı sistemlerde bu komut tanınmaz, dnf veya yum kullanmak gerekir.

Bağımlılık meselesi de ayrı bir konudur. Betik amixer, smartctl gibi araçlara bağımlıysa bunların hedef sistemde yüklü olması şarttır. Yoksa Bash hatasız çalışır ama betik yine de işlevini tam yerine getiremez. Bash betikleri büyük çoğunlukta çalışır ama "her dağıtımda çalışır" yerine "Bash yüklü ve bağımlılıkları karşılanan her dağıtımda çalışır" demek daha doğru olur.

Makine seçmiyor, betik seçiyor,ikisi farklı şey.

Ben betiği Debian tabanlı Linux Mint üzerinde yazdım ve çalıştırdım, bunu zaten belirttim. "Bash yüklü ve bağımlılıkları karşılanan sistemlerde çalışır" dedim.Farkı şöyle açıklayayım: Dizel motorla çalışan araç benzin istasyonunda ne işi var? Çalışmaz. Araç mı bozuk? .Hayır,yakıt uyumsuzluğu var. Betiğin Bash gerektirmesi de aynı mantık.Debian, Ubuntu, Linux Mint, Fedora, Red Hat gibi dağıtımlar da bash yüklüyse ve alsa-utils kuruluysa çalışır. Minimal dağıtımlar için uyarlama gerekir, bu da beş dakikalık iş.
Kullanıcı avatarı
Kayserilifatih
Exabyte1
Exabyte1
Mesajlar: 10256
Kayıt: 30 Ağu 2024, 20:48
cinsiyet: Erkek
Teşekkür etti: 963 kez
Teşekkür edildi: 7645 kez

Re: AlsaMixerSound Bash Shell Betiği (alsaremixersound.sh)

Mesaj gönderen Kayserilifatih »

Bekobey sana 'Sesi %100'ün üzerine çıkarır mı?' diye sordu. Sen 'Donanım bilgilerini yazın' dedin. Şimdi de makine seçmiyor, betik seçiyor' diyorsun. E o zaman bekobey'in donanımını neden sordun? Madem betik Bash yüklü her yerde çalışıyor, bekobey'in RAM'inden veya ekran kartının bu betikle ne alakası var?

Sorumu tekrar soruyorum: Madem bu betik Debian/Mint tabanında yazdığın evrensel bir betik, bekobey'in donanım bilgisi olmadan '%100 ses sınırı' sorusuna neden cevap veremiyorsun? Yoksa kodun içindeki amixer parametrelerinin sınırlarını sen de mi tam bilmiyorsun?
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15600
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2708 kez
Teşekkür edildi: 5621 kez

Re: AlsaMixerSound Bash Shell Betiği (alsaremixersound.sh)

Mesaj gönderen TRWE_2012 »

Güzel soru ama (art niyetli ki yapısı gereği , şeytanice kurulmuş bir tuzak: iki farklı konuyu birbirine bağlanmış, çelişki oluşturmaya çalışılıyor.) İki farklı konuyu birbirine karıştırıyorsunuz."Makine seçmiyor, betik seçiyor" cevabı Bash uyumluluğu içindi ,betiğin çalışıp çalışmamasıyla ilgili değil. Bekobey'in sorusu ise betiğin çalışması değil, sesin %100 üzerine çıkıp çıkamayacağıydı. İkisi tamamen farklı soru.
amixer ile %100 sınırı aşılamaz, bunun için pactl veya pamixer gerekir. Bunu zaten ben biliyorum. Ama hangi aracın kullanılacağı, sistemde PulseAudio mu yoksa PipeWire mi çalıştığına bağlı. Bu da donanımdan değil, kurulu ses sunucusuna bağlıdır.Yani Bekobey'den istediğim RAM veya ekran kartı değil, hangi ses mimarisini kullandığıydı. Bunu sormak körü körüne kod yazmamak için aldığım basit bir önlemdir.Kodun sınırlarını bilmemek değil , doğru kodu yazmak için doğru soruyu sormak...
Kullanıcı avatarı
Kayserilifatih
Exabyte1
Exabyte1
Mesajlar: 10256
Kayıt: 30 Ağu 2024, 20:48
cinsiyet: Erkek
Teşekkür etti: 963 kez
Teşekkür edildi: 7645 kez

Re: AlsaMixerSound Bash Shell Betiği (alsaremixersound.sh)

Mesaj gönderen Kayserilifatih »

Madem PulseAudio mu PipeWire mı olduğunu merak ediyorsun, neden Bekobey’e Donanımını yaz diyeceğine, terminale pactl info veya stat /run/user/$UID/pulse/native yazmasını söylemedin? Bu kadar basit bir komutu sormak yerine neden donanım raporu peşine düştün? Başka da soru sormayacağım
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15600
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2708 kez
Teşekkür edildi: 5621 kez

Re: AlsaMixerSound Bash Shell Betiği (alsaremixersound.sh)

Mesaj gönderen TRWE_2012 »

Mesela @bekobey, kendi sistemine şu komutu yazarsa, kodlama bu komut çıktısına göre kendi donanımına "ÖZEL" sil baştan kodlanabilir.

Kod: Tümünü seç

pactl info && echo "---" && aplay -l && echo "---" && cat /proc/asound/cards
ÖRNEK KOMUT İSTEMİ :

Kod: Tümünü seç

linuxmaster@notebook-pc:~$ pactl info && echo "---" && aplay -l && echo "---" && cat /proc/asound/cards
Sunucu Karakter Dizisi: /run/user/1000/pulse/native
Kütüphane Protokol Sürümü: 35
Sunucu Protokol Sürümü: 35
Yerelde Mi: evet
İstemci Dizini: 1501702
Desen Boyutu: 65472
Kullanıcı Adı: linuxmaster
Ana Makine Adı: notebook-pc
Sunucu Adı: PulseAudio (on PipeWire 1.0.5)
Sunucu Sürümü: 15.0.0
Öntanımlı Örnekleme Tanımı: float32le 2ch 48000Hz
Öntanımlı Kanal Adresleme: front-left,front-right
Öntanımlı Alıcı: alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__sink
Öntanımlı Kaynak: alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__source
Çerez: 3dc9:e13c
---
**** PLAYBACK Donanım Aygıtlarının Listesi ****
kart 0: sofhdadsp [sof-hda-dsp], aygıt 0: HDA Analog (*) []
  Altaygıtlar: 1/1
  Altaygıt #0: subdevice #0
kart 0: sofhdadsp [sof-hda-dsp], aygıt 3: HDMI1 (*) []
  Altaygıtlar: 1/1
  Altaygıt #0: subdevice #0
kart 0: sofhdadsp [sof-hda-dsp], aygıt 4: HDMI2 (*) []
  Altaygıtlar: 1/1
  Altaygıt #0: subdevice #0
kart 0: sofhdadsp [sof-hda-dsp], aygıt 5: HDMI3 (*) []
  Altaygıtlar: 1/1
  Altaygıt #0: subdevice #0
kart 0: sofhdadsp [sof-hda-dsp], aygıt 31: HDA Analog Deep Buffer (*) []
  Altaygıtlar: 1/1
  Altaygıt #0: subdevice #0
---
 0 [sofhdadsp      ]: sof-hda-dsp - sof-hda-dsp
                      LENOVO-82K1-IdeaPadGaming315IHU6-LNVNB161216
linuxmaster@notebook-pc:~$ 

Bu komut çıktısına göre, benim kendi donanımım ve dağıtımım için ;

1.PipeWire çalışıyor.
2.PipeWire ile pactl üzerinden %100 sınırı rahatlıkla aşılabiliyor.

O zaman bu durum'da yukarıda kodlamaya ufak bir eklemek yapmak yetecektir.

Şöyle bir ufak kod bloğu :

Kod: Tümünü seç

ses_boost() {
    read -rp "Boost seviyesi (örnek: 150): " boost
    pactl set-sink-volume @DEFAULT_SINK@ "${boost}%"
    echo "Ses boost seviyesi → %${boost} "
}
Bu kod bloğu, sesi %100'ün üzerine mesela yukarıdaki örnek'te %150 ( pactl set-sink-volume @DEFAULT_SINK@ "${boost} = pactl set-sink-volume @DEFAULT_SINK@ 150%) satırından anlaşılabilir.
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15600
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2708 kez
Teşekkür edildi: 5621 kez

Re: AlsaMixerSound Bash Shell Betiği (alsaremixersound.sh)

Mesaj gönderen TRWE_2012 »

Haklısınız, pactl info komutu ses mimarisini gösterir. Ama ben ses mimarisinin ötesinde donanımın tamamına bakmak istedim. Ses kartı modeli, sürücü uyumluluğu ve mevcut ses çıkış cihazları %100 üzeri boost'un temiz çalışıp çalışmayacağını doğrudan etkiler.Sadece PulseAudio mı PipeWire mı sorusunu sormak için değil, doğru ve çalışan kodu yazmak için donanım raporuna ihtiyacım vardı. Eksik veriyle yazılan kod eksik kalır.
Kullanıcı avatarı
bekobey
Byte2
Byte2
Mesajlar: 95
Kayıt: 09 Nis 2021, 09:48
cinsiyet: Erkek
Teşekkür etti: 202 kez
Teşekkür edildi: 105 kez

Re: AlsaMixerSound Bash Shell Betiği (alsaremixersound.sh)

Mesaj gönderen bekobey »

Teşekkürler; TRWE_2012 ve Kayserilifatih

Komut çıktısı bu şekilde;

bekir@pardus:~/Masaüstü$ pactl info && echo "---" && aplay -l && echo "---" && cat /proc/asound/cards
Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 89
Tile Size: 65472
User Name: bekir
Host Name: pardus
Server Name: PulseAudio (on PipeWire 1.4.2)
Server Version: 15.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.pci-0000_02_02.0.analog-stereo
Default Source: alsa_input.pci-0000_02_02.0.analog-stereo
Cookie: 9eee:e712
---
**** List of PLAYBACK Hardware Devices ****
card 0: AudioPCI [Ensoniq AudioPCI], device 0: ES1371/1 [ES1371 DAC2/ADC]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: AudioPCI [Ensoniq AudioPCI], device 1: ES1371/2 [ES1371 DAC1]
Subdevices: 1/1
Subdevice #0: subdevice #0
---
0 [AudioPCI ]: ENS1371 - Ensoniq AudioPCI
Ensoniq AudioPCI ENS1371 at 0x2040, irq 16
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15600
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2708 kez
Teşekkür edildi: 5621 kez

(alsaremixersound.sh) Betiğinin @bekobey'İN Donanımına Göre Uyarlanması (sabah 9.00'dan beridir uğraşılmakta)

Mesaj gönderen TRWE_2012 »

@Bekobey sistemine göre yapılan değişiklikler (Değişim Günlüğü) - 16/03/2026

1.amixer yerine pactl kullanıldı. PipeWire uyumlu, doğrudan API erişimi sağlar.
2.%100 üzeri boost desteği eklendi . Maksimum %200 sınırında sabitlendi.
3.Boost artır ve azalt seçenekleri hem menüye hem argüman listesine eklendi.
4.Mute durumu menüde Açık/Kapalı olarak görünür hale getirildi.
5.Seviye %100 üzerindeyken menüde [BOOST] ibaresi belirir.
6.Kart göster seçeneğine PipeWire sürüm bilgisi eklendi.


KOD İÇERİĞİ :

Kod: Tümünü seç

#!/usr/bin/env bash
# ================================================
# alsaremixersound.sh — amixer/pactl tabanlı ses yöneticisi
# Pardus / PipeWire uyumlu, %100 üzeri boost destekli
# Kullanım: ./alsaremixersound.sh [--artir] [--azalt] [--mute]
#            [--unmute] [--kart] [--kanallar] [--boost] [--menu]
# ================================================

KANAL="Master"
ADIM=5
BOOST_ADIM=10

# ---------- Fonksiyonlar ----------

ses_seviyesi() {
    pactl get-sink-volume @DEFAULT_SINK@ | grep -o '[0-9]*%' | head -1
}

ses_artir() {
    pactl set-sink-volume @DEFAULT_SINK@ "+${ADIM}%"
    echo "Ses artırıldı -> $(ses_seviyesi)"
}

ses_azalt() {
    pactl set-sink-volume @DEFAULT_SINK@ "-${ADIM}%"
    echo "Ses azaltıldı -> $(ses_seviyesi)"
}

mute_yap() {
    pactl set-sink-mute @DEFAULT_SINK@ 1
    echo "Ses kapatıldı (Mute)"
}

unmute_yap() {
    pactl set-sink-mute @DEFAULT_SINK@ 0
    echo "Ses açıldı (Unmute)"
}

mute_durumu() {
    pactl get-sink-mute @DEFAULT_SINK@ | grep -o 'yes\|no'
}

boost_artir() {
    mevcut=$(ses_seviyesi | tr -d '%')
    yeni=$((mevcut + BOOST_ADIM))
    if [[ $yeni -gt 200 ]]; then
        yeni=200
        echo "Uyarı: Maksimum boost seviyesi %200"
    fi
    pactl set-sink-volume @DEFAULT_SINK@ "${yeni}%"
    echo "Boost artırıldı -> %${yeni}"
}

boost_azalt() {
    mevcut=$(ses_seviyesi | tr -d '%')
    yeni=$((mevcut - BOOST_ADIM))
    if [[ $yeni -lt 0 ]]; then
        yeni=0
    fi
    pactl set-sink-volume @DEFAULT_SINK@ "${yeni}%"
    echo "Boost azaltıldı -> %${yeni}"
}

seviye_gir() {
    read -rp "Ses seviyesi girin (0-200): " girdi
    if [[ "$girdi" =~ ^[0-9]+$ ]] && [[ $girdi -ge 0 ]] && [[ $girdi -le 200 ]]; then
        pactl set-sink-volume @DEFAULT_SINK@ "${girdi}%"
        echo "Ses seviyesi ayarlandı -> %${girdi}"
    else
        echo "Geçersiz değer. 0-200 arası girin."
    fi
}

kart_goster() {
    echo "=== Aktif Ses Kartı ==="
    cat /proc/asound/card*/id 2>/dev/null | while read -r satir; do
        echo "  Kart: $satir"
    done
    echo "  Sürücü: $(aplay -l 2>/dev/null | grep 'card' | head -3)"
    echo "  Ses Sunucusu: $(pactl info | grep 'Server Name' | cut -d: -f2)"
}

kanal_listesi() {
    echo "=== Kanal Listesi ==="
    amixer scontrols | sed 's/Simple mixer control /  /' | sed "s/'//g"
}

ana_menu() {
    while true; do
        clear
        seviye=$(ses_seviyesi)
        mute=$(mute_durumu)
        durum="Açık"
        [[ "$mute" == "yes" ]] && durum="Kapalı"
        boost_goster=""
        seviye_sayi=$(echo "$seviye" | tr -d '%')
        [[ $seviye_sayi -gt 100 ]] && boost_goster=" [BOOST]"

        echo "==============================="
        echo "   SES YÖNETİCİSİ"
        echo "   Seviye : ${seviye}${boost_goster}"
        echo "   Durum  : ${durum}"
        echo "==============================="
        echo "  1) Ses Artır   (+${ADIM}%)"
        echo "  2) Ses Azalt   (-${ADIM}%)"
        echo "  3) Mute  (Ses Kapat)"
        echo "  4) Unmute (Ses Aç)"
        echo "  5) Boost Artır (+${BOOST_ADIM}%)"
        echo "  6) Boost Azalt (-${BOOST_ADIM}%)"
        echo "  7) Ses Seviyesi Gir (0-200)"
        echo "  8) Aktif Ses Kartını Göster"
        echo "  9) Kanal Listesi"
        echo "  0) Çıkış"
        echo "==============================="
        read -rp "Seçim: " secim
        case "$secim" in
            1) ses_artir ;;
            2) ses_azalt ;;
            3) mute_yap ;;
            4) unmute_yap ;;
            5) boost_artir ;;
            6) boost_azalt ;;
            7) seviye_gir ;;
            8) kart_goster ;;
            9) kanal_listesi ;;
            0) echo "Çıkılıyor..."; break ;;
            *) echo "Geçersiz seçim." ;;
        esac
        read -rp "Devam için Enter..." _
    done
}

# ---------- Argüman Ayrıştırıcı ----------

if [[ $# -eq 0 ]]; then
    ana_menu
else
    case "$1" in
        --artir)    ses_artir ;;
        --azalt)    ses_azalt ;;
        --mute)     mute_yap ;;
        --unmute)   unmute_yap ;;
        --boost)    boost_artir ;;
        --kart)     kart_goster ;;
        --kanallar) kanal_listesi ;;
        --menu)     ana_menu ;;
        *)
            echo "Bilinmeyen argüman: $1"
            echo "Kullanım: $0 [--artir|--azalt|--mute|--unmute|--boost|--kart|--kanallar|--menu]"
            exit 1
            ;;
    esac
fi
ÖRNEK KOMUT ÇIKTISI :

Çalıştırınca terminal ekranı şöyle görünür:

Normal seviyede (%65):

Kod: Tümünü seç

===============================
   SES YÖNETİCİSİ
   Seviye : %65
   Durum  : Açık
===============================
  1) Ses Artır   (+5%)
  2) Ses Azalt   (-5%)
  3) Mute  (Ses Kapat)
  4) Unmute (Ses Aç)
  5) Boost Artır (+10%)
  6) Boost Azalt (-10%)
  7) Ses Seviyesi Gir (0-200)
  8) Aktif Ses Kartını Göster
  9) Kanal Listesi
  0) Çıkış
===============================
Seçim:
Klavye'den 5'e basılırsa (Boost Artır) :

Kod: Tümünü seç

Boost artırıldı -> %75
Devam için Enter...
Boost %100 üzerine çıkınca menü:

Kod: Tümünü seç

===============================
   SES YÖNETİCİSİ
   Seviye : %110 [BOOST]
   Durum  : Açık
===============================
%200 sınırına ulaşınca:

Kod: Tümünü seç

Uyarı: Maksimum boost seviyesi %200
Boost artırıldı -> %200
Devam için Enter...
3 seçilince (Mute):

Kod: Tümünü seç

Ses kapatıldı (Mute)
Devam için Enter...
4 seçilince (Mute):

Kod: Tümünü seç

Ses açıldı (un-Mute)
Devam için Enter...
8 seçilince (Kart Göster):

Kod: Tümünü seç

=== Aktif Ses Kartı ===
  Kart: AudioPCI
  Sürücü: card 0: AudioPCI [Ensoniq AudioPCI], device 0: ES1371/1
  Ses Sunucusu:  PulseAudio (on PipeWire 1.4.2)
Devam için Enter...
0 seçilince:

Kod: Tümünü seç

Çıkılıyor...
Terminal kapanır.

NOTLAR :

1.Ensoniq AudioPCI ES1371 — bu kart 1990'ların sonu, 2000'lerin başında kullanılan donanım.Galiba @bekobey , sanal makine üzerinde pardus çalıştırıyor olabilir.Çünkü,VirtualBox ve QEMU bu kartı varsayılan sanal ses kartı olarak kullanır.

2.%100 Üzeri Boost İçin, PipeWire 1.4.2 mevcut ve benim sürümümden de daha güncel yeni...(bendeki , PipeWire 1.0.5)

3.Ses kartı tipi ise , çok eski PCI kart (bendeki Dahili modern Lenovo)

4.Çıkış cihazı olarak, Sadece analog stereo (bende de HDA Analog + HDMI)

Yani @bekobey sanal sistem üzerinde Pardus çalıştırıyor.Bu kesin...


DONANIMSAL UYARI ...!! :

@Bekobey, eğer Pardus çalıştırdığın donanım gerçekse ses seviyesini asla ama asla %150'nin üzerine çıkartma. Eğer tam tersini yaparsan:

1.Seste bozulmalar artar.
2.Hoparlör sistemin fiziksel olarak hasar alır.

%100 = Yeşil Güvenli Bölge
%150 = Sarı Uyarı Sınırı
%200 = Kırmızı Uyarı Sınırı

İdeal boost değerleri: %110, %120, %125

Sanal makine üzerinde çalışıyorsa bu uyarı geçersiz , ama bilmediğim için uyarmak doğru karardı benim açımdan...
Kullanıcı avatarı
bekobey
Byte2
Byte2
Mesajlar: 95
Kayıt: 09 Nis 2021, 09:48
cinsiyet: Erkek
Teşekkür etti: 202 kez
Teşekkür edildi: 105 kez

Re: AlsaMixerSound Bash Shell Betiği (alsaremixersound.sh)

Mesaj gönderen bekobey »

"Yani @bekobey sanal sistem üzerinde Pardus çalıştırıyor.Bu kesin..." Teşhis tam isabet, ama donanım 2013 yılından kalma.
:pckir:
Evet, domain yüzünden mikrozorta katlanıyorum, :kafavur:
daha önce de linux mint vardı, Windows 10 PE üzerine sanaldan Pardus ile devam. :kafasalla:
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15600
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2708 kez
Teşekkür edildi: 5621 kez

Re: AlsaMixerSound Bash Shell Betiği (alsaremixersound.sh)

Mesaj gönderen TRWE_2012 »

bekobey yazdı: 16 Mar 2026, 14:59 "Yani @bekobey sanal sistem üzerinde Pardus çalıştırıyor.Bu kesin..." Teşhis tam isabet, ama donanım 2013 yılından kalma.
:pckir:
Evet, domain yüzünden mikrozorta katlanıyorum, :kafavur:
daha önce de linux mint vardı, Windows 10 PE üzerine sanaldan Pardus ile devam. :kafasalla:
İnşallah betik işinize yarar...

Ayrıca:

Sanal makine üzerinde çalıştığınız için önceki hoparlör uyarım geçersizdir. Ses fiziksel değildir, ana sistemin çıkışına gidiyor. Boost özgürce kullanılabilir, tek risk ses kalitesinin bozulmasıdır.
Cevapla

“Programlama ve Script dilleri” sayfasına dön