<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>http://brain.fuw.edu.pl/edu/index.php?action=history&amp;feed=atom&amp;title=Svarog%2FUsers_Manual%2FCompiling_Svarog</id>
	<title>Svarog/Users Manual/Compiling Svarog - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="http://brain.fuw.edu.pl/edu/index.php?action=history&amp;feed=atom&amp;title=Svarog%2FUsers_Manual%2FCompiling_Svarog"/>
	<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Svarog/Users_Manual/Compiling_Svarog&amp;action=history"/>
	<updated>2026-05-03T22:06:42Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Svarog/Users_Manual/Compiling_Svarog&amp;diff=4001&amp;oldid=prev</id>
		<title>Jarekz: Utworzono nową stronę &quot;Svarog isn't yet really distributed as a compiled package, so it is best to use the source from the repository and compile and run.  == How to download the development v...&quot;</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Svarog/Users_Manual/Compiling_Svarog&amp;diff=4001&amp;oldid=prev"/>
		<updated>2015-07-27T07:25:40Z</updated>

		<summary type="html">&lt;p&gt;Utworzono nową stronę &amp;quot;Svarog isn&amp;#039;t yet really distributed as a compiled package, so it is best to use the source from the repository and compile and run.  == How to download the development v...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Svarog isn't yet really distributed as a compiled package, so it is best to use the source from the repository and compile and run.&lt;br /&gt;
&lt;br /&gt;
== How to download the development version ==&lt;br /&gt;
It's best to download the sources using [http://git-scm.com git].&lt;br /&gt;
  git clone git://escher.fuw.edu.pl/git/svarog&lt;br /&gt;
This will create directory ''svarog'' populated with the latest version.&lt;br /&gt;
&lt;br /&gt;
If you can't/don't want to use ''git'', you can go to&lt;br /&gt;
http://escher.fuw.edu.pl/git/svarog and download one of the ''.tar.bz2'' or ''.zip'' archives using the links on the right hand side.&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
#You will need [http://maven.apache.org/ maven].&lt;br /&gt;
#protoc from [http://code.google.com/apis/protocolbuffers/docs/overview.html Google Protocol Buffers] version 2.4.x&lt;br /&gt;
== How to compile svarog and plugins ==&lt;br /&gt;
Change into the directory &amp;lt;tt&amp;gt;svarog&amp;lt;/tt&amp;gt; and execute&lt;br /&gt;
 mvn clean package&lt;br /&gt;
&lt;br /&gt;
This will download the necessary maven plugins&lt;br /&gt;
and also some libraries needed by Svarog which are distributed separately.&amp;lt;BR&amp;gt;&lt;br /&gt;
Downloaded files go by default into ''~/.m2/repository''.&lt;br /&gt;
&lt;br /&gt;
This command also creates a package of Svarog complete with dependencies in one file (&amp;lt;code&amp;gt;svarog/target/svarog-0.5.0-SNAPSHOT.one-jar.jar&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== How to run (svarog and plugins) ==&lt;br /&gt;
In the toplevel ''svarog'' repository execute&lt;br /&gt;
  mvn -pl svarog exec:java&lt;br /&gt;
&lt;br /&gt;
When run as a binary, svarog accepts the following options:&lt;br /&gt;
&lt;br /&gt;
 usage: /usr/bin/svarog &amp;lt;options&amp;gt;&lt;br /&gt;
   -D &amp;lt;arg&amp;gt;        define java property (allowed multiple times)&lt;br /&gt;
   -h,--help       display help&lt;br /&gt;
   -m,--moltest    include test method&lt;br /&gt;
   -R,--reset      reset workspace settings&lt;br /&gt;
   -s,--nosplash   don't display splash screen&lt;br /&gt;
&lt;br /&gt;
Those options can be passed to Svarog when launching Svarog using Maven by setting &amp;lt;tt&amp;gt;-Dexec.args=...&amp;lt;/tt&amp;gt;. E.g.&lt;br /&gt;
  mvn -pl svarog exec:java -Dexec.args=--nosplash&lt;br /&gt;
&lt;br /&gt;
Some options can only be set using Java properties. When using maven to launch Svarog, properties can be set using &amp;lt;tt&amp;gt;-Dproperty=value&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Useful options include:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;log4j.debug=true&amp;lt;/tt&amp;gt; debug log4j configuration. This is useful to see why logging messages are displayed (or not).&lt;br /&gt;
* &amp;lt;tt&amp;gt;signalml.root&amp;lt;/tt&amp;gt; specifies the location of the Svarog settings directory.&lt;br /&gt;
* &amp;lt;tt&amp;gt;svarog.security_manager=enforcing/permissive/off&amp;lt;/tt&amp;gt;. The default is currently &amp;lt;tt&amp;gt;off&amp;lt;/tt&amp;gt;. See javadoc:org/signalml/app/SvarogSecurityManager.html for more information.&lt;br /&gt;
&lt;br /&gt;
== Accessing and generating documentation ==&lt;br /&gt;
Code is documented through java-docs, which can be accessed online http://signalml.org/svarog/apidocs/index.html.&lt;br /&gt;
&lt;br /&gt;
This documentation can be also generated from the source tree:&lt;br /&gt;
  mvn install&lt;br /&gt;
  mvn javadoc:javadoc&lt;br /&gt;
The generated documents are in the directory target/site/apidocs under the source tree.&lt;br /&gt;
&lt;br /&gt;
== Compiling and running just Svarog ==&lt;br /&gt;
If you are not working on the plugins, they don't have to be rebuilt constantly. Compile only svarog with:&lt;br /&gt;
  mvn -pl svarog compile&lt;br /&gt;
  mvn exec:java&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== On Ubuntu 10.4 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[INFO] Unable to find resource 'flanagan:flanagan:pom:1.0.3' in repository central (http://repo1.maven.org/maven2)&lt;br /&gt;
[INFO] [compiler:compile {execution: default-compile}]&lt;br /&gt;
[INFO] Compiling 1078 source files to /home/adam/svarog/svarog/target/classes&lt;br /&gt;
[INFO] ------------------------------------------------------------------------&lt;br /&gt;
[ERROR] BUILD FAILURE&lt;br /&gt;
[INFO] ------------------------------------------------------------------------&lt;br /&gt;
[INFO] Compilation failure&lt;br /&gt;
Unable to locate the Javac Compiler in:&lt;br /&gt;
  /usr/lib/jvm/java-6-openjdk/jre/../lib/tools.jar&lt;br /&gt;
Please ensure you are using JDK 1.4 or above and&lt;br /&gt;
not a JRE (the com.sun.tools.javac.Main class is required).&lt;br /&gt;
In most cases you can change the location of your Java&lt;br /&gt;
installation by setting the JAVA_HOME environment variable.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instaling openjdk-6-jdk (sudo apt-get install openjdk-6-jdk) helps.&lt;br /&gt;
[[category:Svarog]]&lt;br /&gt;
&lt;br /&gt;
=== On various systems ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[INFO] Compilation failure&lt;br /&gt;
&lt;br /&gt;
/home/svarog/tmp/s6/svarog/target/generated-sources/org/signalml/multiplexer/protocol/SvarogProtocol.java:[11,22]&lt;br /&gt;
org.signalml.multiplexer.protocol.SvarogProtocol.Variable is not&lt;br /&gt;
abstract and does not override abstract method&lt;br /&gt;
newBuilderForType(com.google.protobuf.GeneratedMessage.BuilderParent) in&lt;br /&gt;
com.google.protobuf.GeneratedMessage&lt;br /&gt;
&lt;br /&gt;
/home/svarog/tmp/s6/svarog/target/generated-sources/org/signalml/multiplexer/protocol/SvarogProtocol.java:[165,24]&lt;br /&gt;
org.signalml.multiplexer.protocol.SvarogProtocol.Variable.Builder is not&lt;br /&gt;
abstract and does not override abstract method&lt;br /&gt;
internalGetFieldAccessorTable() in&lt;br /&gt;
com.google.protobuf.GeneratedMessage.Builder&lt;br /&gt;
&lt;br /&gt;
/home/svarog/tmp/s6/svarog/target/generated-sources/org/signalml/multiplexer/protocol/SvarogProtocol.java:[342,22]&lt;br /&gt;
org.signalml.multiplexer.protocol.SvarogProtocol.VariableVector is not&lt;br /&gt;
abstract and does not override abstract method&lt;br /&gt;
newBuilderForType(com.google.protobuf.GeneratedMessage.BuilderParent) in&lt;br /&gt;
com.google.protobuf.GeneratedMessage&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;protoc&amp;lt;/tt&amp;gt; has wrong version. It should be 2.4.&lt;br /&gt;
&lt;br /&gt;
==Installing Svarog from a Debian package (experimental)==&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Put &amp;lt;tt&amp;gt;svarog.list&amp;lt;/tt&amp;gt; in directory &amp;lt;tt&amp;gt;/etc/apt/sources.list.d/.&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo wget -O/etc/apt/sources.list.d/svarog.list http://escher.fuw.edu.pl/debian/svarog.list &amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the gpg key used to verify package signatures: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 46F44D47 &amp;lt;/source&amp;gt;&lt;br /&gt;
or alternatively&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;wget -O- http://escher.fuw.edu.pl/debian/gpg.key | sudo apt-key add - &amp;lt;/source&amp;gt;&lt;br /&gt;
Warning: the key will be changed, right now it is [[User:ZbyszekSzmek|my personal key]]. &lt;br /&gt;
&amp;lt;li&amp;gt;Update the list of available packages with &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get update &amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Svarog can be installed with &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install svarog &amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''This package does not work on UBUNTU.'''&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
Examples of biomedical signals that can be viewed using Svarog can be found [http://brain.fuw.edu.pl/~zbyszek/eeg/dane/ here]. One can download them using &amp;lt;tt&amp;gt;wget&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;wget -np -r -l5 -c http://brain.fuw.edu.pl/~zbyszek/dane&amp;lt;/source&amp;gt;&lt;br /&gt;
'''Warning''': The files are big.&lt;br /&gt;
==First run==&lt;br /&gt;
During the first run of Svarog user makes important decisions about Svarog's appearance.&lt;br /&gt;
# Chooses the language Svarog is going to use &amp;amp;mdash; either English or Polish (Fig. &amp;lt;xr id=&amp;quot;rys_1&amp;quot;/&amp;gt;). [[File:Svarog 1 uruchomienie 0.png|center|thumb|500px|&amp;lt;figure id=&amp;quot;rys_1&amp;quot;/&amp;gt;Choosing language]]&lt;br /&gt;
# Chooses directory, where Svarog will store its configuration and files (Fig. &amp;lt;xr id=&amp;quot;rys_2&amp;quot;/&amp;gt;). One can store them in &amp;lt;tt&amp;gt;signalml&amp;lt;/tt&amp;gt; directory inside default home or choose custom location (Fig. &amp;lt;xr id=&amp;quot;rys_3&amp;quot;/&amp;gt;).[[File:Svarog 1 uruchomienie 2.png|thumb|500px|center|&amp;lt;figure id=&amp;quot;rys_2&amp;quot;/&amp;gt;Choosing location of configuration storage.]]&lt;br /&gt;
# To change the chosen language it is necessary to remove the &amp;lt;tt&amp;gt;signalml&amp;lt;/tt&amp;gt; directory.[[File:Svarog 1 uruchomienie 3.png|thumb|500px|center|&amp;lt;figure id=&amp;quot;rys_3&amp;quot;/&amp;gt;Custom location]]&lt;br /&gt;
#Before accessing Svarog GUI &amp;lt;xr id=&amp;quot;rys_5&amp;quot;/&amp;gt;, one gets the final warning &amp;lt;xr id=&amp;quot;rys_4&amp;quot;/&amp;gt;.[[File:Svarog 1 uruchomienie 4.png|thumb|800px|center|&amp;lt;figure id=&amp;quot;rys_4&amp;quot;/&amp;gt;Final warning]][[File:Svarog_uruchomiony.png|thumb|800px|center|&amp;lt;figure id=&amp;quot;rys_5&amp;quot;/&amp;gt;Svarog]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Disabling warnings==&lt;br /&gt;
Default Svarog warnings might be annoying. In order to disable them, choose &amp;lt;tt&amp;gt;Edit -&amp;gt; Preferences&amp;lt;/tt&amp;gt;. Open tab &amp;lt;tt&amp;gt; Miscellaneous&amp;lt;/tt&amp;gt;, choose &amp;lt;tt&amp;gt;Disable serious warning dialagos for preset operations&amp;lt;/tt&amp;gt; as in Fig &amp;lt;xr id=&amp;quot;fig:rys_6&amp;quot;/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[File:Svarog preferences disable warnings.png|thumb|600px|center|&amp;lt;figure id=&amp;quot;fig:rys_6&amp;quot;/&amp;gt; Disabling warnings]]&lt;br /&gt;
&lt;br /&gt;
==[[Svarog/Users Manual/Loading signal|Loading signals]]==&lt;br /&gt;
How to load signal:&lt;br /&gt;
*[[Svarog/Users_Manual/Loading_signal/From file|from file]],&lt;br /&gt;
*[[Svarog/Users_Manual/Loading_signal/Online|streamed from a port]],&lt;br /&gt;
*[[Svarog/Users_Manual/Loading_signal/Online|from an amplifier]].&lt;br /&gt;
==[[Svarog/Users Manual/Viewing books|Viewing books]]==&lt;br /&gt;
How to open and browse books (representations of signals obtained by [http://en.wikipedia.org/wiki/Matching_pursuit MP decomposition]).&lt;br /&gt;
&lt;br /&gt;
==[[Svarog/Users Manual/Recording|Recording signals]]==&lt;br /&gt;
How to record signals using Svarog.&lt;br /&gt;
==[[Svarog/Users_Manual/Loading_signal/Montages|Montage]]==&lt;br /&gt;
How to change, choose and save signal montages.&lt;br /&gt;
==[[Svarog/Users_Manual/Loading_signal/Filtering|Filtering]]==&lt;br /&gt;
How to filter the signal.&lt;br /&gt;
==[[Svarog/Users Manual/Tagging signal|Tagging signals]]==&lt;br /&gt;
How to tag an offline signal.&lt;br /&gt;
&lt;br /&gt;
==[[Svarog/Users Manual/FFT|Online/Offline FFT tool]]==&lt;br /&gt;
How to check the frequency content using FFT.&lt;br /&gt;
&amp;lt;!--==[[Svarog/Users Manual/Plugins|Plugins]]==&lt;br /&gt;
How to check frequency content of a part of a signal.--&amp;gt;&lt;br /&gt;
==[[Svarog/Users Manual/MP Decomposition|Signal decomposition using Matching Pursuit]]==&lt;br /&gt;
How to decompose the signal using the Matching Pursuit algorithm&lt;br /&gt;
==[[Svarog/Users Manual/Average Evoked Potentials|Average Evoked Potentials]]==&lt;br /&gt;
How to compute Average Evoked Potentials using Svarog.&lt;br /&gt;
==[[Svarog/Users Manual/Stager|Automatic sleep staging]]==&lt;br /&gt;
How to automatically stage sleeps EEG, obtaining a polysomnogram.&lt;br /&gt;
==[[Svarog/Users Manual/Artifact|Automatic artifact detection]]==&lt;br /&gt;
How to perform automatic EEG artifact detection using Svarog.&lt;br /&gt;
==[[Svarog/Users Manual/Presets|Preset interface in Svarog]]==&lt;br /&gt;
Saving configuration and settings in Svarog.&lt;br /&gt;
==[[Svarog/Users Manual/Export to EEGLab|Export to EEGLab]]==&lt;br /&gt;
Svarog allows to export the currently opened signal to EEGLab.&lt;br /&gt;
&lt;br /&gt;
==How to==&lt;br /&gt;
#[[Svarog/Users Manual/Change electrode names|Change electrode names]].&lt;br /&gt;
#[[Svarog/Users Manual/Check signal|Check quality of the signal received online]].&lt;br /&gt;
[[Category:Svarog - User manual]]&lt;br /&gt;
#[[Svarog/Users Manual/Add cap type|Add EEG cap type]]&lt;br /&gt;
&amp;lt;!--Mostly self-explanatory, yet contributions of users are surely welcome! :-)&lt;br /&gt;
&lt;br /&gt;
=== Filters-design-window attributes (in Polish by now) ===&lt;br /&gt;
no więc, jak jest filtr, to on ma passband (pasmo częstotliwości, które &lt;br /&gt;
przepuszcza) i stopband (pasmo częstotliwości, które filtr tłumi).&lt;br /&gt;
W przypadku filtru dolno/górnoprzepustowego jest po jednym takim paśmie, &lt;br /&gt;
w przypadku pasmowoprzepustowego jest jedno pasmo przepustowe i dwa &lt;br /&gt;
zaporowe, w przypadku zaporowego jest jedno pasmo zaporowe, dwa &lt;br /&gt;
przepustowe.&lt;br /&gt;
&lt;br /&gt;
Stopband attenuation [dB] - jak bardzo mają być tłumione wszystkie &lt;br /&gt;
częstotliwości z pasma zaporowego (np. 40 dB)&lt;br /&gt;
&lt;br /&gt;
passband ripple [dB] - jakie mogą być wahania tłumienia w paśmie &lt;br /&gt;
przepustowym (idealnie by było, gdyby pasmo przepustowe nie było nigdy &lt;br /&gt;
wcale tłumione, no ale filtrom jest 'łatwiej', żeby były jakieś wahania &lt;br /&gt;
w tym, że w niektórych częstotliwościach sobie trochę potłumią, tak ze 3 &lt;br /&gt;
dB).&lt;br /&gt;
&lt;br /&gt;
pomiedzy pasmem zaporowym a przepustowym jest zawsze pasmo przepustowe - &lt;br /&gt;
czestotliwosci należące do niego nie są ani tak stłumione, jak chcemy &lt;br /&gt;
ustawiając stopband attenuation, ani nie są tak dobrze przepusczzane jak &lt;br /&gt;
chce passband ripple.&lt;br /&gt;
&lt;br /&gt;
passband edge frequencies - skrajne częstotliwości z pasma przepustowego &lt;br /&gt;
(z jednej strony stykaja sie z pasmem przepustowym, a z drugiej z pasmem &lt;br /&gt;
przejsciowym)&lt;br /&gt;
stopband edge frequencies - skrajne częstotliwości z pasma zaporowego (z &lt;br /&gt;
jednej strony stykają się z pasmem zaporowym, a z drugiej z pasmem &lt;br /&gt;
przejściowym).&lt;br /&gt;
&lt;br /&gt;
odległość pomiędzy passband edge frequency a stopband edge frequency to &lt;br /&gt;
pasmo przejsciowe - im większe, tym niższy rząd filtra. 0.5 Hz to trochę &lt;br /&gt;
za mało, butterworth sobie nie poradzi, ellip może już bardziej.&lt;br /&gt;
&lt;br /&gt;
aha - zawsze trzeba sobie sprawdzić, czy projektant poradził sobie z &lt;br /&gt;
parametrami - przy zbyt restrykcyjnych parametrach - wąskie pasmo &lt;br /&gt;
(pasma) przejściowe, wysokie tłumienie w paśmie zaporowym (stopband &lt;br /&gt;
attenuation), niskie tłumienie w paśmie - on może bez ostrzeżenia &lt;br /&gt;
zaprojektować filtr, który nie zadziała - widać to wtedy na wykresie, &lt;br /&gt;
który wygląda słabo, dlatego trzeba sobie sprawdzać wykresy do &lt;br /&gt;
filtrów.&lt;br /&gt;
&lt;br /&gt;
=== How to add in-built standard filters to standar-filters-list (in Polish by now) ===&lt;br /&gt;
jest taki plik AbstractSignalTypeConfigurer.java i tam są pododawane.&lt;br /&gt;
&lt;br /&gt;
np.&lt;br /&gt;
&lt;br /&gt;
filters.add(new TimeDomainSampleFilter(FilterType.LOWPASS, ApproximationFunctionType.BUTTERWORTH, new double[] {20, 0}, new double[] {30, 0}, 5.0, 20.0));&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
parametry to:&lt;br /&gt;
&lt;br /&gt;
-typ filtra&lt;br /&gt;
&lt;br /&gt;
- rodzina&lt;br /&gt;
&lt;br /&gt;
- tablica częstotliwości granicznych pasma przepustowego&lt;br /&gt;
&lt;br /&gt;
- tablica częstotliwości granicznych pasma zaporowego&lt;br /&gt;
&lt;br /&gt;
- wahania w paśmie przepustowym&lt;br /&gt;
&lt;br /&gt;
- wymagane tłumienie w paśmie zaporowym&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
jak robisz lowpassa/highpassa to z w tych tablicach ważny jest tylko pierwszy element, ale drugi też wpisz (np. 0).&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Czasem się robi błąd - człek robi np lowpassa, a częstotliwość graniczna pasma przepustowego ustawia większą niż częstotliwość graniczna pasma zaporowego (czyli w częstotliwościach jest highpass, a w parametr pierwszy mówi, że to highpass) i analogiczne błedy dla bandpassów itd. W GUI takie coś jest zablokowane, ale w kodzie można to wpisać.&lt;br /&gt;
[[category:Svarog]]--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jarekz</name></author>
		
	</entry>
</feed>