Coder Social home page Coder Social logo

vcv-recorder's People

Contributors

andrewbelt avatar

Stargazers

 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

vcv-recorder's Issues

recorder module will not work if patch copied to another path

possibly related to issue #26 -- and also likely issue 22 in the VCV-Prototype issues thread -- but when a .vcv file containing an instance of the recorder module has been copied to another path, the recorder module will not respond to record button presses.

Corrupted MPEG-4 files

I always have problems with the recordings when choosing MPEG-4: If i play the file with VLC for example it says that the file HOURS long, and it stutters and stuff. If i re-encode it in HandBrake, i often get parts where there's no sound, weird...It only plays good in quicktime player, but if i export it using quicktime player it has no sound at all!

I'm on the latest versions of both vcv rack and pluging, macbook pro 16, mac os 10.15.5

libavutil.a fails linking on Windows

commit 16e70f8
Building on Windows 10

g++ -o plugin.dll build/src/Recorder.cpp.o build/src/plugin.cpp.o dep/lib/libavformat.a dep/lib/libavcodec.a dep/lib/libavutil.a dep/lib/libswscale.a dep/lib/libmp3lame.a -shared -L../.. -lRack
build/src/Recorder.cpp.o: In function `RecorderWidget::draw(rack::widget::Widget::DrawArgs const&)':
C:\msys64\home\User\Rackv1\plugins\VCV-Recorder/src/Recorder.cpp:1071: undefined reference to `glReadPixels'
dep/lib/libavutil.a(random_seed.o): In function `av_get_random_seed':
C:\msys64\home\User\Rackv1\plugins\VCV-Recorder\dep\ffmpeg/libavutil/random_seed.c:126: undefined reference to `BCryptOpenAlgorithmProvider'
C:\msys64\home\User\Rackv1\plugins\VCV-Recorder\dep\ffmpeg/libavutil/random_seed.c:129: undefined reference to `BCryptGenRandom'
C:\msys64\home\User\Rackv1\plugins\VCV-Recorder\dep\ffmpeg/libavutil/random_seed.c:130: undefined reference to `BCryptCloseAlgorithmProvider'
collect2.exe: error: ld returned 1 exit status

Add patchname as default file name when choosing output

I use Nysthi's Master Recorder 2 but for quick recordings it can only record wav for me (MP3 records at a low bitrate despite the settings right now) so VCV Recorder is very appealing. However, Recorder always gives me Untitled as the default recording name. Nysthi does patchname_time_date_something as default which is very convenient. Could this be added to Recorder?

I am using linux (kde neon) so perhaps this is not the way it behaves on other platforms?

Make dep error - cannot find opus

Building on Ubuntu, libopus appears to have built and installed without error. But building ffmpeg is then failing

ERROR: opus not found using pkg-config

MPEG-2 rendering video with audio but no images.

My computer can't keep up with rendering to lossless format, so i chose MPEG-2, to render video with VCV-Recorder v.1.1.0
Here's the procedure i made in VCV Rack:

  1. Connected its L & R inputs to signal i wished to capture as audio.
  2. From its context menu, i…
    • Defined an 'Output file' via its context menu.
    • Selected the 'MPEG-2' video format.
    • Tested export with default encoder settings, then with the following;
      • All Audio bitrates between 128 & 256kps
      • All Video bitrates between 512 & 2048
  3. Pressed the big Record button to begin capture.
  4. Pressed the big Record button again, after some time elapsed, to finish capture.

The resulting file loaded and played in Windows Media Player and another video player (JetAudio). The sound was audible but there was no visuals. i assume that the contents of the Rack's window is intended to be captured?! i attempted recording with Rack both in fullscreen and windowed. i also attempted recording after removing scopes from the Rack, in case they caused conflict.

Environment:

  • VCV-Recorder v.1.1.0
  • VCV Rack v.1.1.6
  • ASIO soundcard
  • AMD Radeon HD 5450
  • Windows 10 Home

Build errors (v2.beta.1, Windows 10)

It seems like there is a missing library of some kind.

src/Recorder.cpp:672:34: error: 'struct rack::engine::Engine' has no member named 'getPrimaryModule'
  672 |                 if (APP->engine->getPrimaryModule() == this) {
      |                                  ^~~~~~~~~~~~~~~~
src/Recorder.cpp: In member function 'void Recorder::setPrimary()':
src/Recorder.cpp:987:30: error: 'struct rack::engine::Engine' has no member named 'setPrimaryModule'
  987 |                 APP->engine->setPrimaryModule(this);
      |                              ^~~~~~~~~~~~~~~~
src/Recorder.cpp: In member function 'bool Recorder::isPrimary()':
src/Recorder.cpp:991:37: error: 'struct rack::engine::Engine' has no member named 'getPrimaryModule'
  991 |                 return APP->engine->getPrimaryModule() == this;
      |                                     ^~~~~~~~~~~~~~~~
src/Recorder.cpp: In member function 'virtual void RecorderWidget::appendContextMenu(rack::ui::Menu*)':
src/Recorder.cpp:1112:51: error: no matching function for call to 'createCheckMenuItem(std::string, RecorderWidget::appendContextMenu(rack::ui::Menu*)::<lambda()>, RecorderWidget::appendContextMenu(rack::ui::Menu*)::<lambda()>)'
 1112 |                 menu->addChild(createCheckMenuItem((path != "") ? path : "Select...",
      |                                ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1113 |                         [=]() {return module->isPrimary();},
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1114 |                         [=]() {selectPath(module);}
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1115 |                 ));
      |                 ~

...

src/Recorder.cpp:1117:53: error: no matching function for call to 'createBoolPtrMenuItem(const char [24], bool*)'
 1117 |                 menu->addChild(createBoolPtrMenuItem("Append -001, -002, etc.", &module->incrementPath));
      |                                ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

...

src/Recorder.cpp:1124:59: error: no matching function for call to 'createCheckMenuItem(std::__cxx11::basic_string<char>, RecorderWidget::appendContextMenu(rack::ui::Menu*)::<lambda()>, RecorderWidget::appendContextMenu(rack::ui::Menu*)::<lambda()>)'
 1124 |                         menu->addChild(createCheckMenuItem(fi.name + " (." + fi.extension + ")",
      |                                        ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1125 |                                 [=]() {return format == module->format;},
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1126 |                                 [=]() {module->setFormat(format);}
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1127 |                         ));
      |                         ~

...

src/Recorder.cpp:1135:59: error: no matching function for call to 'createCheckMenuItem(std::__cxx11::basic_string<char>, RecorderWidget::appendContextMenu(rack::ui::Menu*)::<lambda()>, RecorderWidget::appendContextMenu(rack::ui::Menu*)::<lambda()>)'
 1135 |                         menu->addChild(createCheckMenuItem(fi.name + " (." + fi.extension + ")",
      |                                        ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1136 |                                 [=]() {return format == module->format;},
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1137 |                                 [=]() {module->setFormat(format);}
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1138 |                         ));
      |

...

src/Recorder.cpp: In lambda function:
src/Recorder.cpp:1147:75: error: no matching function for call to 'createCheckMenuItem(std::string, RecorderWidget::appendContextMenu(rack::ui::Menu*)::<lambda(rack::ui::Menu*)>::<lambda()>, RecorderWidget::appendContextMenu(rack::ui::Menu*)::<lambda(rack::ui::Menu*)>::<lambda()>)'
 1147 |                                         menu->addChild(createCheckMenuItem(string::f("%g kHz", sampleRate / 1000.0),
      |                                                        ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                                                 [=]() {return module->sampleRate == sampleRate;},
      |                                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                                                 [=]() {module->setSampleRate(sampleRate); DEBUG("%d", sampleRate);}
      |                                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                                         ));
      |                                         ~

...

src/Recorder.cpp:1144:49: error: no matching function for call to 'createSubmenuItem(const char [12], RecorderWidget::appendContextMenu(rack::ui::Menu*)::<lambda(rack::ui::Menu*)>)'
 1144 |                 menu->addChild(createSubmenuItem("Sample rate",
      |                                ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
 1145 |                         [=](Menu* menu) {
      |                         ~~~~~~~~~~~~~~~~~
 1146 |                                 for (int sampleRate : module->getSampleRates()) {
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1147 |                                         menu->addChild(createCheckMenuItem(string::f("%g kHz", sampleRate / 1000.0),
      |                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1148 |                                                 [=]() {return module->sampleRate == sampleRate;},
      |                                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1149 |                                                 [=]() {module->setSampleRate(sampleRate); DEBUG("%d", sampleRate);}
      |                                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1150 |                                         ));
      |                                         ~~~
 1151 |                                 }
      |                                 ~
 1152 |                         }
      |                         ~
 1153 |                 ));
      |                 ~

...

src/Recorder.cpp:1159:83: error: no matching function for call to 'createCheckMenuItem(std::string, RecorderWidget::appendContextMenu(rack::ui::Menu*)::<lambda(rack::ui::Menu*)>::<lambda()>, RecorderWidget::appendContextMenu(rack::ui::Menu*)::<lambda(rack::ui::Menu*)>::<lambda()>)'
 1159 |                                                 menu->addChild(createCheckMenuItem(string::f("%d bit", depth),
      |                                                                ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1160 |                                                         [=]() {return module->depth == depth;},
      |                                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1161 |                                                         [=]() {module->setDepth(depth);}
      |                                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                                                 ));
      |                                                 ~

...

src/Recorder.cpp:1156:57: error: no matching function for call to 'createSubmenuItem(const char [10], RecorderWidget::appendContextMenu(rack::ui::Menu*)::<lambda(rack::ui::Menu*)>)'
 1156 |                         menu->addChild(createSubmenuItem("Bit depth",
      |                                        ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
 1157 |                                 [=](Menu* menu) {
      |                                 ~~~~~~~~~~~~~~~~~
 1158 |                                         for (int depth : module->getDepths()) {
      |                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1159 |                                                 menu->addChild(createCheckMenuItem(string::f("%d bit", depth),
      |                                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1160 |                                                         [=]() {return module->depth == depth;},
      |                                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1161 |                                                         [=]() {module->setDepth(depth);}
      |                                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1162 |                                                 ));
      |                                                 ~~~
 1163 |                                         }
      |                                         ~
 1164 |                                 }
      |                                 ~
 1165 |                         ));
      |                         ~

...

src/Recorder.cpp:1172:83: error: no matching function for call to 'createCheckMenuItem(std::string, RecorderWidget::appendContextMenu(rack::ui::Menu*)::<lambda(rack::ui::Menu*)>::<lambda()>, RecorderWidget::appendContextMenu(rack::ui::Menu*)::<lambda(rack::ui::Menu*)>::<lambda()>)'
 1172 |                                                 menu->addChild(createCheckMenuItem(string::f("%d kbps", bitRate / 1000),
      |                                                                ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                                                         [=]() {return module->bitRate == bitRate;},
      |                                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                                                         [=]() {module->setBitRate(bitRate);}
      |                                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                                                 ));
      |                                                 ~

...

src/Recorder.cpp:1169:57: error: no matching function for call to 'createSubmenuItem(const char [9], RecorderWidget::appendContextMenu(rack::ui::Menu*)::<lambda(rack::ui::Menu*)>)'
 1169 |                         menu->addChild(createSubmenuItem("Bit rate",
      |                                        ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
 1170 |                                 [=](Menu* menu) {
      |                                 ~~~~~~~~~~~~~~~~~
 1171 |                                         for (int bitRate : module->getBitRates()) {
      |                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 |                                                 menu->addChild(createCheckMenuItem(string::f("%d kbps", bitRate / 1000),
      |                                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1173 |                                                         [=]() {return module->bitRate == bitRate;},
      |                                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1174 |                                                         [=]() {module->setBitRate(bitRate);}
      |                                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1175 |                                                 ));
      |                                                 ~~~
 1176 |                                         }
      |                                         ~
 1177 |                                 }
      |                                 ~
 1178 |                         ));
      |                         ~

...

src/Recorder.cpp:1182:51: error: no matching function for call to 'createCheckMenuItem(const char [21], RecorderWidget::appendContextMenu(rack::ui::Menu*)::<lambda()>, RecorderWidget::appendContextMenu(rack::ui::Menu*)::<lambda()>)'
 1182 |                 menu->addChild(createCheckMenuItem("Primary audio module",
      |                                ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
 1183 |                         [=]() {return module->isPrimary();},
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1184 |                         [=]() {module->setPrimary();}
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1185 |                 ));
      |                 ~

"ERROR: libmp3lame >= 3.98.3 not found" when built with Windows

commit 6dd76d3

I have nasm installed as suggested in #15

cd dep/ffmpeg && ./configure --prefix="/home/Phil/rack-1.0.3/rack/plugins/vcv-recorder/dep" --enable-pic --enable-gpl \
        --disable-programs --disable-doc --disable-avdevice --disable-postproc --disable-avfilter --disable-network --disable-iconv --disable-alsa --disable-autodetect --disable-everything \
        --enable-protocol=file \
        --enable-muxer=wav --enable-encoder=pcm_s16le --enable-encoder=pcm_s24le \
        --enable-muxer=aiff --enable-encoder=pcm_s16be --enable-encoder=pcm_s24be \
        --enable-libmp3lame --enable-muxer=mp3 --enable-encoder=libmp3lame \
        --enable-muxer=flac --enable-encoder=flac \
        --enable-muxer=ipod --enable-encoder=alac \
        --enable-muxer=mpeg1system --enable-encoder=mpeg2video --enable-encoder=mp2
ERROR: libmp3lame >= 3.98.3 not found

If you think configure made a mistake, make sure you are using the latest
version from Git.  If the latest version fails, report the problem to the
[email protected] mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "ffbuild/config.log" produced by configure as this will help
solve the problem.
make: *** [Makefile:32: dep/lib/libavcodec.a] Error 1

libswresample/swresample.h not found

macosx 10.13

after inching to get lame and all ffmpeg installed

I get this:

src/Recorder.cpp:8:10: fatal error: 'libswresample/swresample.h' file not found
#include <libswresample/swresample.h>

the libswresample/swresample.h seems to be in the correct place

seems like the -I$(RACK_DIR)/dep/include from plugin.mk doesn't work, or maybe doesn't work because is declared extern "C"

Automatic file name suffix doesn't work with Scandinavian characters

If the manually given file name (via the save dialog) has Scandinavian characters, like ä/Ä or ö/Ö, Recorder won't generate new files names with the -001 etc suffixes when starting a new recording when the option to generate the file names with the suffixes is enabled. Instead the previously recorded file is overwritten. The file is actually written on disk with the special characters in the file name included. This seems to be a problem in the code that detects the need for and generates the new automatic file names.

It also happens with German and French etc non-ASCII characters (like Ü/ü and à/è/ì/ò/ù).

I observed this on Windows 7.

Crash when trying to start recording

CPU: Intel® Core™2 Quad Processor Q8300
OS: Windows 10 1703
Rack: Free 2.1.2
Recorder: latest

Rack crashes when I try to start recording using Recorder. It happens 100% with or without any other modules.

These actions will all trigger the crash:

  • Clicking the record button
  • Sending some signal into the gate/trigger input

Changing engine sample rate / threads, Recorder audio format / sample rate / bit depth won't help.

This bug is not new in Rack 2.1.2, it appeared after some updates of Recorder or Rack 2 that I can't remember exactly, but I didn't file an issue back then.

Here are the backtraces from gdb when the crash happens:

Thread 27 received signal SIGILL, Illegal instruction.
[Switching to Thread 9360.0x2448]
0x00007ffc7a05b970 in plugin!av_get_channel_layout_nb_channels () from C:\Users\Letheward\Documents\Rack2\plugins\VCV-Recorder\plugin.dll
(gdb) bt
#0  0x00007ffc7a05b970 in plugin!av_get_channel_layout_nb_channels () from C:\Users\Letheward\Documents\Rack2\plugins\VCV-Recorder\plugin.dll
#1  0x00007ffc79fe84e8 in plugin!avcodec_open2 () from C:\Users\Letheward\Documents\Rack2\plugins\VCV-Recorder\plugin.dll
#2  0x00007ffc7a145235 in plugin!_ZN7Encoder4openENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_iiiiii () from C:\Users\Letheward\Documents\Rack2\plugins\VCV-Recorder\plugin.dll
#3  0x00007ffc7a147862 in plugin!_ZN8Recorder5startEv () from C:\Users\Letheward\Documents\Rack2\plugins\VCV-Recorder\plugin.dll
#4  0x00007ffc7a148625 in plugin!_ZN8Recorder7processERKN4rack6engine6Module11ProcessArgsE () from C:\Users\Letheward\Documents\Rack2\plugins\VCV-Recorder\plugin.dll
#5  0x00007ffc8e95fb6a in libRack!_ZN4rack6engine6Module9doProcessERKNS1_11ProcessArgsE () from D:\Software\Rack2\libRack.dll
#6  0x00007ffc8e95ab82 in libRack!_ZN4rack6engine6Engine9stepBlockEi () from D:\Software\Rack2\libRack.dll
#7  0x00007ffc8e95b486 in libRack!_ZN4rack6engine6Engine9stepBlockEi () from D:\Software\Rack2\libRack.dll
#8  0x00007ffc91001371 in ?? () from D:\Software\Rack2\libstdc++-6.dll
#9  0x00007ffca77f4d53 in ?? () from D:\Software\Rack2\libwinpthread-1.dll
#10 0x00007ffcbc06ae06 in msvcrt!_beginthreadex () from C:\Windows\System32\msvcrt.dll
#11 0x00007ffcbc06aedc in msvcrt!_endthreadex () from C:\Windows\System32\msvcrt.dll
#12 0x00007ffcb9e82784 in KERNEL32!BaseThreadInitThunk () from C:\Windows\System32\kernel32.dll
#13 0x00007ffcbc810c31 in ntdll!RtlUserThreadStart () from C:\Windows\SYSTEM32\ntdll.dll
#14 0x0000000000000000 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb)

Feature request: Add suffix in filename based on CV input

I like to design elaborate patches to model single-shot sounds, and then render them to wav as samples, to be played in a sampler. It would be great to automatically trigger a range of notes, and save each of them individually into separate wave files, without having to after the fact figure out which note is which.

I think this feature could work like this:

  • Have one or more CV inputs that, if connected, are checked for a value on record start, when building the path to record to.
  • Append a value to the file name for each CV that's connected. That could either be the CV's actual voltage (perhaps in mV as int?) or a MIDI note-name like C-4

The rest of the automation can then be taken care of by normal sequencers.

Thoughts? I'd be happy to take a shot at implementing it myself.

make dep fails with nasm/yasm not found or too old

Windows 10, commit 6dd76d3

...
cd dep/ffmpeg && ./configure --prefix="/home/mboule/Rack/rdev/Rack/plugins/VCV-Recorder/dep" --enable-pic --enable-gpl \
        --disable-programs --disable-doc --disable-avdevice --disable-postproc --disable-avfilter --disable-network --disable-iconv --disable-alsa --disable-autodetect --disable-everything \
        --enable-protocol=file \
        --enable-muxer=wav --enable-encoder=pcm_s16le --enable-encoder=pcm_s24le \
        --enable-muxer=aiff --enable-encoder=pcm_s16be --enable-encoder=pcm_s24be \
        --enable-libmp3lame --enable-muxer=mp3 --enable-encoder=libmp3lame \
        --enable-muxer=flac --enable-encoder=flac \
        --enable-muxer=ipod --enable-encoder=alac \
        --enable-muxer=mpeg1system --enable-encoder=mpeg2video --enable-encoder=mp2
nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.

If you think configure made a mistake, make sure you are using the latest
version from Git.  If the latest version fails, report the problem to the
[email protected] mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "ffbuild/config.log" produced by configure as this will help
solve the problem.
make: *** [Makefile:32: dep/lib/libavcodec.a] Error 1

make dep failing on sourceforge dependency

My make dep is failing while fetching some sourceforge packages. I'll put an excerpt of my terminal below, perhaps you might see something useful (sorry for the french, but the penultimate line says that 20 redirections occured, which is beyond the acceptable limit). I've been having this error in the previous days as well, but figured it was because the repo was not finished.

(Win10, commit 4255b04)

(terminal log below was from a second invocation of make dep, so some things were already done)

$ make dep
cd dep && wget -c "https://sourceforge.net/projects/lame/files/lame/3.100/lame-3.100.tar.gz"
--2019-04-17 12:03:18--  https://sourceforge.net/projects/lame/files/lame/3.100/lame-3.100.tar.gz
Résolution de sourceforge.net (sourceforge.net)… 216.105.38.13
Connexion à sourceforge.net (sourceforge.net)|216.105.38.13|:443… connecté.
requête HTTP transmise, en attente de la réponse… 301 Moved Permanently
Emplacement : https://sourceforge.net/projects/lame/files/lame/3.100/lame-3.100.tar.gz/ [suivant]
--2019-04-17 12:03:19--  https://sourceforge.net/projects/lame/files/lame/3.100/lame-3.100.tar.gz/
Connexion à sourceforge.net (sourceforge.net)|216.105.38.13|:443… connecté.
requête HTTP transmise, en attente de la réponse… 302 Found
Emplacement : https://sourceforge.net/projects/lame/files/lame/3.100/lame-3.100.tar.gz/download [suivant]
--2019-04-17 12:03:19--  https://sourceforge.net/projects/lame/files/lame/3.100/lame-3.100.tar.gz/download
Connexion à sourceforge.net (sourceforge.net)|216.105.38.13|:443… connecté.
requête HTTP transmise, en attente de la réponse… 302 Found
Emplacement : https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz?r=&ts=1555516999&use_mirror=ayera [suivant]
--2019-04-17 12:03:20--  https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz?r=&ts=1555516999&use_mirror=ayera
Résolution de downloads.sourceforge.net (downloads.sourceforge.net)… 216.105.38.13
Connexion à downloads.sourceforge.net (downloads.sourceforge.net)|216.105.38.13|:443… connecté.
requête HTTP transmise, en attente de la réponse… 302 Found
Emplacement : https://ayera.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz [suivant]
--2019-04-17 12:03:20--  https://ayera.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
Résolution de ayera.dl.sourceforge.net (ayera.dl.sourceforge.net)… 172.110.242.68, 2607:fa38:0:fe:6563:4fc1:ac91:ea86
Connexion à ayera.dl.sourceforge.net (ayera.dl.sourceforge.net)|172.110.242.68|:443… connecté.
requête HTTP transmise, en attente de la réponse… 302 Moved Temporarily
Emplacement : http://downloads.sourceforge.net/mirrorproblem?failedmirror=ayera.dl.sourceforge.net [suivant]
--2019-04-17 12:03:21--  http://downloads.sourceforge.net/mirrorproblem?failedmirror=ayera.dl.sourceforge.net
Connexion à downloads.sourceforge.net (downloads.sourceforge.net)|216.105.38.13|:80… connecté.
requête HTTP transmise, en attente de la réponse… 302 Found
Emplacement : https://iweb.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz [suivant]
--2019-04-17 12:03:21--  https://iweb.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
Résolution de iweb.dl.sourceforge.net (iweb.dl.sourceforge.net)… 192.175.120.182, 2607:f748:10:12::5f:2
Connexion à iweb.dl.sourceforge.net (iweb.dl.sourceforge.net)|192.175.120.182|:443… connecté.
requête HTTP transmise, en attente de la réponse… 302 Found
Emplacement : http://downloads.sourceforge.net/mirrorproblem?failedmirror=iweb.dl.sourceforge.net [suivant]
--2019-04-17 12:03:21--  http://downloads.sourceforge.net/mirrorproblem?failedmirror=iweb.dl.sourceforge.net
Réutilisation de la connexion existante à downloads.sourceforge.net:80.
requête HTTP transmise, en attente de la réponse… 302 Found
Emplacement : https://superb-dca2.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz [suivant]
--2019-04-17 12:03:21--  https://superb-dca2.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
Résolution de superb-dca2.dl.sourceforge.net (superb-dca2.dl.sourceforge.net)… 209.61.193.20
Connexion à superb-dca2.dl.sourceforge.net (superb-dca2.dl.sourceforge.net)|209.61.193.20|:443… connecté.
requête HTTP transmise, en attente de la réponse… 302 Moved Temporarily
Emplacement : http://downloads.sourceforge.net/mirrorproblem?failedmirror=superb-dca2.dl.sourceforge.net [suivant]
--2019-04-17 12:03:21--  http://downloads.sourceforge.net/mirrorproblem?failedmirror=superb-dca2.dl.sourceforge.net
Réutilisation de la connexion existante à downloads.sourceforge.net:80.
requête HTTP transmise, en attente de la réponse… 302 Found
Emplacement : https://astuteinternet.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz [suivant]
--2019-04-17 12:03:21--  https://astuteinternet.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
Résolution de astuteinternet.dl.sourceforge.net (astuteinternet.dl.sourceforge.net)… 162.213.157.36
Connexion à astuteinternet.dl.sourceforge.net (astuteinternet.dl.sourceforge.net)|162.213.157.36|:443… connecté.
requête HTTP transmise, en attente de la réponse… 302 Moved Temporarily
Emplacement : http://downloads.sourceforge.net/mirrorproblem?failedmirror=astuteinternet.dl.sourceforge.net [suivant]
--2019-04-17 12:03:22--  http://downloads.sourceforge.net/mirrorproblem?failedmirror=astuteinternet.dl.sourceforge.net
Réutilisation de la connexion existante à downloads.sourceforge.net:80.
requête HTTP transmise, en attente de la réponse… 302 Found
Emplacement : https://phoenixnap.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz [suivant]
--2019-04-17 12:03:22--  https://phoenixnap.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
Résolution de phoenixnap.dl.sourceforge.net (phoenixnap.dl.sourceforge.net)… 184.164.141.26
Connexion à phoenixnap.dl.sourceforge.net (phoenixnap.dl.sourceforge.net)|184.164.141.26|:443… connecté.
requête HTTP transmise, en attente de la réponse… 302 Moved Temporarily
Emplacement : http://downloads.sourceforge.net/mirrorproblem?failedmirror=phoenixnap.dl.sourceforge.net [suivant]
--2019-04-17 12:03:22--  http://downloads.sourceforge.net/mirrorproblem?failedmirror=phoenixnap.dl.sourceforge.net
Réutilisation de la connexion existante à downloads.sourceforge.net:80.
requête HTTP transmise, en attente de la réponse… 302 Found
Emplacement : https://managedway.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz [suivant]
--2019-04-17 12:03:22--  https://managedway.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
Résolution de managedway.dl.sourceforge.net (managedway.dl.sourceforge.net)… 208.79.213.6
Connexion à managedway.dl.sourceforge.net (managedway.dl.sourceforge.net)|208.79.213.6|:443… connecté.
requête HTTP transmise, en attente de la réponse… 302 Moved Temporarily
Emplacement : http://downloads.sourceforge.net/mirrorproblem?failedmirror=managedway.dl.sourceforge.net [suivant]
--2019-04-17 12:03:22--  http://downloads.sourceforge.net/mirrorproblem?failedmirror=managedway.dl.sourceforge.net
Réutilisation de la connexion existante à downloads.sourceforge.net:80.
requête HTTP transmise, en attente de la réponse… 302 Found
Emplacement : https://svwh.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz [suivant]
--2019-04-17 12:03:22--  https://svwh.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
Résolution de svwh.dl.sourceforge.net (svwh.dl.sourceforge.net)… 72.5.72.15, 2606:c680:0:b:3830:34ff:fe66:6663
Connexion à svwh.dl.sourceforge.net (svwh.dl.sourceforge.net)|72.5.72.15|:443… connecté.
requête HTTP transmise, en attente de la réponse… 302 Moved Temporarily
Emplacement : http://downloads.sourceforge.net/mirrorproblem?failedmirror=svwh.dl.sourceforge.net [suivant]
--2019-04-17 12:03:23--  http://downloads.sourceforge.net/mirrorproblem?failedmirror=svwh.dl.sourceforge.net
Réutilisation de la connexion existante à downloads.sourceforge.net:80.
requête HTTP transmise, en attente de la réponse… 302 Found
Emplacement : https://versaweb.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz [suivant]
--2019-04-17 12:03:23--  https://versaweb.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
Résolution de versaweb.dl.sourceforge.net (versaweb.dl.sourceforge.net)… 162.251.232.173
Connexion à versaweb.dl.sourceforge.net (versaweb.dl.sourceforge.net)|162.251.232.173|:443… connecté.
requête HTTP transmise, en attente de la réponse… 302 Moved Temporarily
Emplacement : http://downloads.sourceforge.net/mirrorproblem?failedmirror=versaweb.dl.sourceforge.net [suivant]
--2019-04-17 12:03:23--  http://downloads.sourceforge.net/mirrorproblem?failedmirror=versaweb.dl.sourceforge.net
Réutilisation de la connexion existante à downloads.sourceforge.net:80.
requête HTTP transmise, en attente de la réponse… 302 Found
Emplacement : https://cfhcable.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz [suivant]
--2019-04-17 12:03:23--  https://cfhcable.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
Résolution de cfhcable.dl.sourceforge.net (cfhcable.dl.sourceforge.net)… 146.71.73.6
Connexion à cfhcable.dl.sourceforge.net (cfhcable.dl.sourceforge.net)|146.71.73.6|:443… connecté.
requête HTTP transmise, en attente de la réponse… 302 Moved Temporarily
Emplacement : http://downloads.sourceforge.net/mirrorproblem?failedmirror=cfhcable.dl.sourceforge.net [suivant]
20 redirections dépassant la limite permise.
make: *** [Makefile:43: dep/lib/libmp3lame.a] Error 8
```

Where to put NASM?

I'm on Windows 10 and trying to install with the 2.beta.1 SDK. I installed NASM to the default location of C:\Program Files\NASM and added it to the path, but I get this error when running make dep:
nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.
Installing NASM to the Rack-SDK/include folder doesn't work. I don't know what the problem is.

EDIT: It seems that I had to install NASM via MinGW using pacman -Su nasm... ¯_(ツ)_/¯

Exclude the menu bar in a video recording?

I am fine with most parts of the video recording except that menu bar at the top that doesn't need to be in the video. This request is only for looks and is not very important. 😄 I assume there is a reason it's in the video, and if it can't be removed then I will live.

dep/ffmpeg folder doesn't exist

I'm building on Linux Mint (Ubuntu based) and I get the following issue with ffmpeg, as if a part of the script did not execute and download the ffmpeg stuff:

/bin/sh: 1: cd: can't cd to dep/ffmpeg Makefile:44: recipe for target 'dep/lib/libavcodec.a' failed
Indeed there is no ffmpeg in VCV-Recorder/dep/

The make command finishes with lame-3.100 and then starts with ffmpeg but no download is attempted and how could the directory be there. See below:

make[1]: Leaving directory '/home/leopard/Apps/Rack/Rackv1/plugins/VCV-Recorder/dep/lame-3.100' mkdir -p dep cd dep/ffmpeg && ./configure --prefix="/home/leopard/Apps/Rack/Rackv1/plugins/VCV-Recorder/dep" --enable-pic --enable-gpl \ --disable-programs --disable-doc --disable-avdevice --disable-swresample --disable-postproc --disable-avfilter --disable-network --disable-iconv --disable-alsa --disable-autodetect --disable-everything \ --enable-protocol=file \ --enable-muxer=wav --enable-encoder=pcm_s16le --enable-encoder=pcm_s24le --enable-muxer=aiff --enable-encoder=pcm_s16be --enable-encoder=pcm_s24be --enable-libmp3lame --enable-muxer=mp3 --enable-encoder=libmp3lame --enable-muxer=flac --enable-encoder=flac --enable-muxer=ipod --enable-encoder=alac --enable-muxer=mpeg1system --enable-encoder=mpeg2video --enable-encoder=mp2 Makefile:44: recipe for target 'dep/lib/libavcodec.a' failed

Use worker thread for audio/video encoding and writing

Currently encoding and writing to disk is done on the engine thread. This was the simplest and fastest way to get the software out the door.

A thread-safe message buffer should be used instead, which the worker should consume. I'll probably use OS mutexes for this rather than lock-free data structures.

Add support for polyphonic recording?

The old PolyRec module by NYSTHI isn't updated for Apple M1+ chips, leaving no easy multichannel recorder in the Library.

I'd love it if Rec's "VCV Time" ability to record smoothly through CPU spikes and jitters was expanded out to multichannel...

make issues: windows 7

Couple of issues.

git submodule update --init --recursive hangs a bit takes about 3-4 minutes to complete the task.

make dep also fails, full log: https://pastebin.com/5R3ESm67

C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.2.1/../../../../x86_64-w64-mingw32/bin/ld.exe: Cannot export lame_init_old: symbol not defined
collect2.exe: error: ld returned 1 exit status
make[3]: *** [Makefile:550: libmp3lame.la] Error 1
make[3]: Leaving directory '/home/Phil/rack-1.0.2/rack/plugins/vcv-recorder/dep/lame-3.100/libmp3lame'
make[2]: *** [Makefile:613: install-recursive] Error 1
make[2]: Leaving directory '/home/Phil/rack-1.0.2/rack/plugins/vcv-recorder/dep/lame-3.100/libmp3lame'
make[1]: *** [Makefile:452: install-recursive] Error 1
make[1]: Leaving directory '/home/Phil/rack-1.0.2/rack/plugins/vcv-recorder/dep/lame-3.100'
make: *** [Makefile:46: dep/lib/libmp3lame.a] Error 2

Rack version: 357952c

there are no build instructions

It would be nice to document how to build this repo. makde dep is failing for me. Lot of errors like this:

C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: silk/float/.libs/LPC_inv_pred_gain_FLP.o:C:/msys64/mingw64/x86_64-w64-mingw32/include/string.h:202: more undefined references to `__memcpy_chk' follow

configure ffmpeg problem during make dep

I got this error on my Win10 machine and reproduced on another Win10 with a fresh clone of Rack and vcv-recorder:

$ make dep
\# Don't use ./configure --prefix="/home/Leonardo/Lezioni-Rack/Rack/plugins/VCV-Recorder/dep" --host=x86_64-w64-mingw32 because this is a handwritten configure script
\# ffmpeg bug: The pkgconfig dir is not set from pkgconfigdir at all. Set it with PKG_CONFIG_PATH instead.
cd ffmpeg && PKG_CONFIG_PATH="/home/Leonardo/Lezioni-Rack/Rack/plugins/VCV-Recorder/dep/lib/pkgconfig" ./configure --prefix="/home/Leonardo/Lezioni-Rack/Rack/plugins/VCV-Recorder/dep" --enable-pic --enable-gpl \
        --disable-programs --disable-doc --disable-avdevice --disable-swresample --disable-postproc --disable-avfilter --disable-network --disable-iconv --disable-alsa --disable-autodetect --disable-everything \
        --enable-protocol=file \
        --enable-muxer=wav --enable-encoder=pcm_s16le --enable-encoder=pcm_s24le --enable-muxer=aiff --enable-encoder=pcm_s16be --enable-encoder=pcm_s24be --enable-libmp3lame --enable-muxer=mp3 --enable-encoder=libmp3lame --enable-muxer=flac --enable-encoder=flac --enable-muxer=ipod --enable-encoder=alac --enable-muxer=mpeg1system --enable-encoder=mpeg2video --enable-encoder=mp2 --enable-muxer=avi --enable-encoder=huffyuv --enable-muxer=avi --enable-encoder=ffv1
/bin/sh: ./configure: No such file or directory
make: *** [Makefile:74: dep/lib/libavcodec.a] Error 127

Am I missing something? Deps should be fine (including nasm)

Crash when recording video on 5K display on Mac

Running on Mac Catalina (10.15.1) using the latest VCV and latest versions of all modules.
I'm unable to record an MPEG2 video (I'm able to record just audio, however). As soon as I click on the red button VCV crashes. I get a crash report from the OS that indicates:

"*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'NSWindow drag regions should only be invalidated on the Main Thread!'
Assertion failed: (err >= 0), function open, file src/Recorder.cpp, line 288.

terminating with uncaught exception of type NSException"

First attached file is the crash report. The second file is the patch file.

Rack_2019-11-27-182021_Pauls-iMac.txt

20191127-1-crashes.vcv.txt

No instructions for building

If would be nice if the readme told you to git clone into your plugins folder, and if it told you to make dep fist. and git submodule update --init --recursive

Errors building for Rack v2.

Windows 11, msys64
Building in plugin dir of Rack CE 2.git.042a9ce0

$ make -j8
g++ -std=c++11 -Wsuggest-override  -Idep/include -fPIC -I../../include -I../../dep/include -MMD -MP -g -O3 -march=nocona -funsafe-math-optimizations -Wall -Wextra -Wno-unused-parameter -DARCH_WIN -D_USE_MATH_DEFINES -municode  -c -o build/src/Recorder.cpp.o src/Recorder.cpp
g++ -std=c++11 -Wsuggest-override  -Idep/include -fPIC -I../../include -I../../dep/include -MMD -MP -g -O3 -march=nocona -funsafe-math-optimizations -Wall -Wextra -Wno-unused-parameter -DARCH_WIN -D_USE_MATH_DEFINES -municode  -c -o build/src/plugin.cpp.o src/plugin.cpp
src/Recorder.cpp: In member function 'bool Recorder::isValidPath()':
src/Recorder.cpp:928:29: error: 'directory' is not a member of 'rack::string'
  928 |   std::string dir = string::directory(path);
      |                             ^~~~~~~~~
src/Recorder.cpp: In member function 'void Recorder::setPath(std::string)':
src/Recorder.cpp:954:23: error: 'directory' is not a member of 'rack::string'
  954 |   directory = string::directory(path);
      |                       ^~~~~~~~~
src/Recorder.cpp:955:22: error: 'filenameBase' is not a member of 'rack::string'
  955 |   basename = string::filenameBase(string::filename(path));
      |                      ^~~~~~~~~~~~
src/Recorder.cpp:955:43: error: 'filename' is not a member of 'rack::string'
  955 |   basename = string::filenameBase(string::filename(path));
      |                                           ^~~~~~~~
src/Recorder.cpp: In function 'void selectPath(Recorder*)':
src/Recorder.cpp:1041:17: error: 'directory' is not a member of 'rack::string'
 1041 |   dir = string::directory(module->path);
      |                 ^~~~~~~~~
src/Recorder.cpp:1042:22: error: 'filename' is not a member of 'rack::string'
 1042 |   filename = string::filename(module->path);
      |                      ^~~~~~~~
src/Recorder.cpp: In member function 'virtual void RecButton::onDragStart(const DragStart&)':
src/Recorder.cpp:1070:46: error: 'paramQuantity' was not declared in this scope; did you mean 'getParamQuantity'?
 1070 |   Recorder* module = dynamic_cast<Recorder*>(paramQuantity->module);
      |                                              ^~~~~~~~~~~~~
      |                                              getParamQuantity
make: *** [../../compile.mk:67: build/src/Recorder.cpp.o] Error 1

Recorder new panel misfit

Now that Recorder has got a new panel I'd suggest to change the Audio also. It'd look much better like this:

image

Now it's like this:

image

Reintroducing MPEG-2 video Bit Rates

I've reached out through email, as this was my understanding with regards to where we should report bugs or feature requests. I figured if I logged this here it would be easier to manage, as I'm sure you're inundated with support emails. So I will attach my support email below for the sake of convince, and for when you'll hopefully be able to get around to this, as I'm sure there are more pressing issues at this time.

I’m getting the same issue I originally mentioned to you regarding the audio playback dropping out after ~7secs when playing back the video, and glitchy video playback. Which makes sense, as there’s no longer any Video Bit Rate settings in the contextual menu for VCV Recorder in Rack 2.

Originally, when trying to record MPEG-2 video in Rack 1, I found I would get the same issue when using a Video Bit Rate of 65536 kbps. When using 32768 kbps or lower, I can capture a patch properly with both audio and video intact. This was consistent on 3 different machines I tested with VCV Recorder, and was also confirmed by a few other users.

I’ve tested this on my:

  • Studio MacPro late 2013 model - OS X 10.14.6,
  • MacBook Pro 2019 model - OS X 10.15.7,
  • MacBook Pro mid 2009 model - OS X 10.11.6.

I have a feeling this is due to the missing Video Bit Rate settings in the contextual menu. Once those where added to VCV Recorder, back in Rack 1, I was able to capture clean video when stepping down to the second highest Video Bit Rate setting on all 3 machines without issue.

Would it be possible to include these Video Bit Rate settings again, in a future update for VCV Recorder?

Thank you for your consideration.

"undefined reference to glReadPixels" when running make in Windows

After implementing the suggestion by stoermelder in issue #17, make dep finishes successfully.
Now to the make:

$ make
g++  -Wsuggest-override -std=c++11 -Idep/include -fPIC -I../../include -I../../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/Recorder.cpp.o src/Recorder.cpp
g++  -Wsuggest-override -std=c++11 -Idep/include -fPIC -I../../include -I../../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
mkdir -p dep
g++ -o plugin.dll build/src/Recorder.cpp.o build/src/plugin.cpp.o dep/lib/libavformat.a dep/lib/libavcodec.a dep/lib/libavutil.a dep/lib/libswscale.a dep/lib/libmp3lame.a -shared -L../.. -lRack
build/src/Recorder.cpp.o: In function `RecorderWidget::draw(rack::widget::Widget::DrawArgs const&)':
C:\msys64\home\Admin\Rack\rdev\Rack\plugins\VCV-Recorder/src/Recorder.cpp:1071: undefined reference to `glReadPixels'
dep/lib/libavutil.a(random_seed.o): In function `av_get_random_seed':
C:\msys64\home\Admin\Rack\rdev\Rack\plugins\VCV-Recorder\dep\ffmpeg/libavutil/random_seed.c:126: undefined reference to `BCryptOpenAlgorithmProvider'
C:\msys64\home\Admin\Rack\rdev\Rack\plugins\VCV-Recorder\dep\ffmpeg/libavutil/random_seed.c:129: undefined reference to `BCryptGenRandom'
C:\msys64\home\Admin\Rack\rdev\Rack\plugins\VCV-Recorder\dep\ffmpeg/libavutil/random_seed.c:130: undefined reference to `BCryptCloseAlgorithmProvider'
collect2.exe: error: ld returned 1 exit status
make: *** [../../compile.mk:53: plugin.dll] Error 1

make issue: win7

commit 1c30f48:

# Use -nc because Sourceforce mirrors don't understand -c if the file already exists
mkdir -p dep
cd dep && wget -c -nc "https://sourceforge.net/projects/lame/files/lame/3.100/lame-3.100.tar.gz"
--2019-04-17 18:39:20--  https://sourceforge.net/projects/lame/files/lame/3.100/lame-3.100.tar.gz
Resolving sourceforge.net (sourceforge.net)... ****
Connecting to sourceforge.net (sourceforge.net)|****... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://sourceforge.net/projects/lame/files/lame/3.100/lame-3.100.tar.gz/ [following]
--2019-04-17 18:39:21--  https://sourceforge.net/projects/lame/files/lame/3.100/lame-3.100.tar.gz/
Reusing existing connection to sourceforge.net:443.
HTTP request sent, awaiting response... 302 Found
Location: https://sourceforge.net/projects/lame/files/lame/3.100/lame-3.100.tar.gz/download [following]
--2019-04-17 18:39:21--  https://sourceforge.net/projects/lame/files/lame/3.100/lame-3.100.tar.gz/download
Reusing existing connection to sourceforge.net:443.
HTTP request sent, awaiting response... 302 Found
Location: https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz?r=&ts=1555522754&use_mirror=datapacket [following]
--2019-04-17 18:39:21--  https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz?r=&ts=1555522754&use_mirror=datapacket
Resolving downloads.sourceforge.net (downloads.sourceforge.net)... ****
Connecting to downloads.sourceforge.net (downloads.sourceforge.net)|****... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://datapacket.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz [following]
--2019-04-17 18:39:22--  https://datapacket.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
Resolving datapacket.dl.sourceforge.net (datapacket.dl.sourceforge.net)... ****
Connecting to datapacket.dl.sourceforge.net (datapacket.dl.sourceforge.net)|****... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1524133 (1.5M) [application/x-gzip]
Saving to: ‘lame-3.100.tar.gz’

lame-3.100.tar.gz   100%[===================>]   1.45M  3.01MB/s    in 0.5s

2019-04-17 18:39:23 (3.01 MB/s) - ‘lame-3.100.tar.gz’ saved [1524133/1524133]

cd dep && sha256check() { echo "$2  $1" | sha256sum -c; }; sha256check lame-3.100.tar.gz ddfe36cab873794038ae2c1210557ad34857a4b6bdc515785d1da9e175b1da1e
lame-3.100.tar.gz: OK
cd dep && tar xf "lame-3.100.tar.gz"
# Remove nonexistent symbol from symbols list
cd dep &&  "s/lame_init_old\n//g" lame-3.100/include/libmp3lame.sym
/bin/sh: s/lame_init_old\n//g: No such file or directory
make: *** [Makefile:50: dep/lib/libmp3lame.a] Error 127

v2, Build error on Rack v2

On Windows 11, MSYS64 MinGW64
Building for VCV Rack Community Edition 2.git.219bbaf1
in plugins subdir.

make dep
...


C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: celt/.libs/bands.o: in function `memcpy':
C:/msys64/mingw64/x86_64-w64-mingw32/include/string.h:202: undefined reference to `__memcpy_chk'
collect2.exe: error: ld returned 1 exit status
make[4]: *** [Makefile:2155: celt/tests/test_unit_dft.exe] Error 1
make[4]: *** Waiting for unfinished jobs....
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: celt/.libs/bands.o: in function `memcpy':
C:/msys64/mingw64/x86_64-w64-mingw32/include/string.h:202: undefined reference to `__memcpy_chk'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: silk/.libs/decode_core.o: in function `memcpy':
C:/msys64/mingw64/x86_64-w64-mingw32/include/string.h:202: undefined reference to `__memcpy_chk'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: silk/.libs/PLC.o: in function `memcpy':
C:/msys64/mingw64/x86_64-w64-mingw32/include/string.h:202: undefined reference to `__memcpy_chk'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: silk/float/.libs/encode_frame_FLP.o: in function `memcpy':
C:/msys64/mingw64/x86_64-w64-mingw32/include/string.h:202: undefined reference to `__memcpy_chk'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/mingw64/x86_64-w64-mingw32/include/string.h:202: undefined reference to `__memcpy_chk'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: silk/float/.libs/encode_frame_FLP.o:C:/msys64/mingw64/x86_64-w64-mingw32/include/string.h:202: more undefined references to `__memcpy_chk' follow
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: silk/float/.libs/pitch_analysis_core_FLP.o: in function `memset':
C:/msys64/mingw64/x86_64-w64-mingw32/include/string.h:208: undefined reference to `__memset_chk'
collect2.exe: error: ld returned 1 exit status
make[4]: *** [Makefile:2128: libopus.la] Error 1
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: celt/.libs/bands.o: in function `memcpy':
C:/msys64/mingw64/x86_64-w64-mingw32/include/string.h:202: undefined reference to `__memcpy_chk'
collect2.exe: error: ld returned 1 exit status
make[4]: *** [Makefile:2173: celt/tests/test_unit_mathops.exe] Error 1
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: celt/.libs/bands.o: in function `memcpy':
C:/msys64/mingw64/x86_64-w64-mingw32/include/string.h:202: undefined reference to `__memcpy_chk'
collect2.exe: error: ld returned 1 exit status
make[4]: *** [Makefile:2179: celt/tests/test_unit_mdct.exe] Error 1
make[4]: Leaving directory '/home/jpn99/github/Rack2/Rack/plugins/VCV-Recorder/dep/opus-1.3.1'
make[3]: *** [Makefile:2646: install-recursive] Error 1
make[3]: Leaving directory '/home/jpn99/github/Rack2/Rack/plugins/VCV-Recorder/dep/opus-1.3.1'
make[2]: *** [Makefile:3202: install] Error 2
make[2]: Leaving directory '/home/jpn99/github/Rack2/Rack/plugins/VCV-Recorder/dep/opus-1.3.1'
make[1]: *** [Makefile:83: dep/lib/libopus.a] Error 2

make DEP fails on OSX

on macosx 10.13

  "_lame_init_old", referenced from:
     -exported_symbol[s_list] command line option
ld: symbol(s) not found for architecture x86_64```

make dep fails on #include <langinfo.h>

Windows 10, Recorder commit 1c30f48, Rack v1 commit VCVRack/Rack@93bf107

...
mv -f .deps/lametime.Tpo .deps/lametime.Po
gcc -DHAVE_CONFIG_H  -I. -I.. -I../libmp3lame -I../include -I..    -fPIC -g -O3 -march=nocona     -MT parse.o -MD -MP -MF .deps/parse.Tpo -c -o parse.o parse.c
parse.c:74:10: fatal error: langinfo.h: No such file or directory
 #include <langinfo.h>
          ^~~~~~~~~~~~
compilation terminated.
make[2]: *** [Makefile:500: parse.o] Error 1
make[2] : on quitte le répertoire « /home/mboule/Rack/rdev/Rack/plugins/VCV-Recorder/dep/lame-3.100/frontend »
make[1]: *** [Makefile:452: install-recursive] Error 1
make[1] : on quitte le répertoire « /home/mboule/Rack/rdev/Rack/plugins/VCV-Recorder/dep/lame-3.100 »
make: *** [Makefile:52: dep/lib/libmp3lame.a] Error 2

ffmpeg build cannot find opus

Linux Ubuntu 18.04
GCC 7.5.0
VCV Rack 1.dev*

Greetings ! I'm having a problem with the dependencies:

$ ENABLE_H264=1 make dep
# Don't use ./configure --prefix="/home/dlphilp/src/Rack/plugins/VCV-Recorder/dep" --host=x86_64-linux-gnu because this is a handwritten configure script
# ffmpeg bug: The pkgconfig dir is not set from pkgconfigdir at all. Set it with PKG_CONFIG_PATH instead.
cd ffmpeg && PKG_CONFIG_PATH="/home/dlphilp/src/Rack/plugins/VCV-Recorder/dep/lib/pkgconfig" ./configure --prefix="/home/dlphilp/src/Rack/plugins/VCV-Recorder/dep" --enable-pic --enable-gpl \
	--disable-programs --disable-doc --disable-avdevice --disable-swresample --disable-postproc --disable-avfilter --disable-network --disable-iconv --disable-alsa --disable-autodetect --disable-everything \
	--enable-protocol=file \
	--enable-muxer=wav --enable-encoder=pcm_s16le --enable-encoder=pcm_s24le --enable-muxer=aiff --enable-encoder=pcm_s16be --enable-encoder=pcm_s24be --enable-libmp3lame --enable-muxer=mp3 --enable-encoder=libmp3lame --enable-libopus --enable-muxer=opus --enable-encoder=libopus --enable-muxer=flac --enable-encoder=flac --enable-muxer=ipod --enable-encoder=alac --enable-muxer=mpeg1system --enable-encoder=mpeg2video --enable-encoder=mp2 --enable-muxer=avi --enable-encoder=huffyuv --enable-muxer=avi --enable-encoder=ffv1 --enable-libx264 --enable-muxer=mp4 --enable-encoder=libx264 --enable-encoder=aac
ERROR: opus not found using pkg-config

If you think configure made a mistake, make sure you are using the latest
version from Git.  If the latest version fails, report the problem to the
[email protected] mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "ffbuild/config.log" produced by configure as this will help
solve the problem.
Makefile:71: recipe for target 'dep/lib/libavcodec.a' failed
make: *** [dep/lib/libavcodec.a] Error 1

However:

$ ls dep/
include  lame-3.100  lib  opus-1.3.1  share  x264-cde9a93319bea766a92e306d69059c76de970190

$ ls dep/lib/
libmp3lame.a  libmp3lame.la  libopus.a  libopus.la  libx264.a  pkgconfig

$ ls dep/opus-1.3.1/
aclocal.m4       compile            config.sub    INSTALL     Makefile.am        OpusConfig.cmake.in   opus_sources.mk         silk_sources.mk
AUTHORS          config.guess       configure     install-sh  Makefile.in        opus_functions.cmake  opus-uninstalled.pc     src
celt             config.h           configure.ac  libopus.la  Makefile.mips      opus_headers.mk       opus-uninstalled.pc.in  stamp-h1
celt_headers.mk  config.h.cmake.in  COPYING       libtool     Makefile.unix      opus.m4               package_version         test-driver
celt_sources.mk  config.h.in        depcomp       ltmain.sh   missing            opus.pc               README                  tests
ChangeLog        config.log         doc           m4          NEWS               opus.pc.in            silk                    win32
CMakeLists.txt   config.status      include       Makefile    opus_config.cmake  opus_sources.cmake    silk_headers.mk

$ ls dep/lib/pkgconfig/
opus.pc  x264.pc

Any suggestions ? Did I miss something ?

ffmpeg build issue #4

commit 6dd76d3 on make dep:

cd dep/ffmpeg && ./configure --prefix="/home/Phil/rack-1.0.3/rack/plugins/vcv-recorder/dep" --enable-pic --enable-gpl \
        --disable-programs --disable-doc --disable-avdevice --disable-postproc --disable-avfilter --disable-network --disable-iconv --disable-alsa --disable-autodetect --disable-everything \
        --enable-protocol=file \
        --enable-muxer=wav --enable-encoder=pcm_s16le --enable-encoder=pcm_s24le \
        --enable-muxer=aiff --enable-encoder=pcm_s16be --enable-encoder=pcm_s24be \
        --enable-libmp3lame --enable-muxer=mp3 --enable-encoder=libmp3lame \
        --enable-muxer=flac --enable-encoder=flac \
        --enable-muxer=ipod --enable-encoder=alac \
        --enable-muxer=mpeg1system --enable-encoder=mpeg2video --enable-encoder=mp2
nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.

If you think configure made a mistake, make sure you are using the latest
version from Git.  If the latest version fails, report the problem to the
[email protected] mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "ffbuild/config.log" produced by configure as this will help
solve the problem.
make: *** [Makefile:32: dep/lib/libavcodec.a] Error 1

any idea what this windows build error is from?

# Don't use ./configure --prefix="/d/VCVRack/v1/plugins/VCV-Recorder/dep" --host=x86_64-w64-mingw32 because this is a handwritten configure script
cd ffmpeg && ./configure --prefix="/d/VCVRack/v1/plugins/VCV-Recorder/dep" --enable-pic --enable-gpl \
        --disable-programs --disable-doc --disable-avdevice --disable-swresample --disable-postproc --disable-avfilter --disable-network --disable-iconv --disable-alsa --disable-autodetect --disable-everything \
        --enable-protocol=file \
        --enable-muxer=wav --enable-encoder=pcm_s16le --enable-encoder=pcm_s24le --enable-muxer=aiff --enable-encoder=pcm_s16be --enable-encoder=pcm_s24be --enable-libmp3lame --enable-muxer=mp3 --enable-encoder=libmp3lame --enable-muxer=flac --enable-encoder=flac --enable-muxer=ipod --enable-encoder=alac --enable-muxer=mpeg1system --enable-encoder=mpeg2video --enable-encoder=mp2 --enable-muxer=avi --enable-encoder=huffyuv --enable-muxer=avi --enable-encoder=ffv1
nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.

If you think configure made a mistake, make sure you are using the latest
version from Git.  If the latest version fails, report the problem to the
[email protected] mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "ffbuild/config.log" produced by configure as this will help
solve the problem.
make: *** [Makefile:53: dep/lib/libavcodec.a] Error 1

won't record between sessions

vcv-recorder module where it won't let you record when operating in loaded sessions (i.e. adding a recorder module, when pressing record it works fine, but upon reopening rack (after closing for whatever the reason), the record button no longer responds (stays grey when clicking).

Recorder uses original filename if patch is renamed (save as)

nit picky issue, easily worked around. Windows 7.

  1. open file "patch.vcv" including recorder module and record a file. example "patch-001.wav"
  2. rename the file using "save as" to "newpatch.vcv"
  3. record a file. The name will be "patch-002.wav" and not "newpatch-001.wav"
  4. closing and opening the "newpatch.vcv" file will fix the issue.

thanks!

relocation error during link stage

Fedora 23 Linux
Rack v1.dev.93bf107

Build fail with latest pull:

$ make
mkdir -p dep
g++ -o plugin.so build/src/plugin.cpp.o build/src/Recorder.cpp.o dep/lib/libavformat.a dep/lib/libavcodec.a dep/lib/libavutil.a dep/lib/libswresample.a dep/lib/libswscale.a dep/lib/libmp3lame.a -shared
/usr/bin/ld: dep/lib/libswscale.a(swscale.o): relocation R_X86_64_PC32 against symbol `ff_M24A' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
../../compile.mk:53: recipe for target 'plugin.so' failed
make: *** [plugin.so] Error 1

Please advise if more information is needed.

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.