问题标签 [osc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
495 浏览

java - 如何检查 OSC 侦听器是否在 Android 上运行

我想在 Android 上实现一个 osc 监听器,监听连接到专用网络的平板电脑的特定端口。我使用来自http://www.illposed.com/software/javaosc.html的 illposed java OSC 库

我有一个 private OSCPortIn testIn;

我已经设置了一个端口并启动了下面的监听功能

..

我的 min-sdk 是“15”。

我向平板电脑的 ip(在正确的端口上)发送了许多 osc 消息,但似乎没有任何消息。我真的不知道这个库是否适用于这个 sdk,因为我让这个库使用 sdk 8 快速轻松地运行......

我设法使用 oscPortOut 和 Asynctask 发送一些 osc 数据。

有没有办法检查这个特定的监听器是否正在运行?

0 投票
0 回答
333 浏览

c++ - 停止 OSC UDP 侦听器功能。Xcode iOS 应用程序

我正在开发一个通过 UDP 在主机程序和 iPad 之间发送 OSC 数据的应用程序。从 iPad 发送到主机程序相当简单。但是,在 iPad 上接收主机程序的数据就比较麻烦了。

我已经到了 iPad 正在接收数据,但卡在 .run() 数据包侦听器函数中的地步。我的理解是 .break() 会中断函数并返回到我的主程序,但它似乎不起作用。

我在 iOS 环境中使用 Objective-c 的经验更丰富,所以可能是我对 C++ 的初步理解让我失望了。

下面的代码:(我一直在使用 oscPack 库来生成此代码。可在此处获得:http ://www.rossbencina.com/code/oscpack )

在我的主要功能中(break() 点似乎不起作用):

我的数据包侦听器类,与 oscPack 示例非常相似。带有一些参数修改。这是我认为可能导致问题的另一个领域。如果我的 osc 消息没有正确填充,它会阻止 run() 函数返回吗?

任何建议将不胜感激。

谢谢,汤姆。

0 投票
3 回答
1133 浏览

c++ - C++ 中断 UDP 侦听器。在 Xcode 中使用 oscpack 编译

我已成功地将 UDPreceive 功能合并到我的应用程序中。然而!我不知道如何阻止 UDP 侦听器无限运行。OSCPack 库内置了 Break() 和 AsynchronousBreak(),但我无法实现这些。

在 oscpack 中的 udpSocket.cpp 文件中:

我尝试从数据包侦听器类调用 Break() 似乎没有做任何事情,尽管编译器建议一切都被正确调用:

我尝试过的另一种方法是根据 RunUntilSigInt() 函数引发中断标志。在数据包侦听器类中:

但这会终止整个程序,而不仅仅是中断 UDPListener。作为参考,这里是 udpSocket.cpp 中的 RunUntilSigInt() 代码:

我完全坚持这一点,任何帮助/建议将不胜感激。

谢谢,汤姆

0 投票
1 回答
1581 浏览

python - 如何在python中解码/编码十进制值?

我正在使用网络协议通过网络来回传输 OSC(开放声音控制消息)。

byte array以和其他格式接收消息。我试图理解它的字节数组部分。

一个示例消息,在 ascii 中是

/track_0_volume/x "value" 0.238

该消息对应的字节数组是

b'/track_0_volume/x\x00\x00\x00,sf\x00value\x00\x00\x00>s\xb6F'

我可以看到/track_0_volume/x后面跟着三个空字符的字节数组,然后是 ascii 值sf,一个空字符,还有value三个空字符,然后>s\xb6F我不明白这些sf字符是什么,也不知道>s\xb6F最后如何表示 0.238

我相信,(我对 OSC 消息格式不太熟悉)s表明这个词value是字符串类型(而不是intor float),下一个值是 a float(即valueand .238

对我来说最令人困惑的部分是最后的小数部分:当我尝试解码字节数组的那部分时,我得到一个UnicodeDecodeError: 'utf-8 can't decode byte 0xb6

我也用过struct.unpack('f', b'\b6F'),没有成功。有人知道如何解码吗?

0 投票
3 回答
2408 浏览

unity3d - 使用 Unity3D 控制灯光、风扇和其他设备

我们正在使用 Unity 3D,我们有一个完全开发的游戏,但客户想要完全可操作的游戏室,灯光、风扇、雾机等(在现实世界中)将由我们开发的 Unity 游戏触发,我首先要说我不知道​​该怎么做,我在强调!我知道我需要为此使用 DMX 盒子,我们已经做了很多研究,enttec USB DMX PRO 似乎是正确的选择,但我根本不知道如何使用 DMX 盒子。

我可能错了,但似乎我们需要向它发送一个代码文件以使其执行预执行操作?我们通过将代码文件放在文件夹中来发送此代码,但我不确定!如果是这种情况,那么我可以在游戏中的正确给定时刻统一将文件放在文件夹中。

如果有人知道如何将代码发送到 DMX 盒子,如果你能纠正我,如果你能告诉我代码的类型,这样我就可以开始学习,那就太好了。

USB DMX PRO 是正确的方法吗?

0 投票
1 回答
246 浏览

android - 在 Android 和 IOS 上控制在后台运行的音乐合成器

我想制作一个我自己的用户界面,它发送类似 MIDI 的信号(或 OSC 或其他),这将导致我在 ipad(或 Galaxy)上安装的拇指带或车库带或其他程序播放我的音乐创造。我怎么做?有哪些途径。我必须使用什么编程语言来创建我的“控制器”应用程序?什么API。最快的方法是什么。

看起来 OSC 是我应该做的,至少对于 iPad 来说是这样,但在我看来,它只适用于网络上的机器之间。我希望它在运行的应用程序之间工作,就像我看到 Jordan Rudess 的 SampleWiz 由另一个程序控制或https://www.youtube.com/watch?v=ZMyRS9y20mw thumbjam 控制 sampleTank (我现在再次看了那个视频并看到它的 MIDI)

0 投票
1 回答
337 浏览

java - 如何在 Java 中接收大 OSC blob

我正在尝试使用 Java 从 PureData 接收相当大的 OSC blob(超过 10000 个字节的数组)。

我尝试了oscP5 库,我得到了ArrayIndexOutOfBoundsException大约 1500 字节。

我对具有相同限制的JavaOSC 库有相同的限制(来自https://wush.net/trac/lsu-idt/wiki/JavaOSC的代码示例)。

NetUtil[3] 库给我de.sciss.net.OSCException: Error while receiving OSC packet: java.nio.BufferUnderflowException

但是,我可以使用 PureData 轻松接收这些 blob 甚至更大的 blob。所以我猜我的 Java 配置有问题。

我尝试使用 -Xms512m 甚至 -Xms2048m 来增加 VM 内存,但这无济于事。

0 投票
1 回答
1188 浏览

java - 将开放声音控制 (OSC) 与多播一起使用

我正在创建一个系统,其中以不同语言编写的代理需要使用开放式声音控制 (OSC) 协议通过局域网进行通信。一个控制器代理需要向多个客户端代理广播信息。我更喜欢使用多播,这样出现在网络上的任何代理都能够立即接收消息而无需建立连接。我已经成功地使用 MulticastSocket 在 Java 中编程,但似乎许多 OSC 库(Java 中的 NetUtil 和 JavaOSC,MaxMSP 中的 udpsend 和 udpreceive)不支持多播发送。

我做对了吗?OSC 库是否需要支持多播才能发送多播?或者可以简单地通过发送到正确的 IP 地址来实现多播(如果可以的话,您能否展示如何使用 Java 中的 NetUtil 库和/或 MaxMSP 中的 udpsend 和 udpreceive 对象来实现这一点)?

0 投票
1 回答
374 浏览

sockets - 将应用程序连接到 Rug.osc 客户端

我有一个应用程序 Kinectv2osc,它使用 rug.osc 在我的本地机器上发送 UPD 数据包。但它似乎绑定了端口,我无法连接 puredata (OSCdump) 来监听这些 osc 消息。

如果我以相反的顺序启动应用程序,puredata 可以连接,但 Kinectv2Osc 不能。

我猜这两个应用程序都试图绑定端口,那么应该归咎于哪个应用程序?是否有任何解决方法可以使这两个应用程序一起工作?

0 投票
0 回答
145 浏览

python - UDP Python - 尽管调用功能,数据只发送一次

我已经成功创建/改编了一个可以工作的 OSC python 脚本,它可以接受外部硬件的 OSC 数据并将其打印到我的计算机上。

我目前正在尝试将此数据发送到另一个程序。该脚本正在工作,只是它只会发送第一条 UDP 消息。在控制台中,我可以看到脚本正在运行,因为它在收到 osc 数据时打印出代码的各个方面。

当我将其他消息发送到外部程序时,UDP 接收器正在另一端工作。

包括可能有助于识别问题的代码部分。任何帮助表示赞赏,奇怪的是函数的其余部分被再次调用并正常工作,而不是发送数据的最后一行......

我确实尝试了一个单独的函数并在 osc 处理程序函数的末尾调用该函数,但仍然存在仅发送第一条 UDP 消息的相同问题。

提前致谢!