Giter VIP home page Giter VIP logo

pdarray's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

pdarray's Issues

array question

excuse me attempting to contact you this way, i'm a newbie/unskilled and not sure of the protocol, but i have to ask... i love Array because i can play circular waves that i make in the nyquist prompt in audacity that i don't know how to make otherwise. Array plays them beautifully with no click. but i cannot work out how to change the pitch of the sample, with CV... is this possible, it would be so good. been wresting with what i want to do for a decade or more but my tech skills are stoneage. fair enough if you don't have time for this, thank you very much for sharing your work and well done and best wishes.

Compile failure on Mac when cross-compiling

When compiling for Plugin Manager integration, Mac build fails (cross-compile):

[PdArray] Building plugin on platform mac...FAILED

x86_64-apple-darwin17-clang++  -std=c++11 -stdlib=libc++  -fPIC -I/home/cschol/src/Rack-SDK/Rack-SDK/include -I/home/cschol/src/Rack-SDK/Rack-SDK/dep/include -MMD -MP -g -O3 -march=nocona -funsafe-math-optimizations -Wall -Wextra -Wno-unused-parameter -DARCH_MAC -mmacosx-version-min=10.7 -c -o build/src/Array.cpp.o src/Array.cpp
x86_64-apple-darwin17-clang++  -std=c++11 -stdlib=libc++  -fPIC -I/home/cschol/src/Rack-SDK/Rack-SDK/include -I/home/cschol/src/Rack-SDK/Rack-SDK/dep/include -MMD -MP -g -O3 -march=nocona -funsafe-math-optimizations -Wall -Wextra -Wno-unused-parameter -DARCH_MAC -mmacosx-version-min=10.7 -c -o build/src/plugin.cpp.o src/plugin.cpp
x86_64-apple-darwin17-clang++  -std=c++11 -stdlib=libc++  -fPIC -I/home/cschol/src/Rack-SDK/Rack-SDK/include -I/home/cschol/src/Rack-SDK/Rack-SDK/dep/include -MMD -MP -g -O3 -march=nocona -funsafe-math-optimizations -Wall -Wextra -Wno-unused-parameter -DARCH_MAC -mmacosx-version-min=10.7 -c -o build/src/Miniramp.cpp.o src/Miniramp.cpp
src/Array.cpp:148:17: error: no matching function for call to 'min'
                int newSize = std::min(totalPCMFrameCount, buffer.size());
                              ^~~~~~~~
/home/cschol/src/osxcross/target/bin/../SDK/MacOSX10.13.sdk/usr/include/c++/v1/algorithm:2652:1: note: candidate template ignored: deduced conflicting types for parameter '_Tp' ('unsigned long long' vs. 'unsigned long')                                                                                         
min(const _Tp& __a, const _Tp& __b)
^
/home/cschol/src/osxcross/target/bin/../SDK/MacOSX10.13.sdk/usr/include/c++/v1/algorithm:2662:1: note: candidate template ignored: could not match 'initializer_list<type-parameter-0-0>' against 'unsigned long long'                                                                                              
min(initializer_list<_Tp> __t, _Compare __comp)
^
/home/cschol/src/osxcross/target/bin/../SDK/MacOSX10.13.sdk/usr/include/c++/v1/algorithm:2644:1: note: candidate function template not viable: requires 3 arguments, but 2 were provided                                                                                                                            
min(const _Tp& __a, const _Tp& __b, _Compare __comp)
^
/home/cschol/src/osxcross/target/bin/../SDK/MacOSX10.13.sdk/usr/include/c++/v1/algorithm:2670:1: note: candidate function template not viable: requires single argument '__t', but 2 arguments were provided                                                                                                        
min(initializer_list<_Tp> __t)
^
src/Array.cpp:441:23: warning: comparison of integers of different signs: 'std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::size_type' (aka 'unsigned long') and 'int' [-Wsign-compare]                                                                                       
                                if(newText.size() > pasteLength) newText.erase(pasteLength);
                                   ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~
src/Array.cpp:462:18: warning: comparison of integers of different signs: 'std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::size_type' (aka 'unsigned long') and 'int' [-Wsign-compare]                                                                                       
                if(text.size() < maxCharacters
                   ~~~~~~~~~~~ ^ ~~~~~~~~~~~~~
2 warnings and 1 error generated.
/home/cschol/src/Rack-SDK/Rack-SDK/compile.mk:61: recipe for target 'build/src/Array.cpp.o' failed
make: *** [build/src/Array.cpp.o] Error 1
make: *** Waiting for unfinished jobs....

Don't reload sample data from lastLoadedPath if it has been modified by the user

As of version 66c2bc4, the user may choose not to save the array data to the .vcv patch file. This may be due to two reasons:

  1. The user has loaded a large sample and wants the patch file to simply refer to it. In this case, the sample file should be loaded from disk when the patch is opened. This is the current behavior.
  2. The user doesn't care about the array contents, and is using it just as a temporary buffer. The user presumably wants the array size to stay the same when the patch file is saved and reopened.

Currently, case 2 is not supported. There is no way in the UI to unset the lastLoadedPath variable which is used to determine whether to load a file if save contents to patch is disabled. The array size is also not saved when the data is not saved. One solution would be to unset lastLoadedPath (or set it to just the folder) if the array data is modified in any way, although this is a bit difficult to explain in the manual.

The arrayData could maybe be one of three values: the data as a JSON array, a single integer representing the size of an array with undetermined contents, or a string which is the file to be loaded.

Array: bug and request

HI there! What a cool module!

Now, if i want to use it as a sample player(for drum samples mostly) i have a couple of problems: first, there's always an audible click in the end of the cycle, no matter which sample i load. And second, there's no consistent way to play different samples in their original speed. I guess first problem could be solved by 'fading out' the signal or somehting like that, and second by allowing the little ramp helper module to be able to automatically real the array size and set it as a middle position for it's duration knob...

And about the bug: it's the same as the one already reported i guess: when you load samples WITHOUT resizing, it crashes the rack itself. I'm on mac.

LOAD wav file causes crash sometimes

Hi! Load wav with change of the length works ok but when I tried to use just load wav file on some samples there was an immediately crash of the Rack.

Using PdArray as a sequencer bug

(vcv 1.1.5, windows 7 64)
I'm using a triangle wave from Frozen Wasteland BPMlfo to set the position of the output in PdArray and it doesn't seem to be changing the note at the point on the display when the line crosses the boundary between levels. Also, as the line moves beyond the center the problem is magnified. This makes it a bit difficult to use PdArray as a sequencer.

Ministep does not show full Max value

Ministep lets you enter a 3 digit value for Max, but only shows first 2 digits, 3rd wraps to non-visible 2nd line of display. For example, enter 234, only 23 shows, but it seems to use 234 as Max. Appears to function correctly, just does not display correctly.

Feature request: PdArray with STEP input rather than POS input

Hello! I was introduced to your module when asking a question on the VCV Rack Community forums here: https://community.vcvrack.com/t/looking-for-a-sequencer-for-long-modulations/6354

Essentially, I was looking for a module that I could use for producing modulations over long periods of time, meaning 6 minutes or so. I want to gradually evolve my songs over time. The PdArray is the closest module that I've found so far to do what I want. The only downfall is that the POS input is somewhat difficult to control for my purposes. However, if there were a variant of the module that replaced the POS input with a STEP input, it would be nearly perfect!

I say "nearly" only because it might use up a lot of memory for long tables. Because my modulations probably will change only 20% of the time, the other 80% of the time they'll be all the same value, meaning a lot of repeating values in the table will just be taking up memory.

An ideal module would store key/value pairs where the key would store the step number and the value would store the CV output value. But I can probably live with that inefficiency!

Anyhow, if you're like, "Oh, yeah, I could do that in less than 45 minutes!" I would be forever grateful. :-)

Cheers,
Bret

Compile crashes on Windows 10

$ RACK_DIR=C:/msys64/Rack-SDK make
g++ -std=c++11 -Wsuggest-override -fPIC -IC:/msys64/Rack-SDK/include -IC:/msys64/Rack-SDK/dep/include -MMD -MP -g -O3 -march=nocona -funsafe-math-optimizations -Wall -Wextra -Wno-unused-parameter -DARCH_WIN -D_USE_MATH_DEFINES -c -o build/src/Miniramp.cpp.o src/Miniramp.cpp
g++ -std=c++11 -Wsuggest-override -fPIC -IC:/msys64/Rack-SDK/include -IC:/msys64/Rack-SDK/dep/include -MMD -MP -g -O3 -march=nocona -funsafe-math-optimizations -Wall -Wextra -Wno-unused-parameter -DARCH_WIN -D_USE_MATH_DEFINES -c -o build/src/plugin.cpp.o src/plugin.cpp
g++ -std=c++11 -Wsuggest-override -fPIC -IC:/msys64/Rack-SDK/include -IC:/msys64/Rack-SDK/dep/include -MMD -MP -g -O3 -march=nocona -funsafe-math-optimizations -Wall -Wextra -Wno-unused-parameter -DARCH_WIN -D_USE_MATH_DEFINES -c -o build/src/Array.cpp.o src/Array.cpp
src/Array.cpp: In member function 'void Array::loadSample(std::string)':
src/Array.cpp:148:75: error: no matching function for call to 'min(long unsigned int, std::vector::size_type)'
148 | int newSize = std::min((unsigned long) totalPCMFrameCount, buffer.size());
| ^
In file included from C:/msys64/mingw64/include/c++/9.2.0/bits/char_traits.h:39,
from C:/msys64/mingw64/include/c++/9.2.0/string:40,
from C:/msys64/Rack-SDK/include/common.hpp:15,
from C:/msys64/Rack-SDK/include/rack.hpp:4,
from src/plugin.hpp:1,
from src/Array.cpp:1:
C:/msys64/mingw64/include/c++/9.2.0/bits/stl_algobase.h:198:5: note: candidate: 'template const _Tp& std::min(const _Tp&, const _Tp&)'
198 | min(const _Tp& __a, const _Tp& __b)
| ^~~
C:/msys64/mingw64/include/c++/9.2.0/bits/stl_algobase.h:198:5: note: template argument deduction/substitution failed:
src/Array.cpp:148:75: note: deduced conflicting types for parameter 'const _Tp' ('long unsigned int' and 'std::vector::size_type' {aka 'long long unsigned int'})
148 | int newSize = std::min((unsigned long) totalPCMFrameCount, buffer.size());
| ^
In file included from C:/msys64/mingw64/include/c++/9.2.0/bits/char_traits.h:39,
from C:/msys64/mingw64/include/c++/9.2.0/string:40,
from C:/msys64/Rack-SDK/include/common.hpp:15,
from C:/msys64/Rack-SDK/include/rack.hpp:4,
from src/plugin.hpp:1,
from src/Array.cpp:1:
C:/msys64/mingw64/include/c++/9.2.0/bits/stl_algobase.h:246:5: note: candidate: 'template<class _Tp, class _Compare> const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
246 | min(const _Tp& __a, const _Tp& __b, _Compare __comp)
| ^~~
C:/msys64/mingw64/include/c++/9.2.0/bits/stl_algobase.h:246:5: note: template argument deduction/substitution failed:
src/Array.cpp:148:75: note: deduced conflicting types for parameter 'const _Tp' ('long unsigned int' and 'std::vector::size_type' {aka 'long long unsigned int'})
148 | int newSize = std::min((unsigned long) totalPCMFrameCount, buffer.size());
| ^
In file included from C:/msys64/mingw64/include/c++/9.2.0/algorithm:62,
from C:/msys64/Rack-SDK/include/math.hpp:4,
from C:/msys64/Rack-SDK/include/rack.hpp:5,
from src/plugin.hpp:1,
from src/Array.cpp:1:
C:/msys64/mingw64/include/c++/9.2.0/bits/stl_algo.h:3444:5: note: candidate: 'template _Tp std::min(std::initializer_list<_Tp>)'
3444 | min(initializer_list<_Tp> __l)
| ^~~
C:/msys64/mingw64/include/c++/9.2.0/bits/stl_algo.h:3444:5: note: template argument deduction/substitution failed:
src/Array.cpp:148:75: note: mismatched types 'std::initializer_list<_Tp>' and 'long unsigned int'
148 | int newSize = std::min((unsigned long) totalPCMFrameCount, buffer.size());
| ^
In file included from C:/msys64/mingw64/include/c++/9.2.0/algorithm:62,
from C:/msys64/Rack-SDK/include/math.hpp:4,
from C:/msys64/Rack-SDK/include/rack.hpp:5,
from src/plugin.hpp:1,
from src/Array.cpp:1:
C:/msys64/mingw64/include/c++/9.2.0/bits/stl_algo.h:3450:5: note: candidate: 'template<class _Tp, class _Compare> _Tp std::min(std::initializer_list<_Tp>, _Compare)'
3450 | min(initializer_list<_Tp> __l, _Compare __comp)
| ^~~
C:/msys64/mingw64/include/c++/9.2.0/bits/stl_algo.h:3450:5: note: template argument deduction/substitution failed:
src/Array.cpp:148:75: note: mismatched types 'std::initializer_list<_Tp>' and 'long unsigned int'
148 | int newSize = std::min((unsigned long) totalPCMFrameCount, buffer.size());
| ^
src/Array.cpp: In member function 'virtual void NumberTextField::onSelectKey(const rack::event::SelectKey&)':
src/Array.cpp:441:23: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string::size_type' {aka 'long long unsigned int'} and 'int' [-Wsign-compare]
441 | if(newText.size() > pasteLength) newText.erase(pasteLength);
| ~~~~~~~~~~~~~~~^~~~~~~~~~~~~
src/Array.cpp: In member function 'virtual void NumberTextField::onSelectText(const rack::event::SelectText&)':
src/Array.cpp:462:18: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string::size_type' {aka 'long long unsigned int'} and 'int' [-Wsign-compare]
462 | if(text.size() < maxCharacters
| ~~~~~~~~~~~~^~~~~~~~~~~~~~~
make: *** [C:/msys64/Rack-SDK/compile.mk:62: build/src/Array.cpp.o] Error 1

feature suggestions

Greetings ! I use PdArray in almost every patch, but I'm missing a couple of features:

  1. An option to play through the array once only.
  2. An end-of-cycle (EOC) output.

These additions would be especially useful when creating large-scale formal envelopes.

Best regards,

dp

error building rack-v2 against latest Rack V2

Greetings ! I'm trying the build your rack-v2 branch with the latest Rack V2 but I get this error:

src/Array.cpp: In member function ‘virtual void ArrayDisplay::onDragMove(const DragMove&)’:
src/Array.cpp:452:40: error: ‘zoom’ is not a member of ‘rack::settings’
   float zoom = std::pow(2.f, settings::zoom);
                                        ^~~~

Andrew Belt replied to my inquiry this morning :

The rack zoom level has been removed from global settings, since multiple Rack plugin instances need different zoom levels.

Why would a plugin need to get the rack zoom level…?

Any suggestions for a fix ? I use the Array module a lot. :)

recording into array - next step is same as current step?

I got a problem where i am trying to capture a sequence into Array but can never do it since one step will always be wrong in the sequence. Both play and Record play heads are being controlled by Ministep. Toggling on and off record at the right time should capture the sequence correctly, for example an 8 step melody. However when I am at step 8 and it has been recorded, step 1 is also set to the value of step 8 and needs to be recorded over. So you end up with this leading wrong input all the time.
Hope that makes sense.

Samples modified just after recording

Hello,

I am trying to record a single cycle waveform into Array. While recording everything seems to be fine, the waveform is drawn as expected. However after completion some values are modified because of an unknown reason.

You can check with the patcher below (tested in Rack 2.0.6).

image

Visual lag in PdArray

Hi! Recently I used at least 7 pdarray instances in the patch and they all were uploaded with wav files. I've noticed some visual lags, sometimes all visuals in VCV Rack are just freezing for three seconds and then after around 20 seconds there is another cycle of that lag.

request - Ministep add buttons for easier mappings

Hi - just returning to the great Array module and since it is controlled by the Ministep, I am requesting some more features.

Ministep Reset button - this way its easy to map to something like Mindmeld Patchmaster and very quick to setup as a recorder of sequences with the Array module.

Increase, Decrease buttons could be cool to manually step through with Patchmaster controllers

[feature request] Sort array

after recording a sequence of values, it would be helpful to sort from greatest to lowest - then allowing you to remap a controller to step values and output the values from the PdArray sequence

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.