Giter Site home page Giter Site logo

sccn / lsl_archived Goto Github PK

View Code? Open in Web Editor NEW
242.0 242.0 134.0 311.36 MB

Multi-modal time-synched data transmission over local network

C++ 89.63% C 5.21% Makefile 0.03% Java 1.12% MATLAB 1.24% CMake 0.32% QMake 0.02% Shell 0.01% Pascal 1.18% Python 0.74% C# 0.28% Batchfile 0.01% PHP 0.07% JavaScript 0.01% M4 0.01% Mathematica 0.10% Roff 0.01% HTML 0.03% Perl 0.01%

lsl_archived's People

Contributors

agricolab avatar anitapita avatar borismansencal avatar cboulay avatar chkothe avatar dmedine avatar gisogrimm avatar kyucrane avatar mgrivich avatar papr avatar roshkins avatar schnoy avatar stfnrpplngr avatar tstenner avatar xbbsky avatar xloem avatar yutewang65 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  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

lsl_archived's Issues

C++ examples with persistent inlet or outlet?

I'm trying to do something that requires greater knowledge of C++ than I 
currently have.

I am trying to create an Unreal Engine 4 plugin. The engine handles its own 
threading and when to call the Tick functions of each object in the scene. I am 
building a SceneComponent object and I want to use its TickComponent function 
to call inlet.pull_sample. But I don't want to recreate the inlet on every tick 
(75 Hz).

So I thought I'd have the inlet as a member variable in my component class. 
This requires the inlet to be created explicitly upon component instantiation 
because lsl::stream_inlet has no default constructor. I tried constructing it 
with my_inlet(lsl::stream_info("NotAName", "NotAType", 0)), and, though it 
compiles, attempting to add my component to the scene causes a bunch of errors.

So how do I make a placeholder inlet on instantiation? Or is there a better 
solution?

I will try to use the C API instead, but I would really prefer to use the C++ 
API.

Original issue reported on code.google.com by [email protected] on 11 Mar 2015 at 2:26

Fix for vis_stream does not work with Matlab R2014b

It seems Matlab's new graphics system has broken vis_stream. The only problem 
is in supergui line 109, finputcheck requires fig to be numeric but it is now 
an object. I just emptied the type column (i.e. '') and it works again.

Original issue reported on code.google.com by [email protected] on 3 Dec 2014 at 6:47

push_chunk_multiplexed drops first sample in its chunk if not provided with a timestamp array

See https://github.com/sccn/labstreaminglayer/blob/master/LSL/liblsl/src/stream_outlet_impl.h#L132 -- the function is documented as accepting a buffer of zero or more samples. Why does it drop the first sample? It seems specifically coded to drop the first sample.

Compare to the variant which takes a timestamp buffer at https://github.com/sccn/labstreaminglayer/blob/master/LSL/liblsl/src/stream_outlet_impl.h#L104 and does not drop the first sample.

AciChamp app cuts out

What steps will reproduce the problem?
1. Setting ActiChamp 1.10.2 app to stream data
2. Waiting 30s - 60s

What is the expected output? What do you see instead?
The system streams for a certain amount of time and then stops. No errors of 
any kind, but no more chunks can be pulled (verified with different 
applications).

What version of the product are you using? On what operating system?
Windows 7, ActiChamp 1.10.2 app.

Please provide any additional information below.
Maybe unrelated, but this is operating at 10k sampling. 1k sampling does not 
seem to give sensible eeg signals.

Original issue reported on code.google.com by [email protected] on 28 Mar 2015 at 2:58

lsl_cpp.h: Control may reache end of non-void function x 2.

Again, normally ignored errors are turning into warnings for me.

lsl_cpp.h Line 917 should have a `return 0;`
lsl_cpp.h Line 577 should read: `bool wait_for_consumers(double timeout) { 
return lsl_wait_for_consumers(obj,timeout); }`

(Note the addition of `return`)

Original issue reported on code.google.com by [email protected] on 3 Dec 2014 at 5:02

LSL with Matlab 2015a Windows (64-bit) Trial version

Linked mouse with LSL and used Labrecorder
Opened Matlab Viewer
Opened vis_stream

Used the following two lines of code:
addpath(genpath('C:\Users\Alexander\Desktop\LSL_SNAP\lsl\Apps\MATLAB Viewer'))
vis_stream

The error message received was:

Error using supergui (line 123)
supergui error: argument 'fig' must be numeric

Error in inputgui (line 161)
[tmp tmp2 allobj] = supergui( 'fig', fig, 'minwidth', 200, 'geomhoriz', g.geometry, 'uilist', g.uilist,
'geomvert', [g.geomvert(:)' 1 1] );

Error in arg_guidialog (line 137)
[outs,dummy,okpressed] = inputgui('geometry',geometry, 'uilist',uilist,'helpcom',['env_doc ' helptopic],
'title',dialogtitle,'geomvert',geomvert); %#ok

Error in vis_stream (line 77)
arg_guidialog;

Fix for LabRecorder in OSX

With recent changes, lsl now compiles in OSX. I've attached the new .dylib for 
those that would like to save the effort of compiling it themselves.

See issue #27 for modifications to pylsl.py for the necessary changes to 
pylsl.py
https://code.google.com/p/labstreaminglayer/issues/detail?id=27

I attached a makefile for RecorderLib in osx. To use it, change to the 
LabRecorder\src\RecorderLib\RecorderLib directory and run
`make --makefile=makefile.osx`

Or just use my RecorderLib64.dylib, attached.

I had to make a tiny change to LabRecorder.py to get it to work. The diff is 
attached.

Place RecorderLib64.dylib in the same directory as LabRecorder.py
`python LabRecorder.py`

It works!

Original issue reported on code.google.com by [email protected] on 3 Mar 2015 at 10:03

Attachments:

Can't get liblsl-python work under Linux

I can easily build liblsl under Linux but there are problems with liblsl-python.

First there isn't a setup.py or CMake facility to build the Python wrapper. I 
found the relevant command from the vcproj file:
swig -c++ -python <filename>.i

This generates something but upon importing pylsl, it can't find _liblsl 
because the _liblsl.pyd files in binaries-* folders are built for Windows. How 
do we rebuild them for Linux?

There is need for a more unified build system using CMake for example.

Thanks.

Original issue reported on code.google.com by [email protected] on 21 Oct 2013 at 10:05

Memory leak in pull_chunk

What steps will reproduce the problem?


Run this server code, it creates two outlets, one for EEG and one for Marker. 
It randomly populates the EEG outlet, but never touches the Marker outlet.


import random
import time

import pylsl


if __name__ == '__main__':

    info = pylsl.StreamInfo('Test', 'EEG', 8, 100, 'float32', 'myUID')
    data_outlet = pylsl.StreamOutlet(info, 32, 360)

    info = pylsl.StreamInfo('Test', 'Markers', 1, 0, 'string', 'muuid2')
    marker_outlet = pylsl.StreamOutlet(info)

    i = 0
    while True:
        sample = [random.random() for i in range(8)]
        data_outlet.push_sample(sample)
        if i % 10 == 0:
            i = 0
        time.sleep(0.01)

On the client side:

import pylsl
stream = pylsl.resolve_stream('type', 'Markers')
m_inlet = pylsl.StreamInlet(stream[0])
for i in range(10000): m_inlet.pull_chunk(timeout=0)


What is the expected output? What do you see instead?

No increase in memory usage of process. I see 4MB more when ever I call this 
loop.


What version of the product are you using? On what operating system?

Latest from HG.


Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 15 Aug 2014 at 1:36

The EGIAmpServer.exe is not working

What steps will reproduce the problem?
1. double click the EGIAmpServer.exe
2. Error message from the windows 7 system: EGIAmpServer.exe has stopped

What is the expected output? What do you see instead?
Error message from the windows 7 system: EGIAmpServer.exe has stopped

What version of the product are you using? On what operating system?
1.0.30 on windows 7

Please provide any additional information below.
Our group bought an EGI system in July, I'm trying to get real-time data 
through LSL, Contact me if you have more questions.

Original issue reported on code.google.com by [email protected] on 10 Dec 2013 at 8:57

Only supported timeouts are 0 and forever

In consumer_queue::pop_sample(), in LSL/liblsl/src/consumer_queue.cpp, if the provided timeout is > 0, it loops forever, sleeping for 1 millisecond between attempts to pop a sample from the internal buffer.

The fix is simple, and I can do it quickly; I was wondering if there was any good reason for not supporting any timeouts except 0 and forever.

Since my intention is to pull samples from the C# interop layer, I can't use the boost::thread::interrupt() method to stop a pull-sample thread, and the thread_interrupted exception isn't getting marshaled in the C# interop layer, so I probably can't use that method anyway. So I need a timeout to make it work.

Later, I'll ask why consumer_queue::pop_sample() does a busy loop, instead of something more CPU efficient (like a client-set boost::function based callback in lsl::data_receiver::data_thread()), but one step at a time.

Actichamp server does streams strange data

What steps will reproduce the problem?
1.Connect actichamp box
2.Launch LSL sw for actichamps. Keep at defaults
3.Launch matlab and ML LSL viewer

What is the expected output? What do you see instead?
1. Every other channel is flat when 500 Hz sampling rate is used
2. Increaseing to 1000 fixes the probklem but still can't see the data

What version of the product are you using? On what operating system?
10.5

Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 28 Feb 2015 at 6:19

Compile Cognionics app on Mac

Hello,

We would like to be able to use the Cognionics application on a Mac running OS 
X 10.8.5.  It appears that the application has only been compiled for a PC.  In 
order to run on a Mac,  we would need a Makefile (or xcode project file) for 
the application itself and the accompanying Mac-compatible libraries (e.g., Qt 
libraries for Mac).  Do these items currently exist or will they be made 
available soon?  

Thanks for your help!



Original issue reported on code.google.com by [email protected] on 5 Aug 2014 at 8:11

EEG and event markers not syncronized in .xdf recordings from SNAP/LSL/LabRecorder.

What steps will reproduce the problem?

I've recorded a dataset using LabRecorder (for EEG) and SNAP (for event 
markers), and imported it using the XDF Importer plugin for EEGLAB.

What is the expected output? What do you see instead?

The timestamps for the EEG data start at "Zero" and end at 692.65 (Epoch End)
But the timestamps for events created by SNAP seem to be in "seconds since the 
computer was turned on", very large numbers. Of course when I try to epoch in 
EEGLAB I get an error saying they are out of the dataset boundary.


What version of the product are you using? On what operating system?
Running LabRecorder and SNAP on Windows 8.1


Original issue reported on code.google.com by [email protected] on 23 Mar 2015 at 10:18

library binaries not on github?

Sorry if I'm missing something! The library binaries are missing from liblsl/bin. Is there a new protocol that we're supposed to track those down on the ftp (as referenced in the readme)? Just trying to make sure I have the lastest versions.

compile for arduino / particle

I'm trying to compile lsl into arduino c++ or particle project. Has anyone managed already to do so? I get the following compile error:

../../../build/target/user/platform-6/libuser.a(blink.o): In function `stream_info':
lsl_cpp.h:134: undefined reference to `lsl_create_streaminfo'

OVAS package does not include ANT driver

What steps will reproduce the problem?
1. Download and install special data acquisition OVAS-LSL for windows
2. Start program
3.

What is the expected output? What do you see instead?
should show ANT Neuro ASALAB EEG as a choice for driver, but does not.
tMSI driver for Refa does not work for this either. The systems reports 
no signal found (ANT amp is plugged into USB)


What version of the product are you using? On what operating system?
https://code.google.com/p/labstreaminglayer/downloads/detail?name=OVAS-withLSL-0
.14.3-3350-svn.zip

Windows 7 Professional


Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 3 Mar 2014 at 11:21

pylsl.py segfaults in OSX

What steps will reproduce the problem?
1. cd labstreaminglayer/LSL/liblsl-Python/examples/
2. python SendData.py
or, alternatively
2. python SendDataAdvanced.py

What do you see instead?
Segmentation fault: 11

These examples work fine for us in Linux.

What version of the product are you using? On what operating system?
lsl 1.10; Python 2.7.8 installed view homebrew on OSX 10.10.1 Yosemite

Please provide any additional information below.
Stepping through the code, I see it fails in pylsl.py line 333:
self.obj = lib.lsl_create_outlet(info.obj,chunk_size,max_buffered)

I tried changing chunk_size and max_buffered to non default values but still 
segfaulted.

In SendDataAdvanced.py, it fails in the call to pylsl.py line 288:
lib.lsl_get_desc(self.obj)

The handle to info.obj appears to be OK (e.g., 140365924480576)

Original issue reported on code.google.com by [email protected] on 11 Dec 2014 at 4:09

Patch for making the Python examples more PEP8 compliant

The Python example files are not very pythonic. There is a coding convention 
which is well accepted in the community: PEP 8 
(http://legacy.python.org/dev/peps/pep-0008/)

I took the liberty to fix the worst offenders and created a hg patch, which is 
attached.

I mainly fixed whitespace issues, spaces around commas and operators, the 
ordering of import statements, line wrapping of comments.

I also fixed two occasions of

[random.random(), random.random(), ..., random.random()] into

[random.random() for i in range(8)]


Cheers,

Basti

PS: I filed an issue yesterday about potential problems with Python's GIL. The 
issue somehow disappeared from the tracker without any notification. I don't 
know if this was a mistake, however I worked a little more on the threading 
issues and found out that LSL segfaults a lot when used with (Python) threads.

Original issue reported on code.google.com by [email protected] on 16 May 2014 at 8:00

Attachments:

Cannot connect to Neuroscan SynAmp II

What steps will reproduce the problem?
1. Connect Neuroscan Synamp cap to amplifier and verify the connection by 
viewing streaming signals in Curry 7 (the Neuroscan software)
2. Start the LSL Neuroscan app and try to connect as specified on the wiki 
(http://code.google.com/p/labstreaminglayer/wiki/Neuroscan) 
3. Click "Link"

What is the expected output? What do you see instead?
I expect the connection to be successful, and a new EEG stream to be available 
on the network. Instead, I receive the error, "Could not initialize the 
Neuroscan interface: Could not connect to the amplifier. Is it turned on and 
does it have a valid license?"

What version of the product are you using? On what operating system?
I'm using the LSL distribution for MATLAB, version 1.05. I am using the App for 
the Neuroscan Synamp, version 1.05.  

Please provide any additional information below.
I appreciate any pointers that can be given. 

Original issue reported on code.google.com by [email protected] on 18 Jul 2014 at 3:54

Unable to resolve a network EEG stream from EGI Amp Server

Dear all,

I'm unable to resolve a network stream from an EGI Net Amps 300 neither with 
the ReceiveData Python nor MATLAB example scripts.

First I have tried to connect to the Net Amps 300 via a provided GUI "EGI Amp 
Server Connector". This program crashes a second after pressing the "Link" 
button. The resulting error message is "EGIAmpServer.exe has stopped working". 
I use default settings with the IP address of the Mac host.

Second I have attempted to use the OpenVibe Acquisition Server GUI to establish 
a connection to the Amplifier. As described in your Wiki page I change the 
AmpServer host name to its IP address, press "Connect" and "Play". I see the 
device drift bar moving. After that I try to launch Python or MATLAB scripts to 
resolve the network stream. Neither the standard "resolve_stream("type", 
"EGI")" nor the generic "resolve_streams(5)" work. 'streams' structure is empty 
and I'm unable to create an inlet.

On the other hand using the OpenVibe's pair of AcquisitionClient--Signal 
Display I can receive and display the data.

I would appreciate any guidance in resolving the EEG network stream. Is it 
possible you tell me the basic steps performed by EGIAmpServer program that I 
could try to reproduce them manually? Thank you. 

Software used:

Host
-----
Mac OS X 10.6.8
Net Station 4.5.4
EGI Net Amps 300

Client
-------
Windows 7, x64
python 2.7.9 x64
MATLAB 2012a x32
OpenVibe 0.18+git.x

Original issue reported on code.google.com by [email protected] on 6 Feb 2015 at 11:19

I can not receive data

What steps will reproduce the problem?
1. https://www.youtube.com/watch?v=Y1at7yrcFW0(I watch the demo video)
2.I open the app of Mouse and the lab recorder
3.press the button of update and there are two items
4.open the matlab and use vis_stream
5.matlab shows a window ,choose Mousebuttons and press OK button. 
6.matlab shows a wrong message
" Warning: Divide by zero. 
  In mean at 31
  In vis_stream>on_timer at 172
  In timer.timercb at 31
  In timercb at 14
"

What is the expected output? What do you see instead?
the stream data of mouse when I use the mouse.

What version of the product are you using? On what operating system?
Matlab 2009a

Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 16 Oct 2014 at 7:39

liblsl32.so is missing

What steps will reproduce the problem?
1.run ReceiveData
2.
3.

What is the expected output? What do you see instead?
Apparently the file "path/liblsl-Matlab/bin/liblsl32.so" is missing on your
computer. Cannot load the lab streaming layer.


What version of the product are you using? On what operating system?
linux-32 bit, tried all products version

Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 25 Feb 2015 at 4:15

Problem with the application for recording an EEG from an Enobio headset

What steps will reproduce the problem?
1. Download the latest version of the Enobio app to stream EEG data (Apps -> 
Enobio-1.10.zip)
2. Download and run the latest version of the Enobio software (NIC 1.3.11.a) 
which connect to the Enobio headset via bluetooth
3. Run the application "Enobio.exe" to link the EEG device to the stream
4. Set up the number of channels and the sampling rate and click the "Link" 
button
5. Error : "Error initializing the Enobio interface: Could not initialize Amp 
setup. Enobio: FT_ListDevices failed."

What is the expected output? What do you see instead?
If all goes well we should have a stream on our lab network that has name 
"Enobio" and type "EEG".

What version of the product are you using? On what operating system?
I tried with the two version of the Enobio app available (1.05 and 1.10) and 
with two different versions of the NIC software (for Enobio).
Windows 7, 64 bits.

Please provide any additional information below.
Thank you for your help and for LSL

Michel

Original issue reported on code.google.com by [email protected] on 2 Jul 2014 at 10:55

BrainAmpSeries.exe fails to open USB device, brainvision recorder works flawlessly

What steps will reproduce the problem?
I've a BrainAmp and the USB device connected and turned on. The drivers are 
supposedly installed, because the brain vision recorder recognizes the amp and 
shows some data.

The BrainAmpSeries.exe, however is unable to connect (or open) with the USB 
device. I've tried quiet a lot of Ports but all failed for the same reason.

Any hint what might be missing? I assume there is no driver problem, as the USB 
device is shown correctly in the system settings and the brain vision recorder 
recognizes the amp and records data flawlessly.


What version of the product are you using? On what operating system?

1.10.x, Windows




Original issue reported on code.google.com by [email protected] on 20 May 2014 at 10:01

Can't limit multicast to particular local interface

I'm sorry to report this as an "issue", but I couldn't find an informal discussion group for this project.

Our computers have multiple network interfaces. Typically, one interface is connected to the "lab network", and another is connected to the corporate network. Multicast traffic on the corporate network leads to catastrophe, so we must limit multicast traffic to the lab network. Typically, this is done by specifying the endpoint's IP address.

From what I can tell, this isn't currently possible inside LSL. The relevant code seems to be "LSL/liblsl/src/udp_server.cpp" -- listen_endpoint is default-constructed, i.e. no IP address can be provided, and the call to ip::multicast::join_group() isn't followed by a call to ip::multicast::outbound_interface().

It seems like this would be really easy to implement, for someone deeply familiar with the code. I could probably hack in a solution, but I'm still just at the evaluation stage, i.e. someone told me about LSL, and I'm trying to figure out if it'll meet our needs. (Other than this one issue, it seems like it'll be great!)

Please let me know your thoughts, and if there was a more appropriate forum for this question.

Synchronisation drift/delay with Brainproducts / LabRecorder

I am using the following set up:

  • Recording acceleration data and EEG using the brainamp EEG/EXG amps and the acceleration sensor.
  • Recording collusion events from a servo in the Unity engine, using the following code:
// Setup the stream when starting
 markinf = new liblsl.StreamInfo("UnityMarkers", "Markers", 1, 0, liblsl.channel_format_t.cf_string, "UnityMarkerReadings");
 markoutl = new liblsl.StreamOutlet(markinf);

// Code that runs every 4ms to talk to the servo
 // if hit event detected
   // Sent event to LSL
    markoutl.push_sample(EventMarkers, liblsl.local_clock());
  • Saving the streams in LabRecorder 1.10
  • Importing the data in EEGLAB with xdfimport 1.12

The servo is set to hit the accelerometer periodically to see that the two streams are synchronised (and the delay of detecting a hit). All the recording is done using a single computer (Win 7).

The curious problem is that the hit event recorded in Unity (marked by the red Hit event) is always faster than the accelerometer data recorded by the EXG (blue line). This drift depends on the method that the brainamp is being recorded:

i. a 30 ms (approx.) drift as shown below when recording with the BrainAmpSeries exe.(Apps 1.10) brainampseries - 30 ms drift

ii. a 40 ms (approx,) drift as shown below when recording with the BrainVisionRDA exe (Apps 1.10) brainvisionrda - 40 ms drift

iii. a 50 ms (approx,) drift as shown below when recording with OVAS 0.14.3 and the brainvision Recorder in remote access.
ovas from brainvision recorder 50 ms delay

I have measured (using an oscilloscope) that the time Unity takes to register the hit event is roughly 30 ms (+/- 5 ms). I have come up with two potential reasons for this drift/delay in the two stream:

  1. There is an approx. 50 ms - 90 ms latency (30 ms delay to detect the event in Unity plus the extra delay shown above) in recording brainproduct data depending on how they are recorded (BrainAmpseries,exe, etc.)
  2. When imported by the xdfimporter the clocks from the two streams (brainamp and unityevents) are not properly aligned.

In case of 1) I haven't found any evidence to support such a high latency from the brainamp hardware so is this latency coming from the recording software (in Apps)?

Is there a mistake in my method, or anything I have missed? Is this high latency to be expected?

Thank you very much in advance.

Upon inclusion of lsl_cpp.h: "ISO C++11 does not allow conversion from string literal to 'char *'"

What steps will reproduce the problem?
1. Make a C++ project, including lsl_cpp.h
2. Try to compile.
3. Get error or warning generated from lsl_cpp.h line 272.

What version of the product are you using? On what operating system?
1.10 on OSX.
My g++ --version:

Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr
--with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.0.0
Thread model: posix


Please provide any additional information below.
When I use g++ from the command line the message (in the topic) is only a 
warning and I may compile. However, I am trying to build an Unreal Engine 4 
plugin and this results in an error that stops compiling. I may be able to 
change the UnrealBuildTool compiler settings but I think it's a better solution 
to fix this warning/error within lsl.

Line 272, the source of the problem, calls lsl_create_streaminfo with the 
first, second, and sixth (last) positional arguments as string literals 
("untitled", "", ""). The method declaration on lsl_c.h line 300 defines these 
arguments as char * (char *name, char *type, char *source_id). This is 
considered bad practice because string literals are immutable but char * are 
not.

If the intention is indeed that these are to be immutable then lsl_c.h line 300 
can have those arguments changed to const char *. Otherwise, it may be wise to 
change the way the function is called in lsl_cpp.h.

Original issue reported on code.google.com by [email protected] on 3 Dec 2014 at 4:42

Sending/Receiving don't work on Linux

What steps will reproduce the problem?
1. Run SendDataC-linux
2. Run ReceiveDataC-linux
3. Nothing happens

What is the expected output? What do you see instead?

The receiver does not receive the data. This is also the case when I try to 
read ldl streams from BCILAB

What version of the product are you using? On what operating system?
Latest hg on Fedora 19 Linux x86_64

Please provide any additional information below.
No firewall is running, I don't think that this is a networking issue. Will 
provide further debugging informations when I have time.

Original issue reported on code.google.com by [email protected] on 27 Nov 2013 at 10:49

missing python source code in pylink

What steps will reproduce the problem?
1. run eyelink from python 2.7.2
2.
3.

What is the expected output? What do you see instead?
I expect it to run, but alas, the magic number is bad. I presume that the .pyc 
files in the pylink module need to be updated, but there are no corresponding 
.py code files...

Please use labels and text to provide additional information.


Original issue reported on code.google.com by [email protected] on 5 Mar 2015 at 1:41

SWIG generated Java missing setters?

What steps will reproduce the problem?
1. Attempt to call stream_info.uid(string) in SWIG generated Java.
2.
3.

What is the expected output? What do you see instead?
Expected method to exist.
Instead, error: The method uid() in the type stream_info is not applicable for 
the arguments (String)

What version of the product are you using? On what operating system?
distribution 1.0.10  (library version 0.91) on 32bit Linux

Please provide any additional information below.

Original issue reported on code.google.com by [email protected] on 26 Sep 2013 at 5:24

A possible time shift for the samples from g.Tec devices

Hello,

Looking at the code for g.Tec devices in "mainwindow.cpp", it looks like there 
might be a shift in calculating the time stamps. Lines 288 - 292:

288: // reformat into send_buffer
289: for (int s=0;s<chunkSize;s++)
290:    for (int c=0;c<channelCount;c++)
291:        send_buffer[s][c] = src_buffer[c + s*(channelCount+1)];
292: double now = lsl::local_clock();

It seems that by moving line 292 to 288, the timestamp will be more accurate 
and the reformatting time will not be included in the timestamps.

Of course, this can be wrong if the "now" variable is not presenting the 
timestamp for the samples.

Thanks for the great software.

Original issue reported on code.google.com by [email protected] on 29 Jul 2014 at 11:15

Conversion to cell from double is not possible. Error in run_readlsl/read_data (line 196)

Steps to recreate error:
on Windows,
running SendData64.exe to generate a fake BioSemi EEG stream

In Matlab:

run_readlsl('BioSemi');

Error in block-reading function:
Conversion to cell from double is not possible.
occurred in:
run_readlsl/read_data: 196
@()read_data(inlet,marker_inlet,opts.always_double): 175
append_data: 86
onl_read_background/@(timer_handle,varargin)append_data(stream_name,stream_id,timer_handle,block_reader): 0
timercb: 30
timercb: 13

streaming OSC data

Hello,

I am new to LSL and I would like to receive data from an open sound control (OSC) data source. Additionally, I'd like to record and monitor "live" data. The OSC data source is a MUSE headband. I'm running Windows 10 (64-bit) and Matlab 2015b. I've already downloaded an installed the LSL files and dependencies. Any guidance would be appreciated.

Thank you.

OVAS does not have driver for BrainProducts Actichamp EEG System

What steps will reproduce the problem?
1. Download and unzip the OVAS build for LSL.
2. Run LSL and in the drivers list, see if BrainProducts Actichamp Series 
appears.


What is the expected output? What do you see instead?
The last stable build of OpenVibe 0.15 has an acquisition server that has a 
driver for BrainProducts Actichamp Device. However, your version of OVAS for 
LSL is missing this driver in the list.

What version of the product are you using? On what operating system?
OVAS-withLSL-0.14.3-3350-svn.zip on 64-bit Windows 7

Please provide any additional information below.
How can BrainProducts ActiChamp be added?

Original issue reported on code.google.com by [email protected] on 30 Oct 2013 at 11:42

Please do not ship .pyc files and don't commit them into the repository

What steps will reproduce the problem?

1. liblsl-Python comes with the file pylsl.pyc. Please remove it. .pyc files 
are generated on the fly by the python interpreter when the module gets 
imported, so it does not harm to delete them. It does harm, however, to have 
them shipped, as a module 'foo' can still be imported if the 'foo.py' file has 
been removed but the 'foo.pyc' has not.

It is also common practice to leave them out.


What version of the product are you using? On what operating system?

Head from hg.





Original issue reported on code.google.com by [email protected] on 20 May 2014 at 7:59

v4address/v6address of XML stream description empty

Hi,
It is LSL version 1.10 on Win7 64 bit. I create an outlet with Matlab (2012b or 2013b) and an inlet with Python (2.7.5, via WorldViz; or vice versa, on two different machines) and query the xml meta data:

unbenannt

Best,
Ole

using BioSemi GSR data

the BioSemi application has no specific setting to record just the auxiliary 
signals (in my case, GSR data). I tried recording 32 blanks + aux channels, but 
in my c++ code I have access to 57 channels and in the xdf file (recorder with 
labrecorder) I have acess to 128. Problem is I cannot check which one of those 
correspond to the ones that I want, related to the GSR. Using BioSemi native's 
application, I can record it as the 41st channel.


What steps will reproduce the problem?
1. use BioSemi Active II amplifier to record GSR signals
2. Save them with lab recorder
3. analyse the xdf file in comparisson to the real time data obtained in c++

What is the expected output? What do you see instead?
The Number of channels vary and I cannot find the corresponding channel


What version of the product are you using? On what operating system?
windows 7, 32 bits
lsl 1.030


Please provide any additional information below.

Thank You

Daniel


Original issue reported on code.google.com by [email protected] on 13 Dec 2013 at 5:14

new ios-devel branch notes

I have made a new branch on git called 'ios-devel'. This has a new folder in the LSL directory with a couple of xcode projects in it. One builds liblsl into an iOS framework. The other is a helloworld app to test lsl.

  1. For this to work I had to compile boost into an iOS archive. I did this a long time ago, and I can't find out how I did it, but I think I used this method:
    https://github.com/danoli3/ofxiOSBoost
    Unfortunately, I seem to have misplaced the folder with this project in it. I might be able to track it down eventually, but for now, there is a libboost.a file that works.
  2. In order to compile this for iOS 8, I had to modify pugixml.hpp slightly. I commented out line 22:
    struct bidirectional_iterator_tag;
    This makes me realize that we are shipping LSL with a pretty old version of pugixml. We've got 1.0 and I believe they are up to 1.6. After a quick glance at 1.6, I see that the offending line is nowhere to be found, but the whole header looks a lot different. As a side note, it might be worth while to try LSL with the latest version of pugixml.
  3. The example program for iOS, 'lsl-helloworld', functions correctly as far as sending and receiving lsl streams, but the part of the code that listens to LSL streams and prints them to a sort of 'console' that I created has a memory leak in it. Perhaps someone with better app development chops than I have can make this more functional. This was my first time in the ring with objective-C.

blocking call to pull_sample claiming Python's GIL forever when no data available

What steps will reproduce the problem?

1. Create a simple receiving application like described in the example: 
https://code.google.com/p/labstreaminglayer/source/browse/LSL/liblsl-Python/exam
ples/ReceiveData.py

2. Don't write the sending counterpart

3. Start your receiving application

What is the expected output? What do you see instead?

The application will block on `inlet.pull_sample()`, which is fine. But It will 
not be possible to stop the application via CTRL-C (Linux). Compare it with 
other blocking network operations in Python's standard library, where it is 
always possible to kill the application with CTRL-C, even when it is blocking 
on I/O.

I haven't looked into the code, but I assume that the underlying wrapper code 
for C/C++ is claiming Python's Global Interpreter Lock (GIL) and never 
releasing it, while blocking on `pull_sample`. An easy way to test this 
assumption would be, to write a threaded application, where the first thread 
just prints something every second and the second thread receives data. If the 
second one blocks and claims the GIL forever, the first thread should stop 
printing numbers.


What version of the product are you using? On what operating system?

Current head from hg.


Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 15 May 2014 at 9:56

How to build LSL to a .so library, not .dylib, in Mac

Hello,

I am trying to run my own Python application that uses LSL library and 
Psychopy. I have a OSx 10.8.5, with Canopy Python 2.7.3 (32bit). I need to run 
this specific version for Psychopy.

I've built LSL library. It only compiles in .dylib, but Python only searches 
for .so libraries.

How can I build it to an .so library in Mac? If it's not possible, how can I 
tell Python to look for .dylib libraries instead of .so?

Thank you very much,

Laura

Original issue reported on code.google.com by [email protected] on 23 Oct 2013 at 4:29

Missing Docs Sections

The liblsl include files at LSL/liblsl/include/lsl_c*.h reference the following documentation section names:

  • "Configuration File"
  • "Meta-Data Recommendations"
  • "Table of Content Types"
  • "code examples"
    None of these seem to exist.

There are some code examples at https://github.com/sccn/labstreaminglayer/wiki/ExampleCode.wiki
There is an old "Table of Content Types" at https://code.google.com/p/labstreaminglayer/source/browse/LSL/liblsl/docs/Information.txt?r=6d4fc62daa7412bcf879f224f212e971ed57f468
There's configuration file information at https://github.com/sccn/labstreaminglayer/wiki/NetworkConnectivity.wiki

g.tec g.HIAmp connection error

What steps will reproduce the problem?
1. Execute lsl/Apps/g.Tec/g.HIamp/gHIamp.exe
2. Select the correct number of channels
3. Click "Link"

What is the expected output? What do you see instead?
g.HIAmp is connected. It throws the following error:
Could not initialize gHIamp interface: Could not set amplifier configuration. 
(driver message: an unavailable channel has been selected for acquisition)

In h.HIamp demo program, it shows 80 channels + 2 Digial I/O channels are 
available. I tried selecting the number of channels of 80, 81, 82, 64, 65, 66, 
1, 2, 3.... but none works.

What version of the product are you using? On what operating system?
Driver version: g.HIamp Driver 2.14.02 (64 bit)
I tried both latest stable and development releases of LSL.
Windows 8.1 Pro 64 bit

Please provide any additional information below.
Is there anyone who managed to make it work?



Original issue reported on code.google.com by [email protected] on 10 Dec 2014 at 4:35

pop_loadxdf introduces datashifts for irregular sampling rate

What steps will reproduce the problem?
1. importing data with pop_loadxdf introduces data shifts releative to marker 
channel for EEG streams with irregular sampling rate
2.
3.

What is the expected output? What do you see instead?
EEG events should follow a given marker at a fixed delay (e.g. N1). Instead the 
delay between marker onset and EEG response increases over time. 


What version of the product are you using? On what operating system?
The amplifiers we used have a nominal sampling rate of 500. The effective 
sampling rates are 499.83 and 500.6. 


Please provide any additional information below.
The problem arises when importing data into EEG lab. pop_loadxdf calls 
eeg_load_xdf using the nominal_srate by default. This leads to shifts in the 
data relative to the marker. If effective-srate< nominal_srate this shift is 
negative otherwise positive. 

using the effective_rate in eeg_load_xdf instead solves the problem in my case. 

Original issue reported on code.google.com by [email protected] on 10 Feb 2014 at 2:05

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.