OSC HowTo?

Official support for: zynaddsubfx.sourceforge.net
RELATED
PRODUCTS

Post

Hello!

I try to use Zyn in a headless environment on a ARM Machine. I build it from the 2.5. git version. Works perfekt (with the GUI, and some corrections in the compiler switches). But now I need help.

Can someone give me a pointer or a closer info how to control Zyn 2.5. via OSC. I've read that the 2.5. can be controlled by OSC, but how? I tried to understand the source, but, sorry :-) I've no idea how the semantics of Zyn OSC works.

Is there somewhere a documentation or maybe some samples available. Google search to Zyn & OSC gives me a lot of hits, but I can't find any documentation how to use the new OSC implementation.

The same thing is how to control Zyn via MIDI? I know this http://zynaddsubfx.sourceforge.net/doc_3.html But how can I control Filter or LFO rates etc? This document speaks only about effects and some of the standard GM Midi CC's

If someone can help me out with some pointers. Thanks! :pray:

BTW: The project is to put Zyn on a Odroid-U3 or a Raspi2 Box controlled only via OSC (Or a OSC Midi bridge).
http://journeytounknownsoundscapes.blogspot.de/ Warning: This guy always has wired ideas, make music most people would call noise and is an obessive tinkerer.

Post

I'd say the easiest way to look at the osc interface is through https://github.com/fundamental/oscprompt at the moment.

Run zynaddsubfx -P 1234 and oscprompt.

In the oscprompt window "connect 1234"

Now start typing a path eg "/part0/kit0/adsynth/..." and you should see the options with light documentation appear.

Additionally even if you're running on a headless machine you can attach the gui to it via zynaddsubfx-ext-ui which will build when you compile the git version.
One of the developers on the ZynAddSubFX open source synth
The author of the Zyn-Fusion UI for ZynAddSubFX

Post

Great!

This may help me out of my dilema! I'll try this out in the next working session. Thanks a lot.

The plan is "no gui" ("Zyn... in the box"). I control the whole environment via Android (TouchOsc and a lot of PythonOsc stuff around as router). So no gui is involved. I've made this with PureData as sound engine before. But Zyn...(and the ready to use instruments) als "sound engine" are a better solution.
http://journeytounknownsoundscapes.blogspot.de/ Warning: This guy always has wired ideas, make music most people would call noise and is an obessive tinkerer.

Post

:-) Sorry, I need again your help

I run into a compiling error when I tried to compile rtosc which is needed for the oscprompt.

- I cloned the git
- cmake
- make
And got this error
/oscprompt$ make
Scanning dependencies of target oscprompt
[ 50%] Building CXX object CMakeFiles/oscprompt.dir/main.cpp.o
[100%] Building CXX object CMakeFiles/oscprompt.dir/render.cpp.o
Linking CXX executable oscprompt
//usr/local/lib/arm-linux-gnueabihf/librtosc-cpp.a(ports.cpp.o): In Funktion `rtosc::Ports::apropos(char const*) const':
ports.cpp:(.text+0x10b4): Nicht definierter Verweis auf `rtosc_match_path'
//usr/local/lib/arm-linux-gnueabihf/librtosc-cpp.a(ports.cpp.o): In Funktion `rtosc::Ports::dispatch(char const*, rtosc::RtData&) const':
ports.cpp:(.text+0x1698): Nicht definierter Verweis auf `rtosc_match'
ports.cpp:(.text+0x1870): Nicht definierter Verweis auf `rtosc_match'
collect2: error: ld returned 1 exit status
make[2]: *** [oscprompt] Fehler 1
make[1]: *** [CMakeFiles/oscprompt.dir/all] Fehler 2
make: *** [all] Fehler 2
"Nicht definiert Verweis" -> not reference to... looks like a missing funktion in the lib. The Linker asks for a function which does not exist.
-- Install configuration: ""
-- Up-to-date: /usr/local/lib/arm-linux-gnueabihf/pkgconfig/librtosc.pc
-- Up-to-date: /usr/local/include/rtosc/rtosc.h
-- Up-to-date: /usr/local/include/rtosc/thread-link.h
-- Up-to-date: /usr/local/include/rtosc/ports.h
-- Up-to-date: /usr/local/include/rtosc/miditable.h
-- Up-to-date: /usr/local/include/rtosc/port-sugar.h
-- Up-to-date: /usr/local/include/rtosc/undo-history.h
-- Up-to-date: /usr/local/include/rtosc/subtree-serialize.h
-- Up-to-date: /usr/local/include/rtosc/typed-message.h
-- Installing: /usr/local/lib/arm-linux-gnueabihf/librtosc.a
-- Installing: /usr/local/lib/arm-linux-gnueabihf/librtosc-cpp.a
Maybe I must use another branch?

BTW: I studied this: http://fundamental-code.com/zyn-ports/ on your repo. Maybe I've tomatos on my eyes, but is there not way to change instrument or banks via OSC?
http://journeytounknownsoundscapes.blogspot.de/ Warning: This guy always has wired ideas, make music most people would call noise and is an obessive tinkerer.

Post

It looks like there might have been a linker order issue in oscprompt.
Pull in the most recent changes and it should be fixed.

The zyn-ports lists most of the functionality, but some of it receives special handling.
Instrument/bank changes being one such case.

These special cases are almost all handled in src/Misc/MiddleWare.cpp and the paths that you're looking for are "/loadbank:i", "/load_xiz:is", and "/setprogram:c"
One of the developers on the ZynAddSubFX open source synth
The author of the Zyn-Fusion UI for ZynAddSubFX

Post

This was a quick response!
Thanks again.
http://journeytounknownsoundscapes.blogspot.de/ Warning: This guy always has wired ideas, make music most people would call noise and is an obessive tinkerer.

Post

Short feedback:
I wrote a post at my blog to document the work!

In short: First tests was a success with the given information :-)

http://journeytounknownsoundscapes.blog ... ntrol.html

Peter
http://journeytounknownsoundscapes.blogspot.de/ Warning: This guy always has wired ideas, make music most people would call noise and is an obessive tinkerer.

Post

Excellent :)

Nice site and hopefully the new OSC stuff will be useful for your continued hacking.
As you might have seen so far all of the OSC stuff is loosely documented in a scattering of locations.
If you have an idea as to what 'good' documentation for this interface would look like, I'd be interested to hear ideas.

The current plan is to get everything exported to oscdoc and then likely use a custom renderer on that to make use of docstrings encoded throughout the source to let people browse the API.
Even with that it's a huge interface with a lot of caveats, so figuring out a single approach to making it understandable and approachable isn't going to happen too quickly.
One of the developers on the ZynAddSubFX open source synth
The author of the Zyn-Fusion UI for ZynAddSubFX

Post

I look forward to working with this as well. Thanks for the information, fundamental.

[H]esspet: good to see puredata on your blog!

Post

@fundamental:
From my point of view any sort of documentation is better than no documentation :-). But, yes, a centralized place where all docs are collected, so for beginners and experienced people woluld be fantastic. I would help to write docs, but due to my poor english this is not a really good idea :-)

The plan using an export of oscdoc sounds good for me. I'm allways a friend of using generator tools like doxygen or similar.

@pinfoot
Pure Data is for prototyping one of the best things. I can use it on the ARM Plattform and it runs very well headless! So for building a sort of OSC/Midi router between Zyn, Sooperlooper, Jack and some Arduinos it's my first class helper.
http://journeytounknownsoundscapes.blogspot.de/ Warning: This guy always has wired ideas, make music most people would call noise and is an obessive tinkerer.

Post

Here is another solution without pain ->
https://blog.georgmill.de/2015/07/16/od ... kes-music/

The zynaddsubfx is great! You can even control everything with the oscpromt (https://github.com/fundamental/oscprompt) from commandline :-)) It workes fine for me.

On my laptop I gave puredata a try and: It works, too. Very nice for live performances :-)

In the video on my blog you can see how to do a programm change for zynaddsubfx on an ODROID-C1 via WiFi and an an Android tablet running TouchDAW, the best you can get for controlling OSC devices from Android I found so far.
Have fun.

Post

Nice solution!

I use as similar solution now. But I've written my OSC "Translator" in Python now. Works also very well, but my development is on hold now. due to some other more fancy projects :-) :-)

We're both walking on the same traces :-) I've written yesterday a message to another post of you.

Peter
http://journeytounknownsoundscapes.blogspot.de/ Warning: This guy always has wired ideas, make music most people would call noise and is an obessive tinkerer.

Post

don't invent it twice. Simply use
https://github.com/velolala/touchosc2midi
I've written yesterday a message to another post of you.
Didn't arrive here. Had a look into my spam folder. Nothing to see. Please post it again or send directly to my mail address, please.
Have fun.

Post

I'll take look at this. Looks similar to my not finished first solution. :) It's more fancy than my solution! Nice!

Offtopic (not syn specific):

I need a sort of state enginge between the TouchOsc and the controlled Systems (not only the SYN). Controlling SYN is not my main goal.

I like to control the states of e.g. a looper, in this case Moebius on a Windows Machine, Ableton also on Windows (With MAX/MSP) and some Linux basesd small devices. The idea is having a centralized tablet control center for more than one osc receivers to hide the Laptops under the desk. So it is neccesary to route states from the application to the tablett. I need a visual feedback from the looper.

Maybe the touchOSC is the problem. I made some tests with writing my own specialized Android App. But this takes so much time :-) but removes all the limitations of TouchOSC.
http://journeytounknownsoundscapes.blogspot.de/ Warning: This guy always has wired ideas, make music most people would call noise and is an obessive tinkerer.

Post

Sounds interesting. As it seems we are really on the same path, maybe with different goals. As I am familiar with with Java and Eclipse maybe I could support you. Developing an Android app is new for me, but some time ago I developed a Java app running on my very old Razor V3i. It communicated with a server to get and store informations. So it's not totally new for me. Let me know if help is welcome.

Post Reply

Return to “ZynAddSubFX”