Can tables be used in subpatches in polyphonic mode?


#21

yeah, it should work in polyphonic patches.
the comment means, one instance of that object is monophonic, i.e. one note at a time, so you need to put it in a poly sub patch to get polyphony.

the issue we have is modulation sources don't work in polyphonic subpatches, and keyb mod happens to be an example of that....
personally I don't use modulation sources, (I prefer explicit wires) hence why I instantly replaced it... and then promptly forgot Id replaced it.... and blamed the phasor wink


#22

man this is so awesome. Can't thank you enough (and vormplus) for finding the issue. I kept looking at the keyb mod object with suspicion after reading that post last week but obviously i didn't read it carefully enough to actually do something.

Back to being creative.


#23

but of course, i didn't realize my design issue now..since i have polyphonic oscillators driving a single table..so the resulting sound is a bit different. I guess i really will need to use a table per voice wink

** OK fixed it for real this time.

**** just so this thread isn't completely useless to someone trying to use tables in polyphonic mode - here is what i learned:

  • Put your table read objects inside the subobject
  • Put your tables into your main patch
  • Don't use keyb mod inside your subpatch for the midi note
  • Definitely check out the Table Help (under the object arrow dropdown button)

Control transfer failed: -1
#24

I'm getting the following crash with my attempt at a simple polyphonic sampler & playback (polyphonic because I was experimenting with 'table/play pitch' - I've simplified it to use here 'table/play'). It seems like the subpatch isn't able to reference table t1 which is allocated in the main patch. Firmware = 1.0.0.1, software=1.0.3
StutterLiveVoice_debug.axs (4.0 KB)StutterLivePoly_debug.axp (3.3 KB)

Generate code complete
Start compiling patch
Compiling patch... with /Applications/Axoloti.app/Contents/Java/firmware
BDIR = /Users/tmason/Documents/axoloti/build
FIRMWARE = .
RM
rm -f /Users/tmason/Documents/axoloti/build/xpatch.o /Users/tmason/Documents/axoloti/build/xpatch.elf /Users/tmason/Documents/axoloti/build/xpatch.bin /Users/tmason/Documents/axoloti/build/xpatch.d /Users/tmason/Documents/axoloti/build/xpatch.map /Users/tmason/Documents/axoloti/build/xpatch.lst
APP
arm-none-eabi-g++ -nostdlib -fno-exceptions -fno-rtti -mcpu=cortex-m4 -O3 -fomit-frame-pointer -falign-functions=16 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant -Wunused-parameter -DCORTEX_USE_FPU=TRUE -DTHUMB_PRESENT -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -mthumb -DTHUMB -std=c++11 -DARM_MATH_CM4 -D__FPU_PRESENT -H -I/Applications/Axoloti.app/Contents/Java/CMSIS/Include -I/Applications/Axoloti.app/Contents/Java/chibios/os/ports/common/ARMCMx/CMSIS/include -I/Applications/Axoloti.app/Contents/Java/chibios/os/ports/common/ARMCMx -I/Applications/Axoloti.app/Contents/Java/chibios/os/ports/GCC/ARMCMx -I/Applications/Axoloti.app/Contents/Java/chibios/os/ports/GCC/ARMCMx/STM32F4xx -I/Applications/Axoloti.app/Contents/Java/chibios/os/kernel/include -I/Applications/Axoloti.app/Contents/Java/chibios/os/hal/include -I/Applications/Axoloti.app/Contents/Java/chibios/os/hal/platforms/STM32F4xx -I/Applications/Axoloti.app/Contents/Java/chibios/os/hal/platforms/STM32 -I/Applications/Axoloti.app/Contents/Java/chibios/os/hal/platforms/STM32/GPIOv2 -I/Applications/Axoloti.app/Contents/Java/chibios/os/hal/platforms/STM32/I2Cv1 -I/Applications/Axoloti.app/Contents/Java/chibios/os/hal/platforms/STM32/OTGv1 -I/Applications/Axoloti.app/Contents/Java/chibios/os/hal/platforms/STM32/RTCv2 -I/Applications/Axoloti.app/Contents/Java/chibios/os/hal/platforms/STM32/SPIv1 -I/Applications/Axoloti.app/Contents/Java/chibios/os/hal/platforms/STM32/TIMv1 -I/Applications/Axoloti.app/Contents/Java/chibios/os/hal/platforms/STM32/USARTv1 -I/Applications/Axoloti.app/Contents/Java/chibios/boards/ST_STM32F4_DISCOVERY -I/Applications/Axoloti.app/Contents/Java/chibios/ext/fatfs/src -I. -Winvalid-pch -MD -MP --include /Users/tmason/Documents/axoloti/build/xpatch.h -c /Users/tmason/Documents/axoloti/build/xpatch.cpp -o /Users/tmason/Documents/axoloti/build/xpatch.o
! /Users/tmason/Documents/axoloti/build/xpatch.h.gch
/Users/tmason/Documents/axoloti/build/xpatch.cpp: In member function 'void rootc::instanceStutterLiveVoice__debug__1::voice::instanceplay__1::dsp(int32_t, int32_t, int32_t, int32_t (&)[16])':
/Users/tmason/Documents/axoloti/build/xpatch.cpp:608:39: error: 'class rootc::instanceStutterLiveVoice__debug__1' has no member named 'instancet1_i'
pos = asat>>(27-parent->common->instancet1_i.LENGTHPOW);
^
/Users/tmason/Documents/axoloti/build/xpatch.cpp:621:33: error: 'class rootc::instanceStutterLiveVoice__debug__1' has no member named 'instancet1_i'
if (pos< parent->common->instancet1_i.LENGTH)
^
/Users/tmason/Documents/axoloti/build/xpatch.cpp:622:59: error: 'class rootc::instanceStutterLiveVoice__debug__1' has no member named 'instancet1_i'
outlet_wave[buffer_index] = parent->common->instancet1_i.array[pos++]<common->instancet1_i.GAIN;
^
/Users/tmason/Documents/axoloti/build/xpatch.cpp:622:102: error: 'class rootc::instanceStutterLiveVoice__debug__1' has no member named 'instancet1_i'
outlet_wave[buffer_index] = parent->common->instancet1_i.array[pos++]<common->instancet1_i.GAIN;
^
make: *** [/Users/tmason/Documents/axoloti/build/xpatch.bin] Error 1
shell task failed, exit value: 2
Compiling patch failed ( /Users/tmason/Documents/axoloti/Patches/Testing/StutterLivePoly_debug.axp )


#25

hiya - looks like your subpatch has incorrect table reference .
Check the help section for tables to see how to reference tables defined in the main patch, in your subpatches. (tldr its "../t1")
cant test your patch now so not sure if theres anything wrong with it.


#26

Thanks - you are correct that the table ref in the subpatch should be ../t1

It should also be noted that I had underscore in the names of my patches. This apparently is not allowed.

Anyway - it works now. Cool! Thx again


#27

welcome to the party