Skip to content

Commit 1debf82

Browse files
committed
updated readme
1 parent 8ab56d5 commit 1debf82

File tree

1 file changed

+31
-14
lines changed

1 file changed

+31
-14
lines changed

README.md

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,35 @@
1-
There's a proposal out there for querying OSC address spaces:
1+
<p align="center">
2+
<img width="256" height="256" src="VVOSCQueryBrowser/OSCQueryBrowserAppIcon.iconset/icon_256@2x.png">
3+
</p>
24

3-
https://github.com/mrRay/OSCQueryProposal
5+
This repository contains a framework, some test apps, and several user-facing utilities that all implement the OSCQuery protocol.
46

5-
This project contains a couple different implementations of this protocol:
6-
* **VVOSCQueryProtocol.framework** is a Cocoa framework that provides classes to implement this OSC query proposal in software that already has an existing OSC implementation- it does so in a simple, generic and what i hope is a library-agnostic fashion. By itself, this framework does *NOT* send or receive OSC data, nor does it provide classes to let you create an OSC address space- this is all functionality that has already been implemented in a variety of other OSC libraries. Instead, this framework gives you the tools you need to add support for the OSC query protocol to whatever OSC implementation you're already working with.
7-
* **VVOSCQueryServer** is a simple example server. It uses VVOSCQueryProtocol.framework to create an OSC query server that provides information about an OSC address space and OSC receiver created using VVOSC.framework.
8-
* **VVOSCQueryClient** is a simple example client that demonstrates the use of VVOSCQueryProtocol.framework to respond to new client notifications and display basic information about new servers in a text view.
9-
* **VVOSCQueryBrowser** is a GUI that browses available OSC query servers, displays their OSC node hierarchies, creates UI items for endpoints that advertise their type, and uses VVOSC.framework to send OSC data to the remote server when the UI items are used.
7+
The OSCQuery protocol defines a way for machines to query the properties of [OSC](http://www.opensoundcontrol.org/) servers and their address spaces over a network connection. The point of this protocol is to allow clients to browse the various available OSC nodes that an application responds to, and query the properties of these nodes to determine what kind of data they expect and how best to interact with them.
108

11-
The API for VVOSCQueryProtocol.framework is minimal- here are the only classes you'll need to use. The documentation for these classes is in their headers:
9+
The proposal itself is small, relatively simple, and is posted here: https://github.com/mrRay/OSCQueryProposal
1210

13-
* VVOSCQueryServer runs the HTTP server that describes your OSC address space to other things on the network. Instances of VVOSCQueryServer obtain information about your address space via their delegate and its implementation of the VVOSCQueryServerDelegate protocol.
14-
15-
* VVOSCQueryRemoteServer represents an OSC query server running at a remote location. NSNotifications are posted when instances of VVOSCQueryRemoteServer appear or disappear on your local network, and all detected instances are available via the class method +[VVOSCQueryRemoteServer remoteServers]. Instances of this class can also be created manually if you know the network address of the remote server and it's not on your local network.
16-
17-
* VVOSCQuery is a simple data structure that describes a single query received by your server.
18-
* VVOSCQueryReply is a simple data structure that describes a single reply to an VVOSCQuery.
11+
This repository contains a number of different targets:
12+
* **VVOSCQueryProtocol.framework** is a Cocoa framework that provides classes which can be used to implement this protocol in software that already has an existing OSC implementation- it does so in a simple, generic and library-agnostic fashion. By itself, this framework does *NOT* send or receive OSC data, nor does it provide classes to let you create an OSC address space- this is all functionality that has already been implemented in a variety of other OSC libraries. Instead, this framework gives you the tools you need to add support for the OSCQuery protocol to whatever OSC implementation you're already working with.
13+
* **Utilities for Users**
14+
* **OSCQuery Browser** is a GUI that lets you browse the contents of OSCQuery servers on the local network and send data to the various OSC nodes.
15+
* **OSCQuery Helper** is a Cocoa app that lets you add OSCQuery support to other applications that already support OSC, but do not yet support OSCQuery.
16+
* **MIDI OSCQuery Helper** is a Cocoa app that lets you add OSCQuery support to other applications that support MIDI, but do not yet support OSC or OSCQuery.
17+
* **Utilities for Developers**
18+
* **VVOSCQueryServer** is a Cocoa app that demonstrates the basics of creating an OSCQuery server that works with an existing OSC library. It's basically a sandbox app for demonstrating and experimenting with server functionality- out of the box, it loads a JSON file that populate an OSC address space, starts an OSC + OSCQuery server
19+
* **VVOSCQueryClient** is a Cocoa app that demonstrates minimal client functionality, listing the available OSCQuery servers detected on a local network. Like the test server, this is basically a sandbox app for demonstrating and experimenting with client functionality.
20+
21+
**Dependencies:**
22+
23+
VVOSCQueryProtocol uses [websocketpp](https://github.com/zaphoyd/websocketpp) and [rapidjson](https://github.com/Tencent/rapidjson), and websocketpp uses [asio](https://think-async.com/). All three reposistories are included as submodules, and if you check everything out the xcode project file should "just work".
24+
25+
**How to use VVOSCQueryProtocol in your project:**
26+
27+
VVOSCQueryProtocol is a framework: it contains a dynamic library and all the headers you need to compile and link against that library. Briefly, here's how you add this framework to an existing project in XCode:
28+
- Add VVOSCQueryProtocol.xcodeproj to your xcode workspace (drag it into the xcode project file).
29+
- Add VVOSCQueryProtocol.framework as a dependency to your target (select your target, click "Build Phases", expand the "Target Dependencies" section, and add VVOSCQueryProtocol.framework).
30+
- Link against VVOSCQueryProtocol.framework (select your target, click "Build Phases", expand the "Link Library with Libraries" section, and add VVOSCQueryProtocol.framework).
31+
- Ensure that VVOSCQueryProtocol.framework is embedded in the compiled application- (make a "Copy Files" build phase, configure it to copy to the "Frameworks" subdirectory, and add the framework to this build phase).
32+
33+
**Documentation:**
34+
35+
The API for VVOSCQueryProtocol.framework is minimal, and the header files are clean and have a high signal to noise ratio- there are only two main classes (client & server!), and VVOSCQueryProtocol.h does a good job of introducing them and giving you a quick overview. Fancier documentation is coming soon...

0 commit comments

Comments
 (0)