Could you help me understand Sonic Pi better?

Hello everyone! I’ve been using Sonic Pi for a while now and I would love to see it grow until it becomes one of the standards for electronic music performance. To this end, I started learning programming to help the development of Sonic Pi. I’m learning C++ (because nearly all audio programming literature is in C++) and of course, Ruby. I want my learning process to be a bit more focused so I thought it may be fruitful to ask some stuff here.

The thing I want to know is, where should I look and what concepts should I focus on if I want to add some new functions (I’m not sure if I’m using the term correctly here) to the language, for example if I want the program to send MIDI data in a specific way. I’m sorry if the question does not make a lot of sense but basically I want to know how the language was designed so I have some starting point if I want to add some stuff to it. I peeked at the source code a bit but I unfortunately am too n00b to understand where I should look at. It would be awesome if you guys could show me a general path, like some keywords or stuff to look up etc or it would also be a huge help if you could just point me towards the relevant section in the source code.

Sorry for the badly verbalised question but it is really hard to tackle these stuff from scratch :). Thank you guys in advance.

I can’t really help you understand the sonic pi codebase, but I do have a suggestion for your MIDI issues. Sonic Pi supports reading MIDI and OSC data from other sources already .there’s a thread here and here, which got me started using touchOSC to control sonic pi.

TouchOSC messages can, in principle, be sent from anything that can run a library and a network connection, so there’s plenty of stuff to look at outside of pi itself and that’s what I would focus on.