Берём кучку резисторов (по два на каждый бит, который хотим перевести в аналог, т.е. для воспроизведения 12-битного звука понадобится 24 резистора), соединяем их специальным образом в резисторную матрицу:
картинка с Вики:
Левый конец заземляем.
Далее на выводы a0..an-1 (в данном случае n = 12) подаём цифровой сигнал в двоичном формате от младшего к старшему (little endian). Т.е. хотим преобразовать число 3 -- подаём 1100 0000 0000, или же везде нули, кроме выводов a0, a1.
На правом конце матрицы появляется аналоговое напряжение, соответствующее этому числу. Всё, готов цифрово-аналоговый преобразователь, без всяких микросхем, даже без полупроводников.
Собсно, так работала звуковая плата Ковокс, подключающаяся к параллельному порту компьютера. Компьютерщики со стажем, наверное, видели. Руками я её не щупал, но видел Covox как опцию для звука в старых игрушках.
Недостатков, конечно, у неё есть. Шумность, и если хочешь, например, 24-битный звук -- это что ж, здоровенную буханку из 48 резисторов делать? И этой штуке вынь да положь 24 цифровых выхода. Где я их на том же ATTiny возьму?
Но изящности и простоты не отнимешь.