Giter Site home page Giter Site logo

pachde1's People

Contributors

paul-dempsey avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

pachde1's Issues

Static analysis issues

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.

Failure cross-compiling on macOS platform with rack-plugin-toolchain

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); }
^                                

Copper: Can't round trip RGB/HSL for nvgHSL

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:

  • reverse-engineering the math in nvgHSL*
  • write an alternative color representation with consistent round-trip API, perhaps mining code from elsewhere

TODO: Use font name from font file rather than filename

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:

  • research a library that understand the format (perhaps grab code from FontForge)
  • write code to pull any interesting info we want

Imagine: CV control for speed and threshhold with attenuators

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.

Seg fault on exit [Rack v2.3.0 (debug build), Windows 10]

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

Imagine module - gate output behavior when read head over black color

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.