Just to avoid confusion, and for future reference... TK is quite right - your application in particular does not have a requirement for a large amount of variables, so a PIC with lots of RAM (aka data RAM aka SRAM) is not so important - what you need most, is flash memory (aka code space aka Program Memory) because of the large complex functions. Here is a table for comparison: [table] [tr][td][/td][td]IC[/td][td]4685 [/td][td]4620 [/td][td]452 [/td][/tr] [tr][td][/td][td]Flash[/td][td]96k [/td][td]64k [/td][td]32k [/td][/tr] [tr][td][/td][td]SRAM[/td][td]3392b [/td][td]3968b [/td][td]1536b [/td][/tr] [/table] As you can see, there is a trade-off here. I recommended the 4620 in your case because it would be more code-compatible in the short term, because the 4685 has that RAM limitation (banked IO only in that range) - But in your case, the most appropriate PIC in the long term, would be the 4685, as it does not require IIC_MIDI, and it has more codespace vs less RAM, which matches the requirements of your application.