jonathanunderwood / outsider Goto Github PK
View Code? Open in Web Editor NEWProgram to control the Blackstar ID series of amplifiers
License: GNU General Public License v3.0
Program to control the Blackstar ID series of amplifiers
License: GNU General Public License v3.0
how to install on ubuntu 16.04 this program?
i built this program but i can't running this.
Traceback (most recent call last): File "/home/andrei/.local/bin/outsider", line 9, in <module> load_entry_point('outsider==0.0.2', 'gui_scripts', 'outsider')() File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 542, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2569, in load_entry_point return ep.load() File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2229, in load return self.resolve() File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2235, in resolve module = __import__(self.module_name, fromlist=['__name__'], level=0) File "/home/andrei/.local/lib/python3.5/site-packages/outsider-0.0.2-py3.5.egg/outsider/__main__.py", line 22, in <module> import blackstarid File "/home/andrei/.local/lib/python3.5/site-packages/outsider-0.0.2-py3.5.egg/blackstarid/__init__.py", line 18, in <module> from blackstarid import BlackstarIDAmp, NoDataAvailable, NotConnectedError ImportError: cannot import name 'BlackstarIDAmp'
I have the right packet installed (python3-pyqt5 python3-usb python3-setuptools)
Installed /usr/local/lib/python3.5/dist-packages/outsider-0.1.1.dev2+ge17dffb-py3.5.egg
Processing dependencies for outsider==0.1.1.dev2+ge17dffb
Searching for PyQt5
Reading https://pypi.python.org/simple/PyQt5/
No local packages or working download links found for PyQt5
error: Could not find suitable distribution for Requirement.parse('PyQt5')
Here are instructions to install in Debian 9:
sudo apt-get install git python3-pyqt5 python3-usb python3-setuptools
git clone https://github.com/jonathanunderwood/outsider.git
sudo python3 setup.py install
sudo cp -a blackstar-id.rules /etc/udev/rules.d/69-blackstar-id.rules
sudo udevadm control --reload-rules
And it's fine. Thank you for this great work !
At present we grab all interfaces at startup, including the various audio in and out interfaces. This is unecessary for simply controlling the amp, and prevents other apps from using those audio interfaces. Instead we should probe for the interrupt interface, and then claim only that.
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.1 LTS
Release: 18.04
Codename: bionic
running install
running bdist_egg
running egg_info
writing outsider.egg-info/PKG-INFO
writing dependency_links to outsider.egg-info/dependency_links.txt
writing entry points to outsider.egg-info/entry_points.txt
writing requirements to outsider.egg-info/requires.txt
writing top-level names to outsider.egg-info/top_level.txt
writing manifest file 'outsider.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
copying outsider/version.py -> build/lib/outsider
creating build/bdist.linux-x86_64/egg
creating build/bdist.linux-x86_64/egg/blackstarid
copying build/lib/blackstarid/blackstarid.py -> build/bdist.linux-x86_64/egg/blackstarid
copying build/lib/blackstarid/init.py -> build/bdist.linux-x86_64/egg/blackstarid
creating build/bdist.linux-x86_64/egg/outsider
copying build/lib/outsider/main.py -> build/bdist.linux-x86_64/egg/outsider
copying build/lib/outsider/version.py -> build/bdist.linux-x86_64/egg/outsider
copying build/lib/outsider/outsider.py -> build/bdist.linux-x86_64/egg/outsider
copying build/lib/outsider/outsider.ui -> build/bdist.linux-x86_64/egg/outsider
copying build/lib/outsider/init.py -> build/bdist.linux-x86_64/egg/outsider
byte-compiling build/bdist.linux-x86_64/egg/blackstarid/blackstarid.py to blackstarid.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/blackstarid/init.py to init.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/outsider/main.py to main.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/outsider/version.py to version.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/outsider/outsider.py to outsider.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/outsider/init.py to init.cpython-36.pyc
creating build/bdist.linux-x86_64/egg/EGG-INFO
copying outsider.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO
copying outsider.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying outsider.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying outsider.egg-info/entry_points.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying outsider.egg-info/requires.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying outsider.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
zip_safe flag not set; analyzing archive contents...
outsider.pycache.outsider.cpython-36: module references file
creating 'dist/outsider-0.1.0-py3.6.egg' and adding 'build/bdist.linux-x86_64/egg' to it
removing 'build/bdist.linux-x86_64/egg' (and everything under it)
Processing outsider-0.1.0-py3.6.egg
removing '/usr/local/lib/python3.6/dist-packages/outsider-0.1.0-py3.6.egg' (and everything under it)
creating /usr/local/lib/python3.6/dist-packages/outsider-0.1.0-py3.6.egg
Extracting outsider-0.1.0-py3.6.egg to /usr/local/lib/python3.6/dist-packages
outsider 0.1.0 is already the active version in easy-install.pth
Installing outsider script to /usr/local/bin
Installed /usr/local/lib/python3.6/dist-packages/outsider-0.1.0-py3.6.egg
Processing dependencies for outsider==0.1.0
Searching for pyusb==1.0.2
Best match: pyusb 1.0.2
Processing pyusb-1.0.2-py3.6.egg
pyusb 1.0.2 is already the active version in easy-install.pth
Using /usr/local/lib/python3.6/dist-packages/pyusb-1.0.2-py3.6.egg
Searching for PyQt5==5.11.3
Best match: PyQt5 5.11.3
Processing PyQt5-5.11.3-py3.6-linux-x86_64.egg
PyQt5 5.11.3 is already the active version in easy-install.pth
Installing pylupdate5 script to /usr/local/bin
Installing pyrcc5 script to /usr/local/bin
Installing pyuic5 script to /usr/local/bin
Using /usr/local/lib/python3.6/dist-packages/PyQt5-5.11.3-py3.6-linux-x86_64.egg
Searching for PyQt5-sip==4.19.13
Best match: PyQt5-sip 4.19.13
Processing PyQt5_sip-4.19.13-py3.6-linux-x86_64.egg
PyQt5-sip 4.19.13 is already the active version in easy-install.pth
Using /usr/local/lib/python3.6/dist-packages/PyQt5_sip-4.19.13-py3.6-linux-x86_64.egg
Finished processing dependencies for outsider==0.1.0
Traceback (most recent call last):
File "/usr/local/bin/outsider", line 11, in
load_entry_point('outsider==0.1.0', 'gui_scripts', 'outsider')()
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 480, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 2693, in load_entry_point
return ep.load()
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 2324, in load
return self.resolve()
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 2330, in resolve
module = import(self.module_name, fromlist=['name'], level=0)
File "/usr/local/lib/python3.6/dist-packages/outsider-0.1.0-py3.6.egg/outsider/main.py", line 18, in
from outsider.outsider import Ui
File "/usr/local/lib/python3.6/dist-packages/outsider-0.1.0-py3.6.egg/outsider/outsider.py", line 19, in
from PyQt5.QtCore import QObject, QThread, QMutex
ModuleNotFoundError: No module named 'PyQt5.sip'
asn1crypto==0.24.0
attrs==17.4.0
Automat==0.6.0
blinker==1.4
certifi==2018.1.18
chardet==3.0.4
click==6.7
cloud-init==18.4
colorama==0.3.7
command-not-found==0.3
configobj==5.0.6
constantly==15.1.0
cryptography==2.1.4
distro-info==0.18
httplib2==0.9.2
hyperlink==17.3.1
idna==2.6
incremental==16.10.1
Jinja2==2.10
jsonpatch==1.16
jsonpointer==1.10
jsonschema==2.6.0
keyring==10.6.0
keyrings.alt==3.0
language-selector==0.1
MarkupSafe==1.0
netifaces==0.10.4
oauthlib==2.0.6
outsider==0.1.0
PAM==0.4.2
pyasn1==0.4.2
pyasn1-modules==0.2.1
pycrypto==2.6.1
pygobject==3.26.1
PyJWT==1.5.3
pyOpenSSL==17.5.0
PyQt5==5.11.3
PyQt5-sip==4.19.13
pyserial==3.4
python-apt==1.6.3
python-debian==0.1.32
pyusb==1.0.2
pyxdg==0.25
PyYAML==3.12
requests==2.18.4
requests-unixsocket==0.1.5
SecretStorage==2.3.1
service-identity==16.0.0
six==1.11.0
ssh-import-id==5.7
systemd-python==234
Twisted==17.9.0
ufw==0.35
unattended-upgrades==0.1
urllib3==1.22
zope.interface==4.3.2
I'm using an ID Core Stereo 40 amp and Mint 18 Cinnamon.
In Insider Windows version, I could load custom presets by saving to a specific folder.
In Outsider the 6 default patches works as they should, but there are some more showing in the list with unreadable gibberish. They do not load in the software and the renaming is not working, as it seems to change the number in the list, but the text does not change to the new name.
At present no GUI element is present for tuner mode selection/detection and tuner data handling.
For the flanger effect, there is an invisible control for manual. This is control 0x14 (between mod_segval and mod_level). Range is the standard 0-127. To my ear sounds like it does what you'd expect - control the offset of the delay.
Does not appear to have an effect on the other modulation types.
There should be a corresponding entry in the presets for this, but don't know which slot.
Hi,
I just tested with a blackstar ID beam, when I try to connect I get:
DEBUG:outsider.blackstarid:Device:
DEVICE ID 27d4:0020 on Bus 002 Address 003 =================
bLength : 0x12 (18 bytes)
bDescriptorType : 0x1 Device
bcdUSB : 0x200 USB 2.0
bDeviceClass : 0x0 Specified at interface
bDeviceSubClass : 0x0
bDeviceProtocol : 0x0
bMaxPacketSize0 : 0x40 (64 bytes)
idVendor : 0x27d4
idProduct : 0x0020
bcdDevice : 0x111 Device 1.11
iManufacturer : 0x1 Blackstar Amplifiers
iProduct : 0x2 ID:Core BEAM Amp
iSerialNumber : 0x0
bNumConfigurations : 0x1
CONFIGURATION 1: 100 mA ==================================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x2 Configuration
wTotalLength : 0xde (222 bytes)
bNumInterfaces : 0x4
bConfigurationValue : 0x1
iConfiguration : 0x0
bmAttributes : 0xc0 Self Powered
bMaxPower : 0x32 (100 mA)
INTERFACE 0: Human Interface Device ====================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x4 Interface
bInterfaceNumber : 0x0
bAlternateSetting : 0x0
bNumEndpoints : 0x2
bInterfaceClass : 0x3 Human Interface Device
bInterfaceSubClass : 0x0
bInterfaceProtocol : 0x0
iInterface : 0x0
ENDPOINT 0x81: Interrupt IN ==========================
bLength : 0x7 (7 bytes)
bDescriptorType : 0x5 Endpoint
bEndpointAddress : 0x81 IN
bmAttributes : 0x3 Interrupt
wMaxPacketSize : 0x40 (64 bytes)
bInterval : 0x1
ENDPOINT 0x1: Interrupt OUT ==========================
bLength : 0x7 (7 bytes)
bDescriptorType : 0x5 Endpoint
bEndpointAddress : 0x1 OUT
bmAttributes : 0x3 Interrupt
wMaxPacketSize : 0x40 (64 bytes)
bInterval : 0x1
INTERFACE 1: Audio =====================================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x4 Interface
bInterfaceNumber : 0x1
bAlternateSetting : 0x0
bNumEndpoints : 0x0
bInterfaceClass : 0x1 Audio
bInterfaceSubClass : 0x1
bInterfaceProtocol : 0x0
iInterface : 0x0
INTERFACE 2: Audio =====================================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x4 Interface
bInterfaceNumber : 0x2
bAlternateSetting : 0x0
bNumEndpoints : 0x0
bInterfaceClass : 0x1 Audio
bInterfaceSubClass : 0x2
bInterfaceProtocol : 0x0
iInterface : 0x0
INTERFACE 2, 1: Audio ==================================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x4 Interface
bInterfaceNumber : 0x2
bAlternateSetting : 0x1
bNumEndpoints : 0x1
bInterfaceClass : 0x1 Audio
bInterfaceSubClass : 0x2
bInterfaceProtocol : 0x0
iInterface : 0x0
ENDPOINT 0x3: Isochronous OUT ========================
bLength : 0x9 (7 bytes)
bDescriptorType : 0x5 Endpoint
bEndpointAddress : 0x3 OUT
bmAttributes : 0x9 Isochronous
wMaxPacketSize : 0x120 (288 bytes)
bInterval : 0x4
INTERFACE 3: Audio =====================================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x4 Interface
bInterfaceNumber : 0x3
bAlternateSetting : 0x0
bNumEndpoints : 0x0
bInterfaceClass : 0x1 Audio
bInterfaceSubClass : 0x2
bInterfaceProtocol : 0x0
iInterface : 0x0
INTERFACE 3, 1: Audio ==================================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x4 Interface
bInterfaceNumber : 0x3
bAlternateSetting : 0x1
bNumEndpoints : 0x1
bInterfaceClass : 0x1 Audio
bInterfaceSubClass : 0x2
bInterfaceProtocol : 0x0
iInterface : 0x0
ENDPOINT 0x82: Isochronous IN ========================
bLength : 0x9 (7 bytes)
bDescriptorType : 0x5 Endpoint
bEndpointAddress : 0x82 IN
bmAttributes : 0x5 Isochronous
wMaxPacketSize : 0x120 (288 bytes)
bInterval : 0x4
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/outsider-0.1.1.dev0+g70e0be5.d20170725-py3.5.egg/outsider/outsider.py", line 464, in on_connectToAmpButton_clicked
self.connect()
File "/usr/local/lib/python3.5/dist-packages/outsider-0.1.1.dev0+g70e0be5.d20170725-py3.5.egg/outsider/outsider.py", line 142, in connect
self.amp.connect()
File "/usr/local/lib/python3.5/dist-packages/outsider-0.1.1.dev0+g70e0be5.d20170725-py3.5.egg/blackstarid/blackstarid.py", line 407, in connect
self.model = self.amp_models[dev.idProduct]
KeyError: 32
Abandon
Is it compatible?
Currently we use the fusion template by default (shipped with Qt), but ideally we'd use a custom template to improve the appearance. Qdarkstyle looks like a possible candidate, but it's fairly heavyweight.
At present we don't have any GUI elements for:
I had to install (Ubuntu 14.04)
python3-pyqt5
pyqt5-dev
rather than
python-qt5
Not sure if this is just my machine or a general change to the naming, not particularly familiar with Python
Thanks for the awesome work. I've taken your work here and put together an Android app version. It is incomplete, for sure, but as maybe 80% functionality so far: https://github.com/thompsch/blackstar_droid.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.