Giter Site home page Giter Site logo

kefctl's Introduction

kefctl - a command line application for controlling KEF speakers

UNMAINTAINED: Since my LS50Ws broke almost immediately after the warranty ran out.

This application only requires Perl 5.10.1 or newer to be installed and has no other dependencies. So it should run pretty much everywhere without too much trouble, especially on Linux.

To my knowledge there is no documentation about the KEF control protocol. So every feature in kefctl had to be reverse engineered by capturing network traffic generated by the KEF Control mobile application talking to KEF LSX and KEF LS50 Wireless speakers (Firmware version 4.1).

Turning the KEF LS50 Wireless on only works with the newer revision (new electronics), serial number after LS50W13074K24L/R2G or Nocturne Edition.

Features

  • Turn speakers on and off
  • Change input source
  • Change volume
  • Mute and unmute speakers
  • Play and pause
  • Previous and next track
  • Standby modes
  • Inverse L/R speakers
  • Check current speaker status
  • Configure DSP settings
  • Export and restore settings
Usage: kefctl [OPTIONS]

    kefctl --status
    kefctl --volume 70
    kefctl --raise 5
    kefctl --lower 5
    kefctl --off
    kefctl --on
    kefctl --play
    kefctl -i optical
    kefctl -i bluetooth -S 20 -I on
    kefctl -H 192.168.178.52 -i aux
    kefctl -r 5330819b0b

  Options:
    -h, --help                  Show this summary of available options
    -H, --host <host>           Speaker host, defaults to 192.168.178.42
    -i, --input <source>        Set input source to aux, bluetooth, optical,
                                usb or wifi
    -I, --inverse <mode>        Set inverse L/R speakers to on or off
    -L, --lower <percentage>    Lower volume by X percent
    -m, --mute                  Mute speakers
    -N, --next                  Next track
    -o, --off                   Turn speakers off, the speakers can be turned
                                back on with the --on option or by setting an
                                input source with the --input option
    -O, --on                    Turn speakers on
    -p, --play                  Play or pause track
    -P, --previous              Previous track
    -r, --request <hex>         Send raw request in hex format and show response
                                (very useful for testing speaker features)
    -R, --raise <percentage>    Raise volume by X percent
    -s, --status                Show current speaker status
    -S, --standby <minutes>     Set standby time to 20, 60 or 0 (to turn standby
                                off), this option can only be used together with
                                the --input option
    -t, --toggle                Toggle mute/unmute
    -u, --unmute                Unmute speakers
    -v, --volume <percentage>   Set volume to a percentage value of 0-100, be
                                aware that every input source has its own volume
                                setting
        --version               Show version

  You can also set the KEFCTL_DEBUG environment variable to get diagnostics
  information printed to STDERR.
Usage: kefdsp [OPTIONS]

  kefdsp --status
  kefdsp --desk-mode on
  kefdsp --wall-mode off
  kefdsp --desk -3.5
  kefdsp --wall -6.0
  kefdsp --treble 0
  kefdsp --high 95
  kefdsp --low 80
  kefdsp -l 80
  kefdsp -e less
  kefdsp -H 192.168.178.52 -g +5.0
  kefdsp -r 5330819b0bb
  kefdsp --export > kefdsp.backup
  kefdsp $(< kefdsp.backup)

Options:
  -d, --desk <db>             Set dB value for desk mode, between -6.0 and 0
                              in steps of 0.5
  -D, --desk-mode <mode>      Set desk mode on or off
  -e, --sub-ext <mode>        Set sub extension mode to less, standard or
                              extra
  -g, --sub-gain <db>         Set dB value for sub gain, between -10.0 and
                              +10.0 in steps of 1.0
  -h, --help                  Show this summary of available options
  -H, --host <host>           Speaker host, defaults to 192.168.178.42
  -i, --high <hz>             Set Hz value for high-pass mode, between 50 and
                              120 in steps of 5
  -I, --high-pass <mode>      Set high pass mode on or off
  -l, --low <hz>              Set Hz value for sub out low-pass, between 40
                              and 250 in steps of 5
  -P, --phase <mode>          Set phase correction on or off
  -r, --request <hex>         Send raw request in hex format and show response
                              (very useful for testing speaker features)
  -s, --status                Show current DSP status
  -S, --sub-polarity <mode>   Set sub polarity to - or +
  -t, --treble <db>           Set dB value for treble trim, between -2.0 and
                              +2.0 in steps of 0.5.
      --version               Show version
  -w, --wall <db>             Set dB value for wall mode, between -6.0 and 0
                              in steps of 0.5
  -W, --wall-mode <mode>      Set wall mode on or off
  -x, --export                Export current settings as command line
                              arguments for kefdsp

You can also set the KEFDSP_DEBUG environment variable to get diagnostics
information printed to STDERR.

Configuration

Both kefctl and kefdsp will try to read the speaker host from the config file ~/.kefctl.

$ echo 192.168.178.66 > ~/.kefctl

To detect your speakers with UPnP, you can use the script tools/detect-speakers.pl. But be aware that it will require a few extra CPAN modules to be installed.

Copyright and License

Copyright (C) 2019-2021, Sebastian Riedel.

This program is free software, you can redistribute it and/or modify it under the terms of the Artistic License version 2.0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.