Coder Social home page Coder Social logo

cyrilcode / cyril Goto Github PK

View Code? Open in Web Editor NEW
144.0 16.0 21.0 36.58 MB

The Cyril programming language is designed for fast prototyping of visualisations and live coding visuals.

Home Page: http://cyrilcode.com

License: Other

Makefile 4.82% Cycript 1.53% C++ 92.12% C 1.53%

cyril's Introduction

Cyril - Live Coding

New? Check the getting started guide

NEW BRANCH: Dev is continuing on the CMake Branch

The Cyril programming language is designed for fast prototyping of visualisations and live coding visuals.

Full information on the website:

Getting Started

The language reference on the website is slightly out-of-date. There's a website by Cyril user Dan Hett called Cyril Patterns that has loads of examples, and is a good way to learn the syntax.

If you use a recent beta, then Post Processing effects are turned on by default, and can be toggled by pressing cmd + z. If you are not using post processing effects you probably want to toggle them off as the output quality improves.

See here for more keyboard controls

External editor support has been added in recent beta versions so you can project one screen and edit code in another using any text editor. Edit the files in the data/code folder and Cyril will refresh each time a file is saved.

Requirements

Cyril is built against version 0.8.4 of openFrameworks

It also depends on various ofx Addons:

These addons may be required or will be dependencies soon as they are being used in new features:

  • ofxSyphon
  • ofxGUI
  • ofxOSC
  • ofxXmlSettings

cyril's People

Contributors

darrenmothersele 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  avatar

cyril's Issues

crash when using an expression as value for step in for loop

Here's an example of how not to draw a circle...

scale 2
rotate
shape
vert 0,0
for i: 0 to TWO_PI step 0.1
vert sin(i),cos(i)
end
vert 0,1
end

Change the step value to an expression, eg PI / 2 and everything stops...

 for i: 0 to TWO_PI step PI / 2

Draw modes / animation styles

Planning to add option to switch the mode by which a program is drawn.
Optional paintover rather than clear each frame. Motion blur. Also option to change (or maybe even edit) the shaders.

Idiot proof syphon install?

Hello I am a VJ that is very inexperienced in coding but would like to use Cyril to experiment with live coding in my sets. For the last few weeks I have been trying to get the code running in Xcode without success.

Could anyone give a rundown on how to build Cyril off the source code in order to make it run through syphon? I have downloaded the latest version of openFrameworks and the addons in the readme, added everything to the corresponding folders (Cyril to app/MyApps; addons to /addons) and started up through the projectGenerator. What am I missing?

Thanks in advance and sorry for the potentially very dumb question

Changing text font and disabling scaling

Hi, I would like to find out where the code font is defined in the program. I think it could be a lot more aesthetically pleasing. I would also like an option to disable the scaling as that distracts from what is happening behind the code!

Thanks!

Hard exit could be changed?

Currently, hitting 'escape' results in a hard exit and the loss of anything being worked on.

Suggestions:

  • Prompt user to confirm exit
  • Remove hard exit from 'escape' command and perhaps only do it on CMD+q
  • Allow cyril to be opened from a file/location, and save the editor state so it reopens from the same files

Crossplatform builds

The single numero uno question i get asked: "is there a Windows/Linux build?" :)

Make OSC support configurable

Continuation from #18

I've hard-coded a basic (but useful) OSC implementation. It allows you to turn on/off the program buffers (1-8) from an OSC controller. I also added support for an XY control, and 4 value sliders.

An example layout for TouchOSC is in the repo: https://github.com/darrenmothersele/cyril/blob/master/CyrilTouchOSC.touchosc

It has an XY controller, that maps OSX message on "/1/xy1" to PADX and PADY values in Cyril. It has 8 toggle switches that turn on/off programmes ("/1/toggle1" etc), and it has 4 float value sliders that map to F1, F2, F3, and F4 (OSC messages: "/1/fader1", "/1/fader2", etc).

An example Cyril programme that demonstrates the use of these:

push
move PADX, PADY
rotate F1 * 360
box 1 + F2
pop

I have been planning to add settings.xml back in, and once I do this, I plan to make OSC messages configurable.

Oh, and it listens on port 12345. So, once you've installed TouchOSC on your iPhone or android device, use the editor to send the example layout to your device, then connect to Cyril using the IP address of the computer running Cyril, and port "12345".

Improved external editor tool

After working with Cyril in a live setting, I've definitely got a preference for using an external editor - however I'd like to be able to still utilise/start/stop multiple frames and see things like error lights (this is an enormously useful thing when coding live!)

My thought at the moment is almost along the lines of having a pop-out control panel perhaps - this would allow Cyril's panels to be controlled without interfering with the visuals, and would allow external editors to still be used.

It feels like Cyril could almost run in one of two modes: the first would just be completely self-contained, with the code and control overlays on the visual output, and the other would be a dual screen option with separate controls, more suited to performance.

Keen to hear thoughts on this!

Add support for Post Processing Effects to the Language

This commit includes an attempt to add basic support for post processing FX to the language. Needs a lot of refactoring, and I think there's still a memory leak due to the post processing object being in the state object and not cleaned up correctly. I think need to introduce a global state singleton.

Not ready for release, but if you want to test build from this commit:
a8697e8

Added to the language:

fxK 3

This enables the Kaleidoscope effect, takes 1 argument which is the number of segments.

fxNW 0.4, 0.4, 0.4

This enables the noise warp effect and takes 3 arguments: Speed, amplitude and frequency.

FX are on by default, Turn them on and off with CMD + z

Also still need to look at why ofxPostProcessing inverts the output when enabled.

Is there someone still using this on linux or windows?

Hi just a question if there are people using cyril on linux or windows. Just found out about it and would love to explore it a bit. Saw last commit was a few years back. So probably a small chance, but hey worth a shot.

Error messages / console

The only feedback you currently get is that the text buffer indicator goes red when there's an error in the program. The parser/interpreter generates messages about syntax and semantic errors. Need to make these more useful, and accessible.

Undo functionality

The editor could really do with an undo function, I continually try to step back through my changes and get stuck, especially when coding at high speeds and forgetting!

Save/load location

Being able to set a workspace or file location would be really useful, so individual projects or pieces can be worked on independently.

Work on fft, beat onset detection

Placeholder issue for discussion about fft/beat onset detection.
Want to either improve the quality of the BEAT, HIHAT and SNARE globals, or add a BEAT global that more accurately represents the BPM of the music.
Could possibly take this from OSC or MIDI input?
Last night at Dorkbot spoke to Dan Stowell who created this library: http://onsetsds.sourceforge.net/

Custom Polyhedron

Feeling limited by the built-in primitives? Defining using SHAPE too convoluted?

It would be great to have a notation for generating new shapes.

There is an open source project called polyHedronisme that implements Conway polyhedron notation so might be able to borrow something from that.

Or maybe something from Karsten Schmidt's thi.ng/geom?

Put settings back in again

Previous versions had a settings.xml file, need to add support for this back in again. Also look at using ofxGui to alter settings.

SNARE not working

hihat and kick are still working but SNARE stopped responding since switch to ofxBeat.

Syphon

Hi,

I read something about Syphon functionality, does Cyril have it? And how does it work?
Thanks
A3

Other keyboard layouts?

I'm using a keyboard with azerty layout but the Cyril editor runs in qwerty mode. I haven't found a way to change this anywhere.

External configuration / launch config

I believe this has been mentioned at some point, but having some external configuration options for Cyril would be really handy.

For example, I ran into a few issues with Cyril opening full-screen on some machines/projectors. I ended up modifying the source to start up in windowed mode, so I could pop the display onto the second monitor and then full-screen it. Having this sort of thing configurable per-project (including things like Window sizes etc) would be awesome.

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.