Part of the way this would have to work is by allowing recursive embedding of blocks within blocks. To illustrate, at the Elemental level (we can't call it the core level, as that's the name Reaktor uses officially), we have:
- Adder
- Mutliplier
- Subtractor
- Divider
- N-Sample Delay Line (where every sample in the line can be read separately via an index)
- Splitter
Theoretically, everything DSP can be made with these elements, but there are more we can add for convenience (I'm sure there are more, but this'll illustrate the idea):
- Comb Filter
- Variable Delay Line (where the length of the line can be changed in real-time, at the expense of being able to index any point along it)
However, the Elemental level can also contain other elemental operations for things like file access, arrays and indexing, access to sockets, and other such things. A sample playback object might want to be an element as well.
Blocks can then be created from elements, which can then be parts of other blocks, and on and on, until one finally decides to use blocks to build an instrument.