-
Notifications
You must be signed in to change notification settings - Fork 1
/
GSoC2019.html
148 lines (113 loc) · 5.31 KB
/
GSoC2019.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content= "text/html; charset=utf-8">
<link type="text/css" href="main.css" rel="stylesheet">
<title>ZynAddSubFX GSOC 2019 Summary</title>
<link rel="stylesheet" type="text/css" href="bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="lighter.css">
</head>
<body>
<div class="wrapper">
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand nav-link" href="/"></a>
</div> <!-- /.navbar-header -->
<div class="collapse navbar-collapse navbar-ex1-collapse">
<ul class="nav navbar-nav navbar-right">
<li><a href="/">About</a></li>
<li><a href="zyn-fusion.html">Zyn-Fusion</a></li>
<li><a href="download.html">Download</a></li>
<li><a href="support.html">Support</a></li>
<li><a href="roadmap.html">Roadmap</a></li>
<li><a href="contribute.html">Contribute</a></li>
</ul>
</div> <!-- /.navbar-collapse -->
</div> <!-- /.container -->
</nav> <!-- /.navbar -->
<center><div align="left" id="content">
<h2>GSOC 2019 Project Summary Signal Scope</h2>
<h3>Goal of this project:</h3>
<p>The goal of this project is to create an Oscilloscope view for each Synthesis in ZynAddSubFX. </p>
<p>Users should be able to view intermediate waveform between different effect.</p>
<p>This allow users easily to see how different function affect waveform.</p>
<h3>Describe my work briefly:</h3>
<ul>
<li> Implemented Oscilloscope view</li>
<li> Implemented a edge triggering system for Oscilloscope</li>
<li> Implemented relevant UI</li>
<li> Extend Watch Points</li>
<li> Testing for above</li>
</ul>
<h3>What is done:</h3>
<ul>
<li>Extend watch point for Additive Synthesis</li>
<li>Extend watch point for Subtractive Synthesis</li>
<li>Extend watch point for PAD synthesis</li>
<li>Implemented Edge triggering with multiple note mechanism and multiple watch point sync</li>
<li>Implemented UI for Oscilloscope in Additive Synthesis</li>
<li>Implemented UI for Oscilloscope in Subtractive Synthesis</li>
<li>Implemented UI for Oscilloscope in PAD synthesis</li>
</ul>
<img src="images/gsoc2019.png" alt="Oscilloscope view" style="max-width: 100%;height: auto;">
<p>Screenshot of the oscilloscope view</p>
<h3>Commit link:</h3>
<h4>Adding Watch point, triggering and testing:</h4>
<ul>
<li><a href="https://github.com/zynaddsubfx/zynaddsubfx/pull/30"> edge trigger, extend watch points</a></li>
<li><a href="https://github.com/zynaddsubfx/zynaddsubfx/pull/36"> bug fix in edge trigger</a></li>
<li><a href="https://github.com/zynaddsubfx/zynaddsubfx/commit/a3ff226b1c68ba9e28104390edf4ca1f1d0d6c0b">Testing of trigger</a></li>
<li><a href="https://github.com/zynaddsubfx/zynaddsubfx/pull/37"> bug fix in extend watch points</a></li>
</ul>
<h4>Front end Oscilloscope view:</h4>
<ul>
<li><a href="https://github.com/mruby-zest/mruby-zest/pull/21"> Oscilloscope UI Widget creation</a></li>
<li><a href="https://github.com/mruby-zest/mruby-zest/pull/26"> Create Oscilloscope UI for different synthesis </a></li>
<li><a href="https://github.com/mruby-zest/mruby-zest/pull/27"> UI improvement </a></li>
</ul>
<h3>Future work:</h3>
<ul>
<li>Extend more watch points</li>
<li>Further UI improvement based on user feed back</li>
<li>Implement a spectrum</li>
</ul>
<h3>More Detailed Description:</h3>
<h4>Why we want oscilloscope view in ZynAddSubFX?</h4>
<p>ZynAddSubFX has three synthesis engine, ADsynth, Subsynth and PADsynth.
<br><br>
Here each synthesis engine is describe briefly:
<ul>
<li>Adsynth engine: Combine number voices into a single voice</li>
<li>SubSynth engine: generating white noise and subtracting harmonics from it</li>
<li>PadSynth engine: generating wavetables</li>
</ul>
<img src="images/diagram2.png" alt="synth diagram" style="max-width: 100%;height: auto;">
Without the oscilloscope, all the processes involved in synthesis sound are black box process to users.
With newly implemented oscilloscope feature, you can now look at the waveform at different synthesis stage and see what happen when a voice is mixed as in ADsynth or a harmonics is filtered in SubSynth.
</p>
<br>
<h4>The Triggering system of oscilloscope view in ZynAddSubFX:</h4>
<p>
<br>
The purpose of the triggering system is to stabilize waveform displayed.
<br>
This make it more eye pleasing to user compare to really unstable waveform.
<br>
In ZynAddSubFX, the type of triggering system implemented is simple edge.
In short, it compare the current input with previous input value. If there is a rising edge i.e. previous value is less than 0 and current value is equal or greater than 0.
It will start to capture value.
</p>
<br><br>
<p>By Micky.Y.Chan (michiboo)</p>
</div></center>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-72903778-1', 'auto');
ga('send', 'pageview');
</script>
</body>
</html>