This is the code that would need to change. Maybe the Inform 10 version will make this possible without using I6.
A sound channel is a kind of value. The sound channels are foreground, background, midground, and environmental.
Include (-
Global gg_midgroundchan = 0;
Constant GG_MIDGROUNDCHAN_ROCK 412;
Global gg_envchan = 0;
Constant GG_ENVCHAN_ROCK 413;
[ MidgroundCreate;
if (glk_gestalt(gestalt_Sound, 0)) {
if (gg_midgroundchan == 0)
gg_midgroundchan = glk_schannel_create(GG_MIDGROUNDCHAN_ROCK);
if (gg_envchan == 0)
gg_envchan = glk_schannel_create(GG_ENVCHAN_ROCK);
}
];
-) before "Glulx.i6t".
And then, to map from the I7 value to the I6 value:
[ DereferenceChannel channel N;
switch(channel){
1: N = gg_foregroundchan;
2: N = gg_backgroundchan;
3: N = gg_midgroundchan;
4: N = gg_envchan;
default: N = -1;
}
return N;
];
The details of why it has to be done this way are a massive headache, but in general, if you search for “midground” and duplicate any lines that refer to it specifically, you’ll be off to a good start.