Hello ! i’d like to ask you where i could learn how to mod a firmware, write/replace some code …
in this particular example, it would be about a midipal, but i guess it’s using the same principles as the shruti … ?
this was what i posted in the midipal section , to illustrate why i’d like to do some little mods in the code, if possible :
’ ( … ) when you record a sequence, it starts necessarly by a particular note. let’s say a “do” ( in french notation ) . when you play it back, whichever key you play, it’ll always start with a “do”, even if the key a “re” for example. i’d like to mode the code/firmware so when i play the sequence ( and then transpose it ) it would start from the key played, not the first note recorded. do you see what io mean ?
and the administrator directed me to this link but i realise it’s too hard for me to understand it and doing something about it.
Do you have Basic programming skills? C++?
If you dont understand the Code in the GitHub Repository you probably not capable of programming?
If not its gonna be a long journey before you understand the Code whats the Stage before you can alter it…
first you should learn the Basics of C++
second you should be able to write your own programs with comparable complexitiy (Hello World wont be enough…) which means you will have to learn lots of programming concepts and how exactly MIDI works for working on the MIDIpal Firmware
then understand the Firmware code
and then after all this finally alter the Firmware.
C++ is (almost) a superset of C. Both have same capabilities when it comes to manipulating hardware, which is really just about writing values to some memory addresses that the chip interpret as I/O commands.
C++ has features that are convenient for organizing large project or things with many layers of abstraction - which can get in the way and cause code bloat/slowness if you abuse them - hence the bad name it got for embedded projects…
As always in programming: if you know what you are doing and how the compiler/interpreter works and reacts you can make good use of your hardware even with C++. Or Basic.
I added new software features to my Shruthi-1, you just dig in, look through all the files, see how things are organized. It helps that the Shruthi-1 code is organized very logically and coded really well. It also helps that I have a software development background. The hardest part was figuring out how to get it to compile and load into the processor. I struggled with using Mac and ended up using VMWare Windows XP on the Mac for coding and uploading. Once you have that figured out it’s the same every time you need to compile and load.