Don't blacklist ModalFilterUPP but always pass it as NULL. This enables the record routines to be generated.
diff --git a/Mac/Modules/snd/sndscan.py b/Mac/Modules/snd/sndscan.py
index 1873c19..560e2fd 100644
--- a/Mac/Modules/snd/sndscan.py
+++ b/Mac/Modules/snd/sndscan.py
@@ -64,6 +64,7 @@
 				'SndStopFilePlay',
 				'SndStartFilePlay',
 				'SndPauseFilePlay',
+				'SndRecordToFile',
 			])]
 
 	def makeblacklisttypes(self):
@@ -78,7 +79,6 @@
 			"SoundComponentData",
 			"SoundComponentData_ptr",
 			"SoundConverter",
-			"ModalFilterUPP",
 			]
 
 	def makerepairinstructions(self):
diff --git a/Mac/Modules/snd/sndsupport.py b/Mac/Modules/snd/sndsupport.py
index 91f3bb6..47c17ce 100644
--- a/Mac/Modules/snd/sndsupport.py
+++ b/Mac/Modules/snd/sndsupport.py
@@ -45,6 +45,7 @@
 SndCommand_ptr = OpaqueType('SndCommand', 'SndCmd')
 SndListHandle = OpaqueByValueType("SndListHandle", "ResObj")
 SPBPtr = OpaqueByValueType("SPBPtr", "SPBObj")
+ModalFilterUPP = FakeType("(ModalFilterUPP)0")
 
 #
 # NOTE: the following is pretty dangerous. For void pointers we pass buffer addresses