OpenViBE forum

The OpenViBE community
It is currently Sat May 26, 2018 11:23 pm

All times are UTC




Post new topic Reply to topic  [ 5 posts ] 
Author Message
PostPosted: Sun Apr 19, 2015 6:18 pm 
Offline

Joined: Thu Apr 16, 2015 8:27 pm
Posts: 3
Hi,

I just started using OpenVibe and I am facing problems to get the CSV/GDF writers working. I am using OpenVibe version 1.0.0 on windows 64 bit system.
Image

Above is a simple scenario I am trying with. I have a GDF pre recorded file with EEG data which I am giving to the EDF file reader.

Here are some of my doubts, please excuse me if they are naive :)
1) Both the EDF/CSV file writers are expecting (Select a file to open) an already existing file, does that mean it will only update a file but cant create a new file? I tried to give a file name with path that didn't exist to check if the program is creating the file and writing to it, but no file was created in that path.
2) I tried to create an empty csv file and give it to the CSV file writer, but to my surprise, after I ran the scenario, the CSV file was written with values like "0.0000000000e+000;1.2564707538e-009;6.7523583253e-010;5.7504941824e-010". Is this normal? If not can you think of a reason why is it not writing decimal numbers?
3)(General question) Once I start running the scenario, how much time should I allow before the filter is applied to all data, is it okay if I run the scenario and quickly stop it for all the data in the input file to be filtered and written to the output file or should I wait for the length of the recording time for ex: 15 mins of eeg recording, since it looks like it is storing only certain no of samples per buffer?

Thanks in advance.


Last edited by santoshrayala on Mon Apr 20, 2015 5:25 pm, edited 1 time in total.

Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 20, 2015 7:43 am 
Offline

Joined: Tue Dec 04, 2012 3:53 pm
Posts: 696
Location: INRIA Rennes, FRANCE
Hello Santosh,

to make things easier to debug, you could try first writing data from e.g. 'sinus oscillator' or 'noise generator' to a file, so you can try to isolate the problem to either reading or writing. Also, remove temporal filter to make sure its not guilty. We know that it can do funny things to the signal if the filter parameters are too excessive.

1) the boxes do not generate paths and you must have write access to the folder of the file. the boxes should be able to generate file though, or otherwise write an error to the log.
2) this is the 'scientific' decimal notation, should be ok. First column is time. Though, for openvibe purposes, the recommended format is .ov (generic stream writer)
3) you can connect a timeout box to the signal processing chain, and then make 'player controller' box react to the timeout. this way you can make sure whatever came from the reader has been processed by the writer. The execution order of the boxes is from left to right, top to bottom, so put the player controller as the last box of the scenario (or have sufficient timeout, such as several seconds).


Hope this helps,
Jussi


Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 20, 2015 7:16 pm 
Offline

Joined: Thu Apr 16, 2015 8:27 pm
Posts: 3
Thanks a ton jtlindgren, that really helped, now I am getting the output. :)


Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 20, 2015 11:49 pm 
Offline

Joined: Thu Apr 16, 2015 8:27 pm
Posts: 3
jtlindgren wrote:
3) you can connect a timeout box to the signal processing chain, and then make 'player controller' box react to the timeout. this way you can make sure whatever came from the reader has been processed by the writer. The execution order of the boxes is from left to right, top to bottom, so put the player controller as the last box of the scenario (or have sufficient timeout, such as several seconds).


Please see the attached scenario
Attachment:
usingtimeoutex.xml [17.25 KiB]
Downloaded 78 times
to see how I implemented it. It worked for first couple of times and then when I restarted the OpenVibe, it didn't work anymore. I experimented with the same input file and the same settings all the times. I understand that the timeout box is unstable, so, is this what unstable means?

The input file I am giving to the GDF file reader is approximately 2 Mb. When running the scenario, depending upon the time I let the scenario run before I stop it, the output file size of the CSV file writer is varying, for ex: if I let the scenario run for say 20secs, the output file size is 2mb approx.(lets say), and for the same input file if I run the same scenario for more than 20secs, say 40 secs, the output file size is now 3 mb! the more time I let the scenario run, the bigger the size of the output file. I dont understand whats happening here. Since the timeout is not working in my case, I am not able to understand when to stop the scenario to obtain the right filtered data for my input.

Please help, Thanks in advance.
Santosh


Top
 Profile  
Reply with quote  
PostPosted: Mon May 04, 2015 8:16 am 
Offline

Joined: Tue Dec 04, 2012 3:53 pm
Posts: 696
Location: INRIA Rennes, FRANCE
OpenViBE is a streaming architecture, so the longer you let it stream, the bigger the file gets. After your input ends, there should be no longer more output (and timeout should stop the scenario). You can press fast forward button to get this result quickly. It is normal for the CSV file to be bigger than the GDF file, as the first is ASCII encoded. However, you should look that the time structure of the output makes sense (that its as long as it should be, compared to your input).


Hope this helps,
Jussi


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 5 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group
Americanized by Maƫl Soucaze.