Erster Commit: nativer Linux-Port aus macOS-Bytecode
Läuft die Voice Acoustic VA-Remotecontrol (AllDSP AllControl) nativ unter Linux auf echtem wxGTK 3.0 — ohne Wine und ohne dekompilierten App-Code. Ausgeführt wird das unveränderte Python-2.7-Bytecode aus dem macOS-.app; C-Extensions (wxGTK/numpy/ scipy/PortAudio) kommen nativ aus Debian stretch. Enthält: va/ (Original-.pyc + pure-Python-Libs + Assets + launch.py mit den drei Linux-Fixes), Dockerfile/run.sh/entrypoint.sh, reference/ (dekompilierter Quellcode zum Debuggen) und README/STATUS. img.cache (378 MB, regenerierbar) ist per .gitignore ausgeschlossen. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
After Width: | Height: | Size: 130 KiB |
|
After Width: | Height: | Size: 86 KiB |
@@ -0,0 +1,189 @@
|
||||
[any|None|cs_out1]
|
||||
channelflagshow = always
|
||||
|
||||
[any|None|cs_out2]
|
||||
channelflagshow = always
|
||||
|
||||
[any|None|cs_out3]
|
||||
channelflagshow = always
|
||||
|
||||
[any|None|cs_out4]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|-1|vu_out1]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|-1|vu_out2]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|-1|vu_out3]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|-1|vu_out0]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|-1|mute_in1]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|-1|mute_in2]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|-1|mute_in3]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|-1|mute_in0]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|-1|mute_out1]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|-1|mute_out2]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|-1|mute_out3]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|-1|mute_out0]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|-1|channel_name_1_text]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|-1|channel_name_2_text]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|-1|channel_name_3_text]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|-1|channel_name_0_text]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|-1|channel_name_128_text]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|-1|channel_name_129_text]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|-1|channel_name_130_text]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|-1|channel_name_131_text]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|-1|vu_ina]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|-1|vu_inb]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|-1|vu_inc]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|-1|vu_ind]
|
||||
channelflagshow = always
|
||||
|
||||
[out_panel|None|mixer_a_slider]
|
||||
channelflagshow = always
|
||||
|
||||
[out_panel|None|mixer_b_slider]
|
||||
channelflagshow = always
|
||||
|
||||
[out_panel|None|mixer_c_slider]
|
||||
channelflagshow = always
|
||||
|
||||
[out_panel|None|mixer_d_slider]
|
||||
channelflagshow = always
|
||||
|
||||
[out_panel|None|mixer_a_text]
|
||||
channelflagshow = always
|
||||
|
||||
[out_panel|None|mixer_b_text]
|
||||
channelflagshow = always
|
||||
|
||||
[out_panel|None|mixer_c_text]
|
||||
channelflagshow = always
|
||||
|
||||
[out_panel|None|mixer_d_text]
|
||||
channelflagshow = always
|
||||
|
||||
[out_panel|None|mute_out]
|
||||
channelflagshow = always
|
||||
|
||||
[out_panel|None|vu_out]
|
||||
channelflagshow = always
|
||||
|
||||
[out_panel|None|out_delay_text]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|None|main_out0_slider]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|None|main_out0_text]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|None|mute_out0]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|None|channel_name_128_text]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|None|vu_out0]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|None|delay0]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|None|main_out1_slider]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|None|main_out1_text]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|None|mute_out1]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|None|channel_name_129_text]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|None|vu_out1]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|None|delay1]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|None|main_out2_slider]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|None|main_out2_text]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|None|mute_out2]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|None|channel_name_130_text]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|None|vu_out2]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|None|delay2]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|None|main_out3_slider]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|None|main_out3_text]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|None|mute_out3]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|None|channel_name_131_text]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|None|vu_out3]
|
||||
channelflagshow = always
|
||||
|
||||
[Main_panel|None|delay3]
|
||||
channelflagshow = always
|
||||
|
||||
|
After Width: | Height: | Size: 177 KiB |
|
After Width: | Height: | Size: 67 KiB |
|
After Width: | Height: | Size: 100 KiB |
@@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
#makeCache: alle png inpakken in img.cache.
|
||||
|
||||
import sys
|
||||
import os
|
||||
import cPickle
|
||||
import marshal
|
||||
import wx
|
||||
import array
|
||||
|
||||
app = wx.App()
|
||||
|
||||
modified_bitmap_buffer_cache = {}
|
||||
|
||||
files = os.listdir("cache")
|
||||
for f in files:
|
||||
basename = f #os.path.split(f)[1]
|
||||
print "doing", basename
|
||||
img = wx.Image("cache/" + f, wx.BITMAP_TYPE_ANY)
|
||||
print "doing 2", basename
|
||||
bmp = wx.BitmapFromImage(img)
|
||||
w, h = bmp.GetSize()
|
||||
w = max(w, 1)
|
||||
h = max(h, 1)
|
||||
buf = array.array('B', [0] * (w * h * 4))
|
||||
bmp.CopyToBuffer(buf,wx.BitmapBufferFormat_ARGB32)
|
||||
for i in range (0,w*h):
|
||||
offset=i*4
|
||||
b=buf[offset]
|
||||
g=buf[offset+1]
|
||||
r=buf[offset+2]
|
||||
a=buf[offset+3]
|
||||
buf[offset]=r
|
||||
buf[offset+1]=g
|
||||
buf[offset+2]=b
|
||||
buf[offset+3]=a
|
||||
modified_bitmap_buffer_cache[basename] = (buf,w,h)
|
||||
print "did", basename
|
||||
|
||||
f = open("img.cache", "wb")
|
||||
marshal.dump(modified_bitmap_buffer_cache,f,2)
|
||||
f.close()
|
||||
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 78 KiB |