A quick update on my #musicn project (attempting to re-implement MUSIC III on an emulated #IBM7094.)
I've uploaded a copy of the source code at https://philcowans.com/projects/MUSIC-N/MUSIC.FAP - just a single source file at the moment, and no git hosting for now. It's incomplete, and I haven't even tried to assemble it, but I think it's decent progress. I've learned a lot about the FAP assembler (which is much more sophisticated than I'd assumed), and a tonne about how mainframes of the era were operated. I think I now have a pretty clear plan for how to do the rest, although there are a few bits where it feels like there should be a more elegant solution than what I'm planning.
My initial goal is to implement enough of the synthesizer side to render a single hard-coded note on the example instrument definition in https://archive.org/details/bstj40-3-677 (Figure 6 and Table I) - although there are a couple of parameter mappings which aren't fully defined in the paper. The main things left to do are:
* Implement the main loop to pull samples out of the synthesis pipeline. Should be pretty straightforward.
* Figure out how to produce output to tape. This seems pretty well documented, and I have a high level idea of how it should work in theory, but we'll see how well that translates to practice.
* Remember enough FORTRAN (and figure out the differences relative to what I was taught as a physicist in the 90s) to implement the periodic function generators and the non-linear parameter mapping functions.
* Figure out how linking works. I think this is pretty basic, and i think I do have some documentation for the CTSS loader.
* Actually assemble / compile it and work out how to approach debugging.
Once I've got all of that working the next phase will be to implement the sequencer. That will require figuring out how to read data from punched cards, and there's a bit of algorithm design I haven't quite figured out yet and for which there aren't many details in the documentation I have so far.