# Pisco
Pisco is a keyboard-only controller for Sonos speakers.
While Pisco's graphical interface displays the album art of the track currently playing,
you can control playback using your keyboard.
<p>
<img
src="https://raw.githubusercontent.com/christophgietl/pisco/main/images/pisco-on-mac.png"
style="aspect-ratio: 864/920; height: auto; max-width: 100%; width: 432px;"
alt="Pisco running on macOS"
title="Pisco running on macOS"
/>
</p>
Pisco has been tested on Linux and macOS.
It is especially well suited for use with
small displays (e.g. [Pimoroni HyperPixel 4.0 Square](https://shop.pimoroni.com/products/hyperpixel-4-square?variant=30138251477075)) and
media remote controls (e.g. [Satechi Bluetooth Multi-Media Remote](https://satechi.net/products/satechi-bluetooth-multi-media-remote?variant=27129644617)).
<p>
<img
src="https://raw.githubusercontent.com/christophgietl/pisco/main/images/pisco-on-pi-zero.jpg"
style="aspect-ratio: 500/678; height: auto; max-width: 100%; width: 250px;"
alt="Pisco running on a Raspberry Pi Zero attached to a Pimoroni HyperPixel 4.0 Square surrounded by a Satechi Bluetooth Multi-Media Remote and a Sonos speaker"
title="Pisco running on a Raspberry Pi Zero attached to a Pimoroni HyperPixel 4.0 Square surrounded by a Satechi Bluetooth Multi-Media Remote and a Sonos speaker"
/>
</p>
## Setup
To set up Pisco on a regular Linux or macOS machine, follow these steps:
1. Make sure you are using Python 3.9 or higher.
2. Create a virtual environment if you do not want to clutter up your default environment.
3. Install Pisco:
```shell
pip3 install pisco
```
For a clean and minimalist deployment
on a [Raspberry Pi Zero](https://www.raspberrypi.com/products/raspberry-pi-zero/),
please see
[the directory `deployment`](https://github.com/christophgietl/pisco/tree/main/deployment).
## Usage
When starting Pisco,
you need to specify the name of the Sonos device (i.e. Sonos room) you want to control:
```shell
pisco Leseecke # Replace 'Leseecke' with the name of your Sonos device.
```
You can use the option `--help` to find additional options:
```text
$ pisco --help
Usage: pisco [OPTIONS] SONOS_DEVICE_NAME
Control your Sonos device with your keyboard
Options:
-b, --backlight DIRECTORY sysfs directory of the backlight that should be
deactivated when the device is not playing
-w, --width INTEGER RANGE width of the Pisco window [default: 320; x>=0]
-h, --height INTEGER RANGE height of the Pisco window [default: 320;
x>=0]
-r, --refresh INTEGER RANGE time in milliseconds after which playback
information is updated [default: 40; x>=1]
--help Show this message and exit.
```
Once Pisco is running, you can use the following keys to control playback:
- ⏯ (or return) to pause or resume playback
- ⏹ to stop playback
- ⏮ and ⏭ (or left and right arrow) to play the previous or next track
- 0️⃣ to 9️⃣ to play the top 10 tracks (or radio stations) of your Sonos favorites
- ➕ and ➖ (or up and down arrow) to increase or decrease volume
- 🔇 to mute or unmute
Raw data
{
"_id": null,
"home_page": "https://github.com/christophgietl/pisco",
"name": "pisco",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.9,<4.0",
"maintainer_email": "",
"keywords": "",
"author": "Christoph Gietl",
"author_email": "christophgietl@users.noreply.github.com",
"download_url": "https://files.pythonhosted.org/packages/88/d1/57da6a6f67c63296dc4900aba69ed84178d5ae89c928d089012256771cc8/pisco-0.6.1.tar.gz",
"platform": null,
"description": "# Pisco\n\nPisco is a keyboard-only controller for Sonos speakers.\nWhile Pisco's graphical interface displays the album art of the track currently playing,\nyou can control playback using your keyboard.\n\n<p>\n <img\n src=\"https://raw.githubusercontent.com/christophgietl/pisco/main/images/pisco-on-mac.png\"\n style=\"aspect-ratio: 864/920; height: auto; max-width: 100%; width: 432px;\"\n alt=\"Pisco running on macOS\"\n title=\"Pisco running on macOS\"\n />\n</p>\n\nPisco has been tested on Linux and macOS.\nIt is especially well suited for use with\nsmall displays (e.g. [Pimoroni HyperPixel 4.0 Square](https://shop.pimoroni.com/products/hyperpixel-4-square?variant=30138251477075)) and\nmedia remote controls (e.g. [Satechi Bluetooth Multi-Media Remote](https://satechi.net/products/satechi-bluetooth-multi-media-remote?variant=27129644617)).\n\n<p>\n <img\n src=\"https://raw.githubusercontent.com/christophgietl/pisco/main/images/pisco-on-pi-zero.jpg\"\n style=\"aspect-ratio: 500/678; height: auto; max-width: 100%; width: 250px;\"\n alt=\"Pisco running on a Raspberry Pi Zero attached to a Pimoroni HyperPixel 4.0 Square surrounded by a Satechi Bluetooth Multi-Media Remote and a Sonos speaker\"\n title=\"Pisco running on a Raspberry Pi Zero attached to a Pimoroni HyperPixel 4.0 Square surrounded by a Satechi Bluetooth Multi-Media Remote and a Sonos speaker\"\n />\n</p>\n\n## Setup\n\nTo set up Pisco on a regular Linux or macOS machine, follow these steps:\n\n1. Make sure you are using Python 3.9 or higher.\n2. Create a virtual environment if you do not want to clutter up your default environment.\n3. Install Pisco:\n ```shell\n pip3 install pisco\n ```\n\nFor a clean and minimalist deployment\non a [Raspberry Pi Zero](https://www.raspberrypi.com/products/raspberry-pi-zero/),\nplease see\n[the directory `deployment`](https://github.com/christophgietl/pisco/tree/main/deployment).\n\n\n## Usage\n\nWhen starting Pisco,\nyou need to specify the name of the Sonos device (i.e. Sonos room) you want to control:\n\n```shell\npisco Leseecke # Replace 'Leseecke' with the name of your Sonos device.\n```\n\nYou can use the option `--help` to find additional options:\n```text\n$ pisco --help\nUsage: pisco [OPTIONS] SONOS_DEVICE_NAME\n\n Control your Sonos device with your keyboard\n\nOptions:\n -b, --backlight DIRECTORY sysfs directory of the backlight that should be\n deactivated when the device is not playing\n -w, --width INTEGER RANGE width of the Pisco window [default: 320; x>=0]\n -h, --height INTEGER RANGE height of the Pisco window [default: 320;\n x>=0]\n -r, --refresh INTEGER RANGE time in milliseconds after which playback\n information is updated [default: 40; x>=1]\n --help Show this message and exit.\n```\n\nOnce Pisco is running, you can use the following keys to control playback:\n- \u23ef (or return) to pause or resume playback\n- \u23f9 to stop playback\n- \u23ee and \u23ed (or left and right arrow) to play the previous or next track\n- 0\ufe0f\u20e3 to 9\ufe0f\u20e3 to play the top 10 tracks (or radio stations) of your Sonos favorites\n- \u2795 and \u2796 (or up and down arrow) to increase or decrease volume\n- \ud83d\udd07 to mute or unmute\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Keyboard-only controller for Sonos speakers",
"version": "0.6.1",
"project_urls": {
"Homepage": "https://github.com/christophgietl/pisco",
"Repository": "https://github.com/christophgietl/pisco"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "237eda3713117ac79be7cc394ca9040984f88f97de615541385043626a965095",
"md5": "b1ce6d7cf9b421358121c6f9569356fd",
"sha256": "f94f269e57d35ee0191965ebc4eafca43023b546a6a0a1a69ea23d6d6329ec88"
},
"downloads": -1,
"filename": "pisco-0.6.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b1ce6d7cf9b421358121c6f9569356fd",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9,<4.0",
"size": 13522,
"upload_time": "2024-01-01T17:52:30",
"upload_time_iso_8601": "2024-01-01T17:52:30.030879Z",
"url": "https://files.pythonhosted.org/packages/23/7e/da3713117ac79be7cc394ca9040984f88f97de615541385043626a965095/pisco-0.6.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "88d157da6a6f67c63296dc4900aba69ed84178d5ae89c928d089012256771cc8",
"md5": "3348db2a2347d0b3b7f8715053e5e5e2",
"sha256": "3b4e288f9748d8f9ba204d6ab089973fcaf45a5ec5124fc07754b92c040e8f7c"
},
"downloads": -1,
"filename": "pisco-0.6.1.tar.gz",
"has_sig": false,
"md5_digest": "3348db2a2347d0b3b7f8715053e5e5e2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9,<4.0",
"size": 11288,
"upload_time": "2024-01-01T17:52:31",
"upload_time_iso_8601": "2024-01-01T17:52:31.359030Z",
"url": "https://files.pythonhosted.org/packages/88/d1/57da6a6f67c63296dc4900aba69ed84178d5ae89c928d089012256771cc8/pisco-0.6.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-01-01 17:52:31",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "christophgietl",
"github_project": "pisco",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pisco"
}