pichenettes / eurorack Goto Github PK
View Code? Open in Web Editor NEWEurorack modules
Eurorack modules
i am first to diy the mutable eurorack rings. i use st-link utility to upload the firmware. but it is only" *.hex f"ile can be use. i can't find "bootloader.hex". just only find "bootloader.cc". how can i do ? how to make *.hex?
I hope someone would be able to fix, fork or address this issue. The final release of the Plaits 1.2 firmware, which was the ultimate retirement present for all that love Mutable, has a bug in the 2-OP FM mode (Green 3). It works at startup but for no clear reason it turns into a 'single VCO' after playing with it for a while and no FM modulation is heard. I own four Plaits modules (for a good reason) so I keep two of them on the old firmware because of it. My other two run 1.2 and expose the same bug. This mode is one of my favorites for obvious reasons because it's basically a complex VCO.
Thanks for reading!
Robert
Cinematic Laboratory
Plaits - resources/waveterrains.py missing file ??
While porting the code to another platform I found an issue with plaits. For engine 0, when harmonics is set to exactly 0.5, Aux remains silent for as long as you play it.
Here is a small program demonstrating the issue:
template<size_t N>
std::string toString(plaits::Voice::Frame const iFrames[N])
{
std::ostringstream str{};
str << "short out[] = {";
for(int i = 0; i < N; i++)
{
if(i > 0)
str << ", ";
str << iFrames[i].out;
}
str << "};\n";
str << "short aux[] = {";
for(int i = 0; i < N; i++)
{
if(i > 0)
str << ", ";
str << iFrames[i].aux;
}
str << "};\n";
return str.str();
}
void test()
{
plaits::Voice voice{};
char buffer[16384]{};
stmlib::BufferAllocator allocator(buffer, sizeof(buffer));
voice.Init(&allocator);
constexpr int N = 120;
plaits::Voice::Frame frames[120];
plaits::Patch patch{
.note = 69,
.harmonics = 0.5,
.timbre = 0.5,
.morph = 0.5,
.engine = 0,
.decay = 0.421875,
.lpg_colour = 0.5
};
plaits::Modulations modulations{
.trigger = 1,
.trigger_patched = true
};
auto ptr = &frames[0];
for(int i = 0; i < N / 12; i++)
{
voice.Render(patch, modulations, ptr, 12);
ptr += 12;
}
std::cout << toString<N>(frames) << std::endl;
}
And here is the output:
short out[] = {6, 24, 53, 95, 150, 222, 310, 417, 546, 698, 876, 1082, 1161, 1393, 1643, 1902, 2165, 2428, 2690, 2948, 3201, 3449, 3692, 3928, 4227, 4697, 5111, 5470, 5781, 6053, 6292, 6504, 6694, 6865, 7019, 7159, 7363, 7600, 7751, 7853, 7929, 7989, 8037, 8077, 8108, 8132, 8147, 8156, 8125, 8050, 7957, 7861, 7759, 7654, 4889, -1522, -6471, -7927, -8239, -8606, -8829, -9050, -9239, -9439, -9632, -9828, -10023, -10218, -10412, -10606, -10801, -10995, -11187, -11379, -11572, -11766, -11959, -12152, -12345, -12538, -12731, -12924, -13116, -13309, -13499, -13689, -13881, -14073, -14264, -14456, -14647, -14838, -15029, -15220, -15411, -15602, -15790, -15979, -16169, -16359, -16549, -16738, -16928, -17117, -17307, -17496, -17828, -19427, -20127, -8664, 7328, 15713, 17161, 17519, 17380, 17223, 17019, 16823, 16621, 16420};
short aux[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
You can change N
to whatever value you want (1200
for example) and you will see that Aux always remain to 1..
In my device if you turn the harmonics knob so that it is no longer 0.5 and bring it back to 0.5, then Aux now has sound. You can simulate this with changing the test code like this:
auto ptr = &frames[0];
patch.harmonics = 0.6;
voice.Render(patch, modulations, ptr, 12);
ptr += 12;
patch.harmonics = 0.5;
for(int i = 1; i < N / 12; i++)
{
voice.Render(patch, modulations, ptr, 12);
ptr += 12;
}
And you get this output:
short out[] = {6, 24, 53, 94, 150, 220, 307, 412, 538, 685, 856, 1052, 1126, 1345, 1580, 1822, 2066, 2309, 2549, 2784, 3013, 3237, 3455, 3666, 3933, 4351, 4717, 5033, 5306, 5544, 5751, 5934, 6097, 6241, 6371, 6487, 6652, 6842, 6958, 7033, 7084, 7122, 7148, 7166, 7176, 7178, 7172, 7159, 7105, 7010, 6904, 6796, 6683, 6566, 3790, -2632, -7592, -9059, -9383, -9761, -9990, -10213, -10402, -10601, -10794, -10989, -11183, -11378, -11572, -11766, -11959, -12153, -12345, -12536, -12729, -12922, -13115, -13308, -13501, -13693, -13885, -14078, -14270, -14461, -14652, -14841, -15032, -15224, -15415, -15606, -15797, -15988, -16178, -16369, -16559, -16749, -16938, -17125, -17315, -17504, -17746, -19158, -20870, -15242, -5128, 914, 2110, 2236, 2576, 7075, 12985, 16020, 16438, 16448, 16270, 16085, 15884, 15684, 15483, 15283};
short aux[] = {1, 1, 0, -1, -4, -8, -14, -20, -28, -36, -45, -53, -55, -72, -90, -110, -131, -155, -180, -207, -234, -263, -292, -323, -944, -1848, -2706, -3638, -4486, -5191, -4938, -4523, -4001, -3387, -2849, -2416, -1896, -1393, -1174, -1087, -1060, -1061, -1076, -1096, -1120, -1144, -1170, -1195, -1223, -1247, -1263, 1683, 11448, 20240, 23089, 23386, 23823, 19446, 8903, 835, -1198, -1262, -1413, -1376, -1399, -1389, -1393, -1390, -1390, -1389, -1389, -1388, -1388, -1387, -1387, -1386, -1386, -1385, -2048, -6501, -11658, -13915, -14171, -14306, -13168, -8406, -3573, -1697, -1514, -1378, -1391, -1375, -1379, -1376, -1376, -1375, -1375, -1374, -1374, -1373, -1373, -1372, -1372, -1371, -1371, -1082, 5718, 16164, 22409, 23976, 24589, 24056, 16323, 6168, 765, -479, -1108, -1295, -1351, -1359};
Hi there! Love your work.
I was wondering whether you though it could be useful to folks to include instructions for uploading firmware using OSX without needing to use the Vagrant dev environment.
For me, uploading firmware to Peaks and Braids was relatively straightforward using an STLink-V2 and an Olimex ARM-JTAG-20-10 adaptor.
Requires Homebrew
## SETUP (only required the first time)
# add PX4 formulae to homebrew
brew tap PX4/homebrew-px4
# install STM32 & ARM toolchain
brew install stlink open-ocd px4/px4/gcc-arm-none-eabi-48
# create projects directory if you don't have one and switch to that directory
mkdir ~/projects
cd ~/projects
# clone the mutable eurorack repository
git clone https://github.com/pichenettes/eurorack.git
# switch to the repository
cd eurorack
# clone submodules
git submodule update --init --recursive
## FLASHING THE MODULE
# switch to your checkout of the mutable eurorack repository
# note: change the path if you cloned it to another location
cd ~/projects/eurorack
# configure make scripts to point to the correct ARM toolchain
# note: you will need to repeat this step in the future if you are flashing modules
export TOOLCHAIN_PATH="$(brew --prefix px4/px4/gcc-arm-none-eabi-48)/"
# compile bootloader
# note: this is for peaks, but the steps are the same for most other modules, just change the path to the correct makefiles
make -f peaks/bootloader/makefile hex
# upload to device
make -f peaks/makefile upload_combo_jtag
On both the new version of Veils and on the newly released Blades, with the DRCs and eagle files provided, if you generate gerbers or run the Ratsnest then:
On Blades: C74 and C77 do not have a GND connection.
On Veils - C22 and C23 are not connected to GND
(Both are easy to fix - either by adding a trace, chaning polygon or changing DRC but in the published files there are these missing connections)
[yarns_bootloader_combo.hex] checksum : 0x006052B3
17:28:32 : Error: File corrupted. Two or more segments defines the same memory zone.
17:33:31 : [yarns_bootloader_combo.hex] opened successfully.
Address Ranges [0x08000000 0x080010D8] [0x08001000 0x0800F350]
Bootloader looks like it's too big
Hi,
Thanks for making this available.
In the spreadsheet BOM for clouds, elements, rings and warps part stm32f405rgt6 is marked as having a TQFP64 package. I've done quite a few searches and can only find an LQFP64 part. Could this be a typo in the BOM or am I making a mistake?
Thanks again.
Can someone give me a prod in the right direction?
Am I right in my assumption that Segment 1 is the column on the left of panel and maps to ADC and DAC 1? Segment 6 is far right?
Looking at page 2 we see the LEDS, am I right to assume the mapping is Seg 1- LED 7, seg 2 - LED 8, Seg 3 - LED 9 ......Seg 6 - LED 12?
Again on page 2, the pots. Which pot maps to segment 1 ......through to segment 6. This is for both sliders and rotary types.
Many thanks in advance.
Al
I assume this is an oversight due to copy and paste, but the license on the braids Envelope.h
is GPL, where the rest of the project is MIT licensed. If possible, could it be updated to MIT?
Hello,
I apologize for the beginner question, but what do you suggest to use to view PCB files (extensions are .brd and .sch) ?
I tried several tools but I did not manage to open these files.
If you have any suggestion concerning a free tool, I will be more than happy.
Thanks you
I noticed that the schematic for the new ripples is available here: https://mutable-instruments.net/modules/ripples/downloads/ripples_v90.pdf
But I couldn't find the cad files in this repo. If this is intentional please ignore and close this issue.
Thanks a lot for your contribution to open source eurorack hardware!
Hello! I found among my stuff a Ripples' PCB V0.2 which I started populating years ago (2013) and then abandoned. Willing to resurrect the project, though, I couldn't find any .brd file and, of course, no BOM. I know that's pretty obvious, considered we're at Ripples' V4.0, but I guess that old version should still work so… could anyone please forward me the matching files, if still available? Also, was there anything to pay attention to while putting this project together (i.e. labelling mistakes on the soldering mask, particular trimmings required…)?
Thanks a ton to whoever will chime in, best wishes to everyone!
There is a bug in line 40 of chiptune_engine.cc:
for (int i = 0; i < kChordNumNotes; ++i) {
voice_[i].Init();
}
It should be kChordNumVoices instead of kChordNumNotes.
This leads to weird random crashes of the engine, as the fifth voice isn't correctly initialized.
I know that this won't benifit MI much, but considering that MI is shutting down (bye pichenettes, I'll really miss you, you have been an amazing figure in the Eurorack community), I think converting them to XML would make it easier for people to study the MI products (this way you can import into something like KiCAD).
Hi!
I'm one of the maintainers on surge (https://surge-synthesizer.github.io/)
We were chatting today about expanding our FX and realized that Clouds could fit very nicely into surge. Surge is FOSS GPL3 software so from a licensing perspective on the engine I think we are good, and Andrew's VCV rack module makes the API really clear. So I'm debating giving it a whirl.
But before I did that, wanted to check a couple of things
In our 1.8.0 release we imported 50+ Airwindows FX into Surge after chatting with Chris, for instance, and pulled in the filters from OBX-d, and ended up putting them in the in-plugin about page as below.
In any case, thanks for making great open source audio tools and for considering this issue!
Best
Hello! I am currently porting braids onto KORG drumlogue and have a question about this code
Lines 285 to 288 in d1d8839
When decimation_factor
= n, the code multiplies gain_lp
to sample
n times, so the value of sample
goes to sample * pow(gain_lp, n)
, then when (i % decimation_factor) == 0
becomes true, the new value is loaded from render_buffer
.
Is this the intended behavior?
I mean, why the code wasn't like this?
if ((i % decimation_factor) == 0) {
sample = render_buffer[i] & bit_mask;
}
int16_t decimated_sample = sample * gain_lp >> 16;
Noob question, reading your code, trying to learn and build a device for myself. I got the behringer model d, and would like to hook it up to ableton and a novation remote-SL midi keyboard.
after
ln -s ../stmlib stmlib
make
I get the error:
~/.../eurorack/yarns >>> stmlib/makefile.inc:503: warning: overriding recipe for target 'upload_combo_jtag_erase_first'
stmlib/makefile.inc:487: warning: ignoring old recipe for target 'upload_combo_jtag_erase_first'
/opt/gcc-arm/bin/arm-none-eabi-gcc -Wl,-Map=build/yarns/yarns.map -Wl,--gc-sections -T stmlib/linker_scripts/stm32f10x_flash_md_application_small.ld -mcpu=cortex-m3 -mthumb -fno-unroll-loops -I. -DGCC_ARMCM3 -DSTM32F10X_MD -DSTM32F10X -DAPPLICATION -DF_CPU=72000000L -DF_CRYSTAL=8000000L -DHSE_VALUE=8000000L -DUSE_STDPERIPH_DRIVER -DSYSCLK_FREQ_72MHz=72000000L -Istmlib/third_party/STM -Istmlib/third_party/STM/CMSIS/CM3_f10x -Istmlib/third_party/STM/CMSIS/CM3_f10x/startup/gcc -Istmlib/third_party/STM/STM32F10x_StdPeriph_Driver/inc -Lstmlib/third_party/STM -o build/yarns/yarns.elf build/yarns/random.o build/yarns/bootloader_utils.o build/yarns/system_clock.o build/yarns/core_cm3.o build/yarns/system_stm32f10x.o build/yarns/stm32f10x_dma.o build/yarns/stm32f10x_dbgmcu.o build/yarns/stm32f10x_iwdg.o build/yarns/stm32f10x_dac.o build/yarns/stm32f10x_can.o build/yarns/stm32f10x_rtc.o build/yarns/stm32f10x_pwr.o build/yarns/stm32f10x_i2c.o build/yarns/stm32f10x_sdio.o build/yarns/stm32f10x_rcc.o build/yarns/stm32f10x_flash.o build/yarns/stm32f10x_crc.o build/yarns/stm32f10x_usart.o build/yarns/stm32f10x_wwdg.o build/yarns/misc.o build/yarns/stm32f10x_tim.o build/yarns/stm32f10x_adc.o build/yarns/stm32f10x_spi.o build/yarns/stm32f10x_bkp.o build/yarns/stm32f10x_exti.o build/yarns/stm32f10x_fsmc.o build/yarns/stm32f10x_gpio.o build/yarns/startup_stm32f10x_md.o
/opt/gcc-arm/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: build/yarns/startup_stm32f10x_md.o: in function LoopFillZerobss': (.text.Reset_Handler+0x26): undefined reference to
main'
collect2: error: ld returned 1 exit status
make: *** [stmlib/makefile.inc:330: build/yarns/yarns.elf] Error 1
I found a reference to the same error, but i couldn't figure out what to do next.
https://stackoverflow.com/questions/18137814/loopfillzerobss-has-an-undefined-reference-to-main
I'm on
arm-none-eabi-gcc (GNU Tools for Arm Embedded Processors 8-2018-q4-major) 8.2.1 20181213 (release) [gcc-8-branch revision 267074]
other compiles work OK, i'm following the book with software here: https://github.com/Apress/Beg-STM32-Devel-FreeRTOS-libopencm3-GCC
Add Beads source code and hardware design
Prevents CVin and pitch control of channels 3 and 4
For example:
would be better as
int16_t const * const wavetable[] = {
With either Square or Sine Wave assigned to Aux output (any octave), and with Trig patched, certain modes output a continuous wave (expected behaviour — nice to have for sync or complementary gate sequencing), while others obey the VCA/VCFA envelope.
Is this by design, or a hold-over from how certain modes treat the stock Aux output?
Affected modes:
Found with static analysis.
shifted_sample
is assigned values twice successively.
eurorack/braids/macro_oscillator.cc
Lines 116 to 121 in db1566f
previous_parameter_[0]
is assigned values twice successively.
eurorack/braids/digital_oscillator.cc
Lines 744 to 746 in db1566f
Hi,
I am using the published tool chain (https://pichenettes.github.io/mutable-instruments-documentation/modules/plaits/open_source/). I can successfully build code for Rings and Clouds but Plaits does not work.
I am able to build the bootloader for Plaits.
Here is the output from the "Cozy Development Environment":
vagrant@vagrant-ubuntu-trusty-64:/vagrant/eurorack-modules$ make -f plaits/makefile
stmlib/makefile.inc:373: build/plaits/depends.mk: No such file or directory
python stmlib/tools/resources_compiler.py plaits/resources/resources.py
Traceback (most recent call last):
File "stmlib/tools/resources_compiler.py", line 280, in
main(sys.argv)
File "stmlib/tools/resources_compiler.py", line 276, in main
Compile(argv[i])
File "stmlib/tools/resources_compiler.py", line 265, in Compile
resource_module = import(base_name.replace('/', '.'))
File "/vagrant/eurorack-modules/plaits/resources/resources.py", line 74, in
import waveterrains
ImportError: No module named waveterrains
make: *** [plaits/resources.cc] Error 1
Hopefully one of you kind "superstars" out there can help. Thanks in advance
Alistair
When compiling with Plaits gcc-arm-none-eabi-9-2019-q4-major
, the following error is generated:
plaits/dsp/engine/chord_engine.cc: In member function 'virtual void plaits::ChordEngine::Reset()':
plaits/dsp/engine/chord_engine.cc:69:70: error: iteration 4 invokes undefined behavior [-Werror=aggressive-loop-optimizations]
69 | ratios_[i * kChordNumVoices + j] = SemitonesToRatio(chords[i][j]);
| ~~~~~~~~~~~^
plaits/dsp/engine/chord_engine.cc:68:23: note: within this loop
68 | for (int j = 0; j < kChordNumVoices; ++j) {
| ~~^~~~~~~~~~~~~~~~~
which makes sense, kChordNumVoices
is equal to 5 and chords
is a 4x4 array.
I propose adding a 5th row filled with zeros as a fix, but I don't know the code well enough to be sure that it's the correct thing to do.
When you play the plaits/chord engine with a given set of parameter, there is a distinctive pop at the beginning.
First this is what it looks like (I believe the highlighted section is the cause):
Second, here is the actual data:
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 50, 99, 150, 199, 231, 269, 303, 355, 406, 413, 444, 494, 525, 569, 609, 656, 702, 747,
792, 836, 879, 921, 961, 1000, 1025, 1073, 1120, 1168, 1215, 1263, 1312, 1361, 1412, 1464, 1518, 1573, 1623, 1691,
1759, 1856, 1977, 2056, 2147, 2244, 2321, 2397, 2464, 2520, 2574, 2649, 2711, 2767, 2818, 2867, 2914, 2960, 3006,
3053, 3100, 3149, 3209, 3285, 3359, 3430, 3499, 3568, 3636, 3706, 3777, 3850, 3925, 4004, 4106, 4267, 4458, 4683,
4933, 5202, 5489, 5793, 6112, 6446, 6796, 7161, 7646, 8196, 8667, 9110, 9557, 10017, 10325,
// highlighted section
9350, 7839, 6898, 6657,
5167, 2146, -2393, -6043, -7766, -8303, -8759, -9146, -10058, -11374, -12437, -13122, -13724, -14921, -18304,
-21643, -23053, -23440, -23832, -24125, -24438, -24729, -25018, -25297, -25570, -25828, -25911, -25781, -25550,
-25305, -25070, -24866, -24695, -24582, -24577, -24744, -25062, -25071, -24793, -24501, -24254, -23988, -23752,
-23562, -23495, -23650, -24038, -24456, -24722, -24916, -25063, -25087, -25043, -25015, -24957, -24860, -24781,
-24688, -24554, -24431, -24309, -23854, -23285, -22833, -22418, -22003, -21686, -21424, -21290, -21435, -21862,
-22331, -22631, -22779, -22850, -22831, -22499, -16451, -6008, 978, 2843, 3221, 3432, 3525, 3610, 4098, 4603, 4765,
4732, 4671, 4510, 4271,
3880, 3350, 2852, 2447, 2060,};
I think that the massive jump -22499, -16451, -6008, 978
is what most likely causes the pop.. the rest of the waveform is very smooth and does not show this kind of distorted pattern.
Here is the code to reproduce:
int main()
{
char sharedBuffer[16384] = {};
stmlib::BufferAllocator allocator(sharedBuffer, sizeof(sharedBuffer));
plaits::Voice voice{};
voice.Init(&allocator);
auto patch = plaits::Patch{58, 0.2343, 0.4219, 0.6094, 0, 0, 0, 6, 0.5, 0.5};
auto modulations = plaits::Modulations{0, 0, 0, 0, 0, 0, 1, 0, false, false, false, true, false};
plaits::Voice::Frame frames[plaits::kBlockSize];
for(int i = 0; i < 20; i++)
{
voice.Render(patch, modulations, frames, plaits::kBlockSize);
for(int j = 0; j < plaits::kBlockSize; j++)
{
std::cout << frames[j].out << ", ";
}
}
std::cout << std::endl;
}
Summary: On Yarns if INIT is chosen the calibration settings are lost.
Steps to reproduce:
Expected result
Actual result
Note that the calibration settings can be saved by saving a program after performing calibration. For example, if you save to P1 then the calibration settings will be restored on boot. It's just using INIT which wipes them.
It may be that this is as designed, however, I wanted to check as it seems like resetting the calibration just to get a default program (using INIT) is not expected behaviour.
I am able to build braids_test and peaks_test, but not clouds_test:
vagrant@vagrant-ubuntu-trusty-64:/vagrant/eurorack-modules$ make -f clouds/test/makefile
cat build/clouds_test/atan.d build/clouds_test/clouds_test.d build/clouds_test/correlator.d build/clouds_test/granular_processor.d build/clouds_test/mu_law.d build/clouds_test/random.d build/clouds_test/resources.d build/clouds_test/frame_transformation.d build/clouds_test/phase_vocoder.d build/clouds_test/stft.d build/clouds_test/units.d > build/clouds_test/depends.mk
g++ -c -DTEST -g -Wall -Werror -I. clouds/test/clouds_test.cc -o build/clouds_test/clouds_test.o
In file included from ./clouds/dsp/granular_processor.h:32:0,
from clouds/test/clouds_test.cc:35:
./clouds/dsp/fx/fx_engine.h: In member function ‘void clouds::FxEngine<size, format>::Context::Write(D&, int32_t, float)’:
./stmlib/stmlib.h:58:95: error: typedef ‘static_assertion_test_at_line_172’ locally defined but not used [-Werror=unused-local-typedefs]
typedef impl::StaticAssertionTest<sizeof(JOIN(_static_assertion_at_line, __LINE))> JOIN(static_assertion_test_at_line_, __LINE)
^
./stmlib/stmlib.h:51:27: note: in definition of macro ‘JOIN_2’
#define JOIN_2(lhs, rhs) lhs##rhs
^
./stmlib/stmlib.h:49:27: note: in expansion of macro ‘JOIN_1’
#define JOIN(lhs, rhs) JOIN_1(lhs, rhs)
^
./stmlib/stmlib.h:58:90: note: in expansion of macro ‘JOIN’
typedef impl::StaticAssertionTest<sizeof(JOIN(static_assertion_at_line, LINE))> JOIN(**static_assertion_test_at_line, _LINE**)
^
./clouds/dsp/fx/fx_engine.h:172:7: note: in expansion of macro ‘STATIC_ASSERT’
STATIC_ASSERT(D::base + D::length <= size, delay_memory_full);
^
./clouds/dsp/fx/fx_engine.h: In member function ‘void clouds::FxEngine<size, format>::Context::Read(D&, int32_t, float)’:
./stmlib/stmlib.h:58:95: error: typedef ‘static_assertion_test_at_line_200’ locally defined but not used [-Werror=unused-local-typedefs]
typedef impl::StaticAssertionTest<sizeof(JOIN(_static_assertion_at_line, __LINE))> JOIN(**static_assertion_test_at_line, __LINE**)
^
./stmlib/stmlib.h:51:27: note: in definition of macro ‘JOIN_2’
#define JOIN_2(lhs, rhs) lhs##rhs
^
./stmlib/stmlib.h:49:27: note: in expansion of macro ‘JOIN_1’
#define JOIN(lhs, rhs) JOIN_1(lhs, rhs)
^
./stmlib/stmlib.h:58:90: note: in expansion of macro ‘JOIN’
typedef impl::StaticAssertionTest<sizeof(JOIN(static_assertion_at_line, LINE))> JOIN(**static_assertion_test_at_line, _LINE**)
^
./clouds/dsp/fx/fx_engine.h:200:7: note: in expansion of macro ‘STATIC_ASSERT’
STATIC_ASSERT(D::base + D::length <= size, delay_memory_full);
^
./clouds/dsp/fx/fx_engine.h: In member function ‘void clouds::FxEngine<size, format>::Context::Interpolate(D&, float, float)’:
./stmlib/stmlib.h:58:95: error: typedef ‘static_assertion_test_at_line_229’ locally defined but not used [-Werror=unused-local-typedefs]
typedef impl::StaticAssertionTest<sizeof(JOIN(_static_assertion_at_line, __LINE))> JOIN(**static_assertion_test_at_line, __LINE**)
^
./stmlib/stmlib.h:51:27: note: in definition of macro ‘JOIN_2’
#define JOIN_2(lhs, rhs) lhs##rhs
^
./stmlib/stmlib.h:49:27: note: in expansion of macro ‘JOIN_1’
#define JOIN(lhs, rhs) JOIN_1(lhs, rhs)
^
./stmlib/stmlib.h:58:90: note: in expansion of macro ‘JOIN’
typedef impl::StaticAssertionTest<sizeof(JOIN(static_assertion_at_line, LINE))> JOIN(**static_assertion_test_at_line, _LINE**)
^
./clouds/dsp/fx/fx_engine.h:229:7: note: in expansion of macro ‘STATIC_ASSERT’
STATIC_ASSERT(D::base + D::length <= size, delay_memory_full);
^
./clouds/dsp/fx/fx_engine.h: In member function ‘void clouds::FxEngine<size, format>::Context::Interpolate(D&, float, clouds::LFOIndex, float, float)’:
./stmlib/stmlib.h:58:95: error: typedef ‘static_assertion_test_at_line_243’ locally defined but not used [-Werror=unused-local-typedefs]
typedef impl::StaticAssertionTest<sizeof(JOIN(_static_assertion_at_line, __LINE))> JOIN(**static_assertion_test_at_line, __LINE**)
^
./stmlib/stmlib.h:51:27: note: in definition of macro ‘JOIN_2’
#define JOIN_2(lhs, rhs) lhs##rhs
^
./stmlib/stmlib.h:49:27: note: in expansion of macro ‘JOIN_1’
#define JOIN(lhs, rhs) JOIN_1(lhs, rhs)
^
./stmlib/stmlib.h:58:90: note: in expansion of macro ‘JOIN’
typedef impl::StaticAssertionTest<sizeof(JOIN(static_assertion_at_line, LINE))> JOIN(**static_assertion_test_at_line, __LINE**)
^
./clouds/dsp/fx/fx_engine.h:243:7: note: in expansion of macro ‘STATIC_ASSERT’
STATIC_ASSERT(D::base + D::length <= size, delay_memory_full);
^
cc1plus: all warnings being treated as errors
make: *** [build/clouds_test/clouds_test.o] Error 1
r39 is incorrectly marked as 120K, thus only giving about 2.07V at the adc input when setting the coarse pitch knob to max. It should be 100K.
Trying to build the target stages with this command
make -f stages/makefile
Leads to this following error
In file included from ./stages/chain_state.h:35:0,
from stages/chain_state.cc:29:
./stages/segment_generator.h:39:46: fatal error: stages/variable_shape_oscillator.h: No such file or directory
#include "stages/variable_shape_oscillator.h"
^
compilation terminated.
make: *** [build/stages/chain_state.o] Error 1
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.