Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
a4e87e4bbf | ||
|
a162d06a62 | ||
|
5141d3e324 | ||
|
f0c438d7fa | ||
|
815354f4e6 | ||
|
27718f3e29 | ||
|
85c7df594b | ||
|
ebc097d901 | ||
|
28f4ef3334 |
13
.github/FUNDING.yml
vendored
Normal file
13
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: BKLronin # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||
patreon: # Replace with a single Patreon username
|
||||
open_collective: # Replace with a single Open Collective username
|
||||
ko_fi: # Replace with a single Ko-fi username
|
||||
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||
liberapay: # Replace with a single Liberapay username
|
||||
issuehunt: # Replace with a single IssueHunt username
|
||||
otechie: # Replace with a single Otechie username
|
||||
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
|
||||
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
20
README.md
20
README.md
@@ -5,16 +5,19 @@
|
||||
## Description
|
||||
|
||||
- Exports patterns and projects individual audio tracks to seperate folders for use in your DAW.
|
||||
- Python cross plattform with single file binary for x86 linux.
|
||||
- Python cross plattform with single file binary for x86 linux Windows and Mac.
|
||||
|
||||
## Using Packaged single file Binarys _(The easy way)_
|
||||
|
||||
- Executables reside in the folder `/dist/`
|
||||
- Executables reside in the folder `/dist/` or in the release tab.
|
||||
- on Windows
|
||||
`underbridge.exe`
|
||||
``underbridge.exe``
|
||||
- On Linux:
|
||||
``./underbridge``
|
||||
|
||||
``./underbridge``
|
||||
- on Mac
|
||||
Open terminal and change directory to where the underbridge_mac file is located and execute:
|
||||
``chmod 755 underbridge_mac``
|
||||
``./underbridge_mac`` or ``open underbridge_mac``
|
||||
|
||||
Underbridge_alt was packaged on a different system. Might help if you run into problems. (Outdated)
|
||||
|
||||
@@ -23,13 +26,13 @@ Underbridge_alt was packaged on a different system. Might help if you run into p
|
||||
### Windows
|
||||
|
||||
- Install Python 3.9 if not already, 3.10 seems to cause problems.
|
||||
- install portaudio_dev : `apt install portaudio19-dev`
|
||||
- install mido : `pip install mido`
|
||||
- install rt-midi: `pip isntall rt-midi`
|
||||
- install pipwin: `pip install pipwin`
|
||||
- install pyaudio `pipwin install pyaudio`
|
||||
|
||||
**Activate OP-Z device input in sound settings of windows and make it default**
|
||||
**- Activate OP-Z device input in sound settings of windows and make it default (Should detect automatically just to be sure. **
|
||||
**- Close all other Applications that might use any audio source like your Browser etc **
|
||||
|
||||
- run `python underbridge.py`
|
||||
|
||||
@@ -47,7 +50,7 @@ open terminal and type: `python3 underbridge.py` to start
|
||||
|
||||
### Ubuntu 20.10 LTS
|
||||
|
||||
- `sudo apt install portaudio19-dev`
|
||||
- `sudo apt install portaudio19-dev`
|
||||
- `sudo apt install python3-tk`
|
||||
- `pip install python-rtmidi`
|
||||
- `pip install pyaudio`
|
||||
@@ -85,3 +88,4 @@ open terminal and type: `python3 underbridge.py` to start
|
||||
|
||||
### Troubleshooting
|
||||
- When the recorded audio contains buzzing or other artifacts try disabling the USB charging with "display" and "bottom right key" to disable.
|
||||
- If the playback of the OP-Z starts correctly but no tracks are muted check that MIDI IN in the OP-Z app or via combo is enabled.
|
||||
|
BIN
dist/underbridge
vendored
BIN
dist/underbridge
vendored
Binary file not shown.
BIN
dist/underbridge.exe
vendored
BIN
dist/underbridge.exe
vendored
Binary file not shown.
BIN
dist/underbridge_lin
vendored
Executable file
BIN
dist/underbridge_lin
vendored
Executable file
Binary file not shown.
BIN
dist/underbridge_mac
vendored
BIN
dist/underbridge_mac
vendored
Binary file not shown.
@@ -133,7 +133,7 @@ class Midirecorder:
|
||||
try:
|
||||
self.op_device = list(filter(lambda x: 'OP-Z' in x, device_list))
|
||||
self.op_device = self.op_device[0]
|
||||
print (self.op_device)
|
||||
#print (self.op_device)
|
||||
self.displaymsg.set("OP-Z found")
|
||||
except:
|
||||
self.displaymsg.set("Can´t find OP-Z : MIDI Error.")
|
||||
@@ -196,7 +196,7 @@ class Midirecorder:
|
||||
#global op_device
|
||||
self.outport= mido.open_output(self.op_device)
|
||||
#displaymsg.set("OP-Z MIDI not connected :(")
|
||||
print(self.outport)
|
||||
#print(self.outport)
|
||||
|
||||
def setProject(self,projnr):
|
||||
msg= mido.Message('program_change',song= self.projnr, program = 1)
|
||||
@@ -204,19 +204,19 @@ class Midirecorder:
|
||||
|
||||
def muteAll(self):
|
||||
checkbutton_name = 0
|
||||
print(self.mute_list)
|
||||
#print(self.mute_list)
|
||||
|
||||
for j in range (0,7):
|
||||
for j in range (0,8):
|
||||
self.mute_list[j] = 1
|
||||
|
||||
for i in range (1,6):
|
||||
for i in range (1,7):
|
||||
checkbutton_name = 'self.modifier{}_value'.format(i) #checkbutton 1- 6
|
||||
self.mute_list[i+7] = eval(checkbutton_name).get() #9th position in mute list
|
||||
|
||||
for k in range (0,13):
|
||||
for k in range (0,14):
|
||||
msg = mido.Message('control_change',control= 53, channel= k, value= self.mute_list[k])
|
||||
self.outport.send(msg)
|
||||
print("Muted Channels",self.mute_list)
|
||||
#print("Muted Channels",self.mute_list)
|
||||
|
||||
def setSolo(self,chn):
|
||||
msg = mido.Message('control_change',control= 53, channel= chn, value=0)
|
||||
@@ -226,7 +226,7 @@ class Midirecorder:
|
||||
msg = mido.Message('start')
|
||||
self.outport.send(msg)
|
||||
self.displaymsg.set("Playback started")
|
||||
print("midi")
|
||||
#print("midi")
|
||||
|
||||
def stop_MIDI(self):
|
||||
msg = mido.Message('stop')
|
||||
@@ -278,16 +278,16 @@ class Midirecorder:
|
||||
#print(projectpath)
|
||||
|
||||
def start_Rec(self):
|
||||
print("record")
|
||||
#print("record")
|
||||
self.displaymsg.set("Recording...")
|
||||
CHUNK = 128
|
||||
FORMAT = pyaudio.paInt16
|
||||
CHANNELS = 2
|
||||
|
||||
RECORD_SECONDS= self.loop_time
|
||||
print("record")
|
||||
#print("record")
|
||||
WAVE_OUTPUT_FILENAME = self.name_input.get() + "_" + "track" + str(self.j+1) + ".wav"
|
||||
print(WAVE_OUTPUT_FILENAME)
|
||||
#print(WAVE_OUTPUT_FILENAME)
|
||||
p = pyaudio.PyAudio()
|
||||
stream = p.open(format=FORMAT,
|
||||
channels=CHANNELS,
|
||||
@@ -297,7 +297,7 @@ class Midirecorder:
|
||||
frames_per_buffer=CHUNK
|
||||
)
|
||||
|
||||
print("* recording")
|
||||
#print("* recording")
|
||||
|
||||
frames = []
|
||||
self.start_MIDI()
|
||||
|
Reference in New Issue
Block a user