Difference between revisions of "Parsing and Plotting Data"
From CCRMA Wiki
m |
m |
||
Line 55: | Line 55: | ||
Simple Processing Graph: | Simple Processing Graph: | ||
+ | http://www.learningprocessing.com/examples/chapter-13/example-random-graph/ | ||
+ | |||
// Learning Processing | // Learning Processing | ||
// Daniel Shiffman | // Daniel Shiffman |
Revision as of 16:03, 9 June 2013
Parsing YAML output files into csv:
ruby oscparser.rb output_filename.csv false < ./yml/pawn_0_spiral_2.yml
oscparser.rb
require 'rubygems' require 'osc-ruby' require 'yaml' wait = ARGV[1] # wait boolean toggles whether the padded time at the beginning of recorded yml osc action is used m_time = 0 start_time = 0 final_output = "" output_filename = ARGV[0] @messages = YAML.load($stdin) @start = Time.now @messages.each_with_index do |m, index| if index == 0 start_time = m[:time] end if wait=='true' m_time = m[:time] else m_time = m[:time] - start_time end dt = (@start + m_time) - Time.now sleep(dt) if dt > 0 message = OSC::OSCPacket.messages_from_network(m[:message]).first output = m_time.to_s + ", " + message.address @a = message.to_a @a.each_with_index do |arg, index| #p arg output = output + ", " + arg.to_s end final_output = final_output + "" + output + "\n" end File.open(output_filename, 'w') { |file| file.write(final_output) }
Processing Library:
http://www.gicentre.org/utils/#download
Simple Processing Graph:
http://www.learningprocessing.com/examples/chapter-13/example-random-graph/ // Learning Processing // Daniel Shiffman // http://www.learningprocessing.com // Example: a graph of random numbers float[] vals; void setup() { size(400,200); smooth(); // An array of random values vals = new float[width]; for (int i = 0; i < vals.length; i++) { vals[i] = random(height); } } void draw() { background(255); // Draw lines connecting all points for (int i = 0; i < vals.length-1; i++) { stroke(0); strokeWeight(2); line(i,vals[i],i+1,vals[i+1]); } // Slide everything down in the array for (int i = 0; i < vals.length-1; i++) { vals[i] = vals[i+1]; } // Add a new random value vals[vals.length-1] = random(height); }