Here's a short and sweet on how the MIDI stuff works for sounds:
no Cakewalk software, by itself, has a built in tone generator.
The reason You'd need a tone generator is that all the entered notes in the world, in Cakewalk, are just instructions which will tell a tone generator which instrument to use and how to use it.
MIDI is a general way for sending information to a computer from somewhere and to an instrument from a computer.
If Your keyboard can access MIDI code, then all You need to do is hook the keyboard's MIDI direct right up to Your computer and just go.
The keyboard itself is a tone generator.
The Cakewalk information, its notes and music, will send information to the tone generator inside Your keyboard.
This will make Your Cakewalk automatically play Your keyboard, like a phantom musician. The MIDI codes include channel and voice changes. Channel and voice changes tell Your keyboard when and how to switch to different sounds and different settings. The best part of all of this is, let's say You want to play a group of dark violins by playing Your guitar. Well, if You send Your guitar (use a 1/4 inch transformed into a 1/8 inch adapter plug that goes right on the end of Your guitar effects phone cords) right into Your computer's sound card, You can record Yourself playing guitar right onto Cakewalk, as AUDIO data (look around Cakewalk for the Audio tracks and arm them for recording, then just hit record and jam away on the guitar).
Now, after You've played whatever You like on the guitar, hit stop on the recorder and find out (Cakewalk help topics) how to convert the audio track into a MIDI track.
This will transform Your actual audio sounds and waveforms into MIDI numbers and data. Then, once You've done that, plug up Your keyboard to the "to host" part of the keyboard cord and the other end into Your computer.
Set the MIDI track so it's using the instruments for the right violins You want.
Then just send that info to Your keyboard.
The Cakewalk software will tell Your keyboard to use the GM or XG MIDI voices for the violins You want (even if Your keyboard does not have those voices in its stand-alone voice banks) and Your keyboard will play back exactly what You recorded from Your guitar playing, except now it will sound like violins.
MIDI is just a code that tells one device how to do something, sending numbers from another device. In this case, the MIDI track was set for sending information to Your keyboard. The information started out as a real Audio recording, of a real guitar. The Cakewalk software then transformed all the information from that Audio recording into MIDI numbers and code. The MIDI track was then given more numbers and code, telling it to use certain violin voices. Then the numbers and code were sent to a keyboard which used its onboard tone generator to play it.
There are things called "software synthesizers" that can be found free online, that help shape MIDI sounds, so that You can equalize, phase, do anything You like to shape the sounds into what You want. These alone will not generate a sound though, You still need a tone generator to do that, from MIDI code being sent to it.
There ARE tone generators You can buy as software, or find online, but none of the free ones are worth a rat's ass and the payed for ones are pretty expensive. If You've already got a keyboard that can handle MIDI, it's best just to use that.
I'd be happy to explain more about MIDI and Cakewalk.