G One and F One Surround System

This 5.1 system packs staggering performance into a really compact package, perfect for your living room. Enjoy amazing detail with deep and controlled bass – without taking up valuable living space.


Products in this solution:

5 × G One
1 × F One

Products in this solution

G One

SPL

96 dB

Frequency Response

67 Hz - 25 kHz (-6dB)

Dimensions

H 195 x W 121 x D 115 mm, with Iso-Pod™ (view in inches)

F One

SPL

100 dB

Frequency Response

35 Hz - 85 Hz (-6dB)

Dimensions

H 251 x W 305 x D 305 mm, (view in inches)

Key Technologies

Active Crossovers

Directivity Control Waveguide (DCW™) Technology

Intelligent Signal Sensing (ISS™) Technology

Iso-Pod™ Stand

Minimum Diffraction Enclosure (MDE™) Technology

Optimised Amplifiers

Protection Circuitry

Reflex Port Design

Room Response Compensation

Versatile Mountings

Bass Management System

How to set up your Genelec G Series Speakers and F Series Subwoofer System


Find Your Dealer

Type in your city to find your nearest Genelec dealer

Filters
X Filters
All
Studio monitors
Home speakers
AV Installation
Technical Service
Showroom
Experience Centre
SAM Certified
Smart IP Certified
Selected country
An error occurred while processing the template.
An error has occurred when reading existing sub-variable "iterator"; see cause exception! The type of the containing value was: extended_hash+string (org.json.JSONObject wrapped into f.e.b.StringModel)

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #list faqs.iterator() as faq  [in template "20116#20152#284632" at line 154, column 21]
----
1<#if cmsEntity?has_content> 
2 
3<#include "${templatesPath}/227222" />  
4<#assign siteDefaultLocale = portalUtil.getSiteDefaultLocale(groupId)?string?replace("_","-") > 
5<#assign reviewsPath = "/entity/relationships/reviews/"+profile.getCMSLangCode()+"/references" > 
6<#assign documentPath = "/entity/relationships/documents/"+profile.getCMSLangCode()+"/references" > 
7 
8<#assign products = [] > 
9<#if cmsEntity.getField(profile, "/entity/relationships/bundles")?has_content> 
10    <#assign bundles = cmsEntity.getField(profile, "/entity/relationships/bundles") > 
11    <#assign id = bundles.get(0).id> 
12    <#assign products = cmsBundleService.getProductsInBundle(profile, id)> 
13</#if> 
14 
15    <#list products as product> 
16        <#if product.getField(profile, "/entity/relationships/documents")?has_content> 
17            <#assign documents = product.getField(profile, "/entity/relationships/documents") > 
18        </#if> 
19        <#if product.getField(profile, reviewsPath)?has_content> 
20            <#assign reviews = product.getField(profile, reviewsPath) > 
21        </#if> 
22        <#if product.getField(profile, "/entity/relationships/faqs")?has_content> 
23            <#assign faqs = product.getField(profile, "/entity/relationships/faqs") > 
24            <#if groupField(product,"/entity/relationships/faqs", groupId)?has_content> 
25                <#assign faqs = groupField(product,"/entity/relationships/faqs", groupId).references > 
26            </#if>           
27        </#if> 
28         
29    </#list> 
30 
31<#if documents?has_content || reviews?has_content || faqs?has_content> 
32 
33<@sectionHeader title="${title}" menuTitle="${menuTitle}" cssClasses="bg-blue-darker product-page-downloads" id="section-downloads"/> 
34    <#assign reviewColContent = "" /> 
35    <#assign downloadColContent = "" /> 
36    <#assign documentColContent = "" /> 
37    <#assign documentType = ""> 
38<#list products as product> 
39    <#assign documentsDocumentTypes = ["operating manual", "guide", "other manual", "brochure", "catalogue", "datasheet", "software release note"]> 
40    <#assign downloadsDocumentTypes = ["line drawing","simulation file", "test signal", "software realese note", "certificate", "technical paper", "article or publication"]> 
41    <#assign reviewsDocumentTypes = ["review"]> 
42 
43    <#if product.getField(profile, "/entity/relationships/documents")?has_content> 
44        <#assign documents = product.getField(profile, documentPath) > 
45    </#if> 
46    <#if product.getField(profile, reviewsPath)?has_content> 
47        <#assign reviews = product.getField(profile, reviewsPath) > 
48    </#if> 
49    <#if product.getField(profile, "/entity/relationships/faqs")?has_content> 
50        <#assign faqs = product.getField(profile, "/entity/relationships/faqs") > 
51    </#if> 
52 
53<#if product.getField(profile, "/entity/relationships/documents")?has_content> 
54    <#list documents.iterator() as document> 
55 
56        <#if !document.properties.isNull("documentTypeKey")> 
57            <#assign documentType = localizeField(document.properties.documentTypeKey)?lower_case> 
58        <#elseif !document.properties.isNull("documentType")> 
59            <#assign documentType = localizeField(document.properties.documentType)?lower_case> 
60        </#if> 
61        <#if !document.assets.file.isNull("mediaType")> 
62            <#assign mediaType = document.assets.file.mediaType?replace(".","/")> 
63        </#if> 
64     
65 
66        <#if downloadsDocumentTypes?seq_contains(documentType)> 
67            <#assign downloadColContent> 
68                ${downloadColContent} 
69                <a href="${document.assets['file'].url}" target="_blank" rel="noopener noreferrer" class="type-${documentType?replace(" ", "-")}"> 
70                    <#if mediaType?keep_after_last("/") = "pdf"> 
71                        <span class="text-bolder">${localizeField(document.properties.title, profile.getCMSLangCode())}<span style="white-space: nowrap">&nbsp;<@linkIcon cssClasses="icon tiny-icon" alt="pdf" icon="pdf-green"/></span></span> 
72                    <#else> 
73                        <span class="text-bolder">${localizeField(document.properties.title, profile.getCMSLangCode())}<span style="white-space: nowrap">&nbsp;<@linkIcon cssClasses="icon tiny-icon" alt="" icon="download-green"/></span></span> 
74                    </#if> 
75                </a> 
76            </#assign> 
77 
78        <#elseif documentsDocumentTypes?seq_contains(documentType)> 
79        <#if !documentColContent?contains(document.assets['file'].url)> 
80            <#assign documentColContent> 
81                ${documentColContent} 
82                <a href="${document.assets['file'].url}" target="_blank" rel="noopener noreferrer" class="type-${documentType?replace(" ", "-")}"> 
83                    <span class="text-bolder">${localizeField(document.properties.title, profile.getCMSLangCode())}<span style="white-space: nowrap">&nbsp;<@linkIcon cssClasses="icon tiny-icon" alt="pdf" icon="pdf-green"/></span></span> 
84                </a> 
85            </#assign> 
86        </#if> 
87        </#if> 
88     
89    </#list> 
90</#if> 
91<#if product.getField(profile, reviewsPath)?has_content> 
92    <#if reviews?has_content> 
93        <#list reviews.iterator() as review> 
94            <#assign id = review.id> 
95            <#assign reviewColContent> 
96                ${reviewColContent} 
97                <#if !review.properties.isNull("url")> 
98                    <a href="${review.properties.url}" target="_blank" rel="noopener noreferrer" class="type-review"> 
99                        <span class="text-bolder">${review.properties.heading}<span style="white-space: nowrap">&nbsp;<@linkIcon cssClasses="icon tiny-icon" alt="" icon="external-green"/></span></span> 
100                    </a>  
101                <#else> 
102                    <a href="#/" onClick="openDocumentReviewPopup('${id}')" class="type-review"> 
103                        <span class="text-bolder"> 
104                            ${review.properties.heading} 
105                        </span> 
106                    </a> 
107                </#if> 
108            </#assign> 
109        </#list> 
110    </#if> 
111    </#if> 
112</#list> 
113 
114        <div class="row bg-white table-row-padding"> 
115         
116            <div class="col-lg-4"> 
117                <#if documentColContent?has_content> 
118                    <h3><@liferay.language key="documents"/></h3> 
119                     ${documentColContent} 
120                </#if> 
121                 
122            </div> 
123             
124            <div class="col-lg-4"> 
125                <#if downloadColContent?has_content> 
126                    <h3><@liferay.language key="downloads"/></h3> 
127                    ${downloadColContent} 
128                </#if> 
129            </div> 
130 
131 
132            <div class="col-lg-4"> 
133                <#if reviewColContent?has_content> 
134                    <h3><@liferay.language key="reviews"/></h3> 
135                    ${reviewColContent} 
136                </#if> 
137            </div> 
138             
139        </div> 
140     
141        <#assign faqCounter = 0 > 
142        <#assign showFAQCount = 3 > 
143         
144        <#list products as product> 
145         <#if product.getField(profile, "/entity/relationships/faqs")?has_content> 
146            <#assign faqs = product.getField(profile, "/entity/relationships/faqs") > 
147            <#if groupField(product,"/entity/relationships/faqs", groupId)?has_content> 
148                <#assign faqs = groupField(product,"/entity/relationships/faqs", groupId).references > 
149            </#if>            
150         
151         
152             
153 
154                    <#list faqs.iterator() as faq> 
155                    <#assign id = faq.id> 
156 
157                    <#if faqCounter == 0> 
158                        <div id="faqs" class="row bg-white table-row-padding"> 
159                            <div class="col-lg-7"> 
160                                <h3><@liferay.language key="faq"/></h3> 
161                    </#if> 
162 
163                        <div class="faq_element <#if faqCounter gte showFAQCount>hidden</#if> "> 
164                            <div class="faq_element_question col-lg-12" onclick="faqShowAnswer('${id}');"> 
165 
166                                <i class="icon-plus-sign" id="faq-plus-${id}"></i> 
167                                <i class="icon-minus-sign" id="faq-minus-${id}" style="display: none;"></i> 
168 
169                                <#assign question = faq.properties.question > 
170                                <a href="#faq_element_answer" class="ml-4"><h4 class="text-bolder">${question}</h4></a> 
171                            </div> 
172                            <div class="faq_element_answer ml-4" id="faq-element-answer-${id}"> 
173                                <#assign answer = cmsContentFormatterService.getMarkdown(faq.properties.answer)> 
174                                ${answer?replace('h1>|h2>', 'h5>', 'r')?replace('h3>', 'h6>')} 
175                            </div> 
176                        </div> 
177                        <#assign faqCounter = faqCounter + 1 > 
178                    </#list> 
179 
180            <#if faqCounter == (showFAQCount - 1)>    
181                </div>  
182                </div> 
183            </#if> 
184 
185            </#if> 
186        </#list> 
187        <#if faqCounter gt showFAQCount> 
188            <a href="#" onclick="$('#faqs .hidden').removeClass('hidden'); $(this).hide();return false;"><@liferay.language key="show-more"/></a> 
189        </#if> 
190<@sectionFooter/> 
191 
192 
193<#-- Popup --> 
194<div id="theme-popupDocumentReview" class="popup"> 
195<#list products as product> 
196<#if product.getField(profile, reviewsPath)?has_content> 
197<#assign reviews = product.getField(profile, reviewsPath) > 
198    <#list reviews.iterator() as review> 
199        <#assign id = review.id> 
200        
201            <#if review?index == 0 && product?index == 0> 
202                <div class="close-button-container"> 
203                    <button class="close" onClick="closeDocumentReviewPopup('${id}')" id="closeButtonDocumentReview-${id}"></button> 
204                </div> 
205 
206                <div class="panel popup-content" id="popupContentDocumentReview"> 
207                    <div class="panel-body"> 
208            </#if> 
209 
210                        <div class="documentReviewContent" id="documentReviewContent-${id}"> 
211                            <div class="h1" class="section-heading text-bolder">${review.properties.heading}</div> 
212                            <#if !review.properties.isNull("summary")> 
213                                <#assign summary = cmsContentFormatterService.getMarkdown(review.properties.summary)> 
214                                ${summary}  
215                            </#if> 
216                         
217                            <#if !review.properties.isNull("content")>  
218                                <#assign content = cmsContentFormatterService.getMarkdown(localizeField(review.properties.content, profile.getCMSLangCode()))> 
219                                ${content}  
220                            </#if> 
221                        </div> 
222 
223            <#if review?index == (review?size - 1)> 
224                    </div> 
225                </div> 
226            </#if> 
227             
228    </#list> 
229    </#if> 
230    </#list> 
231</div> 
232 
233 
234<style> 
235    .hidden { 
236        display: none; 
237
238    .faq_element i { 
239        float: left; 
240        line-height: 1.5em; 
241        color: #007a53; 
242
243 
244    .documentReviewContent { 
245    display:none; 
246
247 
248.documentReview-close-button { 
249    display: none; 
250
251 
252</style> 
253 
254<script> 
255function faqShowAnswer(id){ 
256 
257    var wasHidden = $("#faq-element-answer-"+id).is(":hidden"); 
258 
259    // Close all  
260    $("#faqs .faq_element_answer").hide(); 
261    $("#faqs .icon-plus-sign").show(); 
262    $("#faqs .icon-minus-sign").hide(); 
263 
264    if (wasHidden) { 
265        var answer = $("#faq-element-answer-"+id); 
266        $("#faq-plus-"+id).hide(); 
267        $("#faq-minus-"+id).show(); 
268        answer.show(); 
269        console.log(answer.parent().find(".faq_element_question")); 
270        if(!inViewport(answer.parent().find(".faq_element_question").first())) { 
271             
272            var scrollFix = 10; // some margin 
273            var questionPos = answer.parent().find(".faq_element_question").first().offset().top; 
274             
275            // ControlBar 
276            if ($("#ControlMenu").is(":visible")) { 
277                scrollFix += $("#ControlMenu").height(); 
278
279 
280            // subnavi  
281            if ($("#submenu-links").is(":visible")) { 
282                scrollFix += $("#submenu-links").height(); 
283            }  
284             
285            var scrollTo = questionPos - scrollFix; 
286             
287            $('html, body').animate({ 
288                scrollTop: (scrollTo-1) 
289            },500, function(){ 
290                setTimeout(function() { 
291                    $('html, body').scrollTop(scrollTo); 
292                }, 200); 
293            }); 
294
295 
296
297}; 
298 
299function openDocumentReviewPopup(reviewId) { 
300    openPopup("DocumentReview"); 
301    $('#documentReviewContent-'+reviewId).show(); 
302 
303    //update: 
304    $('.close').attr('id','closeButtonDocumentReview-'+reviewId); 
305    $('.close').attr('onclick', 'closeDocumentReviewPopup("' + reviewId + '")'); 
306    $('#closeButtonDocumentReview-'+reviewId).show(); 
307
308 
309function closeDocumentReviewPopup(reviewId) { 
310    closePopup("DocumentReview"); 
311    $('#documentReviewContent-'+reviewId).hide(); 
312 
313    //update: 
314    $('#closeButtonDocumentReview-'+reviewId).hide(); 
315
316 
317// close popup when clicking outside of the element 
318function closeSolutionDownloadsPopup(e) { 
319    if(!$('#popupContent'+"DocumentReview").is(e.target) &&  
320        $('#popupContent'+"DocumentReview").has(e.target).length == 0 &&  
321        $(e.target).attr('class') != 'close' && 
322        $('#theme-popup'+"DocumentReview").css("display") == "block"){ 
323        closePopup("DocumentReview"); 
324        $('div[id^=documentReviewContent-]').hide(); 
325
326}; 
327 
328$(document).on({ 
329    "mouseup": function (e) { closeSolutionDownloadsPopup(e); }, 
330    "touchstart": function (e) { closeSolutionDownloadsPopup(e); } 
331}); 
332 
333function inViewport(el) { 
334    var elementTop = el.offset().top; 
335    var elementBottom = elementTop + el.outerHeight(); 
336 
337    var viewportTop = $(window).scrollTop(); 
338    var viewportBottom = viewportTop + $(window).height(); 
339 
340    return elementBottom > viewportTop && elementTop < viewportBottom; 
341
342</script> 
343</#if> 
344 
345</#if>