Oh, I considered asking about that but forgot. The datasheet, section Layout Guidelines, says there should be 10μF plus 100nF at the power pins (digital and analog). Those would be a low-ESR electrolytic and a C0G...
SPI.transfer expects one byte (8 bits, uint8_t). To send a 16bit quantity you can send two bytes, MSB first.
I don't have the particular DAC you are using but I looked at a couple of sketches using other DACS to see...
In terms of accuracy, it depends whether you got the A grade or the more expensive B grade. For A, the relative accuracy is ±2 LSB typical, ±8 LSB max. Assuming you have a gain stage that takes the 2V5 or 5V0 DAC output...
Your setup does not work because you are sending command 0000 which is "No operation". You need 0001 which is "Write to input Register".
So
int setDacChannelLevel(int address, int value)
{
...
Yes, it does. This has the feel of "great new idea, nice in theory", spoiled by backwards compatibility and divergent implementations in practice.
Also the "not in OMNI mode" caveat at least has some justification.
From the MIDI 1.0 spec (my emphasis):
So it is efficient if implemented but the safe and secure method, assuming you have a list of notes turned on, is (sadly) sending all the corresponding Note-Off messages.
...
The voltage divider on MISO is a test, not a solution. What voltage did you measure?
If your SPI slave devices do not tristate correctly, you will need to add a tristate buffer such as SN74AHCT125. You can then...
> I have a bunch of TL074 quad op-amps around, so I would use one of them since it works with 5V just as well.
No, it doesn't. TL072 and TL074 do not work well a couple of volts away from the rails, which is fine...