charlieroberts / control Goto Github PK
View Code? Open in Web Editor NEWInterfaces for music, art and virtual reality on mobile devices
Home Page: http://www.charlie-roberts.com/Control
License: MIT License
Interfaces for music, art and virtual reality on mobile devices
Home Page: http://www.charlie-roberts.com/Control
License: MIT License
Android multitouch works inside of single DOM elements, therefore all widgets have to be drawn into a single Canvas. Hopefully, with optimization, this will be more efficient than the current drawing mechanisms anyways.
Hi,
Using Control OSC on Android, sending a message to /control/pushDestination
(as described in the doc) has no effect, whereas sending a message to /pushDestination
works.
Cheers
When i per accident activates the 4 finger multitouch gesture to go to springboard, but cancels, the objects that where following my fingers freezes on screen, and when i press again new objects are being created (so i think that the objects never get an touchUp event)
One solution could be to just force all touch up when a multitouch gesture is recognized (must be possible to observe for that)
On the MultiButton docs page:
"ontouchstart": "oscManager.sendOSC('/button', 'ii', this.childID, this.value)",
which (on Android at least) results in no message being received. The code that works:
"ontouchstart": "oscManager.sendOSC(['/button', 'ii', this.childID, this.value])",
which matches the interface OSCManager.prototype.sendOSC = function(msg, successCallback, failureCallback)
(though supplying only the first arg).
The "Scripting" docs page makes the same error. Of course, it's possible that the docs are right but the Android code is wrong.
Thanks for Control!
Is it possible to view control in a web browsers (chrome for example) ?
Would make it a lot easier when it comes to testing when using something like Ripple Emulator.
In the console log of chrome I get:
Viewport argument value "med-dpi" for key "target-densitydpi" is invalid, and has been ignored.
Viewport target-densitydpi is not supported.
I've tried it with an iphone 4s, 5, and the original ipad. It presents the interfaces in landscape but doesn't not reorient or allow scrolling across the interface.
If i make a button and set its label
"label": "<<"
it shows up as "<" [a single arrow] in the interface.
If I add an interface in the interfaces view, submit, i am sent back to the interfaces menu , i see the lines for each interface, but the text has diapered, the interfaces are actually loadable but I cannot tell what i'm selecting...
Currently output() checks the value of isLocal before it sends out OSC or MIDI messages. Instead of doing this, output should ALWAYS send out messages and any method that calls output should check the value of isLocal before it does so.
This will allow output() to still be used in scripts assigned to widget event handlers where the widget has a isLocal value of true.
So, i've been trying to update android to 1.4, but having limited success.. I basically tried to run the latest version for iPhone. but there were SO MANY updates it seems, that it wouldn't run. I'm wondering if i can get a quick synopsis of the 1.3->1.4 changes so that i can kind of step thru them one by one..
I'm not an expert in Android dev or PhoneGap but I did a little digging in the code and it looks like the AutoLock OFF choice is trying to do something, but it's not keeping the screen on for me. I notice the app doesn't ask for permission to do this at install, so it might be as simple as fixing the manifest?
Hey,
I don't know if you can turn the device to have landscape display switch to potrait, but for some layouts it is the wrong orientation that is used by default. No idea if this app is still used or developped however... but here goes ! it looks cool otherwise.
If i try to create a button with a space in the "name" attribute.. app just shows a black screen.. maybe the app should just automatically put underscores in for spaces?
Currently I am doing styling by executing a function in the 'oninit' callback for the last element in my interface.. I figure this is something useful to a lot of people and it would be cleaner if there was a way to access the interface and provide a callback for 'after init' of the entire interface.
I've discovered a bug where Control is unable to recover from. If an interface I'm working on has an address (let's say http://location1.com) that goes down, when I relaunch the program. Control will display a blank black screen with no ability to popup the toolbar to select a new interface.
An ideal operation would be for Control to throw up an error dialog that says, "Unable to connect to host." Then ignore trying to "reload" the interface from the address when the program is restarted.
So far the only way I can get Control working again, is by deleting the application and reinstalling it from the App Store.
Instead of using platform-specific defaults mechanisms, use HTML5 local storage to load default interfaces / preferences etc.
already reported on the forum:
http://charlie-roberts.com/Control/?topic=bug-android-cannot-pass-args
http://charlie-roberts.com/Control/forum/topic.php?id=8267#post-11526
i use both liblo (oscsend) and puredata as the osc client and it's working on iOS, but not on android (ICS). woudl like to know if someone have an idea on how to fix this issue.
There are a couple of mapping errors in iphoneLandscapeMixer.js.
pan3 is mapped to /pan2
pan7 to /pan6
I will try to fix it and make a pull request. Hope master is ok since I can't find the interfaces in the develop branch.
On Control 1.31, there are issues in the Destinations tab.
Easiest solution to this is to add a "refresh" button to the menubar of the Destinations list. That way we wouldn't have to worry about all situations where MIDI / OSC destinations are added... just let the user manually refresh as needed.
So.. If I start the sequencer and then load another interface via the interfaces menu, its cool that the sequencer still runs.. the problem is that the sequencer state isn't retained when i go back to the sequencer interface.. so i cannot edit what is running, or more importantly, stop the sequence..
this is with version 1.2 on the ipad.
It would be useful if the client device running Control could use Bonjour to find smart devices on your local network that can not only be a "destination" to handle OSC messages but also serve up the interface definition that can be used to control it.
The interface client code/markup and the server process it is designed to talk to are typically very closely related and it makes sense (to me at least) that smart devices offering a service on your network (PVR, printer, washing machine, garage door) should be able to advertise their presence and allow downloads of Control interfaces from the same point - no need to figure out remote URLs etc before you can take control of the device.
From the info menu I was able to load the control webpage, after reading a little bit I decided to look at one of the interfaces [javascript].. I see the javascript but I see no way to get back to "control" even though I'm within the app.. I have the interfaces, destinations, preferences and info menu but.. pressing those buttons has no effect.. maybe there is some gesture that I am unaware of that will let me go "back" ?
I'm trying to make a single button that sends the same program change message on 6 different MIDI channels at the same time. How would I accomplish this? (for my Kitara player, using a Kitara + NLogPoly + Control!)
I couldn't figure it out from reading the docs
we have some discussions over there in neophobs repository if some osc interface clients support an event, which could trigger an osc message after the ui was loaded.
we have an arduino microcontroller running an osc server. parameters of the arduinos firmware are controllable via osc messages.
when opening the osc client first, the on the microcontroller present parameters are not visible to the osc client.
my idea was now, to send a sync command to the arduino, making it sending its current parameters to the client.
maybe this diagram makes it more clear.
is this something Control already supports?
cheers,
manu
Ability to load interfaces form SD card or internal memory would be nice. I'm having trouble in loading interfaces from url, since in first place i don't have a server to host them and I'd rather not set up my PC as a webserver.
This requires a phonegap plugin...
It seems whenever a float number is equivalent to an int (0.0, 1.0, 2.0) it is sent as an int. So a slider with a range of 0.0 to 1.0 will send floats for all values except 0.0 and 1.0. Using oscManager.sendOSC to explicitly send floats will still send ints as well. Some applications are picky about what is sent. Control doesn't seem to care what comes back though.
PS I would love to see this updated even if I had to "sideload"
Hi!
Trying to build the Android version, I've discovered some errors:
In /Android/Control/README.txt: Following the instructions in the readme, Control doesn't build.
Errors so far:
a) Not only phonegap.jar, but also jmdns.jar has to be added to the build path.
b) Now I only got 3 errors of this kind remaining:
In Bonjour.java: The method serviceResolved(ServiceEvent) of type new ServiceListener(){} must override a superclass method
Don't know how to solve that one yet...
It seems like there is a for loop with wrong length or something like that, but the latest added widget over OSC (I'm creating the whole interface over OSC), is not receiving any OSC messages.
The console.log in OSCManager.js line 103 i think, does not list the address from that widget as it should.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.