Difference between revisions of "Zynthian Emulator Setup for Development"

From ZynthianWiki
Jump to navigation Jump to search
(Add Zynthian Emulator page)
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
  
 +
The developing+testing cycle for the Zynthian UI can be slow if you have to test everytime in a real Zynthian Box. Using your Zynthian Box as your development environment is not optimal, neither copying & testing in the Zynthian Box all the time. You can access the files remotely, or use a CLI editor like vi, but the SD card is not a reliable media when you make changes all the time and you have the risk or corrupting the filesystem and losing data.
 +
 +
For addressing these problems, i have created a Zynthian Emulation Environment that allows to run the Zynthian UI in a Linux Desktop/Laptop. It emulates the RBPi GPIO (wiringPiEmu wrapper) and the rotary encoders (using POSIX signals), so you run the Zynthian UI code without modifications using a special Wiring Layout. 
 +
 +
So you only need to create the right directory structure and compile/install the needed packages for running Zynthin UI. This includes libraries, tools, synth engines, plugins, etc.
  
 
== Installation / Setup: ==
 
== Installation / Setup: ==
There are two Setup Scripts:
+
 
 +
There are 2 different setup scripts for 2 flavours of Linux distributions:
 +
 
 
* [https://github.com/zynthian/zynthian-sys/blob/master/scripts/setup_system_desktop_jessie.sh Debian Jessie]
 
* [https://github.com/zynthian/zynthian-sys/blob/master/scripts/setup_system_desktop_jessie.sh Debian Jessie]
 
* [https://github.com/zynthian/zynthian-sys/blob/master/scripts/setup_system_desktop_fc23.sh Fedora 23]
 
* [https://github.com/zynthian/zynthian-sys/blob/master/scripts/setup_system_desktop_fc23.sh Fedora 23]
It can help you to setup your system, but probably you need to tweak a little. I recommend to run line by line from the terminal, trying to understand what you do ;-)
+
 
 +
These scripts can help you to setup your system, but certainly the scripts are out-dated and you may need to tweak a little bit. I recommend to run line by line from the terminal, trying to understand what you do. You can use the RBPi setup script as a reference, as it will be up-to-date.
  
 
== Execution: ==
 
== Execution: ==
Open 4 terminals. Of course, you can use less, but i prefer to use separate terminals:
+
Open 3 terminals. Of course, you can use less, but i prefer to use separate terminals:
  
 
'''Terminal 1: Jack Start & Midi Connections'''
 
'''Terminal 1: Jack Start & Midi Connections'''
 
<source lang="bash">
 
<source lang="bash">
qjackctl &
+
qjackctl &  
 
</source>
 
</source>
 +
You would need to configure your jackd system if it's not already done. You could test that it's working using some of the synth engines you already have installed.
  
 
'''Terminal 2: Alsa => Jack MIDI bridge'''
 
'''Terminal 2: Alsa => Jack MIDI bridge'''
Line 19: Line 28:
 
a2jmidid -e
 
a2jmidid -e
 
</source>
 
</source>
Perhaps you want to add the "a2jmidid -e" command to your qjackctl setup ;-)
+
Perhaps you want to add the "a2jmidid -e" command to your qjackctl setup and avoid this terminal ;-)
  
'''Terminal 3: Autoconnector'''
+
'''Terminal 3: Emulator'''
<source lang="bash">
 
cd zynthian
 
cd zynthian-ui
 
./zynthian_autoconnect_jack.py
 
</source>
 
 
 
'''Terminal 4: Emulator'''
 
 
<source lang="bash">
 
<source lang="bash">
 
cd zynthian
 
cd zynthian
Line 43: Line 45:
 
Zynthian UI will open the native engine GUI when available.
 
Zynthian UI will open the native engine GUI when available.
  
Also, don't forget to [http://blog.zynthian.org/index.php/2016/02/27/zynthian-emulator read this blog entry] about the Zynthian Emulator.
 
 
[[Zynthian Emulator|Zynthian Emulator]]
 
  
== Recipe ==
+
=== References ===
'''Holger:''' I have created a repository at github with some of my recipes. They are organized as a kind of shell script but mostly used for writing down what I have done. Feel free to look inside and try them. Simple manuals are also inside the repository, but the documentation is the code itself :-)
 
  
[https://github.com/dcoredump/zynthian-recipe https://github.com/dcoredump/zynthian-recipe]
+
* [[Zynthian_Emulator|Zynthian Emulator]]
 +
* [http://blog.zynthian.org/index.php/2016/02/27/zynthian-emulator Blog entry about the Zynthian Emulator]
 +
* [https://discourse.zynthian.org/search?q=Zynthian%20Emulator Forum Posts about Zynthian Emulator]

Latest revision as of 19:49, 18 February 2018

The developing+testing cycle for the Zynthian UI can be slow if you have to test everytime in a real Zynthian Box. Using your Zynthian Box as your development environment is not optimal, neither copying & testing in the Zynthian Box all the time. You can access the files remotely, or use a CLI editor like vi, but the SD card is not a reliable media when you make changes all the time and you have the risk or corrupting the filesystem and losing data.

For addressing these problems, i have created a Zynthian Emulation Environment that allows to run the Zynthian UI in a Linux Desktop/Laptop. It emulates the RBPi GPIO (wiringPiEmu wrapper) and the rotary encoders (using POSIX signals), so you run the Zynthian UI code without modifications using a special Wiring Layout.

So you only need to create the right directory structure and compile/install the needed packages for running Zynthin UI. This includes libraries, tools, synth engines, plugins, etc.

1 Installation / Setup:

There are 2 different setup scripts for 2 flavours of Linux distributions:

These scripts can help you to setup your system, but certainly the scripts are out-dated and you may need to tweak a little bit. I recommend to run line by line from the terminal, trying to understand what you do. You can use the RBPi setup script as a reference, as it will be up-to-date.

2 Execution:

Open 3 terminals. Of course, you can use less, but i prefer to use separate terminals:

Terminal 1: Jack Start & Midi Connections

qjackctl &

You would need to configure your jackd system if it's not already done. You could test that it's working using some of the synth engines you already have installed.

Terminal 2: Alsa => Jack MIDI bridge

a2jmidid -e

Perhaps you want to add the "a2jmidid -e" command to your qjackctl setup and avoid this terminal ;-)

Terminal 3: Emulator

cd zynthian
cd zynthian-emuface
./zynthian_emuface.py

If you set the environment variable "ZYNTHIANX" like this:

export ZYNTHIANX=$DISPLAY

Zynthian UI will open the native engine GUI when available.


2.1 References