you need to reference to the element in the array:
from -
usbMIDI.sendControlChange(60 + i, cc_value, channel);
to -
usbMIDI.sendControlChange(60 + i, cc_value[i], channel);
Cheers, Paul
VINIA has 8 channels, each one can be independently configured as a sample player, full synth voice, drum synth, harmonic oscillator, chord generator... or as a multi-effects unit for external audio processing.
Easy to use constructor allows...
you need to hold all the cc_values at the moment you are just using one variable, something like:
// Store the value of Control Change for each button (0 or 127)
uint8_t cc_value[8] = {0, 0, 0, 0, 0, 0, 0, 0};
.......
// Toggle CC value between...
on the teensy the usb host port is only host (your iPhone and Mac can switch between host and device duties)
can you connect the teensy as a device using the other port?
I think you're connecting a Host (iPhone) to a Host (USB host port) which doesn't work - can you connect the phone to the usb device port on the teensy.
Hallo Teensy friends :)
Thanks for your help. I found a solution. I write the display data when asyncUpdateActive() == false. In a time loop of 51ms I update the screen with updateScreenAsync(false). This works very well without any sound...
If dma then control should return to your loop but I would still measure the time take in you loop() to be sure.
I don't know if your library has a dual buffer but is there a chance that you're modifying the framebuffer while DMA is still...
I do not know the library but I would time these transactions, the library has lots of comments like //Not sure if should or not or do like main code and break up into transactions... which suggests they may take some time
Cheers, Paul
I would time add some elapsedMicros timers around fillScreen() and the other items in your Task_Timer routine to characterise how long they take (average and also max). Depending on results you may be able tot optimise them or make midi.read()...
I watched your video, not sure I followed exactly what you were doing but are you sure it is midi drop out i.e. actually missing midi messages or is the timing just being thrown off ? I see you print to serial note on - do you see the right...
1.0f will likely be hard clipping so unless you like it that way I'd aim to keep it well under 1.0f at each stage - Mark's 0.9 is a good working max.
Cheers Paul
I use a RGB led and x10 max_vu_level to pick a colour from
// VU Meter display colours
int VU_display_colour[11] = {0xE4E4E4, 0x008000, 0x002600, 0x00FF00, 0x00FF00, 0xFF4B00,
0xFF4B00, 0xFF4B00, 0xFF4B00, 0xFF4B00...
I do something very similar to Mark and sprinkle AudioAnalyzePeak around the key points of the design.
I run this routine on a slow update (10 hz) to collect these together and use the global variable, max_vu_level to set a led showing any...