Closed Dewb closed 3 years ago
OS: win (mingw64)
Rack: dev
Plugin: dev (teletype branch)
tried to check this out, i get this build error:
module builds fine. the firmware doesn't.
cd firmware && make -f teletype.mk make[1]: Entering directory '/h/devel/vcv/rack-master/plugins/monome-rack/firmware' make[1]: No rule to make target '../build/firmware/teletype/src/match_token.c.o', needed by '../build/firmware/teletype.dll'. Stop. make[1]: Leaving directory '/h/devel/vcv/rack-master/plugins/monome-rack/firmware' make: [Makefile:38: firmwares] Error 2
when i load the module in rack, console shows this:
[info] Creating new temporary firmware instance at H:\devel\msys64\tmp\s5io.1\monome_vcvrack_firmware.dll [warning] Failed to load library H:\devel\msys64\tmp\s5io.1\monome_vcvrack_firmware.dll: 193
also causes crashes, when rack is autosaving.
[info] Saving patch ./autosave.vcv make: *** [Makefile:57: run] Segmentation fault
leaving a corrupted autosave.vcv that pops up a json error on next rack start.
The Teletype branch is probably not going to build consistently on all 3 platforms until it gets further along. I’m primarily developing on OS X.
Linux Fedora 23 Rack master
Just a note to let you know where the Teletype build stands on Linux. Getting closer now. Very exciting stuff you're doing here ! :)
cc -DNULL=0 -o0 -D__AVR32_UC3B0512__ -Werror=implicit-function-declaration -Imock_hardware -Imock_hardware/stubs -Iteletype/libavr32/src -Iteletype/libavr32/src/usb/hid -Iteletype/libavr32/conf -Iteletype/libavr32/conf/teletype -Iteletype/libavr32/asf/common/services/usb -Iteletype/libavr32/asf/common/services/usb/uhc -Iteletype/libavr32/asf/common/services/usb/class/hid -Iteletype/src -Iteletype/src/ops -c -o ../build/firmware/teletype/module/pattern_mode.c.o teletype/module/pattern_mode.c
In file included from mock_hardware/stubs/conf_usb_host.h:1:0,
from teletype/module/keyboard_helper.h:8,
from teletype/module/pattern_mode.c:5:
mock_hardware/stubs/compiler.h:1064:0: warning: "__always_inline" redefined
#define __always_inline inline __attribute__((__always_inline__))
^
In file included from /usr/include/features.h:365:0,
from /usr/include/stdint.h:25,
from /usr/lib/gcc/x86_64-redhat-linux/5.3.1/include/stdint.h:9,
from teletype/module/pattern_mode.h:5,
from teletype/module/pattern_mode.c:1:
/usr/include/sys/cdefs.h:307:0: note: this is the location of the previous definition
# define __always_inline __inline __attribute__ ((__always_inline__))
^
make[1]: *** No rule to make target '../build/firmware/teletype/src/match_token.c.o', needed by '../build/firmware/teletype.so'. Stop.
make[1]: Leaving directory '/home/dlphilp/src/Rack-master/plugins-extra/monome-rack/firmware'
Makefile:37: recipe for target 'firmwares' failed
make: *** [firmwares] Error 2
A little more information for you. The match_token object isn't building because the build apparently wants avr32-gcc as the compiler. Fedora 23 does include avr-gcc, avr-binutils, avr-gcc-c++, avr-libc, and avr-gdb. Alas, as far as I can tell, there's no support for i386, only x86_64. Is the 32-bit compiler required for a Linux build ?
That's odd. It shouldn't be building with avr32-gcc, it should be using x86_64 like the rest of the plugin (and Rack itself.)
I appreciate the feedback on the teletype branch, but just to warn you, building it isn't going to get you much right now—just the picture you see above. [EDITED: here is the 2017 version of the picture for reference]
The screen is being drawn by the module code, but without keyboard input and more GPIO work it isn't going to do anything. I'm probably going to put the teletype work aside for a bit to focus on getting the trilogy modules and the grid connections robust and releasable in binary form for everyone.
Here's the release plan: https://github.com/Dewb/monome-rack/projects/1
Thanks for the response, and no problem, I'll just be checking in now & then to see where you're at with things. I read the release plan, you've got a lot on your plate there. :) Meanwhile I have the monome/whitewhale to learn, so I'm happy to keep busy with that combo.
The teletype branch has been updated for Rack 1.1.6, and is now functional enough to do basic operations. Experimental teletype builds are available for Windows and macOS on the releases page. Still a lot of nonworking features (see checklist.)
Metros, most keystrokes, load/save work now. I was able to run through studies 1 & 2 without issues.
Hi Michael ! I'm pleased to hear about the tt update and I've successfully built the tt2020 branch. Alas, I have a library load problem when invoking the module in Rack 1.x :
[19.791 info src/common/FirmwareManager.cpp:195] Loading module firmware from ./plugins/monome-rack/res/firmware/teletype.so
[19.792 warn src/common/FirmwareManager.cpp:214] Failed to load library ./plugins/monome-rack/res/firmware/teletype.so: ./plugins/monome-rack/res/firmware/teletype.so: undefined symbol: process_keypress
[19.792 warn src/common/FirmwareManager.cpp:262] Could not load firmware teletype
Any suggestions ? I'm now building on Ubuntu 18.04, GCC 7.5.0.
Problem solved, I updated the firmware submodules, all seems good now. Sorry for the noise.
I'm running through various tutorials, so far things seem to work like the hardware (which I don't own and have never used). I'm trying to figure how to run scripts, I'll let you know how I fare with it over the next couple of days.
To run script 1, you can hit F1, send a trigger to trigger input 1, or execute SCRIPT 1
In Live view. This development tracking issue is not the best place to discuss the module behavior in general, your questions and feedback would be welcome in the monome thread on the VCV Rack forum
Thanks for the info, Michael, and I will join that discussion.
https://monome.org/docs/modular/teletype/
TODO:
as HID framesdirectly toprocess_keypress
Support non-US keyboards (needs fixes in Rack, coming in 2.0)(future)Advanced saving/loading(moved to phase 2 #62 )Right-click export/import all scenes to/from fileRight-click export/import single scene to/from file?Save NVRAM (and VRAM scene state?) as JSON rather than memory buffer, for more version-independenceVCV Rack 2.0: take advantage of new patch format to avoid hitting patch JSON size limits(and NVRAM?)Support locking the keyboard (or a second keyboard?) to TT input. Does VCV even allow this?(future)param knob live input fail: no way to hold ctrl and turn param knob (clicking steals focus from edit window)workaround: map a midi control knobFinalize panel graphics(future)