Code Monkey home page Code Monkey logo

libpdintegration's Introduction

LibPd Unity Integration

Note: this repository is no longer maintained

If you would like to take ownership, please get in touch. I no longer have the time or resources to maintain it myself.

About

LibPdIntegration is a wrapper for libpd for incorporating Pure Data patches into Unity. It currently supports Windows, OSX, Linux, and iOS (iOS support courtesy thefuntastic).

Unique Features

LibPdIntegration offers a couple of features which set it apart from existing implementations of libpd for Unity:

  • It works with recent versions of Unity (at the time of writing, it's been tested on 2018.4 LTS, 2019.4 LTS, 2020.3 LTS and 2021.1, though it should work on older versions too).
  • It supports multiple instances. This was impossible with previous implementations, as libpd itself did not support running multiple patches side by side. The libpd developers have recently removed that limitation however, meaning LibPdIntegration can allow developers to run multiple Pd patches in their Unity projects. This also means it's now feasible to build a 3D scene in Unity with multiple Pd patches all spatialised using Unity's audio code.

Quickstart

This repository contains everything you need to incorporate Pd patches into your Unity project. First download it from the releases page, then copy the contents of the Assets folder into your project's Assets folder. LibPdIntegration provides native libpd binaries for supported platforms in the Plugins subfolder, and a single C# script, LibPdInstance.cs in the Scripts subfolder.

PD patches should be placed in the StreamingAssets/PdAssets folder (you can create your own subfolders within).

To associate a Pd patch with a Unity GameObject, you need to add a single Lib Pd Instance Component to the GameObject. Doing this will also add an Audio Source Component; this is necessary because Unity does not process audio for GameObjects without an Audio Source.

Lib Pd Instance is our wrapper for libpd. To associate a Pd patch with it, drag the patch from your StreamingAssets/PdAssets folder to the Patch selector in the Inspector.

LibPdInstance Inspector Patch Selector

Note that the order of Components matters. Audio Source must come before Lib Pd Instance.

The Pipe Print To Console toggle provided by Lib Pd Instance lets you pipe any print messages sent by your Pd patch to Unity's console for debugging purposes. Note that due to a limitation with libpd, this toggle is global. i.e. if you activate it for one Lib Pd Instance, it will be active for all Lib Pd Instances.

See the sister project LibPdIntegrationExamples and the wiki for more information, including how to communicate between Unity and libpd. And there's also Yann Seznec's excellent introductory videos on youtube.

Note: If building for mac, Unity may complain about conflicting versions of libpd. This is because Unity mistakenly assumes the 64-bit Linux lipbd binary is actually a mac binary. To rectify the issue, select the 64-bit linux binary (Assets/Plugins/x64/libpd.so) and uncheck the Mac OS X x64 toggle in the Inspector to match the following image, then click Apply:

Correct Inspector settings for the 64-bit libpd Linux binary

Spatialisation

Spatialisation of Pure Data patches in Unity is a little convoluted. The following describes a method that does not require any external frameworks, but do check out the Spatialisation page on the wiki if you happen to be using an external audio framework like Steam Audio. The process is a bit more straightforward in that case.

For this method we need to use a special sound file (included in this repository) in our Audio Source, and use an adc~ object in our PD patch to apply the Audio Source spatialisation to the output of our PD patch.

The necessary steps are:

In Unity:

  1. Set the Audio Source's AudioClip to our SpatialiserFix.wav sound file.

    Audio Source AudioClip set to SpatialiserFix.wav

  2. Ensure the Audio Source is set to Play On Awake and Loop.

    Audio Source Play On Awake and Loop set to true

  3. Set Spatial Blend to 1(3D).

    Audio Source Spatial Blend slider set to 3D

In Pure Data:

Multiply the output of your patch with the stereo input from an adc~ object, like the section highlighted in blue here: Pure Data adc~ object output

This will effectively apply the spatialisation that Unity applies to Audio Sources by default, to the output of our PD patch. For more information, see the LibPdIntegrationExamples project, and particularly the comments in the FilteredNoise-ADC.pd patch.

Caveats

  • Only Pure Data Vanilla is supported. Additional objects (externals) included with distributions like Purr Data and Pd-Extended (deprecated) do not currently work. See issue 14 for an explanation of why this is; it will hopefully be resolved in a future release.

  • Although libpd provides C# bindings, 1.) I could not get them to play nicely with Unity, and 2.) they don't (at the time of writing this) support libpd's new multiple instance system. As such, LibPdIntegration interfaces directly with the libpd C library. This may change if libpd's C# bindings get updated in the future, but they should be functionally identical to the C library anyway, so I'm not sure it's necessary.

  • readsf~ does not work. This is due to a bug in pure data. At the time of writing there's a pull request that should fix it; once that's been approved I'll try and get new libpd binaries built (anyone who can contribute OSX, Linux and/or iOS binaries please let me know!).

    In the meantime, you can work around the problem by using soundfiler instead of readsf~.

Related Projects

Pure Data Resources

Credits

LibPdIntegration is developed by Niall Moody, with assistance from Yann Seznec. It is licensed under the MIT License.

libpdintegration's People

Contributors

emurray2 avatar mxa avatar niallmoody avatar thefuntastic avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libpdintegration's Issues

Receiving sent values from instanced versions of the same Pd patch.

Hi! I'm loving this project as it's exactly what my project requires to get the audio-end working flexibly!

I'm running into an issue where I need to receive a float value from the patch. After following the LibPd-2-Unity tutorial, I have the following code receiving a float value "volume" from the patch and influencing the scale of the object.

public void FloatReceive(string sender, float value)
	{
		if(sender == "volume")
		{
			scaleObject.localScale = new Vector3(0.1f+(value/1f), 0.1f+(value/1f), 0.1f+(value/1f));
		}
	}

However, I have two game objects, each with their own LibPdInstance running this single patch, and both are receiving the volume value from the first instance of the patch.

Is this an issue with the way my variables are setup?
See this video for a short demo of the issue: https://www.youtube.com/watch?v=c_jD0dD6zRg

[SOLVED] Crash unity when instantiate prefab with LibPdInstance

[Environment]
Window 10
Unity 2022.3.4f1
LibPdIntegration 2.2.0

[Log]

=================================================================
	Native Crash Reporting
=================================================================
Got a UNKNOWN while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

=================================================================
	Managed Stacktrace:
=================================================================
	  at <unknown> <0xffffffff>
	  at LibPdInstance:libpd_process_float <0x000d5>
	  at LibPdInstance:OnAudioFilterRead <0x00062>
	  at <Module>:runtime_invoke_void__this___object_int <0x00099>
=================================================================
Crash!!!
LibPdInstance.Awake(): GetDSPBufferSize
UnityEngine.StackTraceUtility:ExtractStackTrace ()
UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
UnityEngine.Logger:Log (UnityEngine.LogType,object)
UnityEngine.Debug:Log (object)
LibPdInstance:Awake () (at Assets/LibPD/Scripts/LibPdInstance.cs:577)
UnityEngine.Object:Internal_InstantiateSingle (UnityEngine.Object,UnityEngine.Vector3,UnityEngine.Quaternion)
UnityEngine.Object:Instantiate (UnityEngine.Object,UnityEngine.Vector3,UnityEngine.Quaternion)
UnityEngine.Object:Instantiate<UnityEngine.GameObject> (UnityEngine.GameObject,UnityEngine.Vector3,UnityEngine.Quaternion)
CreatePlant:Update () (at Assets/BIEN/Scripts/CreatePlant.cs:15)

Hi I try to instantiate with LibPdInstance. At the time unity editor crashed. It works fine when I pud same prefab on scene. Anyone try to create prefab on runtime dynamically? Please just let me know any idea.

Thanks.

[SOLVED]

I've found a reason of error. It's occurred when call OnAudioFilterRead before initialize. So I just change code like below.

	void OnAudioFilterRead(float[] data, int channels)
	{
		if(!pdFail && !patchFail)
		{
			if (numTicks == 0)
			{
				Debug.LogError("LibPdInstance.OnAudioFilterRead() ---- numTicks is 0");
			}
			else
			{
				libpd_set_instance(instance);
				libpd_process_float(numTicks, data, data);
			}
		}
	}

Only stereo audio is supported

Posting this here because I just realised LibPdInstance.cs is hard-coded to assume we're only ever operating in stereo. From a cursory examination, it looks like Unity only tells us the number of channels in OnAudioFilterRead, whereas libpd needs to know that information during setup (which happens during Awake).

So I'm not sure there's an easy fix, but it definitely needs to be documented as an Issue in case we can eventually figure out a better solution.

Add wiki page on mic input via Unity's Microphone class

Putting this here as a reminder to me to add a page to the wiki on how to feed mic input into Pd using Unity's Microphone class. Yann experimented with it on twitch this week (video here, but I imagine that link won't last forever).

Maybe add a demonstration scene to the examples project too?

No audio on Unity 2021.2.8f1 Silicon

System

  • Unity version: 2021.2.8f1 Silicon
  • Computer: MacBook Pro late 2020 with M1 chip,
  • OS: macOS BigSur version 11.5.1

To reproduce:

  • Create a new 3D project
  • Add an Empty object
  • Add a LibPdInstance
  • Add the example boop_synth.pd patch
  • Run

Expected

  • Listening to the audio from the pd patch

Actual

  • No audio

WebGL build

Is it possible to export a WebGL build with Unity using Pd and LibPdIntegration?

Android support?

Hi, thanks for your work on this great project!

Are there plans to add Android to the supported platforms? I started looking into building the patched version of libpd but wasn't sure if that info was out of date.

Application.dataPath

Hey. Nice library.
You have a bug where you use Application.dataPath, when you should be using Application.streamingAssetsPath.
It means that when you build it sometimes cannot find PD files.

MissingReferenceException: LibPdInstance loses reference when changing scenes

In Unity, while creating a loop Menu -> Play -> Menu (Scene changes), my AudioObject containing LibPdInstance would throw the following error:

MissingReferenceException: The object of type 'LibPdInstance' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
LibPdInstance.SendFloat (System.String receiver, System.Single val) (at Assets/LibPdIntegr_/Scripts/LibPdInstance.cs:826)
(wrapper synchronized) LibPdInstance.SendFloat(string,single)
BerkleePureData.UpdateByPercentage () (at Assets/Scripts/Pd/BerkleePureData.cs:28)
Berklee.CorrectAnswer (System.String s) (at Assets/Scripts/Berklee/Berklee.cs:238)
BerkleeSquare.CompareSquareText () (at Assets/Scripts/Berklee/BerkleeSquare.cs:62)
UnityEngine.Events.InvokableCall.Invoke () (at :0)
UnityEngine.Events.UnityEvent1[T0].Invoke (T0 arg0) (at <b0fc6facff52490f8c5788181f70c5cc>:0) TMPro.TMP_InputField.SendOnEndEdit () (at ./Library/PackageCache/[email protected]/Scripts/Runtime/TMP_InputField.cs:3149) TMPro.TMP_InputField.ReleaseSelection () (at ./Library/PackageCache/[email protected]/Scripts/Runtime/TMP_InputField.cs:4146) TMPro.TMP_InputField.DeactivateInputField (System.Boolean clearSelection) (at ./Library/PackageCache/[email protected]/Scripts/Runtime/TMP_InputField.cs:4184) TMPro.TMP_InputField.OnDeselect (UnityEngine.EventSystems.BaseEventData eventData) (at ./Library/PackageCache/[email protected]/Scripts/Runtime/TMP_InputField.cs:4196) UnityEngine.EventSystems.ExecuteEvents.Execute (UnityEngine.EventSystems.IDeselectHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at ./Library/PackageCache/[email protected]/Runtime/EventSystem/ExecuteEvents.cs:120) UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction1[T1] functor) (at ./Library/PackageCache/[email protected]/Runtime/EventSystem/ExecuteEvents.cs:272)
UnityEngine.EventSystems.EventSystem:Update() (at ./Library/PackageCache/[email protected]/Runtime/EventSystem/EventSystem.cs:530)

After that, it would either not receive any input at all, or even crash. If I check it in the inspector, i see that the libPdInstance reference is referenced correctly in every other script that references it. It is internally on the LibPdInstance Script that this happens. Anyone knows how to fix this?

Problem with WriteArray

Hi. Great repository.

I have a problem with array. I need to get the audio file from AudioClip. I use this: pdPatch2.WriteArray("array1", 0, clip, clip.samples); and then console print this:
error CS1503: Argument '#3' cannot convert 'UnityEngine.AudioClip' expression to type 'float[]'.

Whole script:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Audio : MonoBehaviour {

	public LibPdInstance pdPatch;
	public AudioClip clip;

	// Use this for initialization
	void Start () {
		pdPatch.SendFloat("clipLength",clip.samples);
		pdPatch.WriteArray("array1", 0, clip, clip.samples); // ERROR
	
	}
	
	// Update is called once per frame
	void Update () {
		
	}
}

I don't know how to change the #3 argument (clip) from WriteArray.

readsf~ object makes Unity crash

Hi

Thank you for sharing your work. I'm trying to use a patch that opens a .wav file using the readsf~ object, but when I bang it using SendBang Unity crashes with this stack trace.

========== OUTPUTTING STACK TRACE ==================

0x000000006D95A167 (libpd) open_via_path
0x000000006D8C151B (libpd) open_soundfile
0x000000006D8C174C (libpd) open_soundfile
0x000000006494B9AC (libwinpthread-1) pthread_create_wrapper
0x00007FFF181CB04A (msvcrt) beginthreadex
0x00007FFF181CB11C (msvcrt) endthreadex
0x00007FFF16DB7C24 (KERNEL32) BaseThreadInitThunk
0x00007FFF1894D4D1 (ntdll) RtlUserThreadStart

========== END OF STACKTRACE ===========

Do you know what causes this to happen?

2018.3 issues with directories

Hi there, me and Karl who posted the other issue recently used this as part of the GlobalGameJam, thanks for putting this up.
We came into a couple of issues we believe based around directories in the newer Unity versions.
As Karl has said the directory location needed to be changed.
There are issues with when it gets built, making the above changes makes it work on Mac as a build, but it doesnโ€™t build on windows.
I will try and have a look when I get my windows machine back, but Iโ€™m not sure how far iโ€™d get.
Thanks,
Miles

wrap~ crash in 64-bit builds of Windows projects

Putting this here in case anyone else runs into the same problem. It seems there's a bug affecting patches that use the wrap~ object; the patch will run fine in Unity, but will crash any Windows builds (possibly other platforms too?).

The crash happens in the libpd library itself, so it might be a libpd bug. I want to do some more tests to try and narrow it down though.

This patch replicates the problem:
wrap crash example

For the time being the simplest solution is to replace wrap~ with expr~ fmod($v1, 1), like so:
wrap crash workaround

That only wraps to the range -1 โ†’ +1 though. If you want to completely replicate wrap~'s functionality (i.e. wrap to the range 0 โ†’ 1), you'll need to add an extra expr~ if($v1 < 0, $v1 +1, $v1) object, like so:
wrap crash full workaround

HTML5/WebGL Support

Only had a quick look at it, but I'm going to put this here to collect what I've found so far.

It looks complicated. To use a native plugin in a WebGL build you need to build the plugin using emscripten, but this implementation suggests libpd needs multiple modifications to play nicely with emscripten.

If those modifications affect the libpd interface it would break things for the other platforms we support. If the modifications are only internal, however, we might be able to use empd for WebGL builds and the standard libpd for everything else? Not super keen on relying on 2 different versions of libpd though.

Also useful: an explanation of build processes for native plugins in Unity: https://www.bugsnag.com/blog/building-native-plugins-for-unity-games

Pipe print to console behaves strangely for lists

I'm running Unity 2020.3.33f1 on Arch Linux 64-bit (kernel 5.17.1).

When I have "pipe print to console" checked on the LibPdInstance, I'd expect that printing a list or compound message would put that list or compound message in the Unity console all on one line, like it does in the Pd console. But instead, the message gets broken up in a strange way. Pictured is what happens to a compound message (corresponding patch is open to show there's nothing weird):

screenshot

Is this expected behavior? Is there anything I can do to get it all in one line?

This is a very minor inconvenience, but if it's fixable, it'd be a big quality of life improvement.

DllNotFoundException Error

System specs

  • MacBook Pro 13" with Apple M1 chip
  • OS: macOS Big Sur, v 11.6.6
  • Unity version: 2021.3.10f1

To reproduce

  • After Installing, add an object and then a LibPdIstance component

Expected:

  • Hearing the PD patch

Actual

  • Error and no sound. Console output below:

DllNotFoundException: libpd assembly: type: member:(null)
LibPdInstance.Awake () (at Assets/Scripts/LibPdInstance.cs:525)

To note

The same unity project works fine on Unity version 2020.3.1f1. Is it possible that it is needed an update to this new version? Is there any workaround?

dead references to libpdinstances prevent events from being called/instances never freed

libpdinstances added to the activeInstances list are never removed even if the instances themselves are destroyed or disabled, filling the list with dead references. in combination with this if statement

		if(this == activeInstances[0])
		{
			libpd_queued_receive_pd_messages();
			libpd_queued_receive_midi_messages();
		}

it causes pd and midi events to never be called unless the instance originally assigned at index 0 is still active. adding

	void OnDisable() {
		activeInstances.Remove(this);
	}

seems to fix the problem. however, it looks like actual instances (within libpd) are still never freed

libpd binaries are not synced to the same version (and the versions are not documented)

This issue draws attention to the fact that 1.) the different libpd binaries in this repo are all built to different versions of libpd/pure data, and 2.) those versions are not actually documented anywhere.

1.) is difficult for me to rectify, as I only have access to a Windows machine, and have to rely on other people for binaries for different platforms. So this issue is partly a call for help. Are you in a position to provide up-to-date binaries for OSX, Linux and/or iOS?

2.) is just a straight up mistake on my part. The plan moving forward is to standardise on a specific version for all the binaries and document that version in this repository. Of course, I'll need help to do that, see point 1.).

Can't use SendList and SendMessage

Does anyone know how to actually send information through this methods? i've tried using strings, int or float arrays, and nothing seems to work for Pure Data to actually receive a collection of numbers from Unity. Sadly, no example even touches the topic of sending anything other than a float or a bang to pure data.

Also, in the SendMessage function, there is a "symbol" argument, which i don't fully get; if i wanted to send a message to be understood as a list in pure data, i don't know what should i write here.

Thanks

Adding libpd instant component to unity object causes exception

Hello! First off thank you so much for this project, it's gonna make a huge different to us once we get it working.

Adding a libpd instance to a simple cube object in a scene and playing a project gives us:

EntryPointNotFoundException: libpd_set_queued_printhook
LibPdInstance.Awake () (at Assets/Scripts/LibPdInstance.cs:508)

...which appears to be the first line in initialisation within LibPdInstance.cs.

This is in Unity 2019.4.10f1, and we tried both copying from the LibPdIntegration/LibPdIntegrationExamples, and downloading the v.2.1.1 release from the releases page and copying into scripts and assets from there.

This is on a MacbookPro running 10.15.7.

On Windows, running Unity 2019.4.18f1, the error does not happen.

But since I'm here: what's the best example to look at to implement Unity2libpd messaging (simple bang) within an existing class, as opposed to attached to a simple game object/collider?

Live audio input

Is there a way to have a live audio input (i.e. computer microphone) fed into the Pd patch running in Unity?

adding a LibPdInstance next to an Audio Listener crashes Unity 2021.1

if the game object you add LibPdInstance to already has an Audio Listener component (or vice versa), then the Unity editor immediately crashes

you can easily reproduce this by attempting to add LibPdInstance to the Main Camera in a new project, for example

this appears to only happen on Unity 2021.1 -- I couldn't reproduce it in Unity 2019.4

i'm on Windows 10, using LibPdIntegration 2.1.1

Segfault with libpd hooks on Apple Silicon

I get some sort of segfault or memory issue, EXC_CRASH SIGSEGV with the AssetGarbageCollectorHelper. It seems Unity 2022.3.11f1 LTS Apple Silicon doesn't like the following code inside LibPdInstance.cs on lines 513-551 inside Awake():

//Setup hooks.
printHook = new LibPdPrintHook(PrintOutput);
libpd_set_queued_printhook(printHook);
...
midiByteHook = new LibPdMidiByteHook(MidiByteOutput);
libpd_set_queued_midibytehook(midiByteHook);
Expand Crash Log
-------------------------------------
Translated Report (Full Report Below)
-------------------------------------

Process:               Demo-10.26-libpd [31110]
Path:                  /Applications/SpaceInvader.app/Contents/MacOS/Demo-10.26-libpd
Identifier:            com.Unity-Technologies.com.unity.template.urp-blank
Version:               0.1.0 (0)
Code Type:             ARM-64 (Native)
Parent Process:        launchd [1]
User ID:               501

Date/Time:             2023-11-25 01:36:47.3718 -0600
OS Version:            macOS 14.1.1 (23B81)
Report Version:        12
Anonymous UUID:        79B4882B-30AC-F490-259A-FA1A474F69D1

Sleep/Wake UUID:       AB7CDED0-4E97-4680-98DD-F250F6997AEB

Time Awake Since Boot: 31000 seconds
Time Since Wake:       12104 seconds

System Integrity Protection: enabled

Crashed Thread:        0  AssetGarbageCollectorHelper

Exception Type:        EXC_CRASH (SIGSEGV)
Exception Codes:       0x0000000000000000, 0x0000000000000000

Termination Reason:    Namespace SIGNAL, Code 11 Segmentation fault: 11
Terminating Process:   Demo-10.26-libpd [31110]

Thread 0 Crashed:: AssetGarbageCollectorHelper
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x1080cec58 0x107c38000 + 4811864
5   UnityPlayer.dylib             	       0x1080d3b30 0x107c38000 + 4832048
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 1:: AssetGarbageCollectorHelper
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x1080cec58 0x107c38000 + 4811864
5   UnityPlayer.dylib             	       0x1080d3b30 0x107c38000 + 4832048
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 2:: AssetGarbageCollectorHelper
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x1080cec58 0x107c38000 + 4811864
5   UnityPlayer.dylib             	       0x1080d3b30 0x107c38000 + 4832048
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 3:: AssetGarbageCollectorHelper
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x1080cec58 0x107c38000 + 4811864
5   UnityPlayer.dylib             	       0x1080d3b30 0x107c38000 + 4832048
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 4:: AssetGarbageCollectorHelper
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x1080cec58 0x107c38000 + 4811864
5   UnityPlayer.dylib             	       0x1080d3b30 0x107c38000 + 4832048
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 5:: AssetGarbageCollectorHelper
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x1080cec58 0x107c38000 + 4811864
5   UnityPlayer.dylib             	       0x1080d3b30 0x107c38000 + 4832048
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 6:: AssetGarbageCollectorHelper
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x1080cec58 0x107c38000 + 4811864
5   UnityPlayer.dylib             	       0x1080d3b30 0x107c38000 + 4832048
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 7:
0   libsystem_pthread.dylib       	       0x18d79fe28 start_wqthread + 0

Thread 8:
0   libsystem_pthread.dylib       	       0x18d79fe28 start_wqthread + 0

Thread 9:
0   libsystem_pthread.dylib       	       0x18d79fe28 start_wqthread + 0

Thread 10:: Finalizer
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libmonobdwgc-2.0.dylib        	       0x10f96a330 0x10f778000 + 2040624
2   libmonobdwgc-2.0.dylib        	       0x10f931448 0x10f778000 + 1807432
3   libmonobdwgc-2.0.dylib        	       0x10f9312f4 0x10f778000 + 1807092
4   libmonobdwgc-2.0.dylib        	       0x10f9b0dc8 GC_inner_start_routine + 96
5   libmonobdwgc-2.0.dylib        	       0x10f9b0d50 GC_start_routine + 36
6   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
7   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 11:: Job.worker 0
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x108099930 0x107c38000 + 4593968
5   UnityPlayer.dylib             	       0x10809a974 0x107c38000 + 4598132
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 12:: tid_9403
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x108099930 0x107c38000 + 4593968
5   UnityPlayer.dylib             	       0x10809a974 0x107c38000 + 4598132
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 13:: Job.worker 2
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x108099930 0x107c38000 + 4593968
5   UnityPlayer.dylib             	       0x10809a974 0x107c38000 + 4598132
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 14:: Job.worker 3
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x108099930 0x107c38000 + 4593968
5   UnityPlayer.dylib             	       0x10809a974 0x107c38000 + 4598132
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 15:: Job.worker 4
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x108099930 0x107c38000 + 4593968
5   UnityPlayer.dylib             	       0x10809a974 0x107c38000 + 4598132
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 16:: Job.worker 5
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x108099930 0x107c38000 + 4593968
5   UnityPlayer.dylib             	       0x10809a974 0x107c38000 + 4598132
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 17:: Job.worker 6
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x108099930 0x107c38000 + 4593968
5   UnityPlayer.dylib             	       0x10809a974 0x107c38000 + 4598132
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 18:: Background Job.worker 0
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x108099930 0x107c38000 + 4593968
5   UnityPlayer.dylib             	       0x10809a974 0x107c38000 + 4598132
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 19:: Background Job.worker 1
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x108099930 0x107c38000 + 4593968
5   UnityPlayer.dylib             	       0x10809a974 0x107c38000 + 4598132
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 20:: Background Job.worker 2
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x108099930 0x107c38000 + 4593968
5   UnityPlayer.dylib             	       0x10809a974 0x107c38000 + 4598132
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 21:: Background Job.worker 3
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x108099930 0x107c38000 + 4593968
5   UnityPlayer.dylib             	       0x10809a974 0x107c38000 + 4598132
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 22:: Background Job.worker 4
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x108099930 0x107c38000 + 4593968
5   UnityPlayer.dylib             	       0x10809a974 0x107c38000 + 4598132
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 23:: Background Job.worker 5
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x108099930 0x107c38000 + 4593968
5   UnityPlayer.dylib             	       0x10809a974 0x107c38000 + 4598132
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 24:: Background Job.worker 6
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x108099930 0x107c38000 + 4593968
5   UnityPlayer.dylib             	       0x10809a974 0x107c38000 + 4598132
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 25:: Background Job.worker 7
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x108099930 0x107c38000 + 4593968
5   UnityPlayer.dylib             	       0x10809a974 0x107c38000 + 4598132
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 26:: Background Job.worker 8
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x108099930 0x107c38000 + 4593968
5   UnityPlayer.dylib             	       0x10809a974 0x107c38000 + 4598132
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 27:: Background Job.worker 9
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x108099930 0x107c38000 + 4593968
5   UnityPlayer.dylib             	       0x10809a974 0x107c38000 + 4598132
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 28:: Background Job.worker 10
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x108099930 0x107c38000 + 4593968
5   UnityPlayer.dylib             	       0x10809a974 0x107c38000 + 4598132
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 29:: Background Job.worker 11
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x108099930 0x107c38000 + 4593968
5   UnityPlayer.dylib             	       0x10809a974 0x107c38000 + 4598132
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 30:: Background Job.worker 12
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x108099930 0x107c38000 + 4593968
5   UnityPlayer.dylib             	       0x10809a974 0x107c38000 + 4598132
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 31:: Background Job.worker 13
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x108099930 0x107c38000 + 4593968
5   UnityPlayer.dylib             	       0x10809a974 0x107c38000 + 4598132
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 32:: Background Job.worker 14
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x108099930 0x107c38000 + 4593968
5   UnityPlayer.dylib             	       0x10809a974 0x107c38000 + 4598132
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 33:: Background Job.worker 15
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x108099930 0x107c38000 + 4593968
5   UnityPlayer.dylib             	       0x10809a974 0x107c38000 + 4598132
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 34:: BatchDeleteObjects
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x1081c8ad8 0x107c38000 + 5835480
5   UnityPlayer.dylib             	       0x1080cdfa0 0x107c38000 + 4808608
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 35:: Loading.AsyncRead
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x107f6c144 0x107c38000 + 3359044
5   UnityPlayer.dylib             	       0x107f6bc3c 0x107c38000 + 3357756
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 36:: OSX HID Input
0   libsystem_kernel.dylib        	       0x18d7648b4 mach_msg2_trap + 8
1   libsystem_kernel.dylib        	       0x18d776d30 mach_msg2_internal + 80
2   libsystem_kernel.dylib        	       0x18d76d4f0 mach_msg_overwrite + 476
3   libsystem_kernel.dylib        	       0x18d764c38 mach_msg + 24
4   CoreFoundation                	       0x18d881ea4 __CFRunLoopServiceMachPort + 160
5   CoreFoundation                	       0x18d88076c __CFRunLoopRun + 1208
6   CoreFoundation                	       0x18d87fc5c CFRunLoopRunSpecific + 608
7   CoreFoundation                	       0x18d8fd994 CFRunLoopRun + 64
8   UnityPlayer.dylib             	       0x108b1b980 0x107c38000 + 15612288
9   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
10  libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
11  libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 37:: UnityGfxDeviceWorker
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x1081c8ad8 0x107c38000 + 5835480
5   UnityPlayer.dylib             	       0x10895d718 0x107c38000 + 13784856
6   UnityPlayer.dylib             	       0x108b41698 0x107c38000 + 15767192
7   UnityPlayer.dylib             	       0x10895d614 0x107c38000 + 13784596
8   UnityPlayer.dylib             	       0x10895d240 0x107c38000 + 13783616
9   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
10  libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
11  libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 38:: caulk.messenger.shared:17
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   caulk                         	       0x197af9690 caulk::semaphore::timed_wait(double) + 212
2   caulk                         	       0x197af9544 caulk::concurrent::details::worker_thread::run() + 36
3   caulk                         	       0x197af9244 void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, void (caulk::concurrent::details::worker_thread::*)(), std::__1::tuple<caulk::concurrent::details::worker_thread*>>>(void*) + 96
4   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
5   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 39:: caulk.messenger.shared:high
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   caulk                         	       0x197af9690 caulk::semaphore::timed_wait(double) + 212
2   caulk                         	       0x197af9544 caulk::concurrent::details::worker_thread::run() + 36
3   caulk                         	       0x197af9244 void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, void (caulk::concurrent::details::worker_thread::*)(), std::__1::tuple<caulk::concurrent::details::worker_thread*>>>(void*) + 96
4   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
5   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 40:: caulk::deferred_logger
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   caulk                         	       0x197af9690 caulk::semaphore::timed_wait(double) + 212
2   caulk                         	       0x197af9544 caulk::concurrent::details::worker_thread::run() + 36
3   caulk                         	       0x197af9244 void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, void (caulk::concurrent::details::worker_thread::*)(), std::__1::tuple<caulk::concurrent::details::worker_thread*>>>(void*) + 96
4   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
5   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 41:: com.apple.audio.IOThread.client
0   libsystem_kernel.dylib        	       0x18d7648b4 mach_msg2_trap + 8
1   libsystem_kernel.dylib        	       0x18d776d30 mach_msg2_internal + 80
2   libsystem_kernel.dylib        	       0x18d76d4f0 mach_msg_overwrite + 476
3   libsystem_kernel.dylib        	       0x18d764c38 mach_msg + 24
4   CoreAudio                     	       0x1900eff68 HALB_MachPort::SendSimpleMessageWithSimpleReply(unsigned int, unsigned int, int, int&, bool, unsigned int) + 96
5   CoreAudio                     	       0x18ffc7e24 HALC_ProxyIOContext::IOWorkLoop() + 4260
6   CoreAudio                     	       0x18ffc6650 invocation function for block in HALC_ProxyIOContext::HALC_ProxyIOContext(unsigned int, unsigned int) + 108
7   CoreAudio                     	       0x19014493c HALC_IOThread::Entry(void*) + 88
8   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
9   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 42:
0   libsystem_kernel.dylib        	       0x18d767ea8 __semwait_signal + 8
1   libsystem_c.dylib             	       0x18d64b2f8 nanosleep + 220
2   libsystem_c.dylib             	       0x18d64b210 usleep + 68
3   UnityPlayer.dylib             	       0x10911b9cc FMOD_OS_Time_Sleep(unsigned int) + 20
4   UnityPlayer.dylib             	       0x1090e616c FMOD::Thread::callback(void*) + 228
5   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
6   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 43:
0   libsystem_pthread.dylib       	       0x18d79fe28 start_wqthread + 0

Thread 44:: CVDisplayLink
0   libsystem_kernel.dylib        	       0x18d7680ac __psynch_cvwait + 8
1   libsystem_pthread.dylib       	       0x18d7a5628 _pthread_cond_wait + 1272
2   CoreVideo                     	       0x19613f528 CVDisplayLink::waitUntil(unsigned long long) + 328
3   CoreVideo                     	       0x19613e5f4 CVDisplayLink::runIOThread() + 504
4   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
5   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 45:
0   libsystem_pthread.dylib       	       0x18d79fe28 start_wqthread + 0

Thread 46:: com.apple.NSEventThread
0   libsystem_kernel.dylib        	       0x18d7648b4 mach_msg2_trap + 8
1   libsystem_kernel.dylib        	       0x18d776d30 mach_msg2_internal + 80
2   libsystem_kernel.dylib        	       0x18d76d4f0 mach_msg_overwrite + 476
3   libsystem_kernel.dylib        	       0x18d764c38 mach_msg + 24
4   CoreFoundation                	       0x18d881ea4 __CFRunLoopServiceMachPort + 160
5   CoreFoundation                	       0x18d88076c __CFRunLoopRun + 1208
6   CoreFoundation                	       0x18d87fc5c CFRunLoopRunSpecific + 608
7   AppKit                        	       0x191184404 _NSEventThread + 144
8   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
9   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8

Thread 47:: tid_20203
0   libsystem_kernel.dylib        	       0x18d764830 semaphore_wait_trap + 8
1   libdispatch.dylib             	       0x18d5f7eac _dispatch_sema4_wait + 28
2   libdispatch.dylib             	       0x18d5f855c _dispatch_semaphore_wait_slow + 132
3   UnityPlayer.dylib             	       0x108c906e0 0x107c38000 + 17139424
4   UnityPlayer.dylib             	       0x1080f0268 0x107c38000 + 4948584
5   UnityPlayer.dylib             	       0x1080f01bc 0x107c38000 + 4948412
6   UnityPlayer.dylib             	       0x1081c71cc 0x107c38000 + 5829068
7   libsystem_pthread.dylib       	       0x18d7a5034 _pthread_start + 136
8   libsystem_pthread.dylib       	       0x18d79fe3c thread_start + 8


Thread 0 crashed with ARM Thread State (64-bit):
    x0: 0x000000000000000e   x1: 0x0000000200000003   x2: 0x0000002800001513   x3: 0x0000180300000203
    x4: 0x00000d5a00000000   x5: 0x0000180300000000   x6: 0x0000000000000030   x7: 0x0000000000000000
    x8: 0x0000000000000000   x9: 0x0000000000000001  x10: 0x0000000000000000  x11: 0x0000000000000001
   x12: 0x0000000000000001  x13: 0x0000000180432000  x14: 0x000000000000cff4  x15: 0x0000000000000000
   x16: 0xffffffffffffffdc  x17: 0x00000001e7789f28  x18: 0x0000000000000000  x19: 0x0000000126f093a0
   x20: 0x0000000126f09360  x21: 0xffffffffffffffff  x22: 0x000000000001ffff  x23: 0x000000000000ffff
   x24: 0x000000000001fffe  x25: 0x0000000000000000  x26: 0x0000000000000000  x27: 0x0000000000000000
   x28: 0x0000000000000000   fp: 0x000000016bc0ae90   lr: 0x000000018d5f7eac
    sp: 0x000000016bc0ae80   pc: 0x000000018d764830 cpsr: 0x60001000
   far: 0x0000000000000000  esr: 0x56000080  Address size fault

Binary Images:
       0x1042c4000 -        0x1043b3fff libpd.bundle (*) <662f51cf-b24e-318a-8dbf-f319131780c5> /Applications/SpaceInvader.app/Contents/PlugIns/libpd.bundle
       0x12a61c000 -        0x12a627fff libobjc-trampolines.dylib (*) <c9ce7923-2f2d-31eb-a6e4-0f3b7a78f895> /usr/lib/libobjc-trampolines.dylib
       0x117a98000 -        0x117b4bfff libmono-native.dylib (*) <ca4c46fd-2671-3576-9bd2-11c14c29744f> /Applications/SpaceInvader.app/Contents/Frameworks/libmono-native.dylib
       0x117bf0000 -        0x117d27fff com.apple.audio.units.Components (1.14) <5ecdf52e-6b41-3083-9fb5-c15cc2ee1d93> /System/Library/Components/CoreAudio.component/Contents/MacOS/CoreAudio
       0x10f778000 -        0x10fa73fff libmonobdwgc-2.0.dylib (*) <c9abb477-139f-34de-8e37-066dfd1566d7> /Applications/SpaceInvader.app/Contents/Frameworks/libmonobdwgc-2.0.dylib
       0x107c38000 -        0x1093bffff UnityPlayer.dylib (*) <bc6a4793-c309-3391-a676-83600434374f> /Applications/SpaceInvader.app/Contents/Frameworks/UnityPlayer.dylib
       0x10427c000 -        0x10427ffff com.Unity-Technologies.com.unity.template.urp-blank (0.1.0) <0ba49fbc-e15d-3bf4-9b0d-e9021b6b82b1> /Applications/SpaceInvader.app/Contents/MacOS/Demo-10.26-libpd
       0x18d763000 -        0x18d79dfef libsystem_kernel.dylib (*) <b7751381-1442-30b5-91b9-ad7be461bebe> /usr/lib/system/libsystem_kernel.dylib
       0x18d5f4000 -        0x18d63afff libdispatch.dylib (*) <dc1d0187-7149-3100-bc63-f633afebee6c> /usr/lib/system/libdispatch.dylib
       0x18d79e000 -        0x18d7aaff3 libsystem_pthread.dylib (*) <daf95373-5de6-39a1-a6ce-d87f3f0629cc> /usr/lib/system/libsystem_pthread.dylib
               0x0 - 0xffffffffffffffff ??? (*) <00000000-0000-0000-0000-000000000000> ???
       0x18d804000 -        0x18dcdbfff com.apple.CoreFoundation (6.9) <9f046e36-7286-3a6e-a280-699d6e47cfaf> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
       0x197af7000 -        0x197b20fff com.apple.audio.caulk (1.0) <658fdd6b-bc2e-3383-a7ed-731ddbcc6372> /System/Library/PrivateFrameworks/caulk.framework/Versions/A/caulk
       0x18fdde000 -        0x1904cbfff com.apple.audio.CoreAudio (5.0) <31eb33d7-8eef-3cdb-9407-cb5b42bf96a3> /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
       0x18d63e000 -        0x18d6bcffb libsystem_c.dylib (*) <decb8685-f34a-3979-afcb-71fb55747e41> /usr/lib/system/libsystem_c.dylib
       0x19613c000 -        0x196199fff com.apple.CoreVideo (1.8) <e392a14b-42a2-3376-a46b-e7ff0aa4c272> /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
       0x191021000 -        0x192335fff com.apple.AppKit (6.9) <b475e541-691d-39c6-8ca4-e414b0d3dd88> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit

External Modification Summary:
  Calls made by other processes targeting this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by all processes on this machine:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0

VM Region Summary:
ReadOnly portion of Libraries: Total=1.5G resident=0K(0%) swapped_out_or_unallocated=1.5G(100%)
Writable regions: Total=1.3G written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=1.3G(100%)

                                VIRTUAL   REGION 
REGION TYPE                        SIZE    COUNT (non-coalesced) 
===========                     =======  ======= 
Accelerate framework               128K        1 
Activity Tracing                   256K        1 
CG image                            80K        4 
ColorSync                          576K       26 
CoreAnimation                      352K       22 
CoreGraphics                        32K        2 
CoreUI image data                  448K        6 
Dispatch continuations            64.0M        1 
Foundation                          16K        1 
Kernel Alloc Once                   32K        1 
MALLOC                             1.1G       67 
MALLOC guard page                  384K       24 
STACK GUARD                        768K       48 
Stack                             34.7M       49 
Stack Guard                       56.0M        1 
VM_ALLOCATE                      137.9M       94 
VM_ALLOCATE (reserved)            2656K       32         reserved VM address space (unallocated)
__AUTH                            1692K      331 
__AUTH_CONST                      27.2M      534 
__CTF                               824        1 
__DATA                            15.9M      528 
__DATA_CONST                      27.9M      546 
__DATA_DIRTY                      1702K      195 
__FONT_DATA                          4K        1 
__LINKEDIT                       887.9M        8 
__OBJC_RO                         70.8M        1 
__OBJC_RW                         2156K        1 
__TEXT                           622.2M      563 
dyld private memory                272K        2 
mapped file                      163.3M       27 
shared memory                      976K       18 
===========                     =======  ======= 
TOTAL                              3.2G     3136 
TOTAL, minus reserved VM space     3.2G     3136 

Model: Macmini9,1, BootROM 10151.41.12, proc 8:4:4 processors, 8 GB, SMC 
Graphics: Apple M1, Apple M1, Built-In
Display: SONY TV, 1920 x 1080 (1080p FHD - Full High Definition), Main, MirrorOff, Online
Memory Module: LPDDR4, Micron
AirPort: spairport_wireless_card_type_wifi (0x14E4, 0x4378), wl0: Aug 26 2023 17:55:53 version 18.20.439.0.7.8.163 FWID 01-f9b9247b
AirPort: 
Bluetooth: Version (null), 0 services, 0 devices, 0 incoming serial ports
Network Service: Wi-Fi, AirPort, en1
USB Device: USB31Bus
USB Device: USB31Bus
USB Device: USB30Bus
USB Device: USB Receiver
Thunderbolt Bus: Mac mini, Apple Inc.
Thunderbolt Bus: Mac mini, Apple Inc.

Works just fine when I comment out lines 513-551, so I'm guessing it has to do with how the hooks are created. Will continue looking into this and post any findings here. Thanks! - Evan

Cannot set deprecated build target(s) - Unity 2020+ , LibPdINtegration v2.2.0

Cannot set deprecated build target 'Linux'      for Assets/Plugins/x86/libpd.so
Cannot set deprecated build target 'Linux'      for Assets/Plugins/x86/libpd.dll
Cannot set deprecated build target 'Linux'      for Assets/Plugins/x86/libwinpthread-1.dll
Cannot set deprecated build target 'OSXIntel'   for Assets/Plugins/x86/libpd.so
Cannot set deprecated build target 'OSXIntel'   for Assets/Plugins/x86/libpd.dll
Cannot set deprecated build target 'OSXIntel'   for Assets/Plugins/x86/libwinpthread-1.dll
Cannot set deprecated build target 'OSXIntel64' for Assets/Plugins/x86/libwinpthread-1.dll

--
I will try to adjust it ...

Sending lists from patch

Hello,

I am trying to modify the FloatReceive() in the Envelope Animation example to receive a list (vector) instead of a simple float.
I see the option to do so is there
image
but I am not sure how to cast the list as a variable.
I tried this

	public void ListReceive(string sender, List<float> l)
	{
		if (sender == "x1")
		{
			Debug.Log(l);
		}
	}

Which doesn't work. Any suggestions?

Linux support

What's missing to add Linux support?
(other than putting the linux libpd binary in the assets)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.