1DiskOut : UGen {
2	*ar { arg bufnum, channelsArray;
3		^this.multiNewList(['audio', bufnum] ++ channelsArray.asArray)
4	}
5
6	checkInputs {
7		if (rate == 'audio', {
8			for(1, inputs.size - 1, { arg i;
9				if (inputs.at(i).rate != 'audio', {
10					^("input was not audio rate: " + inputs.at(i));
11				});
12			});
13		});
14		^this.checkValidInputs
15	}
16}
17
18DiskIn : MultiOutUGen {
19	*ar { arg numChannels, bufnum, loop = 0;
20		^this.multiNew('audio', numChannels, bufnum, loop)
21	}
22	init { arg numChannels, bufnum, loop = 0;
23		inputs = [bufnum, loop];
24		^this.initOutputs(numChannels, rate)
25	}
26}
27
28VDiskIn : MultiOutUGen {
29	*ar { arg numChannels, bufnum, rate = 1, loop = 0, sendID = 0;
30		^this.multiNew('audio', numChannels, bufnum, rate, loop, sendID)
31	}
32	init { arg numChannels, bufnum, argRate = 1, loop = 0, sendID = 0;
33		inputs = [bufnum, argRate, loop, sendID];
34		^this.initOutputs(numChannels, rate)
35	}
36}
37