About this 3D model
This is an openscad script that can generate a whistle with an arbitrary number of notes. It isn't quite tuned right. There is a function in it to automatically calculate the length based on the note but it seems to be off by a bit. It whistles though!