Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reading ints from a file in Chuck

Tags:

audio

chuck

I have this ChucK code:

"examples/vento.txt" => string filename;
FileIO fio;

// open a file
fio.open(filename, FileIO.READ);

// ensure it's ok
if(!fio.good()) {
    cherr <= "can't open file: " <= filename <= " for reading..." <= IO.newline();
    me.exit();
}

fio.readLine() => string velocity;

fio.readLine() => string direction;

The text file contains:

10
12

(it's updated with python every minute)

I want to convert velocity and direction to int (or better float).

How can I do this?

like image 885
patrick Avatar asked Jul 15 '10 18:07

patrick


1 Answers

Use atoi and atof in the Std library. Let's say you want to translate from 0-127 (MIDI velocity) to a float between 0 and 1.0 (much more convenient for unit generators):

Std.atoi(fio.readLine()) => int midi_velocity;
midi_velocity/127.0 => float velocity;
<<< velocity >>>;

should print 0.078740 :(float) for an input of 10.

Or if you want to just go straight to float:

Std.atof(fio.readLine()) => float velocity;
<<< velocity >>>;

which prints 10.000000 :(float).

like image 193
Owen S. Avatar answered Oct 05 '22 22:10

Owen S.