the corner case was found by @kesey but i got interested and found another variant to trigger it.
// Works
Ndef.clear;
Ndef(\ctlBus1, 880);
Ndef(\testMap, { |freq1=440| SinOsc.ar(freq1) * 0.3 }).play;
n = Ndef(\testMap).gui;
Ndef(\testMap).set(\freq1, Ndef(\ctlBus1));
Ndef(\testMap).set(\freq1, 440);
n.close
// Error
Ndef.clear;
Ndef(\ctlBus1, 880);
Ndef(\testMap, { |freq1=440| SinOsc.ar(freq1) * 0.3 }).play;
Ndef(\testMap).set(\freq1, Ndef(\ctlBus1));
n = Ndef(\testMap).gui;
Ndef(\testMap).set(\freq1, 440);
-> Ndef
-> Ndef('ctlBus1')
-> Ndef('testMap')
-> Ndef('testMap')
-> a NdefGui
-> Ndef('testMap')
ERROR: Message 'constrain' not understood.
RECEIVER:
nil
ARGS:
Integer 440
KEYWORD ARGUMENTS:
PROTECTED CALL STACK:
Meta_MethodError:new 0x1393b6840
arg this = DoesNotUnderstandError
arg what = nil
arg receiver = nil
Meta_DoesNotUnderstandError:new 0x1393b8f80
arg this = DoesNotUnderstandError
arg receiver = nil
arg selector = constrain
arg args = [440]
arg keywordArgumentPairs = []
Object:doesNotUnderstand 0x13856b300
arg this = nil
arg selector = constrain
arg args = nil
arg kwargs = nil
EZSlider:value_ 0x13b1afe00
arg this = an EZSlider
arg val = 440
ParamView:value_ 0x138955400
arg this = a ParamView
arg val = 440
ArrayedCollection:do 0x13ab0a080
arg this = [freq1]
arg function = a Function
var i = 0
NdefParamGui:setByKeys 0x1392d5180
arg this = a NdefParamGui
arg newKeys = [freq1]
arg newSettings = [[freq1, 440]]
var prevSettings = [[freq1, Ndef('ctlBus1')]]
var newVal = 440
var oldVal = Ndef('ctlBus1')
var oldKey = freq1
NdefParamGui:checkUpdate 0x1392d4a40
arg this = a NdefParamGui
var newState = ('editKeys': [freq1], 'keysRotation': 0, 'object': Ndef('testMap'), 'overflow': 0,
'settings': [[freq1, 440]], 'specsToUse': [a ControlSpec(22.0, 8800, 'exp', 0, 440, 'guess')])
var newKeys = [freq1]
a FunctionDef 0x13a0e2e40
sourceCode = "<an open Function>"
Routine:prStart 0x139fd4640
arg this = a Routine
arg inval = 40.298827583
CALL STACK:
DoesNotUnderstandError:reportError
arg this = <instance of DoesNotUnderstandError>
< closed FunctionDef >
arg error = <instance of DoesNotUnderstandError>
Function:try
arg this = <instance of Function>
arg handler = <instance of Function>
var result = <instance of DoesNotUnderstandError>
< FunctionDef in Method Scheduler:seconds_ >
arg time = 55.26596125
arg item = <instance of Routine>
< FunctionDef in Method SequenceableCollection:pairsDo >
arg i = 0
Integer:forBy
arg this = 0
arg endval = 2
arg stepval = 2
arg function = <instance of Function>
var i = 0
var j = 0
SequenceableCollection:pairsDo
arg this = [*4]
arg function = <instance of Function>
Scheduler:seconds_
arg this = <instance of Scheduler>
arg newSeconds = 55.267387958
Meta_AppClock:tick
arg this = <instance of Meta_AppClock>
var saveClock = <instance of Meta_SystemClock>
Process:tick
arg this = <instance of Main>
^^ ERROR: Message 'constrain' not understood.
RECEIVER: nil
ERROR: Message 'constrain' not understood.
RECEIVER:
nil
ARGS:
Integer 440
KEYWORD ARGUMENTS:
PROTECTED CALL STACK:
Meta_MethodError:new 0x1393b6840
arg this = DoesNotUnderstandError
arg what = nil
arg receiver = nil
Meta_DoesNotUnderstandError:new 0x1393b8f80
arg this = DoesNotUnderstandError
arg receiver = nil
arg selector = constrain
arg args = [440]
arg keywordArgumentPairs = []
Object:doesNotUnderstand 0x13856b300
arg this = nil
arg selector = constrain
arg args = nil
arg kwargs = nil
EZSlider:value_ 0x13b1afe00
arg this = an EZSlider
arg val = 440
ParamView:value_ 0x138955400
arg this = a ParamView
arg val = 440
ArrayedCollection:do 0x13ab0a080
arg this = [freq1]
arg function = a Function
var i = 0
NdefParamGui:setByKeys 0x1392d5180
arg this = a NdefParamGui
arg newKeys = [freq1]
arg newSettings = [[freq1, 440]]
var prevSettings = [[freq1, Ndef('ctlBus1')]]
var newVal = 440
var oldVal = Ndef('ctlBus1')
var oldKey = freq1
NdefParamGui:checkUpdate 0x1392d4a40
arg this = a NdefParamGui
var newState = ('editKeys': [freq1], 'keysRotation': 0, 'object': Ndef('testMap'), 'overflow': 0,
'settings': [[freq1, 440]], 'specsToUse': [a ControlSpec(22.0, 8800, 'exp', 0, 440, 'guess')])
var newKeys = [freq1]
NdefGui:checkUpdate 0x13934a2c0
arg this = a NdefGui
var newState = ('object': Ndef('testMap'), 'name': testMap, 'isPlaying': true, 'isPaused': false,
'canSend': true, 'type': ar 1, 'fadeTime': 0.02)
a FunctionDef 0x13a0e2e40
sourceCode = "<an open Function>"
Routine:prStart 0x139fd4640
arg this = a Routine
arg inval = 40.299114208
CALL STACK:
DoesNotUnderstandError:reportError
arg this = <instance of DoesNotUnderstandError>
< closed FunctionDef >
arg error = <instance of DoesNotUnderstandError>
Function:try
arg this = <instance of Function>
arg handler = <instance of Function>
var result = <instance of DoesNotUnderstandError>
< FunctionDef in Method Scheduler:seconds_ >
arg time = 55.266604542
arg item = <instance of Routine>
< FunctionDef in Method SequenceableCollection:pairsDo >
arg i = 2
Integer:forBy
arg this = 0
arg endval = 2
arg stepval = 2
arg function = <instance of Function>
var i = 2
var j = 1
SequenceableCollection:pairsDo
arg this = [*4]
arg function = <instance of Function>
Scheduler:seconds_
arg this = <instance of Scheduler>
arg newSeconds = 55.267387958
Meta_AppClock:tick
arg this = <instance of Meta_AppClock>
var saveClock = <instance of Meta_SystemClock>
Process:tick
arg this = <instance of Main>
^^ ERROR: Message 'constrain' not understood.
RECEIVER: nil
and second error on pressing cmd-.
ERROR: Message 'round' not understood.
RECEIVER:
nil
ARGS:
Float 0.001000 D2F1A9FC 3F50624D
KEYWORD ARGUMENTS:
PROTECTED CALL STACK:
Meta_MethodError:new 0x1393b6840
arg this = DoesNotUnderstandError
arg what = nil
arg receiver = nil
Meta_DoesNotUnderstandError:new 0x1393b8f80
arg this = DoesNotUnderstandError
arg receiver = nil
arg selector = round
arg args = [0.001]
arg keywordArgumentPairs = []
Object:doesNotUnderstand 0x13856b300
arg this = nil
arg selector = round
arg args = nil
arg kwargs = nil
EZSlider:value_ 0x13b1afe00
arg this = an EZSlider
arg val = 440
ParamView:value_ 0x138955400
arg this = a ParamView
arg val = 440
ArrayedCollection:do 0x13ab0a080
arg this = [freq1]
arg function = a Function
var i = 0
NdefParamGui:setByKeys 0x1392d5180
arg this = a NdefParamGui
arg newKeys = [freq1]
arg newSettings = [[freq1, 440]]
var prevSettings = [[freq1, Ndef('ctlBus1')]]
var newVal = 440
var oldVal = Ndef('ctlBus1')
var oldKey = freq1
NdefParamGui:checkUpdate 0x1392d4a40
arg this = a NdefParamGui
var newState = ('editKeys': [freq1], 'keysRotation': 0, 'object': Ndef('testMap'), 'overflow': 0,
'settings': [[freq1, 440]], 'specsToUse': [a ControlSpec(22.0, 8800, 'exp', 0, 440, 'guess')])
var newKeys = [freq1]
a FunctionDef 0x13a0e2e40
sourceCode = "<an open Function>"
Routine:prStart 0x139fd4640
arg this = a Routine
arg inval = 40.298827583
CALL STACK:
DoesNotUnderstandError:reportError
arg this = <instance of DoesNotUnderstandError>
< closed FunctionDef >
arg error = <instance of DoesNotUnderstandError>
Function:try
arg this = <instance of Function>
arg handler = <instance of Function>
var result = <instance of DoesNotUnderstandError>
< FunctionDef in Method Scheduler:seconds_ >
arg time = 142.042366
arg item = <instance of Routine>
< FunctionDef in Method SequenceableCollection:pairsDo >
arg i = 2
Integer:forBy
arg this = 0
arg endval = 8
arg stepval = 2
arg function = <instance of Function>
var i = 2
var j = 1
SequenceableCollection:pairsDo
arg this = [*10]
arg function = <instance of Function>
Scheduler:seconds_
arg this = <instance of Scheduler>
arg newSeconds = 142.043287292
Meta_AppClock:tick
arg this = <instance of Meta_AppClock>
var saveClock = <instance of Meta_SystemClock>
Process:tick
arg this = <instance of Main>
^^ ERROR: Message 'round' not understood.
RECEIVER: nil
ERROR: Message 'round' not understood.
RECEIVER:
nil
ARGS:
Float 0.001000 D2F1A9FC 3F50624D
KEYWORD ARGUMENTS:
PROTECTED CALL STACK:
Meta_MethodError:new 0x1393b6840
arg this = DoesNotUnderstandError
arg what = nil
arg receiver = nil
Meta_DoesNotUnderstandError:new 0x1393b8f80
arg this = DoesNotUnderstandError
arg receiver = nil
arg selector = round
arg args = [0.001]
arg keywordArgumentPairs = []
Object:doesNotUnderstand 0x13856b300
arg this = nil
arg selector = round
arg args = nil
arg kwargs = nil
EZSlider:value_ 0x13b1afe00
arg this = an EZSlider
arg val = 440
ParamView:value_ 0x138955400
arg this = a ParamView
arg val = 440
ArrayedCollection:do 0x13ab0a080
arg this = [freq1]
arg function = a Function
var i = 0
NdefParamGui:setByKeys 0x1392d5180
arg this = a NdefParamGui
arg newKeys = [freq1]
arg newSettings = [[freq1, 440]]
var prevSettings = [[freq1, Ndef('ctlBus1')]]
var newVal = 440
var oldVal = Ndef('ctlBus1')
var oldKey = freq1
NdefParamGui:checkUpdate 0x1392d4a40
arg this = a NdefParamGui
var newState = ('editKeys': [freq1], 'keysRotation': 0, 'object': Ndef('testMap'), 'overflow': 0,
'settings': [[freq1, 440]], 'specsToUse': [a ControlSpec(22.0, 8800, 'exp', 0, 440, 'guess')])
var newKeys = [freq1]
NdefGui:checkUpdate 0x13934a2c0
arg this = a NdefGui
var newState = ('object': Ndef('testMap'), 'name': testMap, 'isPlaying': true, 'isPaused': false,
'canSend': true, 'type': ar 1, 'fadeTime': 0.02)
a FunctionDef 0x13a0e2e40
sourceCode = "<an open Function>"
Routine:prStart 0x139fd4640
arg this = a Routine
arg inval = 40.299114208
CALL STACK:
DoesNotUnderstandError:reportError
arg this = <instance of DoesNotUnderstandError>
< closed FunctionDef >
arg error = <instance of DoesNotUnderstandError>
Function:try
arg this = <instance of Function>
arg handler = <instance of Function>
var result = <instance of DoesNotUnderstandError>
< FunctionDef in Method Scheduler:seconds_ >
arg time = 142.042403917
arg item = <instance of Routine>
< FunctionDef in Method SequenceableCollection:pairsDo >
arg i = 4
Integer:forBy
arg this = 0
arg endval = 8
arg stepval = 2
arg function = <instance of Function>
var i = 4
var j = 2
SequenceableCollection:pairsDo
arg this = [*10]
arg function = <instance of Function>
Scheduler:seconds_
arg this = <instance of Scheduler>
arg newSeconds = 142.043287292
Meta_AppClock:tick
arg this = <instance of Meta_AppClock>
var saveClock = <instance of Meta_SystemClock>
Process:tick
arg this = <instance of Main>
^^ ERROR: Message 'round' not understood.
RECEIVER: nil
Safety('localhost') is running, using 'safeClip_2'.