Skip to content

Commit

Permalink
Add very simple readme instructions.
Browse files Browse the repository at this point in the history
  • Loading branch information
jasongrout committed Dec 26, 2018
1 parent c363090 commit 37a7f0a
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 7 deletions.
18 changes: 18 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,21 @@ the nbextension:
```bash
jupyter nbextension enable --py [--sys-prefix|--user|--system] ipymidicontrols
```

## Usage

Create a controller widget for a [Behringer XTouch Mini](https://www.musictribe.com/Categories/Behringer/Computer-Audio/Desktop-Controllers/X-TOUCH-MINI/p/P0B3M):

```python
from ipymidicontrols import XTouchMini
x = XTouchMini()
```

See a simple widgets-based UI for the controls:

```python
from ipymidicontrols import xtouchmini_ui
xtouchmini_ui(x)
```

![screenshot](https://raw.githubusercontent.com/jupyter-widgets/midicontrols/master/XTouchMini.png)
Binary file added XTouchMini.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
15 changes: 8 additions & 7 deletions ipymidicontrols/xtouchmini.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,26 +127,27 @@ class XTouchMini(DOMWidget):
sync=True, **widget_serialization)


from ipywidgets import IntSlider, Checkbox, HBox, VBox, link
from ipywidgets import IntSlider, Checkbox, HBox, VBox, link, Layout

def xtouchmini_ui(x):
knobs = [IntSlider(orientation='vertical', layout={'width': '24px'}) for i in x.rotary_encoders]
layout = Layout(width='24px')
knobs = [IntSlider(orientation='vertical', layout=layout) for i in x.rotary_encoders]
for i,j in zip(x.rotary_encoders, knobs):
link((i, 'value'), (j, 'value'))

knob_buttons = [Checkbox(indent=False, layout={'width':'24px'}) for i in x.rotary_buttons]
knob_buttons = [Checkbox(indent=False, layout=layout) for i in x.rotary_buttons]
for i,j in zip(x.rotary_buttons, knob_buttons):
link((i, 'value'), (j, 'value'))

buttons = [Checkbox(indent=False, layout={'width':'24px'}) for i in x.buttons]
buttons = [Checkbox(indent=False, layout=layout) for i in x.buttons]
for i,j in zip(x.buttons, buttons):
link((i, 'value'), (j, 'value'))

side_buttons = [Checkbox() for i in x.side_buttons]
side_buttons = [Checkbox(indent=False, layout=layout) for i in x.side_buttons]
for i,j in zip(x.side_buttons, side_buttons):
link((i, 'value'), (j, 'value'))

fader = IntSlider(orientation='vertical', max=127, layout={'height': '250px'})
fader = IntSlider(orientation='vertical', max=127, layout={'height': 'inherit'})
link((fader, 'value'), (x.faders[0], 'value'))

ui = VBox([
Expand All @@ -156,7 +157,7 @@ def xtouchmini_ui(x):
HBox(buttons[:8]),
HBox(buttons[8:])
]),
VBox(side_buttons)
VBox(side_buttons, layout={'align_items': 'flex-end', 'width': '55px'})
])
])
return ui

0 comments on commit 37a7f0a

Please sign in to comment.