paul-dempsey / pachde1 Goto Github PK
View Code? Open in Web Editor NEWVCV Rack modules
License: Other
VCV Rack modules
License: Other
https://community.vcvrack.com/t/poll-which-improvements-would-you-like-to-see-most-in-vcv/19785/77
We are now running static analysis tools CodeQL and cppcheck during the integration process and the following issues were found:
Running cppcheck analysis...
src/colors.hpp:97:44: error: Signed integer overflow for expression '255<<24'. [integerOverflow]
return r | (g << 8) | (b << 16) | (255 << 24);
^
src/text.cpp:22:28: error: va_list 'args' was opened but not closed by va_end(). [va_end_missing]
return r < 0 ? "??" : s;
^
Please take look and see if these need to be adressed.
Per discussion on the forums on Color interchange.
src/Info/Info.cpp:142:17: error: use of undeclared identifier 'isnanf'; did you mean 'isnan'?
if (isnanf(font_size)) {
^~~~~~
isnan
/home/build/rack-plugin-toolchain/local/osxcross/bin/../SDK/MacOSX11.1.sdk/usr/include/c++/v1/math.h:535:1: note: 'isnan' declared here
isnan(float __lcpp_x) _NOEXCEPT { return __libcpp_isnan(__lcpp_x); }
^
For the browser and Rack library, showing an image in the preview would better convey it's mission.
nanovg provides nvgHSL* functions, but doesn't provide functions to extract the same h, s, or l from an NVGcolor.
I've written some basic functions that have been workable for the purposes of imagine, but it's a real problem for Copper, and I disabled hex editing.
To fix this the options are:
Some fonts have horrible filenames and the real font name is embedded in the font file. Since we want to display the name in the UI (in the right click menu for the Info module, for example), we should retrieve the actual font name from the file.
To do that we must decode the file format, which is fortunately publicly documented:
Need to:
While playing, I've found that it can be musically interesting to modulate speed and threshold, usually by very small amounts. So, it could be good to have CV on these with built-in attenuators. There isn't much room on the panel and still retain labels, so this could go into the prototyped large version.
It should be possible to use Copper as an extension module to edit the panel colors for Null and Info.
Think of the Null module glowing the dark, pulsing with it's direct input, changing color based on modulating Copper.
Might be a good way to learn how to do extension modules.
Make sure to include factory presets for all the config required (chroma color(s), screw-less, logo-less, title-less).
Added Imagine module to empty rack. Immediatly close app.
Thread 1 received signal SIGSEGV, Segmentation fault.
nvgDeleteImage (ctx=0x0, image=5) at dep/nanovg/src/nanovg.c:890
890 ctx->params.renderDeleteTexture(ctx->params.userPtr, image);
(gdb) bt
#0 nvgDeleteImage (ctx=0x0, image=5) at dep/nanovg/src/nanovg.c:890
#1 0x00007fffc5783b51 in pachde::cachePic::clearImageCache (vg=<optimized out>, this=0x78dc608) at src/Imagine/../pic.hpp:143
#2 pachde::cachePic::onContextDestroy (e=..., this=0x78dc608) at src/Imagine/../pic.hpp:120
#3 pachde::PicWidget::onContextDestroy (this=0x78dc5b0, e=...) at src/Imagine/pic_widget.hpp:43
#4 0x00007fffc577e691 in rack::widget::Widget::recurseEvent<void (rack::widget::Widget::*)(rack::widget::Widget::ContextDestroyEvent const&), rack::widget::Widget::Co
ntextDestroyEvent> (e=..., f=&virtual table offset 328, this=0x78dc0d0) at ../../include/widget/Widget.hpp:187
#5 rack::widget::Widget::onContextDestroy (this=0x78dc0d0, e=...) at ../../include/widget/Widget.hpp:515
#6 0x00007fffda604e31 in rack::widget::Widget::recurseEvent<void (rack::widget::Widget::*)(rack::widget::Widget::ContextDestroyEvent const&), rack::widget::Widget::Co
ntextDestroyEvent> (e=..., f=&virtual table offset 328, this=0x980900) at include/widget/Widget.hpp:187
#7 rack::widget::Widget::onContextDestroy (this=0x980900, e=...) at include/widget/Widget.hpp:515
#8 0x00007fffda604e31 in rack::widget::Widget::recurseEvent<void (rack::widget::Widget::*)(rack::widget::Widget::ContextDestroyEvent const&), rack::widget::Widget::Co
ntextDestroyEvent> (e=..., f=&virtual table offset 328, this=0x74aa270) at include/widget/Widget.hpp:187
#9 rack::widget::Widget::onContextDestroy (this=0x74aa270, e=...) at include/widget/Widget.hpp:515
#10 0x00007fffda604e31 in rack::widget::Widget::recurseEvent<void (rack::widget::Widget::*)(rack::widget::Widget::ContextDestroyEvent const&), rack::widget::Widget::Co
ntextDestroyEvent> (e=..., f=&virtual table offset 328, this=0x74aa1f0) at include/widget/Widget.hpp:187
#11 rack::widget::Widget::onContextDestroy (this=0x74aa1f0, e=...) at include/widget/Widget.hpp:515
#12 0x00007fffda604e31 in rack::widget::Widget::recurseEvent<void (rack::widget::Widget::*)(rack::widget::Widget::ContextDestroyEvent const&), rack::widget::Widget::Co
ntextDestroyEvent> (e=..., f=&virtual table offset 328, this=0x74aa050) at include/widget/Widget.hpp:187
#13 rack::widget::Widget::onContextDestroy (this=0x74aa050, e=...) at include/widget/Widget.hpp:515
#14 0x00007fffda604e31 in rack::widget::Widget::recurseEvent<void (rack::widget::Widget::*)(rack::widget::Widget::ContextDestroyEvent const&), rack::widget::Widget::Co
ntextDestroyEvent> (e=..., f=&virtual table offset 328, this=0x74a9f80) at include/widget/Widget.hpp:187
#15 rack::widget::Widget::onContextDestroy (this=0x74a9f80, e=...) at include/widget/Widget.hpp:515
#16 0x00007fffda1bb0db in rack::widget::Widget::recurseEvent<void (rack::widget::Widget::*)(rack::widget::Widget::ContextDestroyEvent const&), rack::widget::Widget::Co
ntextDestroyEvent> (e=..., f=&virtual table offset 328, this=0x74a9ed0) at include/widget/Widget.hpp:187
#17 rack::widget::Widget::onContextDestroy (e=..., this=0x74a9ed0) at include/widget/Widget.hpp:515
#18 rack::window::Window::~Window (this=this@entry=0x6f6a7d0, __in_chrg=<optimized out>) at src/window/Window.cpp:369
#19 0x00007fffda136780 in rack::Context::~Context (this=0x7363ba0, __in_chrg=<optimized out>) at src/context.cpp:19
#20 0x00007ff74e20112e in main (argc=<optimized out>, argv=<optimized out>) at adapters/standalone.cpp:279
A possible issue with the gate output of your imagine module :
When loading a b&w image in your module and setting the mode to “vinyl”, I expected the gate output to always be 0v whenever the read head would be above the color black. But if you look between the 0:09 and 0:14 mark in this video (https://youtu.be/inIrWf5oIa8), sometimes the read head over black will output a constant 10v value instead.
If you could consider adding this more traditional behavior as an option for how the gate output work, it would be greatly appreciated.
Thanks,
Loops
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.