diff options
| author | sbahling <sbahling@mudgum.net> | 2018-11-02 20:45:10 +0100 |
|---|---|---|
| committer | sbahling <sbahling@mudgum.net> | 2018-11-02 20:45:10 +0100 |
| commit | 34c035543811f7f1a313a4e86154f715cd71eb64 (patch) | |
| tree | 8f2124791977b5c04a20e64abd8f577eaf369b01 /tascam_fw_console/fader.py | |
| parent | b45d04561ebbb786e0f0387029f16f79d04c2d27 (diff) | |
| download | tascam-fw-osc-34c035543811f7f1a313a4e86154f715cd71eb64.tar.gz tascam-fw-osc-34c035543811f7f1a313a4e86154f715cd71eb64.tar.xz tascam-fw-osc-34c035543811f7f1a313a4e86154f715cd71eb64.zip | |
rename faders.py to fader.py
Diffstat (limited to 'tascam_fw_console/fader.py')
| -rw-r--r-- | tascam_fw_console/fader.py | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/tascam_fw_console/fader.py b/tascam_fw_console/fader.py new file mode 100644 index 0000000..ab20eaa --- /dev/null +++ b/tascam_fw_console/fader.py @@ -0,0 +1,73 @@ +#!/usr/bin/env python3 +""" + Open Sound Control send/recieve daemon for Tascam Firewire control surface + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + :copyright: Copyright (c) 2018 Scott Bahling + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License version 2 as + published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program (see the file COPYING); if not, write to the + Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + :license: GPL-2.0, see COPYING for details +""" + +from tascam_fw_console.buttons import Button +from tascam_fw_console import osc + +status_quadlets = (4, 0, 0, 1, 1, 2, 2, 3, 3) +status_bits = ((1, 16), + (1, 16), + (17, 32), + (1, 16), + (17, 32), + (1, 16), + (17, 32), + (1, 16), + (17, 32), + ) + + +class Fader(Button): + def __init__(self, strip): + name = 'Strip {} Fader'. format(strip.num) + super().__init__(strip.console, name) + self.strip = strip + if self.strip.num == 0: + self.addr = '/master/fader' + else: + self.addr = '/strip/fader' + self.status_quadlet = status_quadlets[self.strip.num] + self.status_bits = status_bits[self.strip.num] + self.status_callback = self.send_pos + + @property + def position(self): + return self.console.status.field(self.status_quadlet, *self.status_bits) + + @position.setter + def position(self, pos): + self.console.unit.strips[self.strip.num].fader.set_position(pos) + + def send_pos(self, pos): + print('{}, ({}, {})'.format(self.addr, self.strip.num, pos/1023)) + if self.strip.num == 0: + osc.client.send_message(self.addr, pos/1023) + else: + osc.client.send_message(self.addr, (self.strip.num, pos/1023)) + + def press(self): + self.console.status_thread.add_callback(self) + super().press() + + def release(self): + self.console.status_thread.remove_callback(self) + super().press() |
