Hello everyone,
I'm having a strange issue with a custom external built using C++. When using my external in Pd I send it "set" commands using a message box to change internal parameters, e.g [set tempo $1(
The strange behavior is as follows:
1) Sometimes when opening the patch the word "tempo" as referenced above gets changed to some nonsensical characters or is missing altogether. So my message looks like [set ðLᄌ $1( or [set $1(, even though it was saved as [set tempo $1(.
2) When the behavior above does not occur (e.g #1) and the message is preserved upon opening, it only will work as written once then the second time the message is nonsense again but does not actually display as having changed. So the GUI still reads [set tempo $1( but actually prints to the Pd window as: print: set ðLᄌ 140.
3) At times when running my object, after #2 has happened, Pd crashes and leaves a trace to:
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000000100b1a6a
VM Regions Near 0x100b1a6a:
__LINKEDIT 00000000080a4000-00000000080a5000 [ 4K] r--/rwx SM=COW /Applications/Pd-extended.app/Contents/Resources/extra/pddp/pddplink.pd_darwin
-->
__TEXT 0000000070000000-000000007015f000 [ 1404K] r-x/rwx SM=COW /System/Library/Components/CoreAudio.component/Contents/MacOS/CoreAudio
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_c.dylib 0x903833f0 strcmp + 80
1 pdextended 0x0001c493 gatom_key + 305
2 pdextended 0x000386cf canvas_key + 1659
3 pdextended 0x000540b0 pd_typedmess + 740
4 pdextended 0x00054107 pd_typedmess + 827
5 pdextended 0x00058394 binbuf_eval + 1224
6 pdextended 0x0006255c socketreceiver_read + 1734
7 pdextended 0x0006111c sys_domicrosleep + 381
8 pdextended 0x000611a8 sys_microsleep + 19
9 pdextended 0x0005e413 m_mainloop + 989
10 pdextended 0x00060e4b sys_main + 2909
11 pdextended 0x00002172 _start + 216
12 pdextended 0x00002099 start + 41
-----------
Right now I'm using Pd-extended 42.5, Mac OS X 10.8.5
I'm happy to supply more code, examples, details, etc. if someone can help.
Much appreciated,
Rob