Episode 1: Paradigm Presenter
Learn how to connect and synchronize Paradigm Presenter with g.Pype for experiment control. This episode demonstrates how to start paradigms and receive stimulus triggers in your processing pipelines.
Note
This page is still under development. Until we have the step-by-step instructions ready, please refer to the code example below.
File example_paradigm_presenter.py – View file on GitHub
1import os
2
3import gpype as gp
4
5parent_dir = os.path.dirname(os.path.abspath(__file__))
6paradigm_root_folder = os.path.join(parent_dir, "paradigms")
7fs = 250
8
9if __name__ == "__main__":
10
11 # main app
12 app = gp.MainApp()
13
14 # pipeline
15 p = gp.Pipeline()
16
17 # signal generator
18 source = gp.Generator(
19 sampling_rate=fs,
20 channel_count=8,
21 signal_frequency=10,
22 signal_amplitude=10,
23 signal_shape="sine",
24 noise_amplitude=10,
25 )
26
27 # presenter trigger via UDP
28 trigger = gp.UDPReceiver()
29
30 # router
31 router = gp.Router(input_channels=[gp.Router.ALL, gp.Router.ALL])
32
33 # scope
34 mk = gp.TimeSeriesScope.Markers
35 markers = [
36 mk(color="r", label="task 1", channel=8, value=1),
37 mk(color="b", label="task 2", channel=8, value=2),
38 mk(color="k", label="task 3", channel=8, value=3),
39 ]
40 scope = gp.TimeSeriesScope(
41 amplitude_limit=30, time_window=10, markers=markers
42 )
43
44 # connect nodes
45 p.connect(source, router["in1"])
46 p.connect(trigger, router["in2"])
47 p.connect(router, scope)
48
49 # presenter
50 presenter = gp.ParadigmPresenter(paradigm_root_folder)
51
52 # add widgets
53 app.add_widget(presenter)
54 app.add_widget(scope)
55
56 # start pipeline and main app
57 p.start()
58 app.run()
59 p.stop()