Codebase list guitarix / debian/0.25.1-1
Imported Debian patch 0.25.1-1 Roland Stigge authored 11 years ago Ross Gammon committed 8 years ago
82 changed file(s) with 12982 addition(s) and 35 deletion(s). Raw diff Collapse all Expand all
0 guitarix2 (0.25.1) unstable; urgency=low
1 * some fixes for the LV2 plugs
2
3 -- brummer <brummer-@web.de> Mon, 31 Dec 2012 8:23:37 +0200
4
5 guitarix2 (0.25.0) unstable; urgency=low
6 * add LV2 amplifiers mono and stereo versions
7
8 -- brummer <brummer-@web.de> Fri, 28 Dec 2012 15:30:35 +0200
9
010 guitarix2 (0.24.3) unstable; urgency=low
111 * add dark theme rc-file
212 * fix new unsaved banks return no valid iter
0 guitarix (0.25.1-1) experimental; urgency=low
1
2 * New upstream release
3
4 -- Roland Stigge <stigge@antcom.de> Sun, 06 Jan 2013 14:36:36 +0100
5
06 guitarix (0.24.3-1) experimental; urgency=low
17
28 * New upstream release
7070 g_param_spec_int("framecount",
7171 P_("Framecount"),
7272 P_("Number of frames in the animation specified by the gtkrc"),
73 -1, 250, -1,
73 -1, 250, 0,
7474 GParamFlags(G_PARAM_READABLE|G_PARAM_STATIC_STRINGS)));
7575
7676 g_type_class_add_private(klass, sizeof (GxKnobPrivate));
4848 #define get_widget_id2(widget) (GX_PAINT_BOX_CLASS(GTK_OBJECT_GET_CLASS(widget))->widget_id2)
4949 #define get_widget_id3(widget) (GX_PAINT_BOX_CLASS(GTK_OBJECT_GET_CLASS(widget))->widget_id3)
5050 #define get_cab_id(widget) (GX_PAINT_BOX_CLASS(GTK_OBJECT_GET_CLASS(widget))->cab_id)
51 #define get_amp_id(widget) (GX_PAINT_BOX_CLASS(GTK_OBJECT_GET_CLASS(widget))->amp_id)
5152
5253
5354 static void gx_paint_box_class_init (GxPaintBoxClass *klass)
6667 klass->widget_id2 = "gxplate2";
6768 klass->widget_id3 = "gxplate3";
6869 klass->cab_id = "texture_cab";
70 klass->amp_id = "amp_skin";
6971 g_object_class_install_property(
7072 gobject_class, PROP_PAINT_FUNC,
7173 g_param_spec_string("paint-func",
199201 g_free(paint_box->paint_func);
200202 paint_box->paint_func = NULL;
201203 }
202 if (G_IS_OBJECT(paint_box->gxh_image)) {
203 g_object_unref(paint_box->gxh_image);
204 while (G_IS_OBJECT(paint_box->gxh_image)) {
205 g_object_unref(paint_box->gxh_image);
204206 }
205207 paint_box->gxh_image = NULL;
206 if (G_IS_OBJECT(paint_box->gxr_image)) {
207 g_object_unref(paint_box->gxr_image);
208 while (G_IS_OBJECT(paint_box->gxr_image)) {
209 g_object_unref(paint_box->gxr_image);
208210 }
209211 paint_box->gxr_image = NULL;
210212 GTK_OBJECT_CLASS(gx_paint_box_parent_class)->destroy(object);
650652 pat = cairo_pattern_create_linear (x0, y0, x0, y0+rect_height);
651653 //cairo_pattern_create_radial (-50, y0, 5,rect_width-10, rect_height, 20.0);
652654 set_skin_color(wi, pat);
655 cairo_set_source (cr, pat);
656
657
658 x1+=2;
659 y1+=2;
660 x0-=1;
661 y0-=1;
662 cairo_move_to (cr, x0, y0 + radius);
663 cairo_curve_to (cr, x0 , y0, x0 , y0, x0 + radius, y0);
664 cairo_line_to (cr, x1 - radius, y0);
665 cairo_curve_to (cr, x1, y0, x1, y0, x1, y0 + radius);
666 cairo_line_to (cr, x1 , y1 - radius);
667 cairo_curve_to (cr, x1, y1, x1, y1, x1 - radius, y1);
668 cairo_line_to (cr, x0 + radius, y1);
669 cairo_curve_to (cr, x0, y1, x0, y1, x0, y1- radius);
670 cairo_close_path (cr);
671
672
673 //cairo_rectangle (cr, x0+1,y0+1,rect_width-2,rect_height-1);
674 cairo_fill (cr);
675 cairo_pattern_destroy (pat);
676 cairo_destroy(cr);
677 gdk_region_destroy (region);
678 }
679
680 static void cabinet_expose(GtkWidget *wi, GdkEventExpose *ev)
681 {
682 cairo_t *cr;
683 cairo_pattern_t*pat;
684 /* create a cairo context */
685 cr = gdk_cairo_create(wi->window);
686 GdkRegion *region;
687 region = gdk_region_rectangle (&wi->allocation);
688 gdk_region_intersect (region, ev->region);
689 gdk_cairo_region (cr, region);
690 cairo_clip (cr);
691
692 double x0 = wi->allocation.x+1;
693 double y0 = wi->allocation.y+1;
694 double rect_width = wi->allocation.width-2;
695 double rect_height = wi->allocation.height-2;
696
697 double radius = 45.;
698 if (rect_width<45) radius = rect_width;
699 else if (rect_height<45) radius = rect_height;
700 double x1,y1;
701
702 x1=x0+rect_width-2;
703 y1=y0+rect_height-2;
704 x0+=1;
705 y0+=1;
706
707 cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
708 cairo_set_source_rgba(cr, 0.0, 0.0, 0.0, 0.0);
709 //cairo_paint(cr);
710 cairo_set_operator(cr, CAIRO_OPERATOR_OVER);
711 GdkPixbuf * stock_image =
712 gtk_widget_render_icon(wi,get_widget_id3(wi),(GtkIconSize)-1,NULL);
713
714 guchar *pb_pixel = gdk_pixbuf_get_pixels (stock_image);
715 gint pixbuf_rowstride = gdk_pixbuf_get_rowstride (stock_image);
716 gint width = gdk_pixbuf_get_width (stock_image);
717 gint height = gdk_pixbuf_get_height (stock_image);
718 cairo_surface_t *s_image =
719 cairo_image_surface_create_for_data
720 (pb_pixel,CAIRO_FORMAT_RGB24 ,width, height,pixbuf_rowstride);
721
722 pat = cairo_pattern_create_for_surface(s_image);
723 cairo_set_source (cr, pat);
724 cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT);
725
726 cairo_move_to (cr, x0, y0 + radius);
727 cairo_curve_to (cr, x0 , y0, x0 , y0, x0 + radius, y0);
728 cairo_line_to (cr, x1 - radius, y0);
729 cairo_curve_to (cr, x1, y0, x1, y0, x1, y0 + radius);
730 cairo_line_to (cr, x1 , y1 - radius);
731 cairo_curve_to (cr, x1, y1, x1, y1, x1 - radius, y1);
732 cairo_line_to (cr, x0 + radius, y1);
733 cairo_curve_to (cr, x0, y1, x0, y1, x0, y1- radius);
734 cairo_close_path (cr);
735
736 cairo_fill(cr);
737 g_object_unref(stock_image);
738 cairo_surface_destroy(s_image);
739
740
741 pat = cairo_pattern_create_linear (x0, y0, x0, y0+rect_height);
742 //cairo_pattern_create_radial (-50, y0, 5,rect_width-10, rect_height, 20.0);
743 set_rack_color(wi, pat);
653744 cairo_set_source (cr, pat);
654745
655746
10481139 double x,y;
10491140
10501141 if (spf == 6 || spf == 8) {
1142 if(strcmp(title,"oscilloscope")==0) return;
10511143 GdkPixbuf * stock_image;
10521144 if (spf == 6) {
10531145 stock_image =gtk_widget_render_icon(wi,get_widget_id2(wi),(GtkIconSize)-1,NULL);
19222014 gdk_region_destroy (region);
19232015 }
19242016
2017 static void line_expose(GtkWidget *wi, GdkEventExpose *ev)
2018 {
2019 cairo_t *cr;
2020 /* create a cairo context */
2021 cr = gdk_cairo_create(wi->window);
2022 GdkRegion *region;
2023 region = gdk_region_rectangle (&wi->allocation);
2024 gdk_region_intersect (region, ev->region);
2025 gdk_cairo_region (cr, region);
2026 cairo_clip (cr);
2027
2028 gint x0 = wi->allocation.x+3;
2029 gint y0 = wi->allocation.y+3;
2030 gint rect_width = wi->allocation.width-6;
2031 gint rect_height = wi->allocation.height-6;
2032
2033
2034 double radius = 12.;
2035 if (rect_width<12) radius = rect_width;
2036 else if (rect_height<12) radius = rect_height;
2037 double x1,y1;
2038
2039 x1=x0+rect_width;
2040 y1=y0+rect_height;
2041
2042 cairo_move_to (cr, x0, y0 + radius);
2043 cairo_curve_to (cr, x0 , y0, x0 , y0, x0 + radius, y0);
2044 cairo_line_to (cr, x1 - radius, y0);
2045 cairo_curve_to (cr, x1, y0, x1, y0, x1, y0 + radius);
2046 cairo_line_to (cr, x1 , y1 - radius);
2047 cairo_curve_to (cr, x1, y1, x1, y1, x1 - radius, y1);
2048 cairo_line_to (cr, x0 + radius, y1);
2049 cairo_curve_to (cr, x0, y1, x0, y1, x0, y1- radius);
2050 cairo_close_path (cr);
2051 cairo_set_line_width(cr, 4.0);
2052 cairo_set_source_rgb(cr, 0.2, 0.2, 0.2);
2053 cairo_stroke_preserve(cr);
2054 cairo_set_line_width(cr, 1.0);
2055 cairo_set_source_rgb(cr, 0, 0, 0);
2056 cairo_stroke(cr);
2057 cairo_destroy(cr);
2058 gdk_region_destroy (region);
2059 }
2060
19252061 static void gxhead_expose(GtkWidget *wi, GdkEventExpose *ev)
19262062 {
19272063 GxPaintBox *paintbox = GX_PAINT_BOX(wi);
19362072 int spf;
19372073
19382074 gtk_widget_style_get(GTK_WIDGET(wi), "icon-set", &spf, NULL);
2075
2076 if (spf >= 7) {
2077 rectangle_skin_color_expose(wi,ev);
2078 line_expose(wi,ev);
2079 if ( spf <10) {
2080 paintbox->gxh_image = gtk_widget_render_icon(wi,"guitarix",(GtkIconSize)-1,NULL);
2081 gdk_draw_pixbuf(GDK_DRAWABLE(wi->window), gdk_gc_new(GDK_DRAWABLE(wi->window)),
2082 paintbox->gxh_image, 0, 0,
2083 x0+38, y0+20, 131,26,
2084 GDK_RGB_DITHER_NORMAL, 0, 0);
2085 g_object_unref(paintbox->gxh_image);
2086 paintbox->gxh_image = NULL;
2087 }
2088 GdkPixbuf *stock_image = gtk_widget_render_icon(wi,"screw",(GtkIconSize)-1,NULL);
2089 gdk_draw_pixbuf(GDK_DRAWABLE(wi->window), gdk_gc_new(GDK_DRAWABLE(wi->window)),
2090 stock_image, 0, 0,
2091 x0+5, y0+5, 10,10,
2092 GDK_RGB_DITHER_NORMAL, 0, 0);
2093 gdk_draw_pixbuf(GDK_DRAWABLE(wi->window), gdk_gc_new(GDK_DRAWABLE(wi->window)),
2094 stock_image, 0, 0,
2095 x0+5, y0+rect_height-15, 10,10,
2096 GDK_RGB_DITHER_NORMAL, 0, 0);
2097 gdk_draw_pixbuf(GDK_DRAWABLE(wi->window), gdk_gc_new(GDK_DRAWABLE(wi->window)),
2098 stock_image, 0, 0,
2099 x0+rect_width-15, y0+rect_height-15, 10,10,
2100 GDK_RGB_DITHER_NORMAL, 0, 0);
2101 gdk_draw_pixbuf(GDK_DRAWABLE(wi->window), gdk_gc_new(GDK_DRAWABLE(wi->window)),
2102 stock_image, 0, 0,
2103 x0+rect_width-15, y0+5, 10,10,
2104 GDK_RGB_DITHER_NORMAL, 0, 0);
2105 g_object_unref(stock_image);
2106 return;
2107 }
19392108
19402109 if (nf != spf || ne_w1 != rect_width*rect_height || !(GDK_IS_PIXBUF (paintbox-> gxh_image))) {
19412110 ne_w1 = rect_width*rect_height;
19422111 nf = spf;
19432112 if (G_IS_OBJECT(paintbox-> gxh_image)) {
19442113 g_object_unref(paintbox->gxh_image);
2114 paintbox->gxh_image = NULL;
19452115 }
19462116 GdkPixbuf *stock_image, *frame;
19472117 stock_image = gtk_widget_render_icon(wi,get_stock_id(wi),(GtkIconSize)-1,NULL);
21922362 gdk_region_destroy (region);
21932363 }
21942364
2365 static void amp_skin_expose(GtkWidget *wi, GdkEventExpose *ev)
2366 {
2367 GdkRegion *region;
2368 region = gdk_region_rectangle (&wi->allocation);
2369 gdk_region_intersect (region, ev->region);
2370 GxPaintBox *paintbox = GX_PAINT_BOX(wi);
2371 gint x0 = wi->allocation.x;
2372 gint y0 = wi->allocation.y;
2373 gint w = wi->allocation.width;
2374 gint h = wi->allocation.height;
2375 static double ne_w = 0.;
2376 if (ne_w != w*h || !(GDK_IS_PIXBUF (paintbox-> gxr_image))) {
2377 ne_w = w*h;
2378 while (G_IS_OBJECT(paintbox-> gxr_image)) {
2379 g_object_unref(paintbox->gxr_image);
2380 }
2381 GdkPixbuf *stock_image = gtk_widget_render_icon(
2382 wi,get_amp_id(wi),(GtkIconSize)-1,NULL);
2383 paintbox->gxr_image = gdk_pixbuf_scale_simple(
2384 stock_image,wi->allocation.width ,wi->allocation.height , GDK_INTERP_NEAREST);
2385 g_object_unref(stock_image);
2386 //paintbox-> gxr_image = gtk_widget_render_icon(wi,get_amp_id(wi),(GtkIconSize)-1,NULL);
2387 }
2388 gdk_draw_pixbuf(GDK_DRAWABLE(wi->window), gdk_gc_new(GDK_DRAWABLE(wi->window)),
2389 paintbox-> gxr_image, 0, 0,
2390 x0, y0, w,h,
2391 GDK_RGB_DITHER_NORMAL, 0, 0);
2392 gdk_region_destroy (region);
2393 }
2394
21952395 static void level_meter_expose(GtkWidget *wi, GdkEventExpose *ev)
21962396 {
21972397 cairo_t *cr;
23202520 paint_box->expose_func = level_meter_expose;
23212521 } else if (strcmp(paint_func, "cab_expose") == 0) {
23222522 paint_box->expose_func = cab_expose;
2523 } else if (strcmp(paint_func, "cabinet_expose") == 0) {
2524 paint_box->expose_func = cabinet_expose;
2525 } else if (strcmp(paint_func, "amp_skin_expose") == 0) {
2526 paint_box->expose_func = amp_skin_expose;
23232527 } else {
23242528 paint_box->expose_func = 0;
23252529 }
5151 const gchar *widget_id2;
5252 const gchar *widget_id3;
5353 const gchar *cab_id;
54 const gchar *amp_id;
5455 };
5556
5657 GType gx_paint_box_get_type(void) G_GNUC_CONST;
7070 gdk_pixbuf_copy_area(image, 0, rect->height, rect->width, slider_height,
7171 image1, 0, rect->height-(int)sliderstate-slider_height);
7272 if (has_focus) {
73 gdk_pixbuf_saturate_and_pixelate(image1, image1, sat, FALSE);
73 //gdk_pixbuf_saturate_and_pixelate(image1, image1, sat, FALSE);
7474 if (paint_focus) {
7575 gtk_paint_focus(widget->style, widget->window, GTK_STATE_NORMAL, NULL, widget, NULL,
7676 rect->x, rect->y, rect->width, rect->height);
3737 { "minitoggle_on", pb_minitoggle_on },
3838 { "hslider", pb_hslider },
3939 { "smallknob", pb_smallknob1 },
40 { "smallknobr", pb_smallknob1 },
40 { "smallknobr", pb_knob_medium },
4141 { "switchit_off", pb_switchit_off },
4242 { "switchit_on", pb_switchit_on },
4343 { "switch_off", pb_switch_off },
6161 { "gxplate3", pb_gxplate3 },
6262 { "portdisplay", pb_portdisplay },
6363 { "texture_cab", pb_texture_cab },
64 { "guitarix", pb_guitarix },
65 { "screw", pb_screw },
66 { "amp_skin", pb_amp21 },
6467 { NULL, NULL },
6568 };
6669
1919 part of guitarix, use knobs with Gtk
2020 ******************************************************************************/
2121
22 #ifndef __GX_RADIO_BUTTON_H__
23 #define __GX_RADIO_BUTTON_H__
22 #ifndef __GX_INIT_H__
23 #define __GX_INIT_H__
2424
2525 #include <gtk/gtk.h>
2626
5252 "gxplate2.png",
5353 "gxplate3.png",
5454 "portdisplay.png",
55 "texture_cab.png"
55 "texture_cab.png",
56 "guitarix.png",
57 "screw.png",
58 "knob_medium.png",
59 "amp21.png"
5660 ]
5761
5862 bld(name = "img2c",
100104 prog = bld(
101105 features = ['cxx', 'cstaticlib'],
102106 includes = ['.'],
107 #cxxflags = ['-fPIC'],
103108 source = sources,
104109 uselib = ['GTHREAD', 'GTK2'],
105110 target = 'gxw',
0 prefix=/path
1 exec_prefix=${prefix}
2 libdir=${exec_prefix}/lib
3 datarootdir=${prefix}/share
4 datadir=${datarootdir}
5 includedir=${prefix}/include
6
7
8 Name: gxw+
9 Description: Additional widgets for the GTK toolkit
10 Version: 1
11 URL: http://www.gtk.org/
12 Requires: gtk+-2.0 >= 2.24.0
13 Libs: -L${libdir} -lgxw
14 Cflags: -I${includedir}/gxw
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
1111 const=True,
1212 help=('build shared library'),
1313 )
14 grp.add_option('--lib-dev',
15 action='store_const',
16 default=False,
17 const=True,
18 help=('install shared library headers'),
19 )
1420 grp.add_option('--generate-cpp-wrapper',
1521 action='store_const',
1622 default=False,
2834 conf.env["USE_GENERATED_CPP"] = False
2935 else:
3036 conf.env["USE_GENERATED_CPP"] = True
31 if Options.options.shared_lib:
37 if Options.options.shared_lib or Options.options.build_lv2:
3238 conf.env["GX_LIB_SHARED"] = True
3339 else:
3440 conf.env["GX_LIB_STATIC"] = True
41 if Options.options.lib_dev:
42 conf.env["GX_LIB_SHARED"] = True
43 conf.env["GX_LIB_DEV"] = True
44 conf.env["GX_LIB_STATIC"] = False
45
3546
3647 def template2cc(task):
3748 basename = os.path.splitext(
248259 else:
249260 bld(features = ['cxx', 'cstaticlib'],
250261 includes = ['..','../../libgxw'],
262 #cxxflags = ['-fPIC'],
251263 source = sources+["init.cc","wrap_init.cc"],
252264 uselib = ['GTKMM'],
253265 target = 'gxwmm',
3232 #include <gxwmm/regler.h>
3333 #include <gxwmm/selector.h>
3434 #include <gxwmm/smallknob.h>
35 #include <gxwmm/smallknobr.h>
3536 #include <gxwmm/switch.h>
3637 #include <gxwmm/toggleimage.h>
3738 #include <gxwmm/tuner.h>
4041 #include <gxwmm/waveview.h>
4142 #include <gxwmm/wheel.h>
4243 #include <gxwmm/portdisplay.h>
44 #include <gxwmm/init.h>
4345
4446 #endif /* __GXWMM_H__ */
0 prefix=/path
1 exec_prefix=${prefix}
2 libdir=${exec_prefix}/lib
3 datarootdir=${prefix}/share
4 datadir=${datarootdir}
5 includedir=${prefix}/include
6
7
8 Name: gxwmm
9 Description: Additional widgets for the GTKMM toolkit
10 Version: 1
11 URL: http://www.gtkmm.org/
12 Requires: atkmm-1.6 >= 2.22.2 giomm-2.4 >= 2.24 pangomm-1.4 >= 2.27.1 gtk+-2.0 >= 2.24.0 gtk+-unix-print-2.0 gdkmm-2.4
13 Libs: -L${libdir} -lgxwmm
14 Cflags: -I${includedir}/gxwmm -I${libdir}/gxwmm/include
276276
277277 style "gx_head_dark-b_black"
278278 {
279 fg[NORMAL] = "#e2dcdc"
279 fg[NORMAL] = { 0.6, 0.6, 0.6 }
280280 fg[ACTIVE] = { 0.2, 0.2, 0.2 }
281281 fg[PRELIGHT] = { 1.0, 1.0, 1.0 }
282282 fg[INSENSITIVE] = { 0.0, 0.0, 0.0 }
0 /*
1 * Copyright (C) 2012 Hermann Meyer, Andreas Degert, Pete Shorthose
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 * --------------------------------------------------------------------------
17 */
18
19 // generated by ../../tools/tube_transfer.py
20 // tube: 12AT7
21 // plate current function: triode
22 // mu: 60
23 // kx: 1.35
24 // kg1: 460
25 // kp: 300
26 // kvb: 300
27
28 table1d_imp<2001> tubetable_12AT7[2] =
29 {
30 {
31 // Ri = 68k
32 -5,5,200,2001, {
33 223.484971051,223.38189846,223.278606859,223.175096438,223.071367386,
34 222.967419894,222.863254153,222.758870355,222.654268692,222.549449358,
35 222.444412546,222.339158451,222.233687268,222.127999193,222.022094421,
36 221.915973151,221.809635579,221.703081904,221.596312324,221.489327039,
37 221.382126248,221.274710152,221.167078951,221.059232846,220.951172041,
38 220.842896736,220.734407134,220.62570344,220.516785857,220.407654588,
39 220.298309839,220.188751814,220.078980719,219.96899676,219.858800143,
40 219.748391075,219.637769762,219.526936413,219.415891235,219.304634436,
41 219.193166225,219.081486809,218.9695964,218.857495205,218.745183435,
42 218.6326613,218.519929009,218.406986775,218.293834807,218.180473316,
43 218.066902515,217.953122614,217.839133825,217.724936362,217.610530435,
44 217.495916257,217.381094042,217.266064002,217.150826349,217.035381299,
45 216.919729063,216.803869855,216.68780389,216.571531381,216.455052541,
46 216.338367587,216.22147673,216.104380187,215.987078171,215.869570897,
47 215.75185858,215.633941434,215.515819675,215.397493517,215.278963175,
48 215.160228865,215.041290801,214.922149198,214.802804272,214.683256238,
49 214.563505311,214.443551707,214.32339564,214.203037325,214.082476979,
50 213.961714816,213.840751051,213.719585899,213.598219576,213.476652297,
51 213.354884277,213.232915731,213.110746873,212.988377919,212.865809083,
52 212.74304058,212.620072625,212.496905433,212.373539217,212.249974193,
53 212.126210573,212.002248574,211.878088408,211.75373029,211.629174433,
54 211.504421051,211.379470357,211.254322565,211.128977889,211.003436541,
55 210.877698734,210.751764681,210.625634594,210.499308686,210.37278717,
56 210.246070256,210.119158158,209.992051086,209.864749253,209.737252869,
57 209.609562146,209.481677294,209.353598524,209.225326046,209.096860071,
58 208.968200809,208.839348469,208.710303261,208.581065394,208.451635077,
59 208.322012519,208.192197928,208.062191513,207.931993481,207.801604041,
60 207.671023398,207.540251762,207.409289338,207.278136334,207.146792955,
61 207.015259407,206.883535897,206.75162263,206.61951981,206.487227642,
62 206.354746332,206.222076083,206.089217099,205.956169583,205.82293374,
63 205.689509771,205.555897879,205.422098267,205.288111136,205.153936688,
64 205.019575125,204.885026646,204.750291453,204.615369746,204.480261724,
65 204.344967587,204.209487534,204.073821763,203.937970474,203.801933864,
66 203.66571213,203.52930547,203.392714081,203.255938159,203.1189779,
67 202.9818335,202.844505154,202.706993058,202.569297405,202.43141839,
68 202.293356206,202.155111047,202.016683105,201.878072574,201.739279645,
69 201.60030451,201.46114736,201.321808386,201.182287779,201.042585728,
70 200.902702422,200.762638052,200.622392806,200.481966872,200.341360438,
71 200.200573691,200.059606819,199.918460008,199.777133444,199.635627312,
72 199.493941798,199.352077087,199.210033363,199.067810809,198.92540961,
73 198.782829948,198.640072006,198.497135966,198.354022009,198.210730316,
74 198.067261068,197.923614446,197.779790629,197.635789796,197.491612126,
75 197.347257797,197.202726987,197.058019875,196.913136635,196.768077446,
76 196.622842482,196.477431919,196.331845933,196.186084697,196.040148386,
77 195.894037174,195.747751232,195.601290734,195.454655852,195.307846758,
78 195.160863622,195.013706614,194.866375906,194.718871667,194.571194065,
79 194.423343269,194.275319448,194.127122768,193.978753398,193.830211503,
80 193.681497249,193.532610803,193.383552329,193.234321992,193.084919955,
81 192.935346382,192.785601437,192.635685281,192.485598078,192.335339987,
82 192.18491117,192.034311788,191.883542,191.732601966,191.581491845,
83 191.430211795,191.278761974,191.127142539,190.975353646,190.823395453,
84 190.671268115,190.518971788,190.366506625,190.213872781,190.061070409,
85 189.908099664,189.754960697,189.60165366,189.448178705,189.294535983,
86 189.140725644,188.986747838,188.832602715,188.678290424,188.523811112,
87 188.369164928,188.214352019,188.059372531,187.904226611,187.748914404,
88 187.593436056,187.43779171,187.281981512,187.126005604,186.96986413,
89 186.813557231,186.65708505,186.500447728,186.343645406,186.186678223,
90 186.029546321,185.872249837,185.71478891,185.55716368,185.399374282,
91 185.241420854,185.083303532,184.925022452,184.766577751,184.607969561,
92 184.449198018,184.290263255,184.131165406,183.971904602,183.812480977,
93 183.652894661,183.493145785,183.33323448,183.173160876,183.012925102,
94 182.852527286,182.691967557,182.531246043,182.37036287,182.209318165,
95 182.048112054,181.886744663,181.725216116,181.563526537,181.401676051,
96 181.239664781,181.077492849,180.915160377,180.752667487,180.590014299,
97 180.427200936,180.264227515,180.101094157,179.93780098,179.774348102,
98 179.610735642,179.446963716,179.283032441,179.118941932,178.954692305,
99 178.790283676,178.625716158,178.460989865,178.29610491,178.131061407,
100 177.965859466,177.8004992,177.634980719,177.469304135,177.303469556,
101 177.137477092,176.971326852,176.805018943,176.638553475,176.471930553,
102 176.305150284,176.138212774,175.971118129,175.803866452,175.63645785,
103 175.468892424,175.301170279,175.133291517,174.965256239,174.797064548,
104 174.628716544,174.460212328,174.291551999,174.122735656,173.953763399,
105 173.784635325,173.615351532,173.445912117,173.276317175,173.106566804,
106 172.936661098,172.766600153,172.596384061,172.426012917,172.255486814,
107 172.084805844,171.9139701,171.742979672,171.571834651,171.400535128,
108 171.229081192,171.057472933,170.885710438,170.713793796,170.541723094,
109 170.36949842,170.197119859,170.024587497,169.851901419,169.679061711,
110 169.506068455,169.332921736,169.159621635,168.986168237,168.812561622,
111 168.638801872,168.464889067,168.290823288,168.116604613,167.942233123,
112 167.767708895,167.593032007,167.418202536,167.24322056,167.068086154,
113 166.892799395,166.717360356,166.541769112,166.366025738,166.190130307,
114 166.014082891,165.837883563,165.661532395,165.485029456,165.308374819,
115 165.131568552,164.954610726,164.777501409,164.60024067,164.422828575,
116 164.245265193,164.06755059,163.889684831,163.711667983,163.533500109,
117 163.355181276,163.176711545,162.998090981,162.819319646,162.640397602,
118 162.46132491,162.282101632,162.102727828,161.923203558,161.743528881,
119 161.563703855,161.383728539,161.20360299,161.023327265,160.842901421,
120 160.662325513,160.481599598,160.300723728,160.11969796,159.938522345,
121 159.757196938,159.57572179,159.394096954,159.212322481,159.030398422,
122 158.848324827,158.666101745,158.483729225,158.301207317,158.118536068,
123 157.935715525,157.752745735,157.569626745,157.3863586,157.202941345,
124 157.019375024,156.835659683,156.651795363,156.467782109,156.283619962,
125 156.099308963,155.914849155,155.730240578,155.545483271,155.360577274,
126 155.175522626,154.990319366,154.80496753,154.619467157,154.433818283,
127 154.248020943,154.062075174,153.87598101,153.689738486,153.503347636,
128 153.316808491,153.130121087,152.943285453,152.756301622,152.569169625,
129 152.381889493,152.194461254,152.006884938,151.819160575,151.631288191,
130 151.443267815,151.255099474,151.066783193,150.878318999,150.689706918,
131 150.500946973,150.312039189,150.122983589,149.933780197,149.744429035,
132 149.554930124,149.365283487,149.175489143,148.985547114,148.795457417,
133 148.605220074,148.414835102,148.224302518,148.033622341,147.842794587,
134 147.651819272,147.460696413,147.269426023,147.078008117,146.88644271,
135 146.694729815,146.502869444,146.31086161,146.118706324,145.926403598,
136 145.733953442,145.541355866,145.348610879,145.15571849,144.962678708,
137 144.76949154,144.576156994,144.382675075,144.18904579,143.995269144,
138 143.801345143,143.60727379,143.413055089,143.218689043,143.024175656,
139 142.829514928,142.634706862,142.439751458,142.244648717,142.049398638,
140 141.854001221,141.658456465,141.462764367,141.266924924,141.070938135,
141 140.874803995,140.678522501,140.482093647,140.285517428,140.088793838,
142 139.891922871,139.694904521,139.497738779,139.300425637,139.102965087,
143 138.905357119,138.707601724,138.509698892,138.311648611,138.113450871,
144 137.915105658,137.716612961,137.517972767,137.319185062,137.120249831,
145 136.921167061,136.721936735,136.522558838,136.323033353,136.123360263,
146 135.923539552,135.7235712,135.52345519,135.323191502,135.122780116,
147 134.922221012,134.72151417,134.520659568,134.319657184,134.118506996,
148 133.917208981,133.715763115,133.514169375,133.312427735,133.110538172,
149 132.908500658,132.706315168,132.503981676,132.301500154,132.098870574,
150 131.896092908,131.693167128,131.490093204,131.286871106,131.083500803,
151 130.879982266,130.676315463,130.472500361,130.268536929,130.064425133,
152 129.860164941,129.655756317,129.451199229,129.24649364,129.041639516,
153 128.836636821,128.631485518,128.426185571,128.220736941,128.015139592,
154 127.809393485,127.603498581,127.397454841,127.191262225,126.984920693,
155 126.778430205,126.57179072,126.365002195,126.158064589,125.950977859,
156 125.743741963,125.536356858,125.328822499,125.121138842,124.913305843,
157 124.705323458,124.497191639,124.288910343,124.080479522,123.87189913,
158 123.66316912,123.454289445,123.245260057,123.036080908,122.82675195,
159 122.617273133,122.407644409,122.197865728,121.987937041,121.777858298,
160 121.567629447,121.357250439,121.146721222,120.936041745,120.725211957,
161 120.514231806,120.30310124,120.091820207,119.880388654,119.668806528,
162 119.457073777,119.245190347,119.033156186,118.82097124,118.608635455,
163 118.396148777,118.183511154,117.970722531,117.757782854,117.544692069,
164 117.331450122,117.118056958,116.904512525,116.690816767,116.476969631,
165 116.262971063,116.048821008,115.834519413,115.620066224,115.405461388,
166 115.19070485,114.975796559,114.76073646,114.545524502,114.330160631,
167 114.114644796,113.898976945,113.683157025,113.467184988,113.25106078,
168 113.034784354,112.818355658,112.601774644,112.385041264,112.168155469,
169 111.951117213,111.733926449,111.516583131,111.299087215,111.081438657,
170 110.863637413,110.645683442,110.427576702,110.209317154,109.990904759,
171 109.772339479,109.553621277,109.334750119,109.115725972,108.896548803,
172 108.677218581,108.457735278,108.238098866,108.01830932,107.798366617,
173 107.578270734,107.358021653,107.137619356,106.917063827,106.696355055,
174 106.475493028,106.25447774,106.033309184,105.81198736,105.590512267,
175 105.36888391,105.147102295,104.925167434,104.703079339,104.480838028,
176 104.258443522,104.035895848,103.813195034,103.590341113,103.367334124,
177 103.14417411,102.920861118,102.697395202,102.473776418,102.250004831,
178 102.02608051,101.802003529,101.577773971,101.353391923,101.128857479,
179 100.904170741,100.679331818,100.454340825,100.229197888,100.003903138,
180 99.778456717,99.5528587734,99.3271094667,99.1012089653,98.8751574477,
181 98.6489551024,98.4226021292,98.1960987386,97.969445153,97.7426416069,
182 97.5156883471,97.2885856338,97.0613337405,96.833932955,96.6063835797,
183 96.3786859321,96.1508403457,95.9228471705,95.6947067733,95.4664195391,
184 95.2379858709,95.0094061912,94.7806809423,94.5518105871,94.3227956102,
185 94.0936365183,93.8643338415,93.6348881337,93.405299974,93.1755699676,
186 92.9456987464,92.7156869704,92.4855353287,92.2552445406,92.0248153569,
187 91.7942485605,91.5635449686,91.3327054332,91.1017308426,90.8706221232,
188 90.6393802404,90.4080062002,90.1765010512,89.9448658855,89.7131018408,
189 89.4812101019,89.2491919027,89.0170485276,88.784781314,88.5523916537,
190 88.3198809952,88.0872508458,87.8545027735,87.6216384098,87.3886594513,
191 87.1555676628,86.9223648793,86.6890530085,86.4556340339,86.2221100172,
192 85.9884831011,85.7547555124,85.5209295646,85.2870076616,85.0529923004,
193 84.8188860745,84.5846916773,84.3504119056,84.1160496633,83.8816079647,
194 83.647089939,83.4124988332,83.1778380171,82.9431109867,82.7083213689,
195 82.4734729256,82.2385695581,82.0036153116,81.7686143804,81.5335711119,
196 81.2984900118,81.0633757495,80.8282331624,80.5930672616,80.3578832372,
197 80.1226864634,79.8874825043,79.6522771191,79.417076268,79.1818861179,
198 78.946713048,78.7115636561,78.4764447639,78.2413634234,78.0063269226,
199 77.7713427919,77.5364188098,77.3015630089,77.0667836823,76.832089389,
200 76.5974889606,76.3629915064,76.1286064198,75.8943433838,75.6602123765,
201 75.4262236766,75.1923878688,74.9587158488,74.7252188281,74.4919083386,
202 74.2587962373,74.0258947099,73.7932162747,73.5607737859,73.3285804366,
203 73.0966497613,72.8649956377,72.6336322885,72.4025742822,72.1718365333,
204 71.9414343025,71.7113831952,71.4816991604,71.2523984878,71.0234978052,
205 70.7950140739,70.5669645844,70.3393669505,70.1122391024,69.8855992793,
206 69.659466021,69.4338581579,69.2087948004,68.9842953275,68.7603793738,
207 68.5370668156,68.3143777559,68.0923325085,67.8709515808,67.6502556556,
208 67.4302655713,67.2110023025,66.9924869376,66.7747406569,66.5577847094,
209 66.341640388,66.1263290049,65.9118718655,65.6982902415,65.485605344,
210 65.2738382953,65.0630101007,64.8531416195,64.644253536,64.4363663304,
211 64.2295002488,64.0236752742,63.8189110973,63.6152270868,63.4126422611,
212 63.2111752599,63.0108443162,62.8116672294,62.613661339,62.4168434988,
213 62.2212300529,62.026836812,61.8336790312,61.6417713894,61.4511279693,
214 61.2617622392,61.0736870367,60.8869145531,60.7014563202,60.5173231979,
215 60.3345253642,60.1530723064,59.9729728143,59.7942349746,59.6168661678,
216 59.4408730656,59.2662616311,59.0930371202,58.9212040837,58.7507663728,
217 58.5817271438,58.4140888665,58.2478533317,58.0830216621,57.9195943226,
218 57.757571133,57.5969512811,57.437733337,57.2799152681,57.1234944552,
219 56.9684677091,56.8148312878,56.6625809145,56.5117117958,56.3622186407,
220 56.2140956792,56.0673366819,55.9219349798,55.777883483,55.6351747015,
221 55.4938007636,55.3537534367,55.2150241456,55.0776039925,54.9414837759,
222 54.8066540091,54.6731049389,54.5408265635,54.4098086506,54.2800407545,
223 54.1515122329,54.0242122639,53.8981298612,53.7732538906,53.6495730842,
224 53.5270760555,53.4057513131,53.2855872745,53.166572279,53.0486945999,
225 52.9319424571,52.816304028,52.7017674586,52.5883208741,52.4759523889,
226 52.3646501157,52.2544021747,52.1451967025,52.0370218595,51.9298658379,
227 51.8237168688,51.718563229,51.6143932475,51.5111953109,51.4089578697,
228 51.3076694432,51.2073186239,51.1078940829,51.0093845734,50.9117789348,
229 50.815066096,50.7192350793,50.6242750025,50.5301750825,50.4369246372,
230 50.3445130879,50.2529299611,50.1621648909,50.0722076197,49.9830480004,
231 49.894675997,49.8070816859,49.7202552566,49.6341870125,49.5488673716,
232 49.4642868666,49.3804361451,49.2973059702,49.2148872203,49.1331708887,
233 49.052148084,48.9718100296,48.892148063,48.8131536359,48.7348183134,
234 48.6571337734,48.5800918059,48.5036843125,48.4279033056,48.3527409073,
235 48.2781893488,48.2042409693,48.1308882153,48.0581236393,47.9859398991,
236 47.9143297565,47.8432860762,47.772801825,47.7028700705,47.6334839797,
237 47.5646368183,47.4963219495,47.4285328322,47.3612630208,47.2945061629,
238 47.2282559993,47.1625063616,47.0972511721,47.0324844415,46.9682002687,
239 46.9043928391,46.8410564231,46.7781853756,46.7157741343,46.6538172188,
240 46.5923092291,46.5312448446,46.4706188231,46.4104259995,46.3506612843,
241 46.2913196632,46.2323961953,46.1738860123,46.1157843173,46.0580863839,
242 46.0007875547,45.9438832405,45.8873689195,45.8312401357,45.7754924981,
243 45.7201216798,45.665123417,45.6104935076,45.5562278108,45.5023222456,
244 45.4487727904,45.3955754813,45.3427264119,45.2902217321,45.238057647,
245 45.1862304162,45.1347363532,45.0835718238,45.0327332461,44.982217089,
246 44.9320198716,44.8821381626,44.8325685792,44.7833077865,44.7343524964,
247 44.6856994674,44.6373455033,44.5892874528,44.5415222087,44.4940467071,
248 44.4468579267,44.3999528883,44.3533286537,44.3069823257,44.2609110467,
249 44.2151119985,44.1695824018,44.124319515,44.0793206341,44.034583092,
250 43.9901042576,43.9458815358,43.9019123661,43.8581942231,43.8147246147,
251 43.7715010829,43.728521202,43.6857825789,43.6432828524,43.6010196926,
252 43.5589908004,43.5171939069,43.4756267733,43.4342871901,43.3931729766,
253 43.3522819807,43.3116120784,43.2711611731,43.2309271955,43.1909081027,
254 43.1511018785,43.1115065323,43.0721200993,43.0329406393,42.9939662373,
255 42.9551950023,42.9166250673,42.878254589,42.8400817471,42.8021047443,
256 42.7643218057,42.7267311786,42.6893311322,42.6521199569,42.6150959646,
257 42.5782574877,42.5416028795,42.5051305131,42.4688387817,42.4327260982,
258 42.3967908945,42.3610316219,42.32544675,42.2900347672,42.2547941799,
259 42.2197235125,42.184821307,42.1500861227,42.1155165361,42.0811111406,
260 42.0468685461,42.0127873789,41.9788662816,41.9451039126,41.9114989459,
261 41.8780500709,41.8447559925,41.8116154303,41.7786271187,41.7457898069,
262 41.7131022583,41.6805632504,41.6481715748,41.6159260367,41.5838254549,
263 41.5518686617,41.5200545023,41.4883818353,41.4568495316,41.4254564751,
264 41.394201562,41.3630837008,41.3321018122,41.3012548286,41.2705416944,
265 41.2399613655,41.2095128092,41.1791950042,41.1490069403,41.1189476183,
266 41.0890160496,41.0592112567,41.0295322723,40.9999781396,40.970547912,
267 40.9412406531,40.9120554366,40.8829913457,40.8540474735,40.8252229228,
268 40.7965168056,40.7679282435,40.7394563671,40.7111003161,40.6828592393,
269 40.6547322942,40.626718647,40.5988174728,40.5710279548,40.5433492849,
270 40.5157806631,40.4883212976,40.4609704049,40.433727209,40.4065909422,
271 40.3795608443,40.3526361629,40.3258161531,40.2991000774,40.2724872058,
272 40.2459768155,40.2195681909,40.1932606236,40.1670534118,40.1409458612,
273 40.114937284,40.089026999,40.063214332,40.0374986152,40.0118791874,
274 39.9863553935,39.9609265851,39.9355921199,39.9103513619,39.8852036809,
275 39.8601484532,39.8351850605,39.8103128908,39.7855313379,39.7608398011,
276 39.7362376854,39.7117244017,39.6872993662,39.6629620004,39.6387117317,
277 39.6145479924,39.5904702202,39.5664778582,39.5425703542,39.5187471617,
278 39.4950077387,39.4713515484,39.447778059,39.4242867434,39.4008770793,
279 39.3775485493,39.3543006404,39.3311328446,39.3080446582,39.2850355821,
280 39.2621051218,39.2392527869,39.2164780918,39.193780555,39.1711596991,
281 39.1486150512,39.1261461426,39.1037525085,39.0814336882,39.0591892253,
282 39.0370186672,39.0149215651,38.9928974745,38.9709459543,38.9490665676,
283 38.9272588811,38.9055224652,38.883856894,38.8622617454,38.8407366006,
284 38.8192810448,38.7978946663,38.7765770572,38.7553278128,38.7341465321,
285 38.7130328173,38.6919862739,38.6710065108,38.6500931402,38.6292457774,
286 38.608464041,38.5877475528,38.5670959377,38.5465088236,38.5259858415,
287 38.5055266257,38.485130813,38.4647980436,38.4445279604,38.4243202094,
288 38.4041744393,38.3840903017,38.3640674511,38.3441055447,38.3242042424,
289 38.3043632069,38.2845821037,38.2648606009,38.2451983691,38.2255950817,
290 38.2060504147,38.1865640465,38.1671356581,38.1477649333,38.1284515578,
291 38.1091952204,38.0899956119,38.0708524256,38.0517653574,38.0327341052,
292 38.0137583696,37.9948378534,37.9759722615,37.9571613012,37.9384046823,
293 37.9197021164,37.9010533177,37.8824580021,37.8639158882,37.8454266964,
294 37.8269901493,37.8086059716,37.7902738901,37.7719936336,37.753764933,
295 37.7355875212,37.717461133,37.6993855054,37.6813603772,37.6633854891,
296 37.6454605838,37.6275854059,37.6097597018,37.59198322,37.5742557106,
297 37.5565769256,37.5389466189,37.521364546,37.5038304645,37.4863441334,
298 37.4689053137,37.4515137681,37.4341692609,37.4168715581,37.3996204275,
299 37.3824156386,37.3652569623,37.3481441714,37.3310770401,37.3140553445,
300 37.297078862,37.2801473717,37.2632606542,37.2464184918,37.2296206681,
301 37.2128669684,37.1961571795,37.1794910896,37.1628684884,37.1462891671,
302 37.1297529184,37.1132595362,37.0968088162,37.0804005552,37.0640345515,
303 37.0477106048,37.0314285162,37.0151880881,36.9989891244,36.9828314301,
304 36.9667148116,36.9506390768,36.9346040347,36.9186094956,36.9026552713,
305 36.8867411745,36.8708670195,36.8550326217,36.8392377978,36.8234823655,
306 36.807766144,36.7920889536,36.7764506158,36.7608509532,36.7452897896,
307 36.7297669502,36.714282261,36.6988355493,36.6834266436,36.6680553734,
308 36.6527215694,36.6374250634,36.6221656883,36.606943278,36.5917576675,
309 36.5766086929,36.5614961915,36.5464200014,36.5313799619,36.5163759132,
310 36.5014076967,36.4864751547,36.4715781305,36.4567164685,36.4418900139,
311 36.4270986131,36.4123421134,36.3976203629,36.382933211,36.3682805076,
312 36.353662104,36.3390778522,36.324527605,36.3100112165,36.2955285412,
313 36.2810794351,36.2666637545,36.252281357,36.237932101,36.2236158457,
314 36.2093324512,36.1950817784,36.1808636892,36.1666780462,36.152524713,
315 36.1384035538,36.1243144338,36.1102572191,36.0962317763,36.0822379733,
316 36.0682756782,36.0543447604,36.0404450898,36.0265765373,36.0127389743,
317 35.9989322732,35.9851563071,35.9714109499,35.957696076,35.944011561,
318 35.9303572808,35.9167331123,35.903138933,35.8895746213,35.8760400561,
319 35.8625351171,35.8490596847,35.8356136401,35.822196865,35.808809242,
320 35.7954506543,35.7821209857,35.7688201207,35.7555479447,35.7423043434,
321 35.7290892035,35.715902412,35.7027438569,35.6896134267,35.6765110104,
322 35.663436498,35.6503897796,35.6373707465,35.6243792901,35.6114153029,
323 35.5984786777,35.5855693079,35.5726870876,35.5598319116,35.5470036751,
324 35.534202274,35.5214276048,35.5086795644,35.4959580506,35.4832629614,
325 35.4705941957,35.4579516528,35.4453352325,35.4327448353,35.4201803622,
326 35.4076417148,35.3951287951,35.3826415057,35.3701797498,35.3577434311,
327 35.3453324539,35.3329467228,35.3205861432,35.3082506207,35.2959400619,
328 35.2836543733,35.2713934625,35.2591572371,35.2469456055,35.2347584766,
329 35.2225957595,35.2104573643,35.198343201,35.1862531805,35.174187214,
330 35.1621452133,35.1501270905,35.1381327583,35.1261621298,35.1142151186,
331 35.1022916388,35.0903916048,35.0785149317,35.0666615348,35.0548313299,
332 35.0430242335,35.0312401621,35.0194790329,35.0077407637,34.9960252724,
333 34.9843324774,34.9726622977,34.9610146526,34.9493894618,34.9377866455,
334 34.9262061242,34.9146478189,34.903111651,34.8915975423,34.880105415,
335 34.8686351915,34.8571867951,34.845760149,34.8343551769,34.8229718032,
336 34.8116099522,34.800269549,34.7889505189,34.7776527876,34.7663762811,
337 34.7551209259,34.7438866488,34.732673377,34.7214810381,34.7103095599,
338 34.6991588708,34.6880288994,34.6769195746,34.665830826,34.654762583,
339 34.6437147759,34.632687335,34.6216801911,34.6106932752,34.5997265188,
340 34.5887798536,34.5778532119,34.5669465259,34.5560597285,34.5451927529,
341 34.5343455323,34.5235180007,34.5127100921,34.5019217408,34.4911528817,
342 34.4804034497,34.4696733802,34.458962609,34.4482710719,34.4375987053,
343 34.4269454458,34.4163112303,34.405695996,34.3950996804,34.3845222213,
344 34.373963557,34.3634236256,34.3529023661,34.3423997173,34.3319156186,
345 34.3214500095,34.3110028299,34.30057402,34.2901635202,34.2797712711,
346 34.2693972139,34.2590412897,34.2487034402,34.2383836071,34.2280817325,
347 34.2177977589,34.2075316288,34.1972832853,34.1870526713,34.1768397305,
348 34.1666444064,34.1564666431,34.1463063848,34.1361635759,34.1260381613,
349 34.1159300859,34.1058392949,34.0957657339,34.0857093486,34.075670085,
350 34.0656478894,34.0556427083,34.0456544884,34.0356831767,34.0257287205,
351 34.0157910671,34.0058701643,33.9959659601,33.9860784026,33.9762074403,
352 33.9663530217,33.9565150959,33.9466936118,33.9368885189,33.9270997666,
353 33.9173273049,33.9075710837,33.8978310533,33.8881071641,33.8783993668,
354 33.8687076124,33.8590318519,33.8493720367,33.8397281184,33.8301000487,
355 33.8204877797,33.8108912635,33.8013104526,33.7917452996,33.7821957572,
356 33.7726617786,33.763143317,33.7536403258,33.7441527588,33.7346805697,
357 33.7252237126,33.7157821418,33.7063558118,33.6969446771,33.6875486927,
358 33.6781678136,33.6688019951,33.6594511925,33.6501153616,33.6407944581,
359 33.631488438,33.6221972577,33.6129208733,33.6036592416,33.5944123194,
360 33.5851800634,33.575962431,33.5667593793,33.5575708659,33.5483968486,
361 33.539237285,33.5300921334,33.5209613518,33.5118448987,33.5027427327,
362 33.4936548125,33.484581097,33.4755215454,33.4664761168,33.4574447707,
363 33.4484274668,33.4394241647,33.4304348245,33.4214594063,33.4124978703,
364 33.403550177,33.3946162869,33.3856961609,33.3767897599,33.367897045,
365 33.3590179775,33.3501525187,33.3413006302,33.3324622739,33.3236374115,
366 33.3148260051,33.3060280169,33.2972434094,33.2884721449,33.2797141863,
367 33.2709694962,33.2622380377,33.2535197739,33.2448146681,33.2361226837,
368 33.2274437842,33.2187779335,33.2101250953,33.2014852337,33.1928583128,
369 33.184244297,33.1756431507,33.1670548384,33.158479325,33.1499165753,
370 33.1413665542,33.1328292271,33.124304559,33.1157925156,33.1072930624,
371 33.098806165,33.0903317894,33.0818699015,33.0734204674,33.0649834534,
372 33.0565588258,33.0481465513,33.0397465963,33.0313589278,33.0229835126,
373 33.0146203178,33.0062693106,32.9979304582,32.989603728,32.9812890877,
374 32.972986505,32.9646959476,32.9564173834,32.9481507806,32.9398961073,
375 32.9316533318,32.9234224226,32.9152033482,32.9069960773,32.8988005787,
376 32.8906168214,32.8824447742,32.8742844065,32.8661356875,32.8579985866,
377 32.8498730732,32.8417591171,32.833656688,32.8255657557,32.8174862902,
378 32.8094182617,32.8013616402,32.7933163962,32.7852825001,32.7772599223,
379 32.7692486337,32.7612486048,32.7532598067,32.7452822103,32.7373157867,
380 32.7293605071,32.7214163428,32.7134832652,32.705561246,32.6976502567,
381 32.689750269,32.6818612548,32.6739831862,32.666116035,32.6582597736,
382 32.6504143741,32.6425798089,32.6347560506,32.6269430716,32.6191408447,
383 32.6113493427,32.6035685384,32.5957984048,32.588038915,32.5802900421,
384 32.5725517595,32.5648240406,32.5571068587,32.5494001875,32.5417040007,
385 32.5340182719,32.5263429752,32.5186780844,32.5110235735,32.5033794168,
386 32.4957455885,32.4881220628,32.4805088143,32.4729058175,32.4653130469,
387 32.4577304774,32.4501580835,32.4425958404,32.4350437229,32.4275017061,
388 32.4199697652,32.4124478754,32.404936012,32.3974341505,32.3899422665,
389 32.3824603354,32.374988333,32.3675262351,32.3600740175,32.3526316561,
390 32.3451991271,32.3377764065,32.3303634705,32.3229602955,32.3155668577,
391 32.3081831337,32.3008091,32.2934447331,32.2860900099,32.2787449071,
392 32.2714094015,32.2640834702,32.2567670901,32.2494602383,32.2421628922,
393 32.2348750288,32.2275966256,32.22032766,32.2130681096,32.2058179518,
394 32.1985771644,32.1913457251,32.1841236118,32.1769108022,32.1697072745,
395 32.1625130066,32.1553279767,32.148152163,32.1409855437,32.1338280972,
396 32.126679802,32.1195406365,32.1124105793,32.1052896091,32.0981777045,
397 32.0910748445,32.0839810077,32.0768961733,32.0698203201,32.0627534273,
398 32.0556954741,32.0486464396,32.0416063031,32.0345750441,32.0275526419,
399 32.020539076,32.0135343261,32.0065383718,31.9995511928,31.9925727688,
400 31.9856030797,31.9786421055,31.9716898261,31.9647462215,31.957811272,
401 31.9508849576,31.9439672587,31.9370581555,31.9301576284,31.9232656579,
402 31.9163822245,31.9095073088,31.9026408914,31.895782953,31.8889334744,
403 31.8820924364,31.87525982,31.8684356061,31.8616197757,31.8548123099,
404 31.8480131899,31.8412223968,31.834439912,31.8276657168,31.8208997926,
405 31.8141421208,31.8073926829,31.8006514606,31.7939184355,31.7871935893,
406 31.7804769038,31.7737683607,31.7670679419,31.7603756294,31.7536914052,
407 31.7470152514,31.74034715,31.7336870832,31.7270350332,31.7203909824,
408 31.7137549131,31.7071268077,31.7005066486,31.6938944183,31.6872900995,
409 31.6806936748,31.6741051267,31.6675244382,31.6609515919,31.6543865707,
410 31.6478293576,31.6412799354,31.6347382873,31.6282043961,31.6216782452,
411 31.6151598176,31.6086490966,31.6021460655,31.5956507075,31.5891630062,
412 31.5826829449,31.576210507,31.5697456763,31.5632884362,31.5568387704,
413 31.5503966626,31.5439620966,31.5375350561,31.5311155251,31.5247034874,
414 31.5182989269,31.5119018277,31.5055121739,31.4991299494,31.4927551386,
415 31.4863877255,31.4800276945,31.4736750299,31.4673297159,31.4609917371,
416 31.4546610778,31.4483377225,31.4420216558,31.4357128623,31.4294113266,
417 31.4231170334,31.4168299674,31.4105501135,31.4042774564,31.398011981,
418 31.3917536723,31.3855025152,31.3792584947,31.3730215959,31.3667918039,
419 31.3605691038,31.3543534809,31.3481449203,31.3419434074,31.3357489276,
420 31.329561466,31.3233810083,31.3172075399,31.3110410462,31.3048815128,
421 31.2987289254,31.2925832695,31.2864445309,31.2803126952,31.2741877483,
422 31.2680696759,31.261958464,31.2558540983,31.249756565,31.2436658498,
423 31.2375819389,31.2315048184,31.2254344742,31.2193708927,31.2133140599,
424 31.2072639622,31.2012205857,31.1951839169,31.189153942,31.1831306474,
425 31.1771140197,31.1711040452,31.1651007105,31.1591040022,31.1531139068,
426 31.1471304109,31.1411535014,31.1351831648,31.1292193879,31.1232621575,
427 31.1173114605,31.1113672838,31.1054296141,31.0994984385,31.0935737441,
428 31.0876555177,31.0817437464,31.0758384175,31.0699395179,31.0640470349,
429 31.0581609557,31.0522812675,31.0464079577,31.0405410135,31.0346804223,
430 31.0288261716,31.0229782487,31.0171366411,31.0113013363,31.0054723219,
431 30.9996495855,30.9938331146,30.988022897,30.9822189203,30.9764211722,
432 30.9706296405,30.9648443129,30.9590651774,30.9532922218,30.9475254339,
433 30.9417648017
434 }
435 },
436 {
437 // Ri = 250k
438 -5,5,200,2001, {
439 223.484971051,223.38189846,223.278606859,223.175096438,223.071367386,
440 222.967419894,222.863254153,222.758870355,222.654268692,222.549449358,
441 222.444412546,222.339158451,222.233687268,222.127999193,222.022094421,
442 221.915973151,221.809635579,221.703081904,221.596312324,221.489327039,
443 221.382126248,221.274710152,221.167078951,221.059232846,220.951172041,
444 220.842896736,220.734407134,220.62570344,220.516785857,220.407654588,
445 220.298309839,220.188751814,220.078980719,219.96899676,219.858800143,
446 219.748391075,219.637769762,219.526936413,219.415891235,219.304634436,
447 219.193166225,219.081486809,218.9695964,218.857495205,218.745183435,
448 218.6326613,218.519929009,218.406986775,218.293834807,218.180473316,
449 218.066902515,217.953122614,217.839133825,217.724936362,217.610530435,
450 217.495916257,217.381094042,217.266064002,217.150826349,217.035381299,
451 216.919729063,216.803869855,216.68780389,216.571531381,216.455052541,
452 216.338367587,216.22147673,216.104380187,215.987078171,215.869570897,
453 215.75185858,215.633941434,215.515819675,215.397493517,215.278963175,
454 215.160228865,215.041290801,214.922149198,214.802804272,214.683256238,
455 214.563505311,214.443551707,214.32339564,214.203037325,214.082476979,
456 213.961714816,213.840751051,213.719585899,213.598219576,213.476652297,
457 213.354884277,213.232915731,213.110746873,212.988377919,212.865809083,
458 212.74304058,212.620072625,212.496905433,212.373539217,212.249974193,
459 212.126210573,212.002248574,211.878088408,211.75373029,211.629174433,
460 211.504421051,211.379470357,211.254322565,211.128977889,211.003436541,
461 210.877698734,210.751764681,210.625634594,210.499308686,210.37278717,
462 210.246070256,210.119158158,209.992051086,209.864749253,209.737252869,
463 209.609562146,209.481677294,209.353598524,209.225326046,209.096860071,
464 208.968200809,208.839348469,208.710303261,208.581065394,208.451635077,
465 208.322012519,208.192197928,208.062191513,207.931993481,207.801604041,
466 207.671023398,207.540251762,207.409289338,207.278136334,207.146792955,
467 207.015259407,206.883535897,206.75162263,206.61951981,206.487227642,
468 206.354746332,206.222076083,206.089217099,205.956169583,205.82293374,
469 205.689509771,205.555897879,205.422098267,205.288111136,205.153936688,
470 205.019575125,204.885026646,204.750291453,204.615369746,204.480261724,
471 204.344967587,204.209487534,204.073821763,203.937970474,203.801933864,
472 203.66571213,203.52930547,203.392714081,203.255938159,203.1189779,
473 202.9818335,202.844505154,202.706993058,202.569297405,202.43141839,
474 202.293356206,202.155111047,202.016683105,201.878072574,201.739279645,
475 201.60030451,201.46114736,201.321808386,201.182287779,201.042585728,
476 200.902702422,200.762638052,200.622392806,200.481966872,200.341360438,
477 200.200573692,200.059606819,199.918460008,199.777133444,199.635627312,
478 199.493941798,199.352077087,199.210033363,199.067810809,198.92540961,
479 198.782829948,198.640072006,198.497135966,198.354022009,198.210730316,
480 198.067261068,197.923614446,197.779790629,197.635789796,197.491612126,
481 197.347257797,197.202726987,197.058019875,196.913136635,196.768077446,
482 196.622842482,196.477431919,196.331845933,196.186084697,196.040148386,
483 195.894037174,195.747751232,195.601290734,195.454655852,195.307846758,
484 195.160863622,195.013706614,194.866375906,194.718871667,194.571194065,
485 194.423343269,194.275319448,194.127122768,193.978753398,193.830211503,
486 193.681497249,193.532610803,193.383552329,193.234321992,193.084919955,
487 192.935346382,192.785601437,192.635685281,192.485598078,192.335339987,
488 192.18491117,192.034311788,191.883542,191.732601966,191.581491845,
489 191.430211795,191.278761974,191.127142539,190.975353646,190.823395454,
490 190.671268116,190.518971788,190.366506625,190.213872781,190.06107041,
491 189.908099664,189.754960697,189.60165366,189.448178705,189.294535983,
492 189.140725644,188.986747838,188.832602716,188.678290424,188.523811112,
493 188.369164928,188.214352019,188.059372531,187.904226611,187.748914404,
494 187.593436056,187.43779171,187.281981512,187.126005604,186.96986413,
495 186.813557231,186.65708505,186.500447728,186.343645406,186.186678223,
496 186.029546321,185.872249837,185.714788911,185.55716368,185.399374282,
497 185.241420854,185.083303532,184.925022453,184.766577751,184.607969561,
498 184.449198018,184.290263255,184.131165406,183.971904603,183.812480977,
499 183.652894661,183.493145785,183.333234481,183.173160876,183.012925102,
500 182.852527286,182.691967558,182.531246043,182.37036287,182.209318165,
501 182.048112055,181.886744663,181.725216116,181.563526538,181.401676052,
502 181.239664781,181.077492849,180.915160377,180.752667487,180.5900143,
503 180.427200936,180.264227516,180.101094157,179.937800981,179.774348103,
504 179.610735643,179.446963717,179.283032441,179.118941933,178.954692306,
505 178.790283677,178.625716159,178.460989866,178.296104912,178.131061408,
506 177.965859467,177.800499201,177.634980721,177.469304136,177.303469557,
507 177.137477093,176.971326853,176.805018945,176.638553477,176.471930555,
508 176.305150286,176.138212776,175.971118131,175.803866455,175.636457852,
509 175.468892427,175.301170281,175.133291519,174.965256242,174.797064551,
510 174.628716547,174.460212331,174.291552002,174.12273566,173.953763402,
511 173.784635329,173.615351536,173.44591212,173.276317179,173.106566808,
512 172.936661103,172.766600157,172.596384066,172.426012922,172.255486819,
513 172.084805849,171.913970105,171.742979677,171.571834657,171.400535134,
514 171.229081198,171.057472939,170.885710445,170.713793803,170.541723102,
515 170.369498428,170.197119867,170.024587505,169.851901428,169.67906172,
516 169.506068464,169.332921745,169.159621646,168.986168248,168.812561633,
517 168.638801884,168.464889079,168.2908233,168.116604626,167.942233136,
518 167.767708909,167.593032021,167.418202552,167.243220576,167.068086171,
519 166.892799412,166.717360374,166.541769131,166.366025758,166.190130327,
520 166.014082912,165.837883585,165.661532417,165.48502948,165.308374843,
521 165.131568578,164.954610753,164.777501437,164.600240698,164.422828605,
522 164.245265224,164.067550622,163.889684865,163.711668018,163.533500146,
523 163.355181313,163.176711584,162.998091022,162.819319688,162.640397646,
524 162.461324957,162.28210168,162.102727878,161.92320361,161.743528935,
525 161.563703911,161.383728597,161.203603051,161.023327328,160.842901487,
526 160.662325582,160.481599669,160.300723803,160.119698037,159.938522426,
527 159.757197022,159.575721877,159.394097045,159.212322576,159.03039852,
528 158.848324929,158.666101851,158.483729336,158.301207432,158.118536187,
529 157.935715649,157.752745864,157.569626879,157.38635874,157.20294149,
530 157.019375176,156.83565984,156.651795527,156.467782279,156.283620139,
531 156.099309148,155.914849347,155.730240777,155.545483478,155.36057749,
532 155.175522851,154.9903196,154.804967774,154.61946741,154.433818546,
533 154.248021217,154.062075459,153.875981307,153.689738795,153.503347956,
534 153.316808825,153.130121434,152.943285814,152.756301998,152.569170017,
535 152.3818899,152.194461677,152.006885379,151.819161033,151.631288668,
536 151.443268311,151.25509999,151.06678373,150.878319558,150.689707498,
537 150.500947577,150.312039817,150.122984243,149.933780877,149.744429742,
538 149.55493086,149.365284253,149.17548994,148.985547943,148.79545828,
539 148.605220971,148.414836035,148.224303489,148.033623351,147.842795638,
540 147.651820366,147.46069755,147.269427206,147.078009348,146.886443991,
541 146.694731147,146.50287083,146.310863051,146.118707824,145.926405158,
542 145.733955065,145.541357554,145.348612635,145.155720318,144.962680609,
543 144.769493518,144.576159051,144.382677215,144.189048016,143.995271461,
544 143.801347552,143.607276296,143.413057696,143.218691756,143.024178478,
545 142.829517864,142.634709916,142.439754635,142.244652022,142.049402077,
546 141.854004798,141.658460186,141.462768238,141.266928951,141.070942324,
547 140.874808353,140.678527034,140.482098363,140.285522334,140.088798942,
548 139.891928181,139.694910044,139.497744525,139.300431614,139.102971305,
549 138.905363588,138.707608454,138.509705892,138.311655894,138.113458446,
550 137.915113539,137.71662116,137.517981296,137.319193934,137.120259061,
551 136.921176662,136.721946723,136.522569228,136.323044162,136.123371508,
552 135.923551249,135.723583369,135.523467849,135.32320467,135.122793815,
553 134.922235263,134.721528995,134.52067499,134.319673227,134.118523685,
554 133.917226342,133.715781176,133.514188163,133.31244728,133.110558503,
555 132.908521808,132.70633717,132.504004564,132.301523963,132.098895342,
556 131.896118674,131.693193931,131.490121086,131.286900111,131.083530977,
557 130.880013655,130.676348115,130.472534329,130.268572264,130.064461891,
558 129.860203179,129.655796095,129.451240608,129.246536686,129.041684295,
559 128.836683403,128.631533975,128.426235979,128.220789379,128.015194141,
560 127.80945023,127.603557611,127.397516247,127.191326104,126.984987144,
561 126.778499331,126.571862629,126.365076999,126.158142404,125.951058808,
562 125.74382617,125.536444455,125.328913622,125.121233634,124.913404451,
563 124.705426035,124.497298346,124.289021346,124.080594993,123.87201925,
564 123.663294075,123.45441943,123.245395274,123.036221568,122.826898272,
565 122.617425345,122.407802748,122.198030441,121.988108384,121.778036537,
566 121.567814861,121.357443316,121.146921862,120.936250462,120.725429075,
567 120.514457662,120.303336187,120.09206461,119.880642893,119.669071,
568 119.457348893,119.245476537,119.033453894,118.821280929,118.608957608,
569 118.396483896,118.18385976,117.971085166,117.758160083,117.545084479,
570 117.331858324,117.118481589,116.904954244,116.691276262,116.477447617,
571 116.263468283,116.049338237,115.835057456,115.620625918,115.406043603,
572 115.191310494,114.976426573,114.761391825,114.546206237,114.330869797,
573 114.115382497,113.899744328,113.683955284,113.468015365,113.251924567,
574 113.035682894,112.819290349,112.60274694,112.386052677,112.169207573,
575 111.952211643,111.735064908,111.517767389,111.300319114,111.082720112,
576 110.864970417,110.647070067,110.429019104,110.210817576,109.992465532,
577 109.77396303,109.55531013,109.336506899,109.117553408,108.898449735,
578 108.679195963,108.459792182,108.240238489,108.020534985,107.800681781,
579 107.580678994,107.360526749,107.140225178,106.919774422,106.69917463,
580 106.478425962,106.257528585,106.036482676,105.815288423,105.593946025,
581 105.372455689,105.150817638,104.929032102,104.707099327,104.48501957,
582 104.262793102,104.040420207,103.817901185,103.595236351,103.372426033,
583 103.149470578,102.926370349,102.703125726,102.479737108,102.256204914,
584 102.032529581,101.808711566,101.58475135,101.360649435,101.136406344,
585 100.912022628,100.687498859,100.462835637,100.23803359,100.013093371,
586 99.7880156641,99.5628011832,99.3374506734,99.1119649126,98.8863447123,
587 98.6605909195,98.4347044173,98.2086861271,97.9825370096,97.7562580661,
588 97.5298503407,97.3033149214,97.076652942,96.8498655839,96.6229540776,
589 96.3959197048,96.1687638004,95.9414877543,95.7140930135,95.4865810843,
590 95.2589535346,95.0312119958,94.8033581658,94.5753938109,94.3473207683,
591 94.1191409492,93.8908563411,93.6624690106,93.4339811063,93.205394862,
592 92.9767125993,92.7479367311,92.5190697648,92.2901143054,92.0610730592,
593 91.8319488373,91.602744559,91.373463256,91.1441080758,90.9146822859,
594 90.6851892779,90.4556325714,90.2260158187,89.9963428088,89.7666174721,
595 89.536843885,89.3070262745,89.0771690233,88.8472766741,88.6173539356,
596 88.3874056866,88.1574369818,87.9274530572,87.697459335,87.4674614297,
597 87.237465153,87.0074765201,86.7775017551,86.5475472965,86.3176198036,
598 86.087726162,85.8578734896,85.6280691424,85.3983207206,85.1686360744,
599 84.9390233102,84.7094907959,84.4800471675,84.2507013342,84.0214624844,
600 83.7923400915,83.5633439187,83.334484025,83.1057707701,82.8772148192,
601 82.6488271479,82.4206190466,82.1926021248,81.9647883147,81.7371898752,
602 81.5098193947,81.282689794,81.0558143286,80.8292065906,80.6028805099,
603 80.3768503551,80.1511307336,79.9257365914,79.7006832114,79.4759862124,
604 79.2516615459,79.0277254929,78.80419466,78.5810859742,78.3584166771,
605 78.1362043179,77.914466746,77.6932221017,77.4724888073,77.2522855555,
606 77.0326312982,76.8135452334,76.5950467914,76.3771556195,76.1598915665,
607 75.943274665,75.7273251137,75.5120632578,75.297509569,75.0836846242,
608 74.8706090831,74.6583036656,74.4467891271,74.2360862344,74.0262157397,
609 73.8171983546,73.609054723,73.4018053941,73.195470794,72.9900711983,
610 72.7856267028,72.5821571954,72.3796823271,72.1782214839,71.9777937575,
611 71.7784179177,71.5801123841,71.3828951991,71.1867840008,70.9917959968,
612 70.7979479394,70.6052561006,70.413736249,70.2234036275,70.0342729319,
613 69.8463582915,69.6596732499,69.4742307486,69.2900431108,69.1071220272,
614 68.925478544,68.7451230512,68.5660652733,68.3883142621,68.2118783899,
615 68.0367653452,67.8629821298,67.6905350579,67.5194297558,67.349671164,
616 67.1812635406,67.0142104662,66.8485148499,66.6841789368,66.5212043171,
617 66.359591936,66.1993421046,66.0404545127,65.8829282415,65.7267617781,
618 65.5719530301,65.4184993417,65.2663975098,65.1156438011,64.9662339694,
619 64.8181632736,64.6714264963,64.5260179616,64.3819315545,64.2391607398,
620 64.0976985804,63.9575377573,63.8186705879,63.6810890449,63.5447847755,
621 63.4097491195,63.2759731279,63.1434475806,63.0121630047,62.8821096914,
622 62.7532777134,62.6256569412,62.4992370596,62.3740075834,62.2499578725,
623 62.1270771474,62.0053545027,61.8847789218,61.7653392897,61.6470244065,
624 61.5298229991,61.4137237339,61.2987152275,61.1847860581,61.0719247757,
625 60.9601199122,60.8493599906,60.7396335345,60.630929076,60.5232351645,
626 60.4165403737,60.3108333094,60.2061026159,60.1023369826,59.9995251502,
627 59.8976559158,59.7967181389,59.6967007458,59.5975927344,59.4993831786,
628 59.4020612319,59.3056161312,59.2100372005,59.1153138535,59.0214355966,
629 58.9283920315,58.8361728577,58.7447678742,58.6541669817,58.5643601843,
630 58.4753375907,58.3870894158,58.2996059815,58.2128777181,58.1268951645,
631 58.0416489694,57.9571298914,57.8733287998,57.7902366743,57.7078446055,
632 57.6261437948,57.5451255545,57.4647813073,57.3851025863,57.3060810344,
633 57.2277084041,57.1499765569,57.0728774627,56.9964031993,56.9205459515,
634 56.8452980105,56.7706517731,56.6965997408,56.6231345189,56.5502488157,
635 56.4779354416,56.4061873078,56.3349974256,56.2643589053,56.1942649551,
636 56.12470888,56.0556840808,55.9871840529,55.9192023854,55.8517327594,
637 55.7847689478,55.7183048131,55.6523343072,55.5868514695,55.5218504263,
638 55.4573253892,55.3932706543,55.3296806009,55.2665496903,55.2038724646,
639 55.1416435458,55.0798576345,55.0185095087,54.9575940229,54.8971061066,
640 54.8370407637,54.7773930709,54.718158177,54.6593313016,54.6009077341,
641 54.5428828326,54.4852520229,54.4280107972,54.3711547138,54.3146793951,
642 54.2585805273,54.2028538591,54.147495201,54.092500424,54.0378654587,
643 53.9835862945,53.9296589787,53.8760796154,53.8228443647,53.7699494418,
644 53.7173911161,53.6651657104,53.6132695999,53.5616992114,53.5104510228,
645 53.4595215617,53.408907405,53.358605178,53.3086115536,53.2589232516,
646 53.2095370379,53.1604497237,53.1116581648,53.0631592611,53.0149499554,
647 52.9670272332,52.9193881217,52.8720296893,52.8249490449,52.7781433372,
648 52.7316097539,52.6853455215,52.6393479043,52.5936142039,52.5481417587,
649 52.5029279432,52.4579701673,52.4132658761,52.3688125489,52.3246076991,
650 52.2806488732,52.2369336506,52.193459643,52.1502244938,52.1072258777,
651 52.0644615,52.0219290964,51.9796264325,51.9375513029,51.8957015313,
652 51.8540749699,51.8126694984,51.7714830245,51.7305134827,51.6897588342,
653 51.6492170664,51.6088861928,51.568764252,51.5288493078,51.4891394485,
654 51.4496327869,51.4103274594,51.3712216261,51.3323134703,51.2936011979,
655 51.2550830374,51.2167572394,51.1786220761,51.1406758414,51.1029168502,
656 51.065343438,51.0279539611,50.9907467956,50.9537203379,50.9168730035,
657 50.8802032274,50.8437094637,50.8073901849,50.7712438821,50.7352690645,
658 50.6994642591,50.6638280107,50.6283588811,50.5930554497,50.5579163121,
659 50.522940081,50.4881253853,50.4534708698,50.4189751955,50.3846370388,
660 50.3504550916,50.3164280609,50.2825546688,50.2488336522,50.2152637622,
661 50.1818437647,50.1485724393,50.1154485799,50.0824709937,50.0496385019,
662 50.0169499386,49.9844041515,49.9520000008,49.9197363597,49.8876121142,
663 49.8556261623,49.8237774146,49.7920647936,49.7604872338,49.7290436813,
664 49.6977330941,49.6665544412,49.6355067033,49.6045888718,49.5737999493,
665 49.5431389491,49.5126048954,49.4821968226,49.4519137756,49.4217548096,
666 49.3917189898,49.3618053914,49.3320130994,49.3023412085,49.2727888229,
667 49.2433550565,49.2140390322,49.1848398821,49.1557567476,49.1267887789,
668 49.0979351349,49.0691949835,49.040567501,49.0120518721,48.9836472901,
669 48.9553529564,48.9271680807,48.8990918806,48.8711235817,48.8432624174,
670 48.815507629,48.7878584653,48.7603141827,48.732874045,48.7055373233,
671 48.6783032962,48.6511712493,48.6241404752,48.5972102736,48.5703799512,
672 48.5436488213,48.517016204,48.4904814261,48.464043821,48.4377027285,
673 48.4114574948,48.3853074723,48.35925202,48.3332905028,48.3074222917,
674 48.2816467637,48.2559633019,48.2303712951,48.204870138,48.179459231,
675 48.1541379801,48.1289057971,48.103762099,48.0787063085,48.0537378537,
676 48.0288561678,48.0040606896,47.9793508627,47.9547261362,47.9301859641,
677 47.9057298055,47.8813571243,47.8570673896,47.832860075,47.8087346591,
678 47.7846906251,47.7607274611,47.7368446597,47.7130417179,47.6893181375,
679 47.6656734245,47.6421070895,47.6186186475,47.5952076176,47.5718735233,
680 47.5486158923,47.5254342566,47.5023281519,47.4792971185,47.4563407004,
681 47.4334584457,47.4106499063,47.3879146382,47.3652522011,47.3426621586,
682 47.3201440779,47.2976975301,47.27532209,47.2530173358,47.2307828496,
683 47.2086182168,47.1865230265,47.1644968713,47.142539347,47.1206500531,
684 47.0988285923,47.0770745708,47.0553875978,47.033767286,47.0122132513,
685 46.9907251128,46.9693024927,46.9479450163,46.926652312,46.9054240114,
686 46.884259749,46.8631591622,46.8421218916,46.8211475806,46.8002358755,
687 46.7793864255,46.7585988825,46.7378729014,46.7172081399,46.6966042582,
688 46.6760609195,46.6555777895,46.6351545368,46.6147908322,46.5944863497,
689 46.5742407654,46.5540537582,46.5339250095,46.5138542031,46.4938410254,
690 46.4738851652,46.4539863139,46.434144165,46.4143584145,46.394628761,
691 46.374954905,46.3553365498,46.3357734005,46.3162651648,46.2968115526,
692 46.2774122759,46.258067049,46.2387755882,46.2195376123,46.200352842,
693 46.181221,46.1621418113,46.143115003,46.124140304,46.1052174456,
694 46.0863461607,46.0675261845,46.0487572541,46.0300391084,46.0113714885,
695 45.9927541372,45.9741867993,45.9556692215,45.9372011522,45.9187823419,
696 45.9004125427,45.8820915086,45.8638189954,45.8455947607,45.8274185639,
697 45.8092901659,45.7912093296,45.7731758195,45.7551894018,45.7372498443,
698 45.7193569166,45.7015103899,45.683710037,45.6659556324,45.648246952,
699 45.6305837735,45.6129658761,45.5953930405,45.5778650491,45.5603816856,
700 45.5429427354,45.5255479853,45.5081972237,45.4908902404,45.4736268266,
701 45.4564067751,45.4392298799,45.4220959367,45.4050047424,45.3879560955,
702 45.3709497956,45.3539856439,45.3370634429,45.3201829964,45.3033441096,
703 45.286546589,45.2697902423,45.2530748788,45.2364003088,45.2197663439,
704 45.2031727971,45.1866194827,45.170106216,45.1536328136,45.1371990936,
705 45.120804875,45.1044499781,45.0881342244,45.0718574366,45.0556194386,
706 45.0394200553,45.0232591129,45.0071364388,44.9910518613,44.97500521,
707 44.9589963155,44.9430250097,44.9270911254,44.9111944966,44.8953349582,
708 44.8795123463,44.8637264982,44.8479772519,44.8322644468,44.816587923,
709 44.8009475218,44.7853430856,44.7697744577,44.7542414822,44.7387440046,
710 44.7232818711,44.7078549288,44.6924630261,44.677106012,44.6617837367,
711 44.6464960512,44.6312428075,44.6160238584,44.6008390578,44.5856882605,
712 44.570571322,44.5554880988,44.5404384485,44.5254222292,44.5104393001,
713 44.4954895213,44.4805727536,44.4656888589,44.4508376997,44.4360191394,
714 44.4212330422,44.4064792734,44.3917576987,44.3770681849,44.3624105996,
715 44.347784811,44.3331906883,44.3186281014,44.3040969209,44.2895970184,
716 44.2751282661,44.2606905369,44.2462837046,44.2319076438,44.2175622296,
717 44.2032473381,44.188962846,44.1747086307,44.1604845704,44.1462905441,
718 44.1321264312,44.1179921121,44.1038874679,44.0898123802,44.0757667314,
719 44.0617504046,44.0477632835,44.0338052526,44.0198761971,44.0059760025,
720 43.9921045555,43.978261743,43.9644474528,43.9506615732,43.9369039933,
721 43.9231746028,43.9094732918,43.8957999513,43.8821544728,43.8685367485,
722 43.854946671,43.8413841338,43.8278490309,43.8143412567,43.8008607064,
723 43.7874072758,43.7739808611,43.7605813594,43.747208668,43.733862685,
724 43.720543309,43.7072504393,43.6939839756,43.6807438181,43.6675298677,
725 43.6543420258,43.6411801944,43.628044276,43.6149341734,43.6018497904,
726 43.5887910309,43.5757577997,43.5627500017,43.5497675426,43.5368103287,
727 43.5238782665,43.5109712632,43.4980892264,43.4852320645,43.4723996859,
728 43.459592,43.4468089162,43.4340503448,43.4213161963,43.4086063818,
729 43.395920813,43.3832594017,43.3706220606,43.3580087026,43.3454192411,
730 43.33285359,43.3203116637,43.3077933769,43.2952986449,43.2828273833,
731 43.2703795084,43.2579549366,43.2455535849,43.2331753709,43.2208202124,
732 43.2084880276,43.1961787354,43.1838922548,43.1716285054,43.1593874071,
733 43.1471688805,43.1349728462,43.1227992256,43.1106479402,43.0985189119,
734 43.0864120634,43.0743273173,43.0622645969,43.0502238257,43.0382049278,
735 43.0262078276,43.0142324497,43.0022787194,42.9903465622,42.9784359039,
736 42.9665466709,42.9546787897,42.9428321874,42.9310067914,42.9192025293,
737 42.9074193294,42.89565712,42.88391583,42.8721953886,42.8604957252,
738 42.8488167698,42.8371584525,42.825520704,42.8139034551,42.8023066371,
739 42.7907301817,42.7791740206,42.7676380862,42.7561223111,42.7446266282,
740 42.7331509707,42.7216952722,42.7102594667,42.6988434883,42.6874472716,
741 42.6760707514,42.664713863,42.6533765417,42.6420587235,42.6307603444,
742 42.6194813408,42.6082216494,42.5969812074,42.5857599519,42.5745578207,
743 42.5633747516,42.5522106829,42.5410655531,42.529939301,42.5188318657,
744 42.5077431866,42.4966732034,42.485621856,42.4745890847,42.4635748299,
745 42.4525790326,42.4416016337,42.4306425747,42.4197017972,42.4087792431,
746 42.3978748545,42.3869885739,42.3761203441,42.365270108,42.3544378088,
747 42.3436233901,42.3328267957,42.3220479695,42.3112868559,42.3005433995,
748 42.2898175449,42.2791092374,42.2684184221,42.2577450447,42.2470890509,
749 42.2364503869,42.2258289989,42.2152248334,42.2046378373,42.1940679577,
750 42.1835151416,42.1729793368,42.1624604909,42.1519585519,42.1414734681,
751 42.1310051879,42.1205536599,42.1101188331,42.0997006567,42.08929908,
752 42.0789140527,42.0685455244,42.0581934454,42.0478577658,42.0375384362,
753 42.0272354073,42.0169486299,42.0066780553,41.9964236349,41.9861853201,
754 41.9759630629,41.9657568151,41.955566529,41.9453921571,41.935233652,
755 41.9250909665,41.9149640537,41.9048528668,41.8947573593,41.8846774848,
756 41.8746131972,41.8645644507,41.8545311993,41.8445133977,41.8345110004,
757 41.8245239623,41.8145522385,41.8045957842,41.7946545548,41.784728506,
758 41.7748175936,41.7649217736,41.7550410021,41.7451752356,41.7353244307,
759 41.725488544,41.7156675325,41.7058613534,41.696069964,41.6862933217,
760 41.6765313841,41.6667841092,41.657051455,41.6473333796,41.6376298415,
761 41.6279407991,41.6182662112,41.6086060367,41.5989602347,41.5893287644,
762 41.5797115852,41.5701086567,41.5605199386,41.5509453909,41.5413849736,
763 41.531838647,41.5223063714,41.5127881076,41.5032838162,41.493793458,
764 41.4843169943,41.4748543861,41.4654055949,41.4559705822,41.4465493097,
765 41.4371417393,41.427747833,41.4183675529,41.4090008614,41.3996477209,
766 41.3903080941,41.3809819438,41.3716692328,41.3623699242,41.3530839814,
767 41.3438113676,41.3345520464,41.3253059814,41.3160731366,41.3068534757,
768 41.2976469631,41.2884535628,41.2792732394,41.2701059573,41.2609516812,
769 41.251810376,41.2426820066,41.2335665381,41.2244639357,41.2153741649,
770 41.2062971912,41.1972329801,41.1881814975,41.1791427094,41.1701165817,
771 41.1611030807,41.1521021727,41.1431138241,41.1341380016,41.1251746718,
772 41.1162238016,41.1072853581,41.0983593082,41.0894456193,41.0805442586,
773 41.0716551938,41.0627783924,41.0539138221,41.0450614508,41.0362212466,
774 41.0273931776,41.0185772119,41.0097733179,41.0009814642,40.9922016194,
775 40.9834337521,40.9746778312,40.9659338257,40.9572017046,40.9484814373,
776 40.9397729929,40.931076341,40.9223914511,40.9137182928,40.905056836,
777 40.8964070505,40.8877689064,40.8791423738,40.8705274229,40.8619240242,
778 40.853332148,40.8447517649,40.8361828457,40.8276253611,40.8190792821,
779 40.8105445796,40.8020212248,40.7935091889,40.7850084433,40.7765189594,
780 40.7680407088,40.7595736631,40.7511177941,40.7426730737,40.7342394738,
781 40.7258169666,40.7174055242,40.7090051189,40.7006157231,40.6922373093,
782 40.68386985,40.6755133181,40.6671676862,40.6588329272,40.6505090143,
783 40.6421959203,40.6338936187,40.6256020825,40.6173212853,40.6090512004,
784 40.6007918016,40.5925430624,40.5843049567,40.5760774582,40.567860541,
785 40.5596541792,40.5514583468,40.5432730181,40.5350981675,40.5269337693,
786 40.5187797982,40.5106362286,40.5025030354,40.4943801934,40.4862676773,
787 40.4781654622,40.4700735231,40.4619918353,40.4539203738,40.4458591142,
788 40.4378080318,40.429767102,40.4217363005,40.4137156031,40.4057049853,
789 40.3977044232,40.3897138925,40.3817333695,40.37376283,40.3658022505,
790 40.357851607,40.3499108761,40.3419800341,40.3340590575,40.3261479229,
791 40.3182466072,40.3103550869,40.302473339,40.2946013404,40.2867390681,
792 40.2788864992,40.2710436109,40.2632103804,40.2553867851,40.2475728023,
793 40.2397684096,40.2319735845,40.2241883047,40.2164125479,40.2086462918,
794 40.2008895143,40.1931421935,40.1854043073,40.1776758338,40.1699567512,
795 40.1622470377,40.1545466718,40.1468556316,40.1391738959,40.131501443,
796 40.1238382516,40.1161843004,40.1085395682,40.1009040337,40.093277676,
797 40.0856604739,40.0780524066,40.0704534531,40.0628635927,40.0552828046,
798 40.0477110681,40.0401483626,40.0325946677,40.0250499628,40.0175142275,
799 40.0099874416,40.0024695847,39.9949606367,39.9874605775,39.979969387,
800 39.9724870452,39.9650135322,39.9575488282,39.9500929133,39.9426457678,
801 39.9352073722,39.9277777067,39.9203567518,39.9129444882,39.9055408964,
802 39.898145957,39.8907596508,39.8833819586,39.8760128612,39.8686523396,
803 39.8613003748,39.8539569477,39.8466220395,39.8392956313,39.8319777044,
804 39.8246682402,39.8173672198,39.8100746247,39.8027904365,39.7955146366,
805 39.7882472066,39.7809881283,39.7737373832,39.7664949532,39.75926082,
806 39.7520349657,39.7448173721,39.7376080212,39.7304068951,39.7232139759,
807 39.7160292458,39.708852687,39.7016842819,39.6945240127,39.6873718619,
808 39.6802278119,39.6730918453,39.6659639446,39.6588440925,39.6517322716,
809 39.6446284646,39.6375326544,39.6304448239,39.6233649558,39.6162930333,
810 39.6092290392,39.6021729567,39.5951247688,39.5880844588,39.5810520098,
811 39.5740274052,39.5670106282,39.5600016623,39.5530004909,39.5460070974,
812 39.5390214655,39.5320435786,39.5250734205,39.5181109748,39.5111562253,
813 39.5042091557,39.4972697499,39.4903379919,39.4834138654,39.4764973546,
814 39.4695884435,39.4626871162,39.4557933567,39.4489071494,39.4420284784,
815 39.435157328,39.4282936826,39.4214375266,39.4145888443,39.4077476203,
816 39.4009138391,39.3940874853,39.3872685434,39.3804569982,39.3736528344,
817 39.3668560367,39.36006659,39.353284479,39.3465096888,39.3397422042,
818 39.3329820103,39.3262290921,39.3194834346,39.3127450231,39.3060138426,
819 39.2992898784,39.2925731158,39.2858635401,39.2791611366,39.2724658907,
820 39.2657777879,39.2590968136,39.2524229534,39.2457561929,39.2390965176,
821 39.2324439132,39.2257983655,39.2191598602,39.212528383,39.2059039198,
822 39.1992864564,39.1926759788,39.186072473,39.1794759249,39.1728863205,
823 39.166303646,39.1597278875,39.153159031,39.1465970629,39.1400419694,
824 39.1334937368,39.1269523513,39.1204177994,39.1138900674,39.1073691419,
825 39.1008550092,39.094347656,39.0878470687,39.081353234,39.0748661385,
826 39.068385769,39.0619121121,39.0554451545,39.0489848832,39.0425312849,
827 39.0360843464,39.0296440548,39.023210397,39.0167833599,39.0103629306,
828 39.0039490962,38.9975418437,38.9911411603,38.9847470331,38.9783594495,
829 38.9719783965,38.9656038616,38.959235832,38.9528742952,38.9465192384,
830 38.9401706492,38.933828515,38.9274928232,38.9211635616,38.9148407175,
831 38.9085242787,38.9022142328,38.8959105674,38.8896132703,38.8833223293,
832 38.877037732,38.8707594665,38.8644875204,38.8582218817,38.8519625383,
833 38.8457094782,38.8394626894,38.8332221598,38.8269878777,38.8207598309,
834 38.8145380078,38.8083223964,38.802112985,38.7959097617,38.7897127148,
835 38.7835218327,38.7773371036,38.7711585159,38.7649860581,38.7588197184,
836 38.7526594855,38.7465053477,38.7403572936,38.7342153118,38.7280793908,
837 38.7219495192,38.7158256858,38.7097078791,38.7035960879,38.697490301,
838 38.691390507,38.6852966949,38.6792088534,38.6731269715,38.667051038,
839 38.6609810418
840 }
841 }
842 };
0 /*
1 * Copyright (C) 2012 Hermann Meyer, Andreas Degert, Pete Shorthose
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 * --------------------------------------------------------------------------
17 */
18
19
20 // generated by ../../tools/tube_transfer.py
21 // tube: 12AX7
22 // plate current function: triode
23 // mu: 100
24 // kx: 1.4
25 // kg1: 1060
26 // kp: 600
27 // kvb: 300
28
29 table1d_imp<2001> tubetable_12AX7[2] =
30 {
31 {
32 // Ri = 68k
33 -5,5,200,2001, {
34 249.98706929,249.986851225,249.986629489,249.986404021,249.986174757,
35 249.985941635,249.985704589,249.985463554,249.985218463,249.984969247,
36 249.984715838,249.984458166,249.984196158,249.983929743,249.983658846,
37 249.983383392,249.983103306,249.982818508,249.982528921,249.982234464,
38 249.981935056,249.981630613,249.981321052,249.981006287,249.98068623,
39 249.980360793,249.980029887,249.979693419,249.979351296,249.979003424,
40 249.978649708,249.978290048,249.977924346,249.9775525,249.977174409,
41 249.976789967,249.976399069,249.976001606,249.97559747,249.975186548,
42 249.974768727,249.974343893,249.973911927,249.973472711,249.973026125,
43 249.972572044,249.972110345,249.9716409,249.971163579,249.970678252,
44 249.970184785,249.969683043,249.969172887,249.968654177,249.968126772,
45 249.967590526,249.967045292,249.96649092,249.965927258,249.965354153,
46 249.964771446,249.964178978,249.963576587,249.962964107,249.962341372,
47 249.961708211,249.96106445,249.960409914,249.959744424,249.959067797,
48 249.95837985,249.957680393,249.956969237,249.956246188,249.955511048,
49 249.954763616,249.95400369,249.953231063,249.952445523,249.951646857,
50 249.950834849,249.950009276,249.949169916,249.94831654,249.947448916,
51 249.946566809,249.945669979,249.944758184,249.943831177,249.942888706,
52 249.941930516,249.940956349,249.93996594,249.938959023,249.937935324,
53 249.936894568,249.935836475,249.934760758,249.933667127,249.932555289,
54 249.931424944,249.930275788,249.929107511,249.9279198,249.926712337,
55 249.925484796,249.92423685,249.922968162,249.921678394,249.9203672,
56 249.91903423,249.917679127,249.916301529,249.914901069,249.913477372,
57 249.912030061,249.910558748,249.909063042,249.907542547,249.905996856,
58 249.904425561,249.902828244,249.901204482,249.899553844,249.897875894,
59 249.896170188,249.894436274,249.892673696,249.890881989,249.889060679,
60 249.887209288,249.885327328,249.883414305,249.881469716,249.879493052,
61 249.877483793,249.875441414,249.87336538,249.87125515,249.869110171,
62 249.866929885,249.864713724,249.86246111,249.860171458,249.857844173,
63 249.855478652,249.853074281,249.850630438,249.848146491,249.845621799,
64 249.843055711,249.840447565,249.837796689,249.835102404,249.832364016,
65 249.829580824,249.826752115,249.823877166,249.820955243,249.8179856,
66 249.81496748,249.811900117,249.80878273,249.80561453,249.802394713,
67 249.799122465,249.795796959,249.792417358,249.788982809,249.785492449,
68 249.781945403,249.778340779,249.774677678,249.770955183,249.767172365,
69 249.763328284,249.759421981,249.75545249,249.751418824,249.747319988,
70 249.743154968,249.738922738,249.734622257,249.730252468,249.725812301,
71 249.72130067,249.716716471,249.712058589,249.70732589,249.702517225,
72 249.697631429,249.692667321,249.687623703,249.682499361,249.677293063,
73 249.672003562,249.666629592,249.661169871,249.655623098,249.649987954,
74 249.644263106,249.638447197,249.632538857,249.626536694,249.620439299,
75 249.614245244,249.607953082,249.601561346,249.59506855,249.588473189,
76 249.581773739,249.574968653,249.568056367,249.561035295,249.553903831,
77 249.546660348,249.5393032,249.531830718,249.524241211,249.516532969,
78 249.508704259,249.500753327,249.492678397,249.48447767,249.476149326,
79 249.467691521,249.459102391,249.450380046,249.441522576,249.432528047,
80 249.423394501,249.414119957,249.404702411,249.395139834,249.385430176,
81 249.37557136,249.365561287,249.355397831,249.345078845,249.334602156,
82 249.323965565,249.313166851,249.302203767,249.291074039,249.27977537,
83 249.268305439,249.256661896,249.244842368,249.232844458,249.220665739,
84 249.208303762,249.195756051,249.183020104,249.170093394,249.156973366,
85 249.143657441,249.130143014,249.116427453,249.102508098,249.088382267,
86 249.074047249,249.059500307,249.044738677,249.029759572,249.014560175,
87 248.999137645,248.983489114,248.967611688,248.951502446,248.935158442,
88 248.918576704,248.901754233,248.884688005,248.867374969,248.84981205,
89 248.831996145,248.813924127,248.795592843,248.776999115,248.75813974,
90 248.739011488,248.719611106,248.699935316,248.679980814,248.659744274,
91 248.639222342,248.618411645,248.597308781,248.575910327,248.554212837,
92 248.532212841,248.509906845,248.487291335,248.464362771,248.441117595,
93 248.417552224,248.393663055,248.369446462,248.344898801,248.320016406,
94 248.29479559,248.269232647,248.243323852,248.217065459,248.190453706,
95 248.163484811,248.136154974,248.108460379,248.080397191,248.05196156,
96 248.02314962,247.993957487,247.964381265,247.934417041,247.904060889,
97 247.87330887,247.84215703,247.810601403,247.778638011,247.746262866,
98 247.713471967,247.680261303,247.646626855,247.612564592,247.578070476,
99 247.543140461,247.507770494,247.471956513,247.435694453,247.398980241,
100 247.3618098,247.32417905,247.286083906,247.247520279,247.208484082,
101 247.168971222,247.128977607,247.088499146,247.047531747,247.00607132,
102 246.964113777,246.921655031,246.878691002,246.835217611,246.791230785,
103 246.746726457,246.701700566,246.656149058,246.610067887,246.563453015,
104 246.516300414,246.468606066,246.420365964,246.371576111,246.322232524,
105 246.272331232,246.221868279,246.170839722,246.119241634,246.067070104,
106 246.014321237,245.960991157,245.907076004,245.852571939,245.79747514,
107 245.74178181,245.685488167,245.628590455,245.571084939,245.512967907,
108 245.454235672,245.394884569,245.334910961,245.274311236,245.213081807,
109 245.151219115,245.08871963,245.02557985,244.9617963,244.897365536,
110 244.832284146,244.766548747,244.700155987,244.633102547,244.565385141,
111 244.497000515,244.427945449,244.358216758,244.287811291,244.216725932,
112 244.144957602,244.072503257,243.999359889,243.92552453,243.850994248,
113 243.775766147,243.699837372,243.623205106,243.545866572,243.467819032,
114 243.389059786,243.309586179,243.229395592,243.148485449,243.066853216,
115 242.984496398,242.901412546,242.817599248,242.733054138,242.647774892,
116 242.561759227,242.475004906,242.387509732,242.299271553,242.210288262,
117 242.120557793,242.030078124,241.938847279,241.846863324,241.754124371,
118 241.660628575,241.566374134,241.471359294,241.375582341,241.279041608,
119 241.181735472,241.083662355,240.984820721,240.885209081,240.784825989,
120 240.683670043,240.581739885,240.479034203,240.375551726,240.271291229,
121 240.166251531,240.060431493,239.95383002,239.846446061,239.738278607,
122 239.629326695,239.5195894,239.409065844,239.29775519,239.185656641,
123 239.072769446,238.959092892,238.84462631,238.729369072,238.61332059,
124 238.496480317,238.378847747,238.260422414,238.141203892,238.021191795,
125 237.900385775,237.778785524,237.656390773,237.533201291,237.409216884,
126 237.284437398,237.158862715,237.032492753,236.905327469,236.777366855,
127 236.648610938,236.519059783,236.388713489,236.257572188,236.125636051,
128 235.992905278,235.859380107,235.725060807,235.58994768,235.454041062,
129 235.31734132,235.179848852,235.041564089,234.902487493,234.762619556,
130 234.6219608,234.480511776,234.338273067,234.195245283,234.051429062,
131 233.906825072,233.761434008,233.615256591,233.468293572,233.320545726,
132 233.172013855,233.022698786,232.872601372,232.721722492,232.570063047,
133 232.417623965,232.264406196,232.110410713,231.955638512,231.800090614,
134 231.643768059,231.48667191,231.328803251,231.170163188,231.010752847,
135 230.850573373,230.689625933,230.527911712,230.365431915,230.202187764,
136 230.0381805,229.873411384,229.707881693,229.541592719,229.374545774,
137 229.206742186,229.038183299,228.868870471,228.698805078,228.527988509,
138 228.356422169,228.184107477,228.011045867,227.837238785,227.662687692,
139 227.487394061,227.311359378,227.134585141,226.957072863,226.778824064,
140 226.59984028,226.420123056,226.239673947,226.058494521,225.876586355,
141 225.693951036,225.510590161,225.326505336,225.141698178,224.956170309,
142 224.769923365,224.582958985,224.39527882,224.206884527,224.017777772,
143 223.827960226,223.637433569,223.446199487,223.254259674,223.061615828,
144 222.868269655,222.674222866,222.479477179,222.284034315,222.087896002,
145 221.891063973,221.693539966,221.495325721,221.296422987,221.096833513,
146 220.896559053,220.695601367,220.493962216,220.291643365,220.088646583,
147 219.884973642,219.680626315,219.475606381,219.269915618,219.063555809,
148 218.856528737,218.64883619,218.440479954,218.231461819,218.021783577,
149 217.811447019,217.600453941,217.388806137,217.176505402,216.963553533,
150 216.749952328,216.535703584,216.3208091,216.105270675,215.889090106,
151 215.672269193,215.454809735,215.23671353,215.017982376,214.798618071,
152 214.578622412,214.357997196,214.136744219,213.914865275,213.692362159,
153 213.469236664,213.245490582,213.021125704,212.796143819,212.570546714,
154 212.344336178,212.117513994,211.890081946,211.662041815,211.433395383,
155 211.204144425,210.97429072,210.74383604,210.512782158,210.281130844,
156 210.048883865,209.816042987,209.582609974,209.348586585,209.113974579,
157 208.878775712,208.642991738,208.406624407,208.169675468,207.932146665,
158 207.694039743,207.455356441,207.216098496,206.976267643,206.735865613,
159 206.494894135,206.253354936,206.011249738,205.76858026,205.52534822,
160 205.281555332,205.037203306,204.792293851,204.54682867,204.300809466,
161 204.054237936,203.807115776,203.559444679,203.311226332,203.062462422,
162 202.813154631,202.563304638,202.312914121,202.06198475,201.810518197,
163 201.558516128,201.305980206,201.05291209,200.799313438,200.545185904,
164 200.290531137,200.035350786,199.779646493,199.5234199,199.266672645,
165 199.009406363,198.751622683,198.493323236,198.234509646,197.975183536,
166 197.715346523,197.455000226,197.194146256,196.932786223,196.670921736,
167 196.408554398,196.145685811,195.882317572,195.618451279,195.354088524,
168 195.089230896,194.823879985,194.558037374,194.291704646,194.024883381,
169 193.757575156,193.489781546,193.221504124,192.952744459,192.68350412,
170 192.413784672,192.143587679,191.872914702,191.601767301,191.330147033,
171 191.058055454,190.785494118,190.512464577,190.238968382,189.965007082,
172 189.690582224,189.415695355,189.14034802,188.864541763,188.588278126,
173 188.311558653,188.034384883,187.756758358,187.478680617,187.200153199,
174 186.921177645,186.641755492,186.36188828,186.081577548,185.800824834,
175 185.519631679,185.237999622,184.955930205,184.673424969,184.390485457,
176 184.107113213,183.823309782,183.539076713,183.254415552,182.969327853,
177 182.683815168,182.397879052,182.111521065,181.824742767,181.537545724,
178 181.249931504,180.961901678,180.673457823,180.384601519,180.095334351,
179 179.805657909,179.515573788,179.225083588,178.934188917,178.642891387,
180 178.351192617,178.059094236,177.766597877,177.473705181,177.1804178,
181 176.886737393,176.592665628,176.298204182,176.003354745,175.708119016,
182 175.412498704,175.116495531,174.820111234,174.523347558,174.226206264,
183 173.92868913,173.630797944,173.332534512,173.033900658,172.734898219,
184 172.435529055,172.13579504,171.835698069,171.53524006,171.234422948,
185 170.933248694,170.631719279,170.32983671,170.027603019,169.725020263,
186 169.422090529,169.118815931,168.815198611,168.511240746,168.206944541,
187 167.902312237,167.597346111,167.292048474,166.986421676,166.680468107,
188 166.374190197,166.06759042,165.760671293,165.453435381,165.145885296,
189 164.8380237,164.529853307,164.221376886,163.912597261,163.603517315,
190 163.294139991,162.984468296,162.674505303,162.36425415,162.05371805,
191 161.742900285,161.431804217,161.120433284,160.808791007,160.496880994,
192 160.184706939,159.872272629,159.559581944,159.246638866,158.933447477,
193 158.620011964,158.306336627,157.992425878,157.678284247,157.363916386,
194 157.049327076,156.734521226,156.419503883,156.104280235,155.788855613,
195 155.473235502,155.15742554,154.841431529,154.525259436,154.2089154,
196 153.89240574,153.575736958,153.258915746,152.941948993,152.624843791,
197 152.307607442,151.990247462,151.672771591,151.3551878,151.037504296,
198 150.719729528,150.4018722,150.083941272,149.765945972,149.4478958,
199 149.129800541,148.811670267,148.493515348,148.17534646,147.857174591,
200 147.539011052,147.220867482,146.90275586,146.584688509,146.266678104,
201 145.948737684,145.630880657,145.313120806,144.995472301,144.677949704,
202 144.360567975,144.043342481,143.726289002,143.409423738,143.092763314,
203 142.776324787,142.46012565,142.144183838,141.828517734,141.513146167,
204 141.198088421,140.883364237,140.56899381,140.254997798,139.941397314,
205 139.628213931,139.31546968,139.003187046,138.691388964,138.380098818,
206 138.069340432,137.759138065,137.449516402,137.140500548,136.832116012,
207 136.524388701,136.217344903,135.911011273,135.605414819,135.300582882,
208 134.99654312,134.693323486,134.390952204,134.089457749,133.788868823,
209 133.489214324,133.190523322,132.89282503,132.596148773,132.300523955,
210 132.005980028,131.712546456,131.420252683,131.129128093,130.839201977,
211 130.550503492,130.263061625,129.97690515,129.692062595,129.408562198,
212 129.126431866,128.845699141,128.566391153,128.288534586,128.012155639,
213 127.737279983,127.463932729,127.19213839,126.921920841,126.653303293,
214 126.386308253,126.120957494,125.857272028,125.595272075,125.334977038,
215 125.076405477,124.819575089,124.564502686,124.311204176,124.059694549,
216 123.809987864,123.562097233,123.316034816,123.071811813,122.829438459,
217 122.588924021,122.3502768,122.113504129,121.878612383,121.645606978,
218 121.414492385,121.185272137,120.957948844,120.732524201,120.508999009,
219 120.287373188,120.067645798,119.849815055,119.633878355,119.419832294,
220 119.207672691,118.997394612,118.788992394,118.582459671,118.377789395,
221 118.174973871,117.974004772,117.774873176,117.577569586,117.382083958,
222 117.188405731,116.996523847,116.806426787,116.618102586,116.431538869,
223 116.246722869,116.063641457,115.882281163,115.702628206,115.524668508,
224 115.348387726,115.173771271,115.000804328,114.82947188,114.659758727,
225 114.491649506,114.325128711,114.160180708,113.996789759,113.834940032,
226 113.674615621,113.515800563,113.358478849,113.20263444,113.048251282,
227 112.895313317,112.743804495,112.593708787,112.445010196,112.297692766,
228 112.151740591,112.007137828,111.863868702,111.721917517,111.581268659,
229 111.441906608,111.303815943,111.166981347,111.031387613,110.897019652,
230 110.763862493,110.63190129,110.501121329,110.371508026,110.243046933,
231 110.115723745,109.989524294,109.864434561,109.740440669,109.617528892,
232 109.495685656,109.374897534,109.255151254,109.1364337,109.018731905,
233 108.902033061,108.786324515,108.671593767,108.557828476,108.445016453,
234 108.333145667,108.222204241,108.112180452,108.003062732,107.894839664,
235 107.787499986,107.681032587,107.575426505,107.470670928,107.366755194,
236 107.263668787,107.161401337,107.059942619,106.959282552,106.859411195,
237 106.760318751,106.661995559,106.564432098,106.467618982,106.37154696,
238 106.276206914,106.181589858,106.087686935,105.994489418,105.901988705,
239 105.81017632,105.719043911,105.628583246,105.538786217,105.44964483,
240 105.361151211,105.273297602,105.186076356,105.09947994,105.013500931,
241 104.928132016,104.843365988,104.759195746,104.675614294,104.592614738,
242 104.510190286,104.428334244,104.347040018,104.266301109,104.186111115,
243 104.106463726,104.027352725,103.948771984,103.870715468,103.793177227,
244 103.716151398,103.639632204,103.563613952,103.48809103,103.41305791,
245 103.33850914,103.26443935,103.190843246,103.117715611,103.045051301,
246 102.972845249,102.901092457,102.829788,102.758927024,102.688504742,
247 102.618516438,102.54895746,102.479823222,102.411109205,102.342810952,
248 102.274924068,102.207444221,102.140367139,102.07368861,102.007404481,
249 101.941510654,101.876003092,101.810877811,101.746130883,101.681758433,
250 101.617756641,101.554121738,101.490850007,101.427937781,101.365381444,
251 101.303177428,101.241322214,101.179812331,101.118644352,101.057814898,
252 100.997320637,100.937158279,100.877324577,100.817816329,100.758630377,
253 100.6997636,100.641212922,100.582975306,100.525047756,100.467427312,
254 100.410111057,100.353096108,100.296379621,100.23995879,100.183830844,
255 100.127993045,100.072442696,100.017177128,99.9621937113,99.9074898464,
256 99.8530629679,99.7989105427,99.7450300696,99.6914190787,99.6380751312,
257 99.5849958187,99.5321787628,99.4796216147,99.4273220547,99.3752777916,
258 99.3234865625,99.2719461323,99.2206542933,99.1696088648,99.1188076924,
259 99.0682486481,99.0179296296,98.9678485599,98.918003387,98.8683920837,
260 98.8190126467,98.769863097,98.7209414788,98.6722458598,98.6237743302,
261 98.5755250031,98.5274960135,98.4796855184,98.4320916962,98.3847127468,
262 98.3375468908,98.2905923695,98.2438474444,98.1973103972,98.1509795293,
263 98.1048531614,98.0589296337,98.013207305,97.9676845528,97.922359773,
264 97.8772313798,97.8322978049,97.7875574979,97.7430089255,97.6986505718,
265 97.6544809376,97.6104985402,97.5667019136,97.5230896077,97.4796601886,
266 97.4364122381,97.3933443532,97.3504551465,97.3077432458,97.2652072933,
267 97.2228459464,97.1806578767,97.1386417702,97.0967963268,97.0551202605,
268 97.0136122989,96.9722711833,96.931095668,96.8900845209,96.8492365225,
269 96.8085504664,96.7680251586,96.7276594179,96.687452075,96.6474019731,
270 96.6075079673,96.5677689244,96.528183723,96.4887512533,96.4494704166,
271 96.4103401258,96.3713593045,96.3325268876,96.2938418206,96.2553030595,
272 96.2169095712,96.1786603327,96.1405543314,96.1025905648,96.0647680402,
273 96.0270857751,95.9895427965,95.9521381411,95.9148708551,95.8777399941,
274 95.840744623,95.8038838156,95.767156655,95.7305622332,95.6940996508,
275 95.6577680174,95.621566451,95.5854940781,95.5495500336,95.5137334607,
276 95.4780435108,95.4424793434,95.4070401257,95.3717250333,95.3365332491,
277 95.3014639639,95.2665163763,95.231689692,95.1969831244,95.1623958942,
278 95.1279272293,95.0935763647,95.0593425426,95.0252250121,94.9912230293,
279 94.957335857,94.9235627648,94.889903029,94.8563559325,94.8229207646,
280 94.7895968211,94.7563834042,94.7232798225,94.6902853904,94.6573994289,
281 94.6246212649,94.5919502312,94.5593856666,94.5269269159,94.4945733296,
282 94.4623242638,94.4301790804,94.398137147,94.3661978366,94.3343605276,
283 94.3026246041,94.2709894553,94.2394544758,94.2080190654,94.1766826291,
284 94.145444577,94.1143043243,94.0832612913,94.052314903,94.0214645895,
285 93.9907097857,93.9600499313,93.9294844707,93.899012853,93.8686345319,
286 93.8383489659,93.8081556177,93.7780539548,93.7480434489,93.7181235762,
287 93.6882938173,93.658553657,93.6289025843,93.5993400927,93.5698656795,
288 93.5404788464,93.5111790989,93.4819659468,93.4528389037,93.4237974873,
289 93.3948412191,93.3659696245,93.3371822327,93.3084785767,93.2798581933,
290 93.2513206229,93.2228654096,93.1944921013,93.1662002492,93.1379894083,
291 93.109859137,93.0818089971,93.0538385542,93.0259473769,92.9981350374,
292 92.9704011112,92.9427451771,92.9151668171,92.8876656167,92.8602411644,
293 92.8328930518,92.8056208739,92.7784242286,92.7513027171,92.7242559433,
294 92.6972835146,92.670385041,92.6435601356,92.6168084145,92.5901294966,
295 92.5635230038,92.5369885607,92.5105257949,92.4841343366,92.4578138189,
296 92.4315638777,92.4053841514,92.3792742812,92.353233911,92.3272626873,
297 92.3013602592,92.2755262785,92.2497603994,92.2240622787,92.1984315757,
298 92.1728679522,92.1473710724,92.1219406032,92.0965762136,92.0712775751,
299 92.0460443617,92.0208762495,91.9957729173,91.9707340457,91.9457593182,
300 91.9208484199,91.8960010388,91.8712168645,91.8464955894,91.8218369075,
301 91.7972405155,91.7727061118,91.7482333973,91.7238220746,91.6994718488,
302 91.6751824268,91.6509535176,91.6267848322,91.6026760837,91.5786269871,
303 91.5546372594,91.5307066197,91.5068347888,91.4830214895,91.4592664466,
304 91.4355693866,91.4119300382,91.3883481315,91.3648233988,91.3413555741,
305 91.3179443931,91.2945895935,91.2712909146,91.2480480975,91.224860885,
306 91.2017290219,91.1786522542,91.1556303301,91.1326629992,91.1097500128,
307 91.086891124,91.0640860873,91.041334659,91.0186365969,90.9959916605,
308 90.9733996109,90.9508602106,90.9283732238,90.9059384162,90.883555555,
309 90.8612244091,90.8389447485,90.8167163451,90.7945389721,90.7724124041,
310 90.7503364174,90.7283107894,90.7063352991,90.6844097271,90.6625338551,
311 90.6407074663,90.6189303453,90.5972022781,90.5755230521,90.5538924558,
312 90.5323102793,90.510776314,90.4892903525,90.4678521887,90.4464616179,
313 90.4251184365,90.4038224425,90.3825734349,90.3613712139,90.3402155812,
314 90.3191063395,90.2980432928,90.2770262463,90.2560550065,90.2351293809,
315 90.2142491783,90.1934142087,90.1726242833,90.1518792142,90.131178815,
316 90.1105229001,90.0899112853,90.0693437874,90.0488202242,90.0283404148,
317 90.0079041793,89.9875113389,89.9671617157,89.9468551333,89.9265914158,
318 89.9063703888,89.8861918787,89.866055713,89.8459617203,89.82590973,
319 89.8058995729,89.7859310803,89.7660040849,89.7461184202,89.7262739206,
320 89.7064704218,89.68670776,89.6669857728,89.6473042984,89.6276631762,
321 89.6080622464,89.5885013501,89.5689803294,89.5494990274,89.5300572878,
322 89.5106549554,89.491291876,89.4719678961,89.4526828632,89.4334366256,
323 89.4142290324,89.3950599338,89.3759291805,89.3568366244,89.3377821181,
324 89.3187655149,89.2997866691,89.2808454357,89.2619416708,89.2430752308,
325 89.2242459734,89.2054537569,89.1866984403,89.1679798835,89.1492979471,
326 89.1306524926,89.1120433823,89.0934704789,89.0749336464,89.056432749,
327 89.0379676522,89.0195382218,89.0011443245,88.9827858277,88.9644625997,
328 88.9461745092,88.927921426,88.9097032202,88.8915197629,88.8733709258,
329 88.8552565813,88.8371766024,88.8191308631,88.8011192377,88.7831416014,
330 88.7651978299,88.7472877998,88.7294113881,88.7115684728,88.6937589321,
331 88.6759826453,88.658239492,88.6405293526,88.6228521081,88.6052076402,
332 88.5875958312,88.5700165638,88.5524697217,88.5349551889,88.5174728501,
333 88.5000225908,88.4826042968,88.4652178545,88.4478631513,88.4305400746,
334 88.413248513,88.3959883551,88.3787594905,88.3615618091,88.3443952016,
335 88.3272595591,88.3101547733,88.2930807364,88.2760373414,88.2590244815,
336 88.2420420507,88.2250899434,88.2081680546,88.1912762799,88.1744145152,
337 88.1575826573,88.1407806031,88.1240082504,88.1072654973,88.0905522424,
338 88.0738683849,88.0572138245,88.0405884613,88.0239921962,88.0074249301,
339 87.9908865649,87.9743770026,87.9578961459,87.941443898,87.9250201625,
340 87.9086248434,87.8922578454,87.8759190734,87.859608433,87.8433258301,
341 87.8270711713,87.8108443633,87.7946453135,87.7784739298,87.7623301204,
342 87.746213794,87.7301248597,87.7140632271,87.6980288064,87.6820215078,
343 87.6660412424,87.6500879215,87.6341614567,87.6182617604,87.6023887451,
344 87.5865423238,87.57072241,87.5549289176,87.5391617608,87.5234208543,
345 87.5077061131,87.4920174528,87.4763547894,87.4607180389,87.4451071183,
346 87.4295219444,87.4139624349,87.3984285076,87.3829200807,87.3674370729,
347 87.3519794032,87.3365469909,87.321139756,87.3057576185,87.2904004989,
348 87.2750683183,87.2597609977,87.2444784589,87.2292206238,87.2139874149,
349 87.1987787547,87.1835945665,87.1684347736,87.1532992998,87.1381880693,
350 87.1231010065,87.1080380363,87.0929990838,87.0779840746,87.0629929344,
351 87.0480255896,87.0330819666,87.0181619923,87.0032655939,86.988392699,
352 86.9735432353,86.9587171311,86.9439143149,86.9291347155,86.914378262,
353 86.899644884,86.8849345112,86.8702470737,86.855582502,86.8409407267,
354 86.8263216789,86.81172529,86.7971514915,86.7826002155,86.7680713942,
355 86.7535649602,86.7390808462,86.7246189855,86.7101793115,86.695761758,
356 86.681366259,86.6669927487,86.6526411619,86.6383114334,86.6240034983,
357 86.6097172923,86.5954527509,86.5812098103,86.5669884067,86.5527884768,
358 86.5386099573,86.5244527855,86.5103168987,86.4962022346,86.4821087312,
359 86.4680363266,86.4539849594,86.4399545682,86.4259450922,86.4119564705,
360 86.3979886428,86.3840415487,86.3701151284,86.356209322,86.3423240703,
361 86.328459314,86.3146149941,86.3007910521,86.2869874293,86.2732040677,
362 86.2594409093,86.2456978963,86.2319749714,86.2182720773,86.204589157,
363 86.1909261539,86.1772830113,86.1636596731,86.1500560831,86.1364721857,
364 86.1229079253,86.1093632464,86.0958380941,86.0823324135,86.0688461498,
365 86.0553792488,86.0419316561,86.0285033179,86.0150941804,86.0017041901,
366 85.9883332936,85.9749814379,85.9616485701,85.9483346376,85.935039588,
367 85.9217633689,85.9085059285,85.8952672149,85.8820471765,85.868845762,
368 85.8556629201,85.8424986001,85.829352751,85.8162253223,85.8031162638,
369 85.7900255253,85.7769530568,85.7638988086,85.7508627312,85.7378447752,
370 85.7248448915,85.7118630312,85.6988991455,85.6859531858,85.6730251039,
371 85.6601148515,85.6472223807,85.6343476437,85.6214905929,85.608651181,
372 85.5958293606,85.5830250847,85.5702383066,85.5574689796,85.5447170572,
373 85.531982493,85.5192652411,85.5065652554,85.4938824903,85.4812169001,
374 85.4685684394,85.4559370631,85.4433227262,85.4307253837,85.4181449909,
375 85.4055815034,85.3930348768,85.380505067,85.36799203,85.3554957218,
376 85.3430160989,85.3305531178,85.3181067352,85.3056769079,85.2932635929,
377 85.2808667474,85.2684863287,85.2561222943,85.243774602,85.2314432095,
378 85.2191280748,85.2068291561,85.1945464117,85.1822798,85.1700292797,
379 85.1577948095,85.1455763484,85.1333738555,85.1211872901,85.1090166115,
380 85.0968617793,85.0847227531,85.0725994929,85.0604919587,85.0484001106,
381 85.036323909,85.0242633142,85.0122182869,85.0001887879,84.988174778,
382 84.9761762183,84.96419307,84.9522252944,84.940272853,84.9283357074,
383 84.9164138193,84.9045071507,84.8926156637,84.8807393203,84.8688780829,
384 84.8570319141,84.8452007763,84.8333846323,84.821583445,84.8097971775,
385 84.7980257927,84.7862692541,84.7745275251,84.7628005691,84.7510883499,
386 84.7393908313,84.7277079772,84.7160397517,84.704386119,84.6927470434,
387 84.6811224894,84.6695124216,84.6579168048,84.6463356037,84.6347687833,
388 84.6232163088,84.6116781453,84.6001542582,84.588644613,84.5771491752,
389 84.5656679107,84.5542007852,84.5427477647,84.5313088153,84.5198839031,
390 84.5084729946,84.4970760562,84.4856930544,84.4743239558,84.4629687275,
391 84.4516273361,84.4402997488,84.4289859327,84.4176858551,84.4063994834,
392 84.395126785,84.3838677277,84.372622279,84.3613904068,84.3501720791,
393 84.338967264,84.3277759297,84.3165980443,84.3054335763,84.2942824943,
394 84.2831447667,84.2720203625,84.2609092503,84.2498113991,84.238726778,
395 84.2276553561,84.2165971027,84.2055519872,84.194519979,84.1835010476,
396 84.1724951629,84.1615022946,84.1505224125,84.1395554866,84.1286014871,
397 84.1176603842,84.1067321481,84.0958167492,84.0849141581,84.0740243453,
398 84.0631472816,84.0522829378,84.0414312847,84.0305922934,84.0197659349,
399 84.0089521804,83.9981510014,83.987362369,83.9765862548,83.9658226305,
400 83.9550714676,83.944332738,83.9336064135,83.922892466,83.9121908677,
401 83.9015015907,83.8908246072,83.8801598895,83.8695074102,83.8588671416,
402 83.8482390564,83.8376231274,83.8270193272,83.8164276289,83.8058480053,
403 83.7952804295,83.7847248747,83.774181314,83.763649721,83.7531300688,
404 83.7426223311,83.7321264815,83.7216424936,83.7111703411,83.700709998,
405 83.6902614382,83.6798246356,83.6693995644,83.6589861988,83.648584513,
406 83.6381944814,83.6278160785,83.6174492788,83.6070940568,83.5967503873,
407 83.586418245,83.5760976048,83.5657884417,83.5554907305,83.5452044465,
408 83.5349295648,83.5246660606,83.5144139094,83.5041730864,83.4939435673,
409 83.4837253275,83.4735183427,83.4633225887,83.4531380413,83.4429646763,
410 83.4328024696,83.4226513974,83.4125114358,83.4023825609,83.392264749,
411 83.3821579764,83.3720622196,83.361977455,83.3519036592,83.3418408089,
412 83.3317888807,83.3217478514,83.3117176979,83.3016983972,83.2916899262,
413 83.281692262,83.2717053817,83.2617292627,83.251763882,83.2418092172,
414 83.2318652457,83.2219319449,83.2120092924,83.2020972659,83.1921958431,
415 83.1823050018,83.1724247198,83.162554975,83.1526957454,83.1428470091,
416 83.1330087443,83.123180929,83.1133635416,83.1035565603,83.0937599636,
417 83.08397373,83.0741978379,83.064432266,83.0546769929,83.0449319973,
418 83.035197258,83.0254727539,83.0157584639,83.006054367,82.9963604422,
419 82.9866766686,82.9770030254,82.9673394918,82.9576860472,82.9480426709,
420 82.9384093423,82.9287860409,82.9191727463,82.9095694381,82.8999760959,
421 82.8903926995,82.8808192286,82.8712556633,82.8617019832,82.8521581685,
422 82.8426241992,82.8331000553,82.8235857171,82.8140811647,82.8045863785,
423 82.7951013386,82.7856260257,82.77616042,82.7667045022,82.7572582527,
424 82.7478216522,82.7383946815,82.7289773211,82.719569552,82.710171355,
425 82.700782711,82.6914036009,82.6820340059,82.6726739069,82.6633232851,
426 82.6539821217,82.644650398,82.6353280953,82.6260151948,82.6167116781,
427 82.6074175266,82.5981327217,82.5888572452,82.5795910786,82.5703342036,
428 82.5610866019,82.5518482554,82.5426191458,82.5333992551,82.5241885652,
429 82.5149870582,82.505794716,82.4966115208,82.4874374547,82.4782724999,
430 82.4691166388,82.4599698535,82.4508321266,82.4417034403,82.4325837772,
431 82.4234731197,82.4143714505,82.4052787521,82.3961950073,82.3871201986,
432 82.378054309,82.3689973211,82.3599492179,82.3509099823,82.3418795973,
433 82.3328580457,82.3238453108,82.3148413756,82.3058462233,82.296859837,
434 82.2878822
435 }
436 },
437 {
438 // Ri = 250k
439 -5,5,200,2001, {
440 249.98706929,249.986851225,249.986629489,249.986404021,249.986174757,
441 249.985941635,249.985704589,249.985463554,249.985218463,249.984969247,
442 249.984715838,249.984458166,249.984196158,249.983929743,249.983658846,
443 249.983383392,249.983103306,249.982818508,249.982528921,249.982234464,
444 249.981935056,249.981630613,249.981321052,249.981006287,249.98068623,
445 249.980360793,249.980029887,249.979693419,249.979351296,249.979003424,
446 249.978649708,249.978290048,249.977924346,249.9775525,249.977174409,
447 249.976789967,249.976399069,249.976001606,249.97559747,249.975186548,
448 249.974768727,249.974343893,249.973911927,249.973472711,249.973026125,
449 249.972572044,249.972110345,249.9716409,249.971163579,249.970678252,
450 249.970184785,249.969683043,249.969172887,249.968654177,249.968126772,
451 249.967590526,249.967045292,249.96649092,249.965927258,249.965354153,
452 249.964771446,249.964178978,249.963576587,249.962964107,249.962341372,
453 249.961708211,249.96106445,249.960409914,249.959744424,249.959067797,
454 249.95837985,249.957680393,249.956969237,249.956246188,249.955511048,
455 249.954763616,249.95400369,249.953231063,249.952445523,249.951646857,
456 249.950834849,249.950009276,249.949169916,249.94831654,249.947448916,
457 249.946566809,249.945669979,249.944758184,249.943831177,249.942888706,
458 249.941930516,249.940956349,249.93996594,249.938959023,249.937935324,
459 249.936894568,249.935836475,249.934760758,249.933667127,249.932555289,
460 249.931424944,249.930275788,249.929107511,249.9279198,249.926712337,
461 249.925484796,249.92423685,249.922968162,249.921678394,249.9203672,
462 249.91903423,249.917679127,249.916301529,249.914901069,249.913477372,
463 249.912030061,249.910558748,249.909063042,249.907542547,249.905996856,
464 249.904425561,249.902828244,249.901204482,249.899553844,249.897875894,
465 249.896170188,249.894436274,249.892673696,249.890881989,249.889060679,
466 249.887209288,249.885327328,249.883414305,249.881469716,249.879493052,
467 249.877483793,249.875441414,249.87336538,249.87125515,249.869110171,
468 249.866929885,249.864713724,249.86246111,249.860171458,249.857844173,
469 249.855478652,249.853074281,249.850630438,249.848146491,249.845621799,
470 249.843055711,249.840447565,249.837796689,249.835102404,249.832364016,
471 249.829580824,249.826752115,249.823877166,249.820955243,249.8179856,
472 249.81496748,249.811900117,249.80878273,249.80561453,249.802394713,
473 249.799122465,249.795796959,249.792417358,249.788982809,249.785492449,
474 249.781945403,249.778340779,249.774677678,249.770955183,249.767172365,
475 249.763328284,249.759421981,249.75545249,249.751418824,249.747319988,
476 249.743154968,249.738922738,249.734622257,249.730252468,249.725812301,
477 249.72130067,249.716716471,249.712058589,249.70732589,249.702517225,
478 249.697631429,249.692667321,249.687623703,249.682499361,249.677293063,
479 249.672003562,249.666629592,249.661169871,249.655623098,249.649987954,
480 249.644263106,249.638447197,249.632538857,249.626536694,249.620439299,
481 249.614245244,249.607953082,249.601561346,249.59506855,249.588473189,
482 249.581773739,249.574968653,249.568056367,249.561035295,249.553903831,
483 249.546660348,249.5393032,249.531830718,249.524241211,249.516532969,
484 249.508704259,249.500753327,249.492678397,249.48447767,249.476149326,
485 249.467691521,249.459102391,249.450380046,249.441522576,249.432528047,
486 249.423394501,249.414119957,249.404702411,249.395139834,249.385430176,
487 249.37557136,249.365561287,249.355397831,249.345078845,249.334602156,
488 249.323965565,249.313166851,249.302203767,249.291074039,249.27977537,
489 249.268305439,249.256661896,249.244842368,249.232844458,249.220665739,
490 249.208303762,249.195756051,249.183020104,249.170093394,249.156973366,
491 249.143657441,249.130143014,249.116427453,249.102508098,249.088382267,
492 249.074047249,249.059500307,249.044738677,249.029759572,249.014560175,
493 248.999137645,248.983489114,248.967611688,248.951502446,248.935158442,
494 248.918576704,248.901754233,248.884688005,248.867374969,248.84981205,
495 248.831996145,248.813924127,248.795592843,248.776999115,248.75813974,
496 248.739011488,248.719611106,248.699935316,248.679980814,248.659744274,
497 248.639222342,248.618411645,248.597308781,248.575910327,248.554212837,
498 248.532212841,248.509906845,248.487291335,248.464362771,248.441117595,
499 248.417552224,248.393663055,248.369446462,248.344898801,248.320016406,
500 248.29479559,248.269232647,248.243323852,248.217065459,248.190453706,
501 248.163484811,248.136154974,248.108460379,248.080397191,248.05196156,
502 248.02314962,247.993957487,247.964381265,247.934417041,247.90406089,
503 247.87330887,247.84215703,247.810601403,247.778638011,247.746262866,
504 247.713471967,247.680261304,247.646626855,247.612564592,247.578070476,
505 247.543140462,247.507770494,247.471956513,247.435694453,247.398980241,
506 247.361809801,247.32417905,247.286083906,247.24752028,247.208484082,
507 247.168971222,247.128977608,247.088499147,247.047531748,247.006071321,
508 246.964113777,246.921655032,246.878691002,246.835217611,246.791230786,
509 246.746726458,246.701700567,246.656149059,246.610067888,246.563453016,
510 246.516300415,246.468606067,246.420365965,246.371576112,246.322232525,
511 246.272331233,246.22186828,246.170839723,246.119241635,246.067070105,
512 246.014321238,245.960991158,245.907076005,245.85257194,245.797475142,
513 245.741781811,245.685488168,245.628590456,245.57108494,245.512967909,
514 245.454235673,245.394884571,245.334910963,245.274311238,245.213081809,
515 245.151219118,245.088719633,245.025579852,244.961796302,244.897365539,
516 244.832284149,244.76654875,244.70015599,244.633102551,244.565385144,
517 244.497000518,244.427945453,244.358216762,244.287811295,244.216725936,
518 244.144957607,244.072503262,243.999359895,243.925524536,243.850994253,
519 243.775766153,243.699837378,243.623205113,243.545866579,243.467819039,
520 243.389059794,243.309586187,243.2293956,243.148485458,243.066853225,
521 242.984496408,242.901412556,242.817599259,242.733054149,242.647774903,
522 242.561759239,242.475004919,242.387509745,242.299271568,242.210288277,
523 242.120557808,242.03007814,241.938847296,241.846863343,241.75412439,
524 241.660628595,241.566374155,241.471359316,241.375582364,241.279041632,
525 241.181735498,241.083662381,240.984820749,240.88520911,240.78482602,
526 240.683670075,240.581739919,240.479034238,240.375551763,240.271291268,
527 240.166251571,240.060431535,239.953830064,239.846446107,239.738278656,
528 239.629326745,239.519589453,239.4090659,239.297755248,239.185656702,
529 239.072769509,238.959092958,238.84462638,238.729369145,238.613320666,
530 238.496480396,238.37884783,238.260422501,238.141203983,238.02119189,
531 237.900385875,237.778785628,237.656390882,237.533201405,237.409217004,
532 237.284437524,237.158862846,237.03249289,236.905327613,236.777367005,
533 236.648611095,236.519059947,236.38871366,236.257572368,236.125636239,
534 235.992905475,235.859380313,235.725061022,235.589947905,235.454041297,
535 235.317341565,235.179849108,235.041564357,234.902487774,234.762619849,
536 234.621961106,234.480512096,234.338273402,234.195245633,234.051429428,
537 233.906825454,233.761434407,233.615257009,233.468294009,233.320546182,
538 233.172014331,233.022699284,232.872601892,232.721723035,232.570063615,
539 232.417624559,232.264406816,232.110411361,231.955639189,231.800091321,
540 231.643768797,231.486672681,231.328804057,231.17016403,231.010753726,
541 230.850574292,230.689626893,230.527912715,230.365432962,230.202188857,
542 230.038181642,229.873412577,229.707882938,229.541594019,229.374547132,
543 229.206743604,229.038184779,228.868872017,228.698806692,228.527990194,
544 228.356423928,228.184109314,228.011047785,227.837240787,227.662689782,
545 227.487396243,227.311361655,227.134587519,226.957075345,226.778826655,
546 226.599842984,226.420125878,226.239676893,226.058497596,225.876589564,
547 225.693954385,225.510593656,225.326508984,225.141701984,224.956174281,
548 224.769927509,224.58296331,224.395283333,224.206889237,224.017782686,
549 223.827965353,223.637438918,223.446205069,223.254265497,223.061621903,
550 222.868275994,222.674229479,222.479484077,222.284041512,222.08790351,
551 221.891071805,221.693548135,221.495334244,221.296431876,221.096842785,
552 220.896568725,220.695611455,220.493972738,220.29165434,220.08865803,
553 219.88498558,219.680638766,219.475619366,219.269929161,219.063569932,
554 218.856543466,218.648851549,218.440495971,218.231478522,218.021800994,
555 217.811465182,217.60047288,217.388825884,217.176525993,216.963575003,
556 216.749974714,216.535726925,216.320833437,216.105296048,215.88911656,
557 215.672296774,215.45483849,215.236743508,215.018013629,214.798650652,
558 214.578656378,214.358032605,214.136781131,213.914903754,213.692402271,
559 213.469278477,213.245534168,213.021171136,212.796191175,212.570596077,
560 212.344387629,212.117567622,211.890137843,211.662100076,211.433456105,
561 211.204207714,210.974356681,210.743904787,210.512853806,210.281205515,
562 210.048961685,209.816124088,209.582694492,209.348674664,209.114066368,
563 208.878871366,208.643091418,208.406728281,208.169783711,207.93225946,
564 207.694157278,207.455478915,207.216226114,206.97640062,206.736004172,
565 206.49503851,206.253505367,206.011406477,205.768743571,205.525518376,
566 205.281732618,205.037388018,204.792486297,204.547029172,204.301018358,
567 204.054455568,203.80734251,203.559680893,203.31147242,203.062718793,
568 202.813421712,202.563582874,202.313203973,202.062286701,201.810832747,
569 201.558843799,201.306321542,201.053267658,200.799683826,200.545571726,
570 200.290933032,200.035769418,199.780082556,199.523874114,199.26714576,
571 199.00989916,198.752135977,198.493857873,198.235066508,197.97576354,
572 197.715950626,197.455629421,197.19480158,196.933468754,196.671632596,
573 196.409294756,196.146456882,195.883120624,195.619287629,195.354959544,
574 195.090138015,194.824824689,194.559021212,194.292729229,194.025950385,
575 193.758686328,193.490938703,193.222709157,192.953999338,192.684810894,
576 192.415145475,192.145004731,191.874390314,191.603303879,191.331747082,
577 191.059721579,190.787229033,190.514271105,190.240849462,189.966965773,
578 189.69262171,189.417818949,189.14255917,188.866844059,188.590675304,
579 188.314054599,188.036983645,187.759464146,187.481497813,187.203086365,
580 186.924231527,186.64493503,186.365198614,186.085024028,185.804413028,
581 185.523367379,185.241888858,184.95997925,184.677640352,184.394873972,
582 184.11168193,183.828066057,183.544028199,183.259570217,182.974693983,
583 182.689401387,182.403694334,182.117574747,181.831044563,181.544105742,
584 181.25676026,180.969010115,180.680857324,180.392303929,180.103351992,
585 179.814003602,179.524260869,179.234125934,178.943600962,178.652688148,
586 178.361389716,178.069707923,177.777645057,177.485203439,177.192385426,
587 176.899193414,176.605629834,176.311697159,176.017397903,175.722734622,
588 175.42770992,175.132326446,174.836586898,174.540494025,174.244050629,
589 173.947259568,173.650123755,173.352646164,173.054829832,172.756677859,
590 172.458193411,172.159379726,171.860240112,171.560777954,171.260996712,
591 170.960899932,170.660491239,170.359774348,170.058753063,169.757431286,
592 169.455813011,169.153902337,168.851703468,168.549220714,168.246458503,
593 167.943421374,167.640113993,167.336541149,167.032707762,166.728618886,
594 166.424279716,166.119695592,165.814872003,165.509814594,165.204529171,
595 164.899021704,164.593298336,164.287365388,163.981229364,163.674896958,
596 163.36837506,163.061670761,162.754791362,162.447744379,162.140537551,
597 161.833178847,161.525676469,161.218038867,160.91027474,160.602393044,
598 160.294403003,159.986314114,159.678136154,159.369879193,159.061553594,
599 158.753170027,158.444739474,158.13627324,157.827782957,157.519280595,
600 157.21077847,156.90228925,156.593825964,156.285402011,155.977031166,
601 155.668727586,155.360505823,155.052380826,154.744367948,154.436482957,
602 154.128742038,153.821161801,153.513759285,153.206551968,152.899557763,
603 152.592795032,152.286282581,151.980039672,151.674086016,151.368441781,
604 151.063127591,150.758164527,150.453574123,150.149378371,149.84559971,
605 149.542261029,149.239385659,148.936997368,148.635120356,148.333779243,
606 148.032999061,147.732805244,147.433223619,147.134280384,146.836002101,
607 146.538415678,146.241548349,145.945427656,145.650081429,145.355537765,
608 145.061825,144.768971689,144.477006578,144.185958573,143.895856717,
609 143.606730155,143.318608101,143.031519811,142.745494544,142.460561528,
610 142.176749925,141.894088794,141.612607053,141.33233344,141.053296478,
611 140.775524432,140.499045269,140.223886626,139.950075761,139.677639521,
612 139.406604303,139.13699601,138.86884002,138.602161147,138.336983605,
613 138.073330973,137.811226163,137.550691387,137.291748127,137.034417106,
614 136.778718261,136.524670718,136.272292766,136.021601842,135.772614503,
615 135.525346418,135.279812345,135.036026122,134.79400066,134.553747926,
616 134.315278945,134.078603792,133.843731591,133.610670518,133.379427799,
617 133.150009719,132.922421627,132.696667945,132.472752176,132.25067692,
618 132.030443888,131.812053912,131.595506968,131.380802191,131.167937895,
619 130.956911595,130.747720026,130.540359167,130.334824266,130.13110986,
620 129.929209804,129.729117294,129.53082489,129.334324549,129.139607641,
621 128.946664984,128.755486867,128.566063074,128.378382911,128.192435235,
622 128.008208475,127.82569066,127.644869442,127.465732122,127.288265674,
623 127.112456765,126.938291784,126.765756859,126.594837879,126.425520519,
624 126.257790258,126.091632396,125.92703208,125.763974314,125.602443985,
625 125.442425874,125.283904673,125.126865007,124.971291439,124.817168494,
626 124.664480664,124.51321243,124.363348265,124.214872655,124.067770102,
627 123.922025141,123.777622345,123.634546339,123.492781803,123.352313488,
628 123.213126215,123.075204892,122.938534511,122.803100162,122.668887034,
629 122.535880424,122.404065739,122.273428504,122.143954363,122.015629084,
630 121.888438563,121.76236883,121.637406044,121.513536504,121.390746648,
631 121.269023054,121.148352444,121.028721683,120.910117783,120.792527903,
632 120.675939349,120.560339577,120.445716191,120.332056945,120.219349742,
633 120.107582636,119.996743831,119.886821679,119.777804682,119.669681491,
634 119.562440905,119.45607187,119.350563481,119.245904975,119.142085739,
635 119.039095299,118.936923328,118.835559639,118.734994187,118.635217064,
636 118.536218503,118.437988872,118.340518677,118.243798555,118.147819277,
637 118.052571748,117.958046998,117.864236189,117.771130609,117.678721671,
638 117.587000912,117.495959991,117.405590688,117.315884902,117.226834649,
639 117.138432063,117.050669391,116.963538993,116.87703334,116.791145014,
640 116.705866704,116.621191207,116.537111424,116.453620361,116.370711124,
641 116.288376922,116.206611062,116.125406949,116.044758083,115.964658061,
642 115.885100572,115.806079397,115.727588408,115.649621564,115.572172916,
643 115.495236596,115.418806826,115.342877908,115.267444229,115.192500255,
644 115.118040534,115.04405969,114.970552425,114.89751352,114.824937826,
645 114.752820271,114.681155856,114.60993965,114.539166794,114.4688325,
646 114.398932045,114.329460774,114.260414097,114.191787491,114.123576494,
647 114.055776708,113.988383796,113.921393483,113.854801553,113.788603846,
648 113.722796265,113.657374766,113.592335361,113.527674118,113.463387161,
649 113.399470663,113.335920853,113.27273401,113.209906463,113.147434593,
650 113.085314829,113.023543648,112.962117574,112.901033179,112.840287082,
651 112.779875944,112.719796474,112.660045423,112.600619585,112.541515797,
652 112.482730939,112.42426193,112.36610573,112.308259341,112.250719802,
653 112.19348419,112.136549623,112.079913253,112.023572271,111.967523904,
654 111.911765414,111.856294098,111.801107289,111.746202353,111.691576689,
655 111.637227729,111.583152939,111.529349816,111.475815888,111.422548715,
656 111.369545886,111.316805023,111.264323773,111.212099817,111.160130862,
657 111.108414643,111.056948924,111.005731497,110.954760178,110.904032814,
658 110.853547274,110.803301456,110.75329328,110.703520696,110.653981674,
659 110.60467421,110.555596324,110.50674606,110.458121485,110.409720688,
660 110.361541782,110.313582902,110.265842202,110.218317863,110.171008082,
661 110.123911081,110.077025099,110.030348399,109.983879261,109.937615986,
662 109.891556896,109.845700329,109.800044645,109.754588221,109.709329453,
663 109.664266754,109.619398556,109.57472331,109.530239481,109.485945553,
664 109.441840028,109.397921423,109.354188272,109.310639125,109.267272548,
665 109.224087122,109.181081447,109.138254133,109.095603809,109.053129118,
666 109.010828717,108.968701278,108.926745487,108.884960045,108.843343665,
667 108.801895077,108.760613021,108.719496253,108.67854354,108.637753663,
668 108.597125417,108.556657609,108.516349056,108.476198591,108.436205057,
669 108.39636731,108.356684217,108.317154657,108.277777521,108.238551712,
670 108.199476141,108.160549735,108.121771427,108.083140165,108.044654905,
671 108.006314614,107.96811827,107.930064861,107.892153386,107.854382852,
672 107.816752278,107.77926069,107.741907128,107.704690637,107.667610274,
673 107.630665104,107.593854203,107.557176653,107.520631548,107.48421799,
674 107.447935087,107.41178196,107.375757736,107.339861549,107.304092545,
675 107.268449875,107.2329327,107.197540188,107.162271514,107.127125864,
676 107.092102428,107.057200405,107.022419004,106.987757437,106.953214926,
677 106.9187907,106.884483995,106.850294054,106.816220127,106.78226147,
678 106.748417348,106.714687031,106.681069796,106.647564927,106.614171713,
679 106.580889453,106.547717448,106.514655009,106.48170145,106.448856093,
680 106.416118267,106.383487304,106.350962545,106.318543335,106.286229026,
681 106.254018974,106.221912543,106.189909101,106.158008021,106.126208684,
682 106.094510473,106.06291278,106.031414999,106.000016532,105.968716784,
683 105.937515166,105.906411094,105.87540399,105.844493279,105.813678393,
684 105.782958766,105.752333841,105.721803061,105.691365878,105.661021745,
685 105.630770122,105.600610472,105.570542264,105.540564971,105.51067807,
686 105.480881041,105.451173372,105.421554551,105.392024073,105.362581436,
687 105.333226143,105.3039577,105.274775617,105.245679411,105.216668597,
688 105.1877427,105.158901246,105.130143764,105.101469788,105.072878857,
689 105.04437051,105.015944294,104.987599757,104.959336451,104.931153932,
690 104.903051759,104.875029495,104.847086706,104.819222962,104.791437835,
691 104.763730902,104.736101743,104.708549941,104.681075081,104.653676754,
692 104.626354551,104.599108068,104.571936905,104.544840663,104.517818946,
693 104.490871364,104.463997527,104.437197048,104.410469545,104.383814638,
694 104.357231948,104.330721102,104.304281728,104.277913457,104.251615922,
695 104.225388761,104.199231613,104.173144119,104.147125925,104.121176677,
696 104.095296026,104.069483624,104.043739125,104.018062189,103.992452474,
697 103.966909643,103.941433361,103.916023296,103.890679118,103.865400498,
698 103.840187112,103.815038637,103.789954751,103.764935137,103.739979478,
699 103.715087461,103.690258774,103.665493107,103.640790154,103.616149609,
700 103.59157117,103.567054536,103.542599408,103.51820549,103.493872487,
701 103.469600108,103.445388062,103.42123606,103.397143817,103.373111047,
702 103.34913747,103.325222804,103.301366771,103.277569095,103.253829501,
703 103.230147716,103.206523469,103.182956493,103.159446518,103.13599328,
704 103.112596516,103.089255964,103.065971363,103.042742456,103.019568986,
705 102.996450698,102.97338734,102.950378659,102.927424406,102.904524334,
706 102.881678195,102.858885746,102.836146742,102.813460943,102.790828108,
707 102.768247999,102.74572038,102.723245015,102.700821671,102.678450115,
708 102.656130116,102.633861446,102.611643877,102.589477183,102.567361139,
709 102.545295522,102.523280109,102.501314681,102.479399019,102.457532905,
710 102.435716122,102.413948457,102.392229695,102.370559624,102.348938035,
711 102.327364716,102.305839461,102.284362062,102.262932314,102.241550013,
712 102.220214956,102.198926941,102.177685768,102.156491237,102.135343152,
713 102.114241314,102.093185529,102.072175603,102.051211342,102.030292555,
714 102.009419051,101.98859064,101.967807134,101.947068347,101.926374091,
715 101.905724182,101.885118436,101.864556671,101.844038704,101.823564356,
716 101.803133447,101.782745799,101.762401235,101.742099578,101.721840653,
717 101.701624287,101.681450305,101.661318537,101.641228811,101.621180958,
718 101.601174808,101.581210193,101.561286947,101.541404903,101.521563896,
719 101.501763763,101.482004341,101.462285466,101.442606979,101.422968719,
720 101.403370526,101.383812242,101.36429371,101.344814774,101.325375276,
721 101.305975064,101.286613983,101.267291879,101.248008601,101.228763999,
722 101.20955792,101.190390216,101.171260738,101.152169339,101.133115871,
723 101.114100189,101.095122146,101.076181599,101.057278403,101.038412416,
724 101.019583497,101.000791503,100.982036294,100.96331773,100.944635673,
725 100.925989984,100.907380526,100.888807163,100.870269758,100.851768177,
726 100.833302284,100.814871947,100.796477033,100.778117409,100.759792944,
727 100.741503507,100.723248969,100.705029199,100.68684407,100.668693453,
728 100.650577222,100.632495249,100.614447409,100.596433577,100.578453629,
729 100.56050744,100.542594887,100.524715848,100.506870202,100.489057826,
730 100.471278601,100.453532406,100.435819123,100.418138632,100.400490816,
731 100.382875557,100.365292739,100.347742246,100.330223961,100.312737771,
732 100.29528356,100.277861215,100.260470623,100.243111672,100.225784249,
733 100.208488243,100.191223543,100.17399004,100.156787623,100.139616184,
734 100.122475614,100.105365804,100.088286649,100.07123804,100.054219871,
735 100.037232038,100.020274434,100.003346955,99.9864494965,99.9695819554,
736 99.9527442284,99.935936213,99.9191578071,99.9024089092,99.8856894183,
737 99.8689992338,99.8523382559,99.8357063851,99.8191035222,99.8025295689,
738 99.7859844271,99.7694679993,99.7529801885,99.7365208981,99.7200900321,
739 99.7036874949,99.6873131914,99.6709670269,99.6546489073,99.6383587388,
740 99.6220964281,99.6058618826,99.5896550097,99.5734757178,99.5573239152,
741 99.5411995111,99.5251024148,99.5090325364,99.492989786,99.4769740745,
742 99.460985313,99.4450234132,99.4290882872,99.4131798474,99.3972980067,
743 99.3814426785,99.3656137764,99.3498112147,99.3340349078,99.3182847708,
744 99.3025607191,99.2868626683,99.2711905347,99.2555442348,99.2399236857,
745 99.2243288047,99.2087595095,99.1932157183,99.1776973497,99.1622043225,
746 99.146736556,99.1312939699,99.1158764842,99.1004840195,99.0851164964,
747 99.0697738362,99.0544559603,99.0391627907,99.0238942497,99.0086502598,
748 98.993430744,98.9782356258,98.9630648287,98.9479182768,98.9327958945,
749 98.9176976065,98.902623338,98.8875730143,98.8725465613,98.857543905,
750 98.8425649718,98.8276096887,98.8126779826,98.7977697811,98.7828850119,
751 98.7680236031,98.7531854831,98.7383705808,98.7235788251,98.7088101455,
752 98.6940644717,98.6793417336,98.6646418617,98.6499647867,98.6353104394,
753 98.6206787511,98.6060696534,98.5914830783,98.5769189578,98.5623772246,
754 98.5478578113,98.533360651,98.5188856772,98.5044328236,98.490002024,
755 98.4755932127,98.4612063243,98.4468412937,98.4324980559,98.4181765464,
756 98.4038767009,98.3895984552,98.3753417457,98.361106509,98.3468926817,
757 98.332700201,98.3185290043,98.3043790291,98.2902502134,98.2761424952,
758 98.2620558131,98.2479901058,98.2339453121,98.2199213714,98.205918223,
759 98.1919358068,98.1779740627,98.164032931,98.1501123522,98.136212267,
760 98.1223326165,98.108473342,98.0946343849,98.080815687,98.0670171904,
761 98.0532388372,98.03948057,98.0257423315,98.0120240648,97.9983257129,
762 97.9846472195,97.9709885281,97.9573495827,97.9437303276,97.930130707,
763 97.9165506656,97.9029901484,97.8894491003,97.8759274667,97.8624251931,
764 97.8489422254,97.8354785095,97.8220339916,97.8086086182,97.795202336,
765 97.7818150918,97.7684468328,97.7550975062,97.7417670596,97.7284554407,
766 97.7151625976,97.7018884783,97.6886330313,97.6753962052,97.6621779488,
767 97.648978211,97.6357969412,97.6226340887,97.6094896032,97.5963634346,
768 97.5832555327,97.570165848,97.5570943308,97.5440409318,97.5310056019,
769 97.5179882919,97.5049889533,97.4920075374,97.4790439958,97.4660982804,
770 97.4531703431,97.4402601362,97.427367612,97.4144927232,97.4016354224,
771 97.3887956627,97.3759733971,97.3631685791,97.350381162,97.3376110997,
772 97.3248583459,97.3121228548,97.2994045805,97.2867034775,97.2740195003,
773 97.2613526038,97.2487027429,97.2360698727,97.2234539485,97.2108549257,
774 97.1982727601,97.1857074075,97.1731588237,97.1606269651,97.1481117878,
775 97.1356132485,97.1231313037,97.1106659104,97.0982170254,97.0857846061,
776 97.0733686096,97.0609689935,97.0485857155,97.0362187333,97.0238680049,
777 97.0115334885,96.9992151424,96.9869129251,96.974626795,96.9623567111,
778 96.9501026322,96.9378645174,96.925642326,96.9134360174,96.901245551,
779 96.8890708866,96.8769119841,96.8647688034,96.8526413048,96.8405294484,
780 96.8284331947,96.8163525044,96.8042873382,96.792237657,96.7802034217,
781 96.7681845937,96.7561811342,96.7441930046,96.7322201667,96.7202625821,
782 96.7083202128,96.6963930208,96.6844809683,96.6725840175,96.660702131,
783 96.6488352713,96.6369834012,96.6251464835,96.6133244813,96.6015173576,
784 96.5897250758,96.5779475993,96.5661848916,96.5544369164,96.5427036375,
785 96.5309850188,96.5192810244,96.5075916186,96.4959167655,96.4842564298,
786 96.472610576,96.4609791688,96.449362173,96.4377595536,96.4261712758,
787 96.4145973047,96.4030376057,96.3914921443,96.379960886,96.3684437966,
788 96.3569408419,96.3454519879,96.3339772007,96.3225164464,96.3110696914,
789 96.2996369022,96.2882180452,96.2768130873,96.2654219951,96.2540447357,
790 96.242681276,96.2313315832,96.2199956245,96.2086733674,96.1973647793,
791 96.1860698279,96.1747884809,96.1635207061,96.1522664715,96.1410257451,
792 96.1297984951,96.1185846898,96.1073842976,96.096197287,96.0850236266,
793 96.0738632851,96.0627162315,96.0515824345,96.0404618634,96.0293544871,
794 96.018260275,96.0071791965,95.9961112211,95.9850563182,95.9740144577,
795 95.9629856092,95.9519697427,95.9409668282,95.9299768358,95.9189997356,
796 95.908035498,95.8970840934,95.8861454923,95.8752196653,95.8643065831,
797 95.8534062165,95.8425185365,95.8316435139,95.82078112,95.8099313258,
798 95.7990941028,95.7882694223,95.7774572558,95.7666575748,95.7558703512,
799 95.7450955566,95.7343331628,95.723583142,95.7128454661,95.7021201073,
800 95.6914070379,95.6807062301,95.6700176564,95.6593412894,95.6486771016,
801 95.6380250658,95.6273851547,95.6167573413,95.6061415985,95.5955378994,
802 95.5849462171,95.5743665249,95.5637987962,95.5532430042,95.5426991226,
803 95.532167125,95.521646985,95.5111386764,95.500642173,95.4901574488,
804 95.4796844778,95.4692232342,95.4587736921,95.4483358257,95.4379096096,
805 95.4274950181,95.4170920257,95.406700607,95.3963207368,95.3859523898,
806 95.375595541,95.3652501651,95.3549162373,95.3445937326,95.3342826263,
807 95.3239828935,95.3136945097,95.3034174503,95.2931516907,95.2828972066,
808 95.2726539735,95.2624219673,95.2522011637,95.2419915386,95.231793068,
809 95.221605728,95.2114294947,95.2012643442,95.1911102528,95.1809671969,
810 95.1708351529,95.1607140973,95.1506040066,95.1405048576,95.1304166269,
811 95.1203392913,95.1102728277,95.100217213,95.0901724243,95.0801384386,
812 95.070115233,95.0601027849,95.0501010715,95.0401100701,95.0301297583,
813 95.0201601135,95.0102011132,95.0002527353,94.9903149573,94.9803877571,
814 94.9704711125,94.9605650015,94.950669402,94.9407842921,94.93090965,
815 94.9210454538,94.9111916818,94.9013483124,94.8915153239,94.8816926948,
816 94.8718804037,94.8620784292,94.8522867499,94.8425053445,94.8327341919,
817 94.8229732709,94.8132225604,94.8034820394,94.793751687,94.7840314824,
818 94.7743214046,94.7646214329,94.7549315467,94.7452517252,94.7355819481,
819 94.7259221946,94.7162724445,94.7066326773,94.6970028726,94.6873830104,
820 94.6777730702,94.6681730321,94.658582876,94.6490025817,94.6394321295,
821 94.6298714993,94.6203206714,94.610779626,94.6012483433,94.5917268037,
822 94.5822149877,94.5727128756,94.563220448,94.5537376855,94.5442645687,
823 94.5348010783,94.525347195,94.5159028997,94.5064681732,94.4970429965,
824 94.4876273505,94.4782212162,94.4688245748,94.4594374074,94.4500596952,
825 94.4406914195,94.4313325615,94.4219831026,94.4126430243,94.403312308,
826 94.3939909353,94.3846788878,94.375376147,94.3660826947,94.3567985126,
827 94.3475235826,94.3382578864,94.329001406,94.3197541234,94.3105160205,
828 94.3012870794,94.2920672823,94.2828566112,94.2736550485,94.2644625763,
829 94.255279177,94.2461048331,94.2369395268,94.2277832407,94.2186359572,
830 94.2094976591,94.2003683288,94.1912479492,94.1821365028,94.1730339724,
831 94.163940341,94.1548555913,94.1457797063,94.136712669,94.1276544623,
832 94.1186050694,94.1095644733,94.1005326572,94.0915096044,94.082495298,
833 94.0734897214,94.064492858,94.0555046911,94.0465252043,94.0375543809,
834 94.0285922045,94.0196386587,94.0106937272,94.0017573936,93.9928296417,
835 93.9839104552,93.974999818,93.9660977138,93.9572041267,93.9483190405,
836 93.9394424393,93.9305743071,93.921714628,93.9128633861,93.9040205657,
837 93.8951861508,93.8863601258,93.8775424751,93.8687331828,93.8599322335,
838 93.8511396116,93.8423553016,93.8335792879,93.8248115552,93.816052088,
839 93.8073008711,93.798557889,93.7898231266,93.7810965686,93.7723781999,
840 93.7636680053
841 }
842 }
843 };
0 // generated by ../../tools/tube_transfer.py
1 // tube: 6C16
2 // plate current function: triode
3 // mu: 42.2
4 // kx: 2.21
5 // kg1: 393
6 // kp: 629
7 // kvb: 446
8
9 table1d_imp<2001> tubetable_6C16[2] =
10 {
11 {
12 // Ri = 68k
13 -5,5,200,2001, {
14 214.806581677,214.650587712,214.494441388,214.338143449,214.181694635,
15 214.025095677,213.868347304,213.711450238,213.554405194,213.397212884,
16 213.239874013,213.082389282,212.924759385,212.766985013,212.60906685,
17 212.451005576,212.292801864,212.134456385,211.975969802,211.817342776,
18 211.658575961,211.499670005,211.340625555,211.181443251,211.022123727,
19 210.862667614,210.703075539,210.543348122,210.383485982,210.22348973,
20 210.063359973,209.903097317,209.742702359,209.582175694,209.421517913,
21 209.260729602,209.099811343,208.938763714,208.777587287,208.616282633,
22 208.454850316,208.293290899,208.131604938,207.969792986,207.807855593,
23 207.645793304,207.483606661,207.321296202,207.15886246,206.996305965,
24 206.833627244,206.67082682,206.507905211,206.344862933,206.181700497,
25 206.018418412,205.855017182,205.691497309,205.527859289,205.364103618,
26 205.200230785,205.036241278,204.872135582,204.707914176,204.543577538,
27 204.379126141,204.214560458,204.049880955,203.885088096,203.720182343,
28 203.555164155,203.390033984,203.224792285,203.059439505,202.893976089,
29 202.728402482,202.562719123,202.396926447,202.23102489,202.065014882,
30 201.898896852,201.732671223,201.56633842,201.399898861,201.233352963,
31 201.066701141,200.899943805,200.733081363,200.566114223,200.399042787,
32 200.231867455,200.064588626,199.897206695,199.729722054,199.562135094,
33 199.394446202,199.226655764,199.058764161,198.890771775,198.722678983,
34 198.554486159,198.386193678,198.217801909,198.04931122,197.880721977,
35 197.712034543,197.54324928,197.374366545,197.205386696,197.036310087,
36 196.86713707,196.697867994,196.528503206,196.359043053,196.189487877,
37 196.019838019,195.850093818,195.680255611,195.510323732,195.340298515,
38 195.170180288,194.999969382,194.829666122,194.659270832,194.488783835,
39 194.318205451,194.147535999,193.976775794,193.805925153,193.634984386,
40 193.463953805,193.292833719,193.121624434,192.950326255,192.778939486,
41 192.607464428,192.43590138,192.264250641,192.092512505,191.920687267,
42 191.74877522,191.576776653,191.404691857,191.232521118,191.060264721,
43 190.887922951,190.715496088,190.542984415,190.370388209,190.197707747,
44 190.024943305,189.852095157,189.679163575,189.50614883,189.33305119,
45 189.159870923,188.986608295,188.813263571,188.639837013,188.466328882,
46 188.292739439,188.119068941,187.945317645,187.771485807,187.597573681,
47 187.423581518,187.249509571,187.075358088,186.901127317,186.726817506,
48 186.552428899,186.377961741,186.203416274,186.028792738,185.854091375,
49 185.679312422,185.504456116,185.329522693,185.154512388,184.979425434,
50 184.804262062,184.629022504,184.453706988,184.278315742,184.102848994,
51 183.927306968,183.751689889,183.57599798,183.400231463,183.224390558,
52 183.048475484,182.872486461,182.696423704,182.520287429,182.344077852,
53 182.167795186,181.991439642,181.815011432,181.638510767,181.461937854,
54 181.285292902,181.108576118,180.931787707,180.754927872,180.577996819,
55 180.400994749,180.223921863,180.046778361,179.869564443,179.692280306,
56 179.514926148,179.337502164,179.16000855,178.982445499,178.804813204,
57 178.627111857,178.449341649,178.27150277,178.093595408,177.915619752,
58 177.737575989,177.559464305,177.381284884,177.203037911,177.024723568,
59 176.846342039,176.667893504,176.489378144,176.310796138,176.132147665,
60 175.953432902,175.774652027,175.595805214,175.416892639,175.237914476,
61 175.058870898,174.879762077,174.700588185,174.521349393,174.342045871,
62 174.162677786,173.983245308,173.803748604,173.624187839,173.444563181,
63 173.264874792,173.085122839,172.905307483,172.725428887,172.545487212,
64 172.365482621,172.185415271,172.005285324,171.825092937,171.644838268,
65 171.464521474,171.284142712,171.103702136,170.923199902,170.742636163,
66 170.562011074,170.381324785,170.20057745,170.019769219,169.838900242,
67 169.65797067,169.476980651,169.295930334,169.114819866,168.933649395,
68 168.752419065,168.571129024,168.389779415,168.208370384,168.026902072,
69 167.845374625,167.663788182,167.482142887,167.300438881,167.118676302,
70 166.936855292,166.754975989,166.573038531,166.391043057,166.208989703,
71 166.026878606,165.844709901,165.662483725,165.480200212,165.297859496,
72 165.11546171,164.933006988,164.750495462,164.567927263,164.385302523,
73 164.202621372,164.019883941,163.837090358,163.654240754,163.471335255,
74 163.288373991,163.105357087,162.922284672,162.739156871,162.555973809,
75 162.372735612,162.189442404,162.00609431,161.822691453,161.639233955,
76 161.45572194,161.272155529,161.088534844,160.904860005,160.721131134,
77 160.537348349,160.353511771,160.169621519,159.98567771,159.801680463,
78 159.617629896,159.433526124,159.249369266,159.065159437,158.880896752,
79 158.696581327,158.512213277,158.327792715,158.143319755,157.958794511,
80 157.774217096,157.589587621,157.4049062,157.220172943,157.035387961,
81 156.850551366,156.665663268,156.480723775,156.295732998,156.110691046,
82 155.925598028,155.74045405,155.555259222,155.37001365,155.184717441,
83 154.999370702,154.813973539,154.628526057,154.443028363,154.25748056,
84 154.071882754,153.886235049,153.700537548,153.514790354,153.328993572,
85 153.143147302,152.957251649,152.771306713,152.585312596,152.3992694,
86 152.213177225,152.027036171,151.840846339,151.654607829,151.46832074,
87 151.28198517,151.09560122,150.909168986,150.722688568,150.536160062,
88 150.349583566,150.162959178,149.976286994,149.78956711,149.602799623,
89 149.415984628,149.22912222,149.042212495,148.855255548,148.668251473,
90 148.481200364,148.294102315,148.106957419,147.919765771,147.732527463,
91 147.545242587,147.357911237,147.170533503,146.983109479,146.795639255,
92 146.608122923,146.420560573,146.232952297,146.045298185,145.857598327,
93 145.669852813,145.482061732,145.294225174,145.106343228,144.918415983,
94 144.730443527,144.542425949,144.354363336,144.166255777,143.978103358,
95 143.789906168,143.601664294,143.413377821,143.225046837,143.036671428,
96 142.848251681,142.65978768,142.471279512,142.282727262,142.094131015,
97 141.905490856,141.71680687,141.528079142,141.339307755,141.150492794,
98 140.961634343,140.772732485,140.583787303,140.394798882,140.205767303,
99 140.016692651,139.827575006,139.638414453,139.449211072,139.259964947,
100 139.070676158,138.881344788,138.691970919,138.50255463,138.313096004,
101 138.123595121,137.934052062,137.744466908,137.554839739,137.365170636,
102 137.175459677,136.985706944,136.795912515,136.606076471,136.416198891,
103 136.226279854,136.036319439,135.846317724,135.65627479,135.466190714,
104 135.276065574,135.08589945,134.895692419,134.70544456,134.515155949,
105 134.324826666,134.134456787,133.94404639,133.753595552,133.563104351,
106 133.372572864,133.182001167,132.991389337,132.800737452,132.610045587,
107 132.41931382,132.228542226,132.037730882,131.846879864,131.655989247,
108 131.465059109,131.274089524,131.083080569,130.892032318,130.700944849,
109 130.509818235,130.318652552,130.127447876,129.936204281,129.744921843,
110 129.553600637,129.362240737,129.170842219,128.979405156,128.787929624,
111 128.596415698,128.404863451,128.213272959,128.021644295,127.829977533,
112 127.638272749,127.446530017,127.254749409,127.062931001,126.871074867,
113 126.679181079,126.487249713,126.295280842,126.103274541,125.911230881,
114 125.719149938,125.527031786,125.334876497,125.142684145,124.950454804,
115 124.758188548,124.565885449,124.373545582,124.18116902,123.988755837,
116 123.796306105,123.603819898,123.41129729,123.218738354,123.026143164,
117 122.833511792,122.640844313,122.448140799,122.255401324,122.062625961,
118 121.869814784,121.676967866,121.484085281,121.291167101,121.098213401,
119 120.905224253,120.712199732,120.51913991,120.326044862,120.132914661,
120 119.93974938,119.746549093,119.553313874,119.360043796,119.166738933,
121 118.973399359,118.780025148,118.586616373,118.393173109,118.19969543,
122 118.006183409,117.81263712,117.619056639,117.425442039,117.231793394,
123 117.038110779,116.844394268,116.650643936,116.456859857,116.263042107,
124 116.069190759,115.87530589,115.681387573,115.487435884,115.293450898,
125 115.09943269,114.905381337,114.711296912,114.517179492,114.323029153,
126 114.128845971,113.93463002,113.740381379,113.546100122,113.351786326,
127 113.157440068,112.963061424,112.768650472,112.574207287,112.379731948,
128 112.185224531,111.990685114,111.796113774,111.601510589,111.406875638,
129 111.212208997,111.017510746,110.822780964,110.628019727,110.433227116,
130 110.238403209,110.043548087,109.848661827,109.65374451,109.458796215,
131 109.263817024,109.068807015,108.87376627,108.678694869,108.483592894,
132 108.288460425,108.093297545,107.898104334,107.702880875,107.507627251,
133 107.312343543,107.117029835,106.921686209,106.726312749,106.530909539,
134 106.335476663,106.140014205,105.944522249,105.749000881,105.553450185,
135 105.357870248,105.162261155,104.966622992,104.770955847,104.575259805,
136 104.379534954,104.183781382,103.987999177,103.792188428,103.596349222,
137 103.40048165,103.204585801,103.008661765,102.812709632,102.616729493,
138 102.420721441,102.224685566,102.02862196,101.832530717,101.636411929,
139 101.440265691,101.244092096,101.047891239,100.851663216,100.655408121,
140 100.459126052,100.262817104,100.066481377,99.8701189658,99.673729971,
141 99.477314491,99.2808726256,99.0844044752,98.8879101407,98.6913897236,
142 98.4948433264,98.2982710519,98.1016730037,97.9050492862,97.7084000044,
143 97.5117252641,97.3150251718,97.1182998349,96.9215493615,96.7247738603,
144 96.5279734411,96.3311482144,96.1342982917,95.9374237851,95.7405248079,
145 95.5436014741,95.3466538988,95.1496821978,94.9526864881,94.7556668877,
146 94.5586235156,94.3615564917,94.1644659371,93.9673519741,93.7702147259,
147 93.5730543171,93.3758708733,93.1786645213,92.9814353893,92.7841836066,
148 92.5869093039,92.3896126132,92.1922936679,91.9949526028,91.7975895541,
149 91.6002046595,91.4027980582,91.205369891,91.0079203002,90.8104494298,
150 90.6129574255,90.4154444347,90.2179106065,90.0203560919,89.8227810438,
151 89.6251856168,89.4275699678,89.2299342554,89.0322786405,88.8346032859,
152 88.636908357,88.4391940209,88.2414604476,88.0437078089,87.8459362796,
153 87.6481460367,87.4503372598,87.2525101312,87.0546648361,86.8568015623,
154 86.6589205007,86.461021845,86.2631057922,86.0651725422,85.8672222985,
155 85.6692552677,85.47127166,85.2732716892,85.0752555725,84.8772235314,
156 84.6791757908,84.4811125799,84.2830341322,84.084940685,83.8868324806,
157 83.6887097654,83.4905727907,83.2924218127,83.0942570925,82.8960788963,
158 82.6978874958,82.499683168,82.3014661959,82.1032368679,81.9049954788,
159 81.7067423296,81.5084777275,81.3102019866,81.1119154278,80.9136183791,
160 80.7153111759,80.516994161,80.3186676851,80.1203321072,79.9219877944,
161 79.7236351224,79.5252744761,79.3269062494,79.1285308459,78.9301486789,
162 78.7317601719,78.533365759,78.3349658854,78.1365610071,77.9381515922,
163 77.7397381206,77.5413210848,77.34290099,77.1444783551,76.9460537123,
164 76.7476276085,76.5492006051,76.350773279,76.1523462226,75.9539200451,
165 75.7554953721,75.5570728472,75.3586531317,75.160236906,74.9618248697,
166 74.7634177425,74.5650162649,74.3666211991,74.1682333293,73.969853463,
167 73.7714824312,73.57312109,73.3747703208,73.1764310315,72.9781041575,
168 72.7797906624,72.5814915392,72.3832078112,72.1849405333,71.9866907928,
169 71.7884597106,71.5902484426,71.3920581808,71.1938901544,70.9957456312,
170 70.7976259192,70.5995323675,70.4014663683,70.203429358,70.0054228187,
171 69.8074482801,69.6095073209,69.4116015707,69.2137327114,69.0159024793,
172 68.8181126671,68.6203651253,68.4226617647,68.2250045581,68.0273955426,
173 67.8298368217,67.6323305676,67.4348790234,67.2374845055,67.0401494061,
174 66.8428761956,66.6456674255,66.4485257304,66.2514538315,66.0544545389,
175 65.8575307545,65.6606854752,65.4639217957,65.2672429117,65.070652123,
176 64.8741528369,64.6777485713,64.4814429582,64.2852397473,64.0891428094,
177 63.89315614,63.6972838629,63.5015302341,63.3058996458,63.1103966298,
178 62.9150258617,62.7197921649,62.5247005146,62.3297560418,62.1349640375,
179 61.9403299569,61.7458594236,61.5515582334,61.3574323592,61.1634879547,
180 60.9697313588,60.7761690999,60.5828078998,60.3896546781,60.1967165562,
181 60.0040008615,59.811515131,59.6192671154,59.427264783,59.2355163231,
182 59.0440301495,58.852814904,58.6618794596,58.4712329231,58.2808846382,
183 58.090844188,57.9011213969,57.7117263328,57.5226693086,57.3339608836,
184 57.1456118642,56.9576333046,56.7700365068,56.58283302,56.3960346403,
185 56.2096534086,56.0237016094,55.8381917678,55.6531366466,55.4685492428,
186 55.284442783,55.1008307186,54.9177267197,54.7351446693,54.5530986556,
187 54.3716029642,54.1906720696,54.0103206254,53.8305634543,53.6514155368,
188 53.4728919991,53.295008101,53.1177792216,52.9412208454,52.7653485472,
189 52.5901779759,52.4157248378,52.2420048797,52.0690338701,51.8968275811,
190 51.7254017683,51.5547721516,51.3849543941,51.2159640815,51.0478167004,
191 50.8805276169,50.7141120546,50.5485850721,50.3839615409,50.220256123,
192 50.0574832487,49.895657094,49.7347915589,49.5749002458,49.4159964377,
193 49.2580930777,49.1012027484,48.9453376526,48.7905095938,48.6367299582,
194 48.4840096974,48.3323593121,48.1817888365,48.0323078239,47.8839253338,
195 47.7366499195,47.5904896174,47.4454519373,47.3015438542,47.1587718012,
196 47.0171416637,46.876658775,46.7373279131,46.5991532994,46.4621385973,
197 46.326286914,46.1916008015,46.0580822608,45.9257327457,45.7945531685,
198 45.6645439069,45.5357048113,45.4080352138,45.2815339377,45.1561993078,
199 45.032029162,44.9090208631,44.7871713114,44.6664769582,44.5469338196,
200 44.4285374906,44.3112831602,44.195165626,44.08017931,43.9663182736,
201 43.8535762342,43.7419465802,43.6314223873,43.5219964345,43.4136612197,
202 43.3064089756,43.2002316854,43.0951210982,42.9910687444,42.8880659502,
203 42.7861038533,42.6851734163,42.5852654418,42.4863705854,42.3884793696,
204 42.2915821966,42.1956693612,42.1007310628,42.0067574174,41.913738469,
205 41.8216642003,41.7305245439,41.6403093918,41.5510086055,41.4626120252,
206 41.3751094786,41.2884907892,41.2027457849,41.1178643049,41.0338362075,
207 40.9506513767,40.8682997286,40.7867712177,40.7060558425,40.6261436509,
208 40.5470247451,40.4686892867,40.3911275007,40.3143296798,40.238286188,
209 40.1629874645,40.0884240263,40.0145864718,39.9414654832,39.869051829,
210 39.7973363663,39.7263100428,39.6559638986,39.5862890679,39.5172767805,
211 39.4489183628,39.381205239,39.3141289323,39.2476810652,39.1818533604,
212 39.1166376415,39.0520258329,38.9880099602,38.9245821507,38.861734633,
213 38.799459737,38.7377498939,38.6765976358,38.6159955956,38.5559365061,
214 38.4964132002,38.4374186098,38.3789457655,38.3209877958,38.2635379265,
215 38.20658948,38.1501358741,38.0941706218,38.03868733,37.9836796987,
216 37.9291415199,37.8750666772,37.821449144,37.7682829833,37.7155623461,
217 37.6632814707,37.6114346815,37.5600163879,37.5090210835,37.4584433446,
218 37.4082778296,37.3585192774,37.3091625068,37.260202415,37.2116339769,
219 37.1634522436,37.1156523417,37.0682294717,37.0211789077,36.9744959955,
220 36.9281761519,36.882214864,36.8366076874,36.7913502455,36.7464382288,
221 36.7018673933,36.6576335597,36.6137326126,36.5701604991,36.5269132281,
222 36.4839868692,36.4413775518,36.3990814641,36.3570948521,36.3154140187,
223 36.2740353227,36.2329551782,36.1921700533,36.1516764693,36.1114710002,
224 36.0715502713,36.0319109585,35.9925497878,35.953463534,35.9146490203,
225 35.8761031172,35.8378227417,35.7998048569,35.7620464706,35.7245446353,
226 35.6872964468,35.6502990438,35.6135496072,35.5770453592,35.5407835628,
227 35.5047615211,35.4689765763,35.4334261096,35.3981075401,35.3630183243,
228 35.3281559555,35.2935179634,35.2591019128,35.2249054039,35.190926071,
229 35.1571615823,35.1236096394,35.0902679764,35.0571343594,35.0242065864,
230 34.9914824864,34.9589599188,34.9266367732,34.8945109687,34.8625804535,
231 34.8308432042,34.7992972259,34.7679405508,34.7367712388,34.7057873762,
232 34.6749870757,34.6443684758,34.6139297407,34.5836690592,34.553584645,
233 34.523674736,34.4939375938,34.4643715034,34.4349747732,34.4057457337,
234 34.3766827382,34.3477841616,34.3190484007,34.2904738733,34.2620590183,
235 34.2338022949,34.2057021827,34.1777571813,34.1499658098,34.1223266066,
236 34.094838129,34.067498953,34.0403076731,34.0132629019,33.9863632696,
237 33.9596074241,33.9329940306,33.906521771,33.8801893442,33.8539954655,
238 33.8279388664,33.8020182942,33.7762325121,33.7505802987,33.7250604478,
239 33.6996717682,33.6744130834,33.6492832315,33.624281065,33.5994054503,
240 33.5746552679,33.5500294117,33.5255267892,33.5011463214,33.4768869419,
241 33.4527475975,33.4287272476,33.404824864,33.3810394309,33.3573699445,
242 33.333815413,33.3103748565,33.2870473064,33.2638318058,33.2407274087,
243 33.2177331806,33.1948481976,33.1720715466,33.1494023254,33.1268396418,
244 33.1043826143,33.0820303713,33.0597820513,33.0376368026,33.0155937833,
245 32.9936521611,32.971811113,32.9500698254,32.928427494,32.9068833234,
246 32.885436527,32.8640863273,32.8428319553,32.8216726506,32.8006076611,
247 32.7796362431,32.7587576613,32.7379711881,32.7172761042,32.696671698,
248 32.6761572657,32.6557321111,32.6353955456,32.615146888,32.5949854646,
249 32.5749106086,32.5549216607,32.5350179685,32.5151988864,32.4954637759,
250 32.4758120052,32.4562429491,32.4367559889,32.4173505127,32.3980259148,
251 32.3787815958,32.3596169627,32.3405314284,32.3215244122,32.3025953392,
252 32.2837436404,32.2649687528,32.246270119,32.2276471875,32.2090994121,
253 32.1906262525,32.1722271737,32.1539016461,32.1356491454,32.1174691527,
254 32.0993611542,32.0813246412,32.0633591103,32.0454640627,32.027639005,
255 32.0098834483,31.9921969088,31.9745789073,31.9570289692,31.9395466249,
256 31.922131409,31.9047828608,31.8875005241,31.870283947,31.8531326821,
257 31.8360462862,31.8190243203,31.8020663499,31.7851719442,31.768340677,
258 31.7515721256,31.7348658718,31.7182215011,31.7016386029,31.6851167705,
259 31.6686556011,31.6522546954,31.6359136583,31.6196320978,31.603409626,
260 31.5872458584,31.571140414,31.5550929153,31.5391029884,31.5231702628,
261 31.5072943712,31.49147495,31.4757116385,31.4600040794,31.4443519189,
262 31.4287548061,31.4132123933,31.3977243359,31.3822902925,31.3669099247,
263 31.3515828971,31.3363088772,31.3210875356,31.3059185458,31.2908015839,
264 31.2757363292,31.2607224636,31.245759672,31.2308476417,31.2159860631,
265 31.2011746291,31.1864130351,31.1717009795,31.1570381631,31.1424242891,
266 31.1278590637,31.1133421951,31.0988733943,31.0844523748,31.0700788523,
267 31.0557525451,31.0414731739,31.0272404614,31.0130541332,30.9989139168,
268 30.9848195421,30.9707707411,30.9567672485,30.9428088006,30.9288951362,
269 30.9150259964,30.9012011241,30.8874202647,30.8736831652,30.8599895751,
270 30.8463392459,30.8327319308,30.8191673854,30.805645367,30.7921656351,
271 30.778727951,30.7653320779,30.751977781,30.7386648273,30.7253929858,
272 30.7121620271,30.6989717239,30.6858218505,30.6727121831,30.6596424997,
273 30.64661258,30.6336222053,30.6206711589,30.6077592256,30.5948861919,
274 30.582051846,30.5692559778,30.5564983788,30.543778842,30.5310971622,
275 30.5184531356,30.5058465602,30.4932772352,30.4807449617,30.4682495421,
276 30.4557907804,30.4433684821,30.430982454,30.4186325047,30.4063184439,
277 30.394040083,30.3817972346,30.369589713,30.3574173335,30.3452799132,
278 30.3331772701,30.3211092241,30.309075596,30.2970762081,30.285110884,
279 30.2731794486,30.2612817281,30.24941755,30.237586743,30.2257891371,
280 30.2140245634,30.2022928546,30.1905938442,30.1789273672,30.1672932596,
281 30.1556913586,30.1441215028,30.1325835317,30.1210772861,30.1096026079,
282 30.09815934,30.0867473267,30.0753664132,30.0640164459,30.0526972721,
283 30.0414087405,30.0301507006,30.018923003,30.0077254995,29.9965580428,
284 29.9854204867,29.974312686,29.9632344964,29.9521857749,29.9411663791,
285 29.930176168,29.9192150012,29.9082827395,29.8973792446,29.8865043791,
286 29.8756580067,29.8648399918,29.8540501999,29.8432884974,29.8325547515,
287 29.8218488304,29.8111706032,29.8005199399,29.7898967112,29.7793007888,
288 29.7687320454,29.7581903544,29.74767559,29.7371876273,29.7267263422,
289 29.7162916116,29.705883313,29.6955013249,29.6851455263,29.6748157973,
290 29.6645120188,29.6542340722,29.64398184,29.6337552052,29.6235540517,
291 29.6133782642,29.6032277281,29.5931023295,29.5830019553,29.5729264931,
292 29.5628758312,29.5528498587,29.5428484654,29.5328715418,29.5229189789,
293 29.5129906688,29.503086504,29.4932063777,29.4833501839,29.4735178172,
294 29.4637091728,29.4539241467,29.4441626356,29.4344245366,29.4247097476,
295 29.4150181672,29.4053496945,29.3957042294,29.3860816723,29.3764819242,
296 29.3669048868,29.3573504624,29.3478185538,29.3383090646,29.3288218988,
297 29.3193569611,29.3099141568,29.3004933916,29.2910945721,29.2817176051,
298 29.2723623983,29.2630288597,29.2537168981,29.2444264227,29.2351573433,
299 29.2259095701,29.2166830142,29.2074775868,29.1982931999,29.189129766,
300 29.1799871982,29.1708654098,29.161764315,29.1526838283,29.1436238647,
301 29.1345843399,29.1255651698,29.1165662711,29.1075875607,29.0986289563,
302 29.0896903759,29.0807717379,29.0718729614,29.0629939658,29.054134671,
303 29.0452949975,29.0364748662,29.0276741982,29.0188929155,29.0101309403,
304 29.0013881953,28.9926646035,28.9839600886,28.9752745746,28.9666079859,
305 28.9579602474,28.9493312845,28.9407210228,28.9321293887,28.9235563085,
306 28.9150017094,28.9064655188,28.8979476644,28.8894480746,28.880966678,
307 28.8725034037,28.864058181,28.8556309398,28.8472216105,28.8388301235,
308 28.8304564099,28.8221004011,28.813762029,28.8054412256,28.7971379235,
309 28.7888520556,28.7805835552,28.772332356,28.764098392,28.7558815975,
310 28.7476819073,28.7394992566,28.7313335807,28.7231848155,28.7150528972,
311 28.7069377621,28.6988393474,28.69075759,28.6826924275,28.6746437979,
312 28.6666116394,28.6585958904,28.6505964899,28.6426133771,28.6346464915,
313 28.626695773,28.6187611617,28.6108425982,28.6029400232,28.595053378,
314 28.5871826039,28.5793276427,28.5714884365,28.5636649277,28.5558570589,
315 28.5480647731,28.5402880136,28.532526724,28.5247808482,28.5170503302,
316 28.5093351147,28.5016351463,28.4939503701,28.4862807313,28.4786261758,
317 28.4709866492,28.4633620978,28.4557524681,28.4481577067,28.4405777608,
318 28.4330125775,28.4254621044,28.4179262893,28.4104050804,28.4028984259,
319 28.3954062746,28.3879285752,28.3804652769,28.3730163292,28.3655816816,
320 28.3581612841,28.3507550868,28.3433630402,28.3359850949,28.3286212019,
321 28.3212713123,28.3139353775,28.3066133492,28.2993051793,28.2920108199,
322 28.2847302234,28.2774633423,28.2702101296,28.2629705384,28.2557445219,
323 28.2485320337,28.2413330275,28.2341474574,28.2269752777,28.2198164427,
324 28.2126709072,28.205538626,28.1984195544,28.1913136475,28.1842208611,
325 28.1771411508,28.1700744728,28.1630207831,28.1559800382,28.1489521948,
326 28.1419372097,28.13493504,28.1279456429,28.1209689759,28.1140049966,
327 28.107053663,28.1001149332,28.0931887653,28.0862751179,28.0793739497,
328 28.0724852196,28.0656088866,28.0587449099,28.0518932492,28.0450538639,
329 28.038226714,28.0314117595,28.0246089606,28.0178182778,28.0110396715,
330 28.0042731028,27.9975185324,27.9907759215,27.9840452315,27.9773264239,
331 27.9706194605,27.9639243029,27.9572409134,27.9505692542,27.9439092876,
332 27.9372609763,27.9306242829,27.9239991704,27.917385602,27.9107835408,
333 27.9041929503,27.8976137942,27.8910460361,27.8844896401,27.8779445702,
334 27.8714107907,27.8648882661,27.8583769608,27.8518768397,27.8453878678,
335 27.8389100099,27.8324432315,27.8259874979,27.8195427746,27.8131090273,
336 27.806686222,27.8002743245,27.7938733011,27.7874831181,27.781103742,
337 27.7747351393,27.7683772768,27.7620301215,27.7556936405,27.7493678008,
338 27.74305257,27.7367479154,27.7304538047,27.7241702058,27.7178970865,
339 27.7116344149,27.7053821593,27.6991402879,27.6929087694,27.6866875722,
340 27.6804766652,27.6742760174,27.6680855976,27.6619053752,27.6557353194,
341 27.6495753996,27.6434255855,27.6372858468,27.6311561533,27.6250364749,
342 27.6189267819,27.6128270443,27.6067372327,27.6006573174,27.594587269,
343 27.5885270585,27.5824766565,27.5764360341,27.5704051624,27.5643840127,
344 27.5583725563,27.5523707647,27.5463786095,27.5403960625,27.5344230955,
345 27.5284596804,27.5225057894,27.5165613947,27.5106264685,27.5047009834,
346 27.4987849119,27.4928782266,27.4869809004,27.4810929061,27.4752142168,
347 27.4693448056,27.4634846457,27.4576337105,27.4517919735,27.4459594082,
348 27.4401359884,27.4343216877,27.4285164802,27.4227203398,27.4169332407,
349 27.411155157,27.4053860632,27.3996259336,27.3938747428,27.3881324655,
350 27.3823990764,27.3766745503,27.3709588622,27.3652519873,27.3595539006,
351 27.3538645774,27.3481839931,27.3425121231,27.3368489431,27.3311944287,
352 27.3255485556,27.3199112998,27.3142826371,27.3086625437,27.3030509957,
353 27.2974479694,27.291853441,27.2862673871,27.2806897842,27.2751206089,
354 27.2695598379,27.2640074481,27.2584634164,27.2529277198,27.2474003354,
355 27.2418812403,27.2363704118,27.2308678274,27.2253734644,27.2198873005,
356 27.2144093132,27.2089394803,27.2034777796,27.1980241889,27.1925786864,
357 27.18714125,27.181711858,27.1762904885,27.1708771199,27.1654717306,
358 27.1600742991,27.1546848041,27.1493032241,27.1439295379,27.1385637244,
359 27.1332057625,27.1278556311,27.1225133094,27.1171787765,27.1118520117,
360 27.1065329942,27.1012217036,27.0959181192,27.0906222206,27.0853339875,
361 27.0800533996,27.0747804366,27.0695150786,27.0642573053,27.0590070968,
362 27.0537644333,27.048529295,27.0433016619,27.0380815146,27.0328688334,
363 27.0276635988,27.0224657913,27.0172753915,27.0120923803,27.0069167383,
364 27.0017484463,26.9965874854,26.9914338364,26.9862874805,26.9811483988,
365 26.9760165725,26.9708919829,26.9657746112,26.960664439,26.9555614477,
366 26.9504656189,26.9453769341,26.9402953751,26.9352209236,26.9301535615,
367 26.9250932707,26.920040033,26.9149938306,26.9099546455,26.9049224599,
368 26.899897256,26.8948790161,26.8898677226,26.8848633578,26.8798659043,
369 26.8748753447,26.8698916614,26.8649148373,26.8599448551,26.8549816974,
370 26.8500253473,26.8450757877,26.8401330015,26.8351969718,26.8302676817,
371 26.8253451143,26.820429253,26.815520081,26.8106175817,26.8057217385,
372 26.8008325349,26.7959499543,26.7910739805,26.786204597,26.7813417876,
373 26.7764855361,26.7716358262,26.7667926419,26.7619559671,26.7571257859,
374 26.7523020822,26.7474848402,26.7426740441,26.737869678,26.7330717264,
375 26.7282801735,26.7234950037,26.7187162015,26.7139437514,26.7091776379,
376 26.7044178457,26.6996643594,26.6949171638,26.6901762436,26.6854415837,
377 26.680713169,26.6759909844,26.6712750148,26.6665652454,26.6618616612,
378 26.6571642474,26.6524729891,26.6477878717,26.6431088804,26.6384360006,
379 26.6337692177,26.6291085171,26.6244538844,26.6198053051,26.6151627648,
380 26.6105262491,26.6058957438,26.6012712347,26.5966527074,26.592040148,
381 26.5874335422,26.5828328761,26.5782381356,26.5736493067,26.5690663756,
382 26.5644893285,26.5599181514,26.5553528306,26.5507933525,26.5462397032,
383 26.5416918693,26.5371498371,26.5326135931,26.5280831239,26.5235584158,
384 26.5190394557,26.5145262301,26.5100187257,26.5055169292,26.5010208275,
385 26.4965304073,26.4920456556,26.4875665593,26.4830931052,26.4786252805,
386 26.4741630721,26.4697064672,26.4652554529,26.4608100163,26.4563701447,
387 26.4519358254,26.4475070456,26.4430837927,26.4386660541,26.4342538172,
388 26.4298470695,26.4254457985,26.4210499918,26.4166596369,26.4122747215,
389 26.4078952332,26.4035211598,26.3991524891,26.3947892088,26.3904313068,
390 26.3860787709,26.3817315891,26.3773897493,26.3730532396,26.3687220479,
391 26.3643961623,26.360075571,26.3557602621,26.3514502237,26.3471454442,
392 26.3428459118,26.3385516148,26.3342625415,26.3299786803,26.3257000197,
393 26.3214265481,26.3171582539,26.3128951257,26.3086371522,26.3043843218,
394 26.3001366232,26.2958940452,26.2916565763,26.2874242055,26.2831969213,
395 26.2789747128,26.2747575687,26.2705454778,26.2663384293,26.2621364119,
396 26.2579394148,26.2537474269,26.2495604373,26.2453784351,26.2412014095,
397 26.2370293495,26.2328622446,26.2287000837,26.2245428563,26.2203905517,
398 26.2162431591,26.212100668,26.2079630678,26.2038303479,26.1997024978,
399 26.1955795069,26.1914613649,26.1873480613,26.1832395857,26.1791359278,
400 26.1750370772,26.1709430235,26.1668537567,26.1627692664,26.1586895424,
401 26.1546145745,26.1505443526,26.1464788667,26.1424181066,26.1383620622,
402 26.1343107237,26.1302640809,26.1262221239,26.1221848429,26.1181522279,
403 26.114124269,26.1101009565,26.1060822805,26.1020682313,26.098058799,
404 26.0940539741,26.0900537468,26.0860581075,26.0820670466,26.0780805544,
405 26.0740986214,26.070121238,26.0661483949,26.0621800824,26.0582162911,
406 26.0542570117,26.0503022347,26.0463519507,26.0424061505,26.0384648247,
407 26.0345279641,26.0305955593,26.0266676012,26.0227440806,26.0188249883,
408 26.0149103152,26.0110000522,26.0070941901,26.00319272,25.9992956327,
409 25.9954029194,25.9915145709,25.9876305784,25.983750933,25.9798756257,
410 25.9760046476,25.97213799,25.9682756441,25.9644176009,25.9605638518,
411 25.956714388,25.9528692009,25.9490282816,25.9451916216,25.9413592122,
412 25.9375310449,25.9337071109,25.9298874018,25.9260719091,25.9222606242,
413 25.9184535386,25.9146506439,25.9108519316,25.9070573933,25.9032670207,
414 25.8994808054
415 }
416 },
417 {
418 // Ri = 250k
419 -5,5,200,2001, {
420 214.806581677,214.650587712,214.494441388,214.338143449,214.181694635,
421 214.025095677,213.868347304,213.711450238,213.554405194,213.397212884,
422 213.239874013,213.082389282,212.924759385,212.766985013,212.60906685,
423 212.451005576,212.292801864,212.134456385,211.975969802,211.817342776,
424 211.658575961,211.499670005,211.340625555,211.181443251,211.022123727,
425 210.862667614,210.703075539,210.543348122,210.383485982,210.22348973,
426 210.063359973,209.903097317,209.742702359,209.582175694,209.421517913,
427 209.260729602,209.099811343,208.938763714,208.777587287,208.616282633,
428 208.454850316,208.293290899,208.131604938,207.969792986,207.807855593,
429 207.645793304,207.483606661,207.321296202,207.15886246,206.996305965,
430 206.833627244,206.67082682,206.507905211,206.344862933,206.181700497,
431 206.018418412,205.855017182,205.691497309,205.527859289,205.364103618,
432 205.200230785,205.036241278,204.872135582,204.707914176,204.543577538,
433 204.379126141,204.214560458,204.049880955,203.885088096,203.720182343,
434 203.555164155,203.390033984,203.224792285,203.059439505,202.893976089,
435 202.728402482,202.562719123,202.396926447,202.23102489,202.065014882,
436 201.898896852,201.732671223,201.56633842,201.399898861,201.233352963,
437 201.066701141,200.899943805,200.733081363,200.566114223,200.399042787,
438 200.231867455,200.064588626,199.897206695,199.729722054,199.562135094,
439 199.394446202,199.226655764,199.058764161,198.890771775,198.722678983,
440 198.554486159,198.386193678,198.217801909,198.04931122,197.880721977,
441 197.712034543,197.54324928,197.374366545,197.205386696,197.036310087,
442 196.86713707,196.697867994,196.528503206,196.359043053,196.189487877,
443 196.019838019,195.850093818,195.680255611,195.510323732,195.340298515,
444 195.170180288,194.999969382,194.829666122,194.659270832,194.488783835,
445 194.318205451,194.147535999,193.976775794,193.805925153,193.634984386,
446 193.463953805,193.292833719,193.121624434,192.950326255,192.778939486,
447 192.607464428,192.43590138,192.264250641,192.092512505,191.920687267,
448 191.74877522,191.576776653,191.404691857,191.232521118,191.060264721,
449 190.887922951,190.715496088,190.542984415,190.370388209,190.197707747,
450 190.024943305,189.852095157,189.679163575,189.50614883,189.33305119,
451 189.159870923,188.986608295,188.813263571,188.639837013,188.466328882,
452 188.292739439,188.119068941,187.945317645,187.771485807,187.597573681,
453 187.423581518,187.249509571,187.075358088,186.901127317,186.726817506,
454 186.552428899,186.377961741,186.203416274,186.028792738,185.854091375,
455 185.679312422,185.504456116,185.329522693,185.154512388,184.979425434,
456 184.804262062,184.629022504,184.453706988,184.278315742,184.102848994,
457 183.927306968,183.751689889,183.57599798,183.400231463,183.224390558,
458 183.048475484,182.872486461,182.696423704,182.520287429,182.344077852,
459 182.167795186,181.991439642,181.815011432,181.638510767,181.461937854,
460 181.285292902,181.108576118,180.931787707,180.754927872,180.577996819,
461 180.400994749,180.223921863,180.046778361,179.869564443,179.692280306,
462 179.514926148,179.337502164,179.16000855,178.982445499,178.804813204,
463 178.627111857,178.449341649,178.27150277,178.093595408,177.915619752,
464 177.737575989,177.559464305,177.381284884,177.203037911,177.024723568,
465 176.846342039,176.667893504,176.489378144,176.310796138,176.132147665,
466 175.953432902,175.774652027,175.595805214,175.416892639,175.237914476,
467 175.058870898,174.879762077,174.700588185,174.521349393,174.342045871,
468 174.162677786,173.983245308,173.803748604,173.624187839,173.444563181,
469 173.264874793,173.085122839,172.905307483,172.725428887,172.545487212,
470 172.365482621,172.185415272,172.005285324,171.825092937,171.644838268,
471 171.464521475,171.284142712,171.103702136,170.923199902,170.742636163,
472 170.562011074,170.381324785,170.20057745,170.019769219,169.838900242,
473 169.65797067,169.476980651,169.295930334,169.114819867,168.933649395,
474 168.752419065,168.571129024,168.389779415,168.208370384,168.026902072,
475 167.845374625,167.663788183,167.482142888,167.300438881,167.118676302,
476 166.936855292,166.754975989,166.573038531,166.391043057,166.208989703,
477 166.026878606,165.844709901,165.662483725,165.480200212,165.297859496,
478 165.115461711,164.933006988,164.750495462,164.567927263,164.385302523,
479 164.202621372,164.019883941,163.837090359,163.654240754,163.471335256,
480 163.288373991,163.105357088,162.922284672,162.739156871,162.555973809,
481 162.372735612,162.189442405,162.006094311,161.822691453,161.639233956,
482 161.455721941,161.27215553,161.088534844,160.904860006,160.721131134,
483 160.53734835,160.353511772,160.169621519,159.985677711,159.801680464,
484 159.617629896,159.433526125,159.249369267,159.065159438,158.880896753,
485 158.696581328,158.512213278,158.327792716,158.143319756,157.958794512,
486 157.774217097,157.589587623,157.404906201,157.220172944,157.035387963,
487 156.850551368,156.665663269,156.480723777,156.295733,156.110691048,
488 155.925598029,155.740454052,155.555259223,155.370013651,155.184717443,
489 154.999370704,154.813973541,154.62852606,154.443028365,154.257480563,
490 154.071882757,153.886235051,153.70053755,153.514790357,153.328993575,
491 153.143147306,152.957251652,152.771306717,152.5853126,152.399269404,
492 152.213177229,152.027036175,151.840846344,151.654607834,151.468320744,
493 151.281985175,151.095601225,150.909168991,150.722688573,150.536160067,
494 150.349583572,150.162959184,149.976287,149.789567117,149.60279963,
495 149.415984635,149.229122227,149.042212503,148.855255556,148.668251481,
496 148.481200372,148.294102323,148.106957428,147.919765781,147.732527473,
497 147.545242597,147.357911247,147.170533514,146.98310949,146.795639267,
498 146.608122935,146.420560586,146.232952311,146.045298199,145.857598342,
499 145.669852828,145.482061748,145.294225191,145.106343245,144.918416001,
500 144.730443545,144.542425968,144.354363356,144.166255797,143.97810338,
501 143.789906191,143.601664317,143.413377845,143.225046862,143.036671454,
502 142.848251708,142.659787708,142.471279541,142.282727292,142.094131047,
503 141.905490889,141.716806905,141.528079178,141.339307792,141.150492833,
504 140.961634383,140.772732527,140.583787347,140.394798927,140.20576735,
505 140.016692699,139.827575057,139.638414505,139.449211127,139.259965004,
506 139.070676217,138.88134485,138.691970983,138.502554697,138.313096073,
507 138.123595193,137.934052137,137.744466986,137.55483982,137.36517072,
508 137.175459765,136.985707035,136.79591261,136.60607657,136.416198993,
509 136.22627996,136.036319549,135.846317839,135.656274909,135.466190838,
510 135.276065704,135.085899585,134.895692559,134.705444705,134.5151561,
511 134.324826823,134.13445695,133.944046559,133.753595729,133.563104534,
512 133.372573054,133.182001365,132.991389543,132.800737666,132.61004581,
513 132.419314051,132.228542467,132.037731132,131.846880124,131.655989518,
514 131.46505939,131.274089817,131.083080873,130.892032635,130.700945177,
515 130.509818577,130.318652908,130.127448245,129.936204665,129.744922243,
516 129.553601052,129.362241169,129.170842668,128.979405623,128.78793011,
517 128.596416203,128.404863976,128.213273504,128.021644862,127.829978123,
518 127.638273363,127.446530654,127.254750072,127.062931691,126.871075583,
519 126.679181825,126.487250488,126.295281648,126.103275378,125.911231752,
520 125.719150844,125.527032727,125.334877475,125.142685163,124.950455862,
521 124.758189648,124.565886593,124.373546772,124.181170257,123.988757122,
522 123.796307442,123.603821288,123.411298735,123.218739857,123.026144726,
523 122.833513416,122.640846001,122.448142555,122.255403149,122.062627859,
524 121.869816757,121.676969918,121.484087414,121.291169319,121.098215706,
525 120.90522665,120.712202224,120.519142502,120.326047556,120.132917462,
526 119.939752292,119.746552121,119.553317022,119.360047069,119.166742336,
527 118.973402897,118.780028826,118.586620198,118.393177086,118.199699564,
528 118.006187707,117.81264159,117.619061286,117.42544687,117.231798417,
529 117.038116001,116.844399697,116.650649581,116.456865726,116.263048209,
530 116.069197103,115.875312486,115.68139443,115.487443014,115.293458311,
531 115.099440397,114.905389349,114.711305243,114.517188154,114.323038158,
532 114.128855333,113.934639754,113.740391499,113.546110644,113.351797266,
533 113.157451442,112.963073249,112.768662766,112.574220069,112.379745237,
534 112.185238347,111.990699479,111.796128709,111.601526117,111.406891782,
535 111.212225782,111.017528197,110.822799106,110.62803859,110.433246727,
536 110.238423599,110.043569285,109.848683866,109.653767423,109.458820038,
537 109.263841792,109.068832766,108.873793042,108.678722704,108.483621833,
538 108.288490512,108.093328825,107.898136855,107.702914687,107.507662403,
539 107.31238009,107.117067832,106.921725713,106.726353821,106.53095224,
540 106.335521058,106.14006036,105.944570235,105.749050771,105.553502054,
541 105.357924174,105.16231722,104.966681281,104.771016447,104.575322809,
542 104.379600457,104.183849483,103.98806998,103.792262038,103.596425752,
543 103.400561215,103.204668521,103.008747766,102.812799044,102.616822451,
544 102.420818085,102.224786042,102.028726421,101.832639321,101.63652484,
545 101.440383079,101.244214139,101.048018121,100.851795129,100.655545265,
546 100.459268634,100.26296534,100.06663549,99.8702791895,99.6738965474,
547 99.4774876719,99.2810526729,99.0845916608,98.8881047476,98.691592046,
548 98.4950536699,98.2984897344,98.1019003557,97.9052856512,97.7086457396,
549 97.5119807408,97.315290776,97.1185759679,96.9218364403,96.7250723187,
550 96.52828373,96.3314708025,96.1346336663,95.9377724527,95.7408872952,
551 95.5439783285,95.3470456894,95.1500895163,94.9531099497,94.7561071318,
552 94.5590812068,94.3620323212,94.1649606233,93.9678662638,93.7707493956,
553 93.5736101738,93.3764487561,93.1792653025,92.9820599756,92.7848329407,
554 92.5875843657,92.3903144214,92.1930232816,91.9957111228,91.7983781248,
555 91.6010244707,91.4036503465,91.2062559421,91.0088414506,90.8114070689,
556 90.6139529975,90.4164794409,90.2189866076,90.0214747103,89.823943966,
557 89.626394596,89.4288268263,89.2312408877,89.0336370159,88.8360154516,
558 88.6383764408,88.4407202349,88.243047091,88.045357272,87.8476510469,
559 87.6499286907,87.4521904852,87.2544367185,87.0566676858,86.8588836897,
560 86.6610850397,86.4632720534,86.2654450561,86.0676043814,85.8697503714,
561 85.6718833771,85.4740037586,85.2761118852,85.0782081364,84.8802929016,
562 84.6823665808,84.4844295847,84.2864823355,84.0885252669,83.8905588249,
563 83.6925834679,83.4945996672,83.2966079077,83.0986086881,82.9006025218,
564 82.7025899369,82.504571477,82.3065477019,82.1085191881,81.9104865291,
565 81.7124503365,81.5144112404,81.31636989,81.1183269543,80.9202831233,
566 80.7222391079,80.5241956415,80.3261534801,80.1281134038,79.9300762172,
567 79.7320427503,79.5340138598,79.3359904296,79.1379733722,78.9399636292,
568 78.7419621732,78.5439700078,78.3459881699,78.14801773,77.9500597938,
569 77.7521155034,77.5541860386,77.3562726184,77.1583765021,76.960498991,
570 76.7626414298,76.5648052081,76.3669917621,76.1692025763,75.971439185,
571 75.7737031742,75.5759961834,75.3783199075,75.1806760987,74.9830665686,
572 74.78549319,74.5879578994,74.3904626989,74.1930096588,73.9956009193,
573 73.7982386937,73.6009252702,73.4036630149,73.2064543742,73.0093018775,
574 72.8122081401,72.6151758657,72.4182078498,72.2213069825,72.0244762512,
575 71.8277187444,71.6310376545,71.4344362812,71.2379180349,71.0414864401,
576 70.8451451392,70.6488978956,70.4527485979,70.2567012634,70.0607600418,
577 69.8649292195,69.6692132231,69.4736166236,69.2781441408,69.0828006466,
578 68.8875911702,68.6925209014,68.4975951954,68.302819577,68.1081997447,
579 67.9137415753,67.7194511279,67.5253346485,67.3313985744,67.137649538,
580 66.9440943715,66.750740111,66.5575940006,66.3646634965,66.1719562709,
581 65.979480216,65.7872434478,65.5952543092,65.4035213744,65.2120534512,
582 65.0208595845,64.8299490593,64.6393314028,64.4490163873,64.2590140316,
583 64.0693346033,63.8799886194,63.6909868482,63.502340309,63.3140602728,
584 63.1261582616,62.9386460478,62.7515356528,62.5648393451,62.3785696378,
585 62.1927392856,62.0073612811,61.8224488501,61.6380154473,61.4540747498,
586 61.2706406511,61.0877272534,60.9053488602,60.7235199671,60.5422552522,
587 60.3615695659,60.1814779194,60.0019954732,59.8231375236,59.6449194893,
588 59.467356897,59.290465366,59.1142605922,58.9387583312,58.7639743808,
589 58.5899245626,58.4166247035,58.2440906157,58.0723380767,57.9013828089,
590 57.7312404584,57.5619265734,57.3934565824,57.2258457724,57.0591092663,
591 56.8932620005,56.7283187029,56.5642938699,56.4012017447,56.2390562951,
592 56.0778711918,55.9176597869,55.7584350933,55.6002097646,55.442996075,
593 55.2868059006,55.1316507015,54.9775415045,54.8244888866,54.67250296,
594 54.521593358,54.3717692215,54.2230391876,54.0754113787,53.928893393,
595 53.7834922966,53.6392146163,53.4960663344,53.3540528842,53.213179147,
596 53.0734494507,52.9348675694,52.7974367242,52.6611595853,52.5260382756,
597 52.392074375,52.2592689262,52.1276224411,51.9971349089,51.8678058046,
598 51.7396340988,51.6126182678,51.4867563052,51.3620457335,51.2384836172,
599 51.1160665754,50.9947907962,50.8746520501,50.7556457053,50.6377667424,
600 50.5210097692,50.4053690366,50.2908384541,50.177411605,50.0650817627,
601 49.953841906,49.8436847348,49.7346026858,49.626587948,49.5196324774,
602 49.4137280128,49.30886609,49.2050380567,49.1022350863,49.0004481925,
603 48.899668242,48.7998859685,48.7010919851,48.6032767968,48.5064308127,
604 48.4105443574,48.3156076826,48.2216109775,48.1285443795,48.0363979842,
605 47.9451618546,47.8548260307,47.7653805379,47.6768153954,47.5891206244,
606 47.5022862551,47.4163023342,47.3311589317,47.2468461468,47.1633541147,
607 47.0806730113,46.9987930595,46.9177045334,46.8373977633,46.7578631402,
608 46.6790911195,46.6010722248,46.5237970519,46.4472562712,46.3714406313,
609 46.2963409615,46.2219481742,46.1482532672,46.0752473257,46.0029215242,
610 45.9312671284,45.8602754958,45.789938078,45.7202464213,45.6511921675,
611 45.582767055,45.5149629195,45.4477716941,45.3811854103,45.3151961979,
612 45.249796285,45.1849779988,45.1207337645,45.0570561064,44.9939376466,
613 44.9313711053,44.8693493005,44.8078651471,44.746911657,44.686481938,
614 44.6265691936,44.567166722,44.5082679158,44.449866261,44.391955336,
615 44.3345288112,44.2775804481,44.2211040981,44.1650937017,44.1095432878,
616 44.0544469725,43.9997989584,43.9455935331,43.8918250688,43.8384880208,
617 43.7855769268,43.7330864057,43.6810111566,43.6293459579,43.5780856658,
618 43.5272252138,43.4767596114,43.426683943,43.3769933668,43.3276831139,
619 43.2787484874,43.230184861,43.181987678,43.1341524507,43.0866747587,
620 43.0395502487,42.9927746327,42.9463436875,42.9002532535,42.8544992337,
621 42.8090775929,42.7639843566,42.7192156101,42.6747674974,42.6306362206,
622 42.5868180387,42.5433092665,42.5001062744,42.4572054868,42.4146033815,
623 42.3722964889,42.3302813911,42.2885547209,42.2471131613,42.2059534443,
624 42.1650723503,42.1244667073,42.0841333903,42.0440693199,42.0042714625,
625 41.9647368285,41.9254624723,41.8864454915,41.8476830258,41.8091722568,
626 41.7709104067,41.7328947382,41.6951225536,41.6575911941,41.6202980392,
627 41.5832405061,41.5464160489,41.5098221582,41.4734563605,41.4373162174,
628 41.4013993251,41.3657033141,41.3302258481,41.294964624,41.2599173708,
629 41.2250818496,41.1904558528,41.1560372035,41.1218237553,41.0878133915,
630 41.0540040246,41.0203935961,40.9869800759,40.9537614617,40.9207357786,
631 40.8879010787,40.8552554409,40.8227969699,40.7905237962,40.7584340756,
632 40.7265259888,40.694797741,40.6632475612,40.6318737025,40.6006744409,
633 40.5696480755,40.5387929281,40.5081073423,40.477589684,40.4472383402,
634 40.4170517192,40.3870282502,40.3571663827,40.3274645866,40.2979213512,
635 40.2685351859,40.2393046187,40.210228197,40.1813044866,40.1525320716,
636 40.1239095543,40.0954355544,40.0671087095,40.0389276741,40.0108911199,
637 39.982997735,39.955246224,39.9276353079,39.9001637232,39.8728302225,
638 39.8456335736,39.8185725594,39.7916459781,39.7648526423,39.7381913793,
639 39.7116610306,39.6852604519,39.6589885127,39.6328440961,39.6068260988,
640 39.5809334306,39.5551650145,39.5295197862,39.5039966942,39.4785946995,
641 39.4533127753,39.4281499069,39.4031050918,39.3781773388,39.3533656688,
642 39.3286691137,39.304086717,39.2796175331,39.2552606273,39.2310150758,
643 39.2068799653,39.1828543931,39.1589374668,39.1351283041,39.1114260327,
644 39.0878297902,39.064338724,39.0409519911,39.0176687579,38.9944882003,
645 38.9714095031,38.9484318604,38.9255544753,38.9027765596,38.8800973337,
646 38.8575160268,38.8350318765,38.8126441286,38.7903520373,38.7681548648,
647 38.7460518814,38.7240423652,38.7021256022,38.6803008859,38.6585675176,
648 38.636924806,38.6153720669,38.5939086239,38.5725338073,38.5512469547,
649 38.5300474107,38.5089345267,38.4879076609,38.4669661783,38.4461094505,
650 38.4253368556,38.4046477781,38.384041609,38.3635177454,38.3430755908,
651 38.3227145546,38.3024340525,38.2822335058,38.2621123421,38.2420699944,
652 38.2221059018,38.2022195088,38.1824102656,38.1626776278,38.1430210566,
653 38.1234400185,38.1039339853,38.0845024341,38.065144847,38.0458607114,
654 38.0266495197,38.0075107692,37.9884439622,37.9694486057,37.9505242119,
655 37.9316702972,37.912886383,37.8941719953,37.8755266647,37.8569499261,
656 37.838441319,37.8200003873,37.8016266793,37.7833197474,37.7650791485,
657 37.7469044434,37.7287951972,37.7107509792,37.6927713625,37.6748559244,
658 37.6570042459,37.6392159121,37.621490512,37.6038276382,37.5862268871,
659 37.568687859,37.5512101577,37.5337933905,37.5164371687,37.4991411068,
660 37.4819048228,37.4647279384,37.4476100786,37.4305508715,37.4135499491,
661 37.3966069463,37.3797215014,37.3628932558,37.3461218542,37.3294069446,
662 37.3127481779,37.296145208,37.2795976922,37.2631052905,37.2466676661,
663 37.2302844849,37.2139554159,37.197680131,37.1814583048,37.1652896148,
664 37.1491737414,37.1331103675,37.1170991789,37.1011398641,37.0852321142,
665 37.069375623,37.0535700867,37.0378152045,37.0221106777,37.0064562103,
666 36.990851509,36.9752962825,36.9597902425,36.9443331026,36.9289245791,
667 36.9135643906,36.8982522581,36.8829879046,36.8677710558,36.8526014395,
668 36.8374787856,36.8224028263,36.8073732962,36.7923899319,36.7774524719,
669 36.7625606573,36.747714231,36.7329129381,36.7181565255,36.7034447426,
670 36.6887773404,36.6741540721,36.6595746928,36.6450389596,36.6305466316,
671 36.6160974695,36.6016912363,36.5873276967,36.5730066171,36.5587277661,
672 36.5444909137,36.530295832,36.5161422947,36.5020300775,36.4879589576,
673 36.473928714,36.4599391274,36.4459899804,36.4320810569,36.4182121427,
674 36.4043830253,36.3905934937,36.3768433384,36.3631323519,36.3494603278,
675 36.3358270615,36.32223235,36.3086759918,36.2951577868,36.2816775364,
676 36.2682350438,36.2548301133,36.2414625508,36.2281321637,36.2148387608,
677 36.2015821522,36.1883621497,36.1751785661,36.1620312159,36.1489199148,
678 36.1358444799,36.1228047297,36.1098004839,36.0968315636,36.0838977911,
679 36.0709989901,36.0581349856,36.0453056038,36.0325106721,36.0197500193,
680 36.0070234752,35.9943308711,35.9816720393,35.9690468132,35.9564550278,
681 35.9438965189,35.9313711235,35.9188786799,35.9064190275,35.8939920068,
682 35.8815974594,35.869235228,35.8569051565,35.8446070897,35.8323408738,
683 35.8201063558,35.8079033838,35.7957318069,35.7835914756,35.771482241,
684 35.7594039553,35.747356472,35.7353396454,35.7233533306,35.7113973841,
685 35.6994716631,35.6875760259,35.6757103316,35.6638744405,35.6520682136,
686 35.640291513,35.6285442016,35.6168261434,35.6051372032,35.5934772466,
687 35.5818461403,35.5702437517,35.5586699493,35.5471246023,35.5356075808,
688 35.5241187557,35.512657999,35.5012251833,35.489820182,35.4784428696,
689 35.4670931211,35.4557708126,35.4444758209,35.4332080234,35.4219672987,
690 35.4107535258,35.3995665848,35.3884063562,35.3772727218,35.3661655635,
691 35.3550847646,35.3440302088,35.3330017805,35.321999365,35.3110228483,
692 35.300072117,35.2891470586,35.2782475612,35.2673735136,35.2565248054,
693 35.2457013268,35.2349029688,35.2241296228,35.2133811812,35.2026575371,
694 35.1919585838,35.1812842159,35.1706343282,35.1600088162,35.1494075763,
695 35.1388305053,35.1282775008,35.1177484608,35.1072432842,35.0967618704,
696 35.0863041192,35.0758699315,35.0654592084,35.0550718516,35.0447077637,
697 35.0343668477,35.0240490072,35.0137541462,35.0034821697,34.9932329829,
698 34.9830064918,34.9728026027,34.9626212228,34.9524622596,34.9423256212,
699 34.9322112164,34.9221189543,34.9120487447,34.9020004979,34.8919741248,
700 34.8819695366,34.8719866453,34.8620253633,34.8520856033,34.842167279,
701 34.8322703041,34.8223945932,34.8125400611,34.8027066232,34.7928941955,
702 34.7831026943,34.7733320366,34.7635821397,34.7538529214,34.7441443,
703 34.7344561944,34.7247885237,34.7151412076,34.7055141664,34.6959073207,
704 34.6863205914,34.6767539002,34.6672071689,34.6576803201,34.6481732765,
705 34.6386859615,34.6292182987,34.6197702123,34.6103416268,34.6009324673,
706 34.5915426592,34.5821721282,34.5728208006,34.5634886031,34.5541754628,
707 34.544881307,34.5356060638,34.5263496612,34.517112028,34.5078930933,
708 34.4986927864,34.4895110373,34.4803477761,34.4712029334,34.4620764403,
709 34.4529682279,34.4438782282,34.4348063732,34.4257525953,34.4167168273,
710 34.4076990026,34.3986990546,34.3897169172,34.3807525248,34.3718058119,
711 34.3628767135,34.353965165,34.3450711019,34.3361944604,34.3273351768,
712 34.3184931877,34.3096684302,34.3008608417,34.2920703598,34.2832969226,
713 34.2745404684,34.2658009359,34.2570782641,34.2483723923,34.2396832601,
714 34.2310108075,34.2223549748,34.2137157025,34.2050929316,34.1964866032,
715 34.1878966587,34.1793230401,34.1707656894,34.1622245491,34.1536995617,
716 34.1451906704,34.1366978184,34.1282209493,34.1197600069,34.1113149355,
717 34.1028856794,34.0944721833,34.0860743924,34.0776922518,34.0693257072,
718 34.0609747043,34.0526391894,34.0443191087,34.0360144089,34.027725037,
719 34.0194509401,34.0111920657,34.0029483616,33.9947197757,33.9865062562,
720 33.9783077517,33.970124211,33.9619555829,33.9538018168,33.9456628623,
721 33.937538669,33.929429187,33.9213343666,33.9132541583,33.9051885128,
722 33.8971373811,33.8891007144,33.8810784643,33.8730705825,33.8650770208,
723 33.8570977314,33.8491326669,33.8411817798,33.833245023,33.8253223496,
724 33.8174137129,33.8095190666,33.8016383643,33.7937715601,33.7859186082,
725 33.7780794631,33.7702540793,33.7624424119,33.7546444159,33.7468600466,
726 33.7390892595,33.7313320104,33.7235882552,33.7158579501,33.7081410514,
727 33.7004375158,33.6927472999,33.6850703608,33.6774066556,33.6697561417,
728 33.6621187768,33.6544945186,33.646883325,33.6392851544,33.6316999649,
729 33.6241277153,33.6165683642,33.6090218706,33.6014881937,33.5939672928,
730 33.5864591274,33.5789636572,33.5714808422,33.5640106423,33.5565530179,
731 33.5491079294,33.5416753374,33.5342552028,33.5268474865,33.5194521497,
732 33.5120691538,33.5046984602,33.4973400307,33.489993827,33.4826598114,
733 33.475337946,33.4680281931,33.4607305153,33.4534448754,33.4461712362,
734 33.4389095608,33.4316598125,33.4244219546,33.4171959506,33.4099817644,
735 33.4027793597,33.3955887006,33.3884097513,33.3812424763,33.3740868399,
736 33.3669428069,33.3598103421,33.3526894105,33.3455799772,33.3384820076,
737 33.3313954671,33.3243203212,33.3172565359,33.3102040768,33.3031629102,
738 33.2961330022,33.2891143192,33.2821068276,33.2751104942,33.2681252856,
739 33.2611511689,33.254188111,33.2472360793,33.2402950411,33.2333649639,
740 33.2264458153,33.2195375632,33.2126401754,33.20575362,33.1988778652,
741 33.1920128793,33.1851586308,33.1783150883,33.1714822206,33.1646599965,
742 33.157848385,33.1510473553,33.1442568766,33.1374769184,33.1307074501,
743 33.1239484414,33.1171998621,33.1104616821,33.1037338714,33.0970164003,
744 33.090309239,33.0836123579,33.0769257276,33.0702493187,33.063583102,
745 33.0569270484,33.050281129,33.0436453148,33.0370195773,33.0304038877,
746 33.0237982176,33.0172025386,33.0106168224,33.004041041,32.9974751662,
747 32.9909191702,32.9843730252,32.9778367035,32.9713101775,32.9647934199,
748 32.9582864031,32.9517891002,32.9453014838,32.938823527,32.932355203,
749 32.9258964848,32.919447346,32.9130077598,32.9065776998,32.9001571398,
750 32.8937460533,32.8873444143,32.8809521968,32.8745693748,32.8681959225,
751 32.8618318142,32.8554770243,32.8491315272,32.8427952975,32.8364683099,
752 32.8301505393,32.8238419604,32.8175425484,32.8112522782,32.8049711251,
753 32.7986990644,32.7924360713,32.7861821216,32.7799371906,32.7737012541,
754 32.7674742879,32.7612562677,32.7550471697,32.7488469698,32.7426556442,
755 32.7364731692,32.730299521,32.7241346761,32.717978611,32.7118313024,
756 32.705692727,32.6995628615,32.6934416828,32.6873291679,32.6812252939,
757 32.6751300379,32.6690433772,32.6629652891,32.656895751,32.6508347404,
758 32.6447822349,32.6387382122,32.6327026501,32.6266755264,32.620656819,
759 32.614646506,32.6086445654,32.6026509754,32.5966657144,32.5906887606,
760 32.5847200926,32.5787596887,32.5728075277,32.5668635881,32.5609278488,
761 32.5550002886,32.5490808863,32.5431696211,32.537266472,32.5313714181,
762 32.5254844387,32.519605513,32.5137346206,32.5078717408,32.5020168532,
763 32.4961699374,32.4903309731,32.4844999401,32.4786768182,32.4728615874,
764 32.4670542276,32.4612547189,32.4554630416,32.4496791757,32.4439031016,
765 32.4381347996,32.4323742503,32.426621434,32.4208763314,32.4151389231,
766 32.4094091899,32.4036871126,32.3979726719,32.3922658489,32.3865666246,
767 32.38087498,32.3751908962,32.3695143546,32.3638453363,32.3581838227,
768 32.3525297952,32.3468832354,32.3412441247,32.3356124448,32.3299881773,
769 32.3243713041,32.3187618069,32.3131596676,32.3075648682,32.3019773906,
770 32.296397217,32.2908243294,32.2852587101,32.2797003414,32.2741492056,
771 32.268605285,32.2630685622,32.2575390196,32.2520166399,32.2465014056,
772 32.2409932995,32.2354923044,32.229998403,32.2245115783,32.2190318133,
773 32.2135590908,32.208093394,32.202634706,32.1971830101,32.1917382894,
774 32.1863005272,32.1808697069,32.175445812,32.170028826,32.1646187322,
775 32.1592155144,32.1538191563,32.1484296414,32.1430469536,32.1376710768,
776 32.1323019947,32.1269396913,32.1215841506,32.1162353567,32.1108932936,
777 32.1055579455,32.1002292966,32.0949073313,32.0895920337,32.0842833883,
778 32.0789813795,32.0736859917,32.0683972096,32.0631150177,32.0578394006,
779 32.052570343,32.0473078297,32.0420518455,32.0368023751,32.0315594036,
780 32.0263229158,32.0210928968,32.0158693316,32.0106522053,32.0054415031,
781 32.0002372101,31.9950393117,31.989847793,31.9846626396,31.9794838367,
782 31.9743113698,31.9691452245,31.9639853862,31.9588318406,31.9536845733,
783 31.9485435701,31.9434088165,31.9382802985,31.9331580018,31.9280419124,
784 31.9229320162,31.9178282991,31.9127307472,31.9076393466,31.9025540833,
785 31.8974749435,31.8924019134,31.8873349793,31.8822741275,31.8772193443,
786 31.8721706161,31.8671279293,31.8620912705,31.857060626,31.8520359826,
787 31.8470173268,31.8420046452,31.8369979246,31.8319971517,31.8270023133,
788 31.8220133962,31.8170303872,31.8120532733,31.8070820415,31.8021166787,
789 31.797157172,31.7922035084,31.7872556751,31.7823136593,31.7773774481,
790 31.7724470288,31.7675223886,31.762603515,31.7576903953,31.7527830168,
791 31.7478813671,31.7429854336,31.7380952039,31.7332106655,31.728331806,
792 31.7234586132,31.7185910746,31.713729178,31.7088729112,31.7040222619,
793 31.6991772181,31.6943377676,31.6895038984,31.6846755983,31.6798528554,
794 31.6750356577,31.6702239933,31.6654178504,31.660617217,31.6558220813,
795 31.6510324316,31.6462482561,31.6414695432,31.636696281,31.6319284582,
796 31.6271660629,31.6224090837,31.6176575091,31.6129113276,31.6081705277,
797 31.6034350979,31.5987050271,31.5939803036,31.5892609164,31.5845468541,
798 31.5798381054,31.5751346592,31.5704365043,31.5657436296,31.5610560239,
799 31.5563736762,31.5516965754,31.5470247107,31.5423580709,31.5376966452,
800 31.5330404227,31.5283893925,31.5237435438,31.5191028657,31.5144673476,
801 31.5098369787,31.5052117483,31.5005916457,31.4959766602,31.4913667814,
802 31.4867619986,31.4821623013,31.477567679,31.4729781212,31.4683936175,
803 31.4638141574,31.4592397306,31.4546703267,31.4501059355,31.4455465465,
804 31.4409921497,31.4364427347,31.4318982914,31.4273588096,31.4228242792,
805 31.4182946901,31.4137700321,31.4092502953,31.4047354697,31.4002255452,
806 31.395720512,31.39122036,31.3867250795,31.3822346605,31.3777490932,
807 31.3732683678,31.3687924745,31.3643214037,31.3598551455,31.3553936903,
808 31.3509370284,31.3464851502,31.3420380461,31.3375957065,31.3331581218,
809 31.3287252826,31.3242971794,31.3198738027,31.315455143,31.311041191,
810 31.3066319372,31.3022273724,31.2978274871,31.2934322722,31.2890417183,
811 31.2846558161,31.2802745565,31.2758979303,31.2715259284,31.2671585414,
812 31.2627957605,31.2584375764,31.2540839802,31.2497349627,31.245390515,
813 31.2410506282,31.2367152932,31.2323845011,31.228058243,31.2237365101,
814 31.2194192934,31.2151065843,31.2107983738,31.2064946532,31.2021954137,
815 31.1979006466,31.1936103433,31.189324495,31.1850430931,31.180766129,
816 31.176493594,31.1722254796,31.1679617772,31.1637024784,31.1594475745,
817 31.1551970572,31.1509509179,31.1467091483,31.1424717399,31.1382386843,
818 31.1340099732,31.1297855982,31.1255655511,31.1213498235,31.1171384071,
819 31.1129312938,31.1087284753,31.1045299434,31.1003356899,31.0961457067,
820 31.0919599856
821 }
822 }
823 };
0 // generated by ../../tools/tube_transfer.py
1 // tube: 6DJ8
2 // plate current function: triode
3 // mu: 28
4 // kx: 1.3
5 // kg1: 330
6 // kp: 320
7 // kvb: 300
8
9 table1d_imp<2001> tubetable_6DJ8[2] =
10 {
11 {
12 // Ri = 68k
13 -5,5,200,2001, {
14 137.512728867,137.399223264,137.285690251,137.17212984,137.058542039,
15 136.944926859,136.831284308,136.717614396,136.603917133,136.490192528,
16 136.37644059,136.262661328,136.148854752,136.035020871,135.921159694,
17 135.80727123,135.693355487,135.579412475,135.465442203,135.351444679,
18 135.237419911,135.12336791,135.009288682,134.895182238,134.781048584,
19 134.66688773,134.552699684,134.438484454,134.324242049,134.209972477,
20 134.095675745,133.981351862,133.867000836,133.752622675,133.638217387,
21 133.523784979,133.40932546,133.294838836,133.180325116,133.065784308,
22 132.951216418,132.836621455,132.721999425,132.607350337,132.492674197,
23 132.377971012,132.263240791,132.148483539,132.033699265,131.918887974,
24 131.804049675,131.689184374,131.574292077,131.459372792,131.344426526,
25 131.229453284,131.114453074,130.999425902,130.884371775,130.769290699,
26 130.654182681,130.539047726,130.423885842,130.308697033,130.193481308,
27 130.078238671,129.962969128,129.847672686,129.732349351,129.616999128,
28 129.501622024,129.386218043,129.270787192,129.155329476,129.039844901,
29 128.924333473,128.808795197,128.693230078,128.577638121,128.462019333,
30 128.346373717,128.230701281,128.115002027,127.999275963,127.883523091,
31 127.767743419,127.65193695,127.536103689,127.420243641,127.304356811,
32 127.188443204,127.072502824,126.956535675,126.840541763,126.724521091,
33 126.608473664,126.492399486,126.376298562,126.260170896,126.144016492,
34 126.027835354,125.911627486,125.795392892,125.679131576,125.562843542,
35 125.446528794,125.330187335,125.213819169,125.0974243,124.981002732,
36 124.864554467,124.74807951,124.631577864,124.515049532,124.398494517,
37 124.281912824,124.165304454,124.048669411,123.932007699,123.815319319,
38 123.698604276,123.581862572,123.465094209,123.348299192,123.231477521,
39 123.114629201,122.997754234,122.880852622,122.763924367,122.646969473,
40 122.529987942,122.412979775,122.295944976,122.178883547,122.061795488,
41 121.944680804,121.827539496,121.710371565,121.593177014,121.475955845,
42 121.358708059,121.241433658,121.124132644,121.006805019,120.889450784,
43 120.772069941,120.654662491,120.537228435,120.419767776,120.302280513,
44 120.18476665,120.067226186,119.949659123,119.832065462,119.714445204,
45 119.596798349,119.4791249,119.361424857,119.24369822,119.12594499,
46 119.008165168,118.890358755,118.772525751,118.654666156,118.536779972,
47 118.418867198,118.300927835,118.182961883,118.064969342,117.946950213,
48 117.828904495,117.710832189,117.592733295,117.474607812,117.356455741,
49 117.238277081,117.120071832,117.001839993,116.883581565,116.765296547,
50 116.646984939,116.52864674,116.410281948,116.291890565,116.173472589,
51 116.055028019,115.936556854,115.818059094,115.699534738,115.580983784,
52 115.462406232,115.343802081,115.225171329,115.106513975,114.987830018,
53 114.869119456,114.750382289,114.631618514,114.51282813,114.394011136,
54 114.27516753,114.15629731,114.037400475,113.918477022,113.799526951,
55 113.680550258,113.561546942,113.442517002,113.323460434,113.204377236,
56 113.085267407,112.966130945,112.846967846,112.727778109,112.608561731,
57 112.489318709,112.370049041,112.250752725,112.131429757,112.012080135,
58 111.892703857,111.773300918,111.653871317,111.53441505,111.414932115,
59 111.295422508,111.175886226,111.056323266,110.936733624,110.817117298,
60 110.697474283,110.577804577,110.458108176,110.338385076,110.218635274,
61 110.098858766,109.979055549,109.859225617,109.739368969,109.619485599,
62 109.499575504,109.379638679,109.259675121,109.139684826,109.019667789,
63 108.899624005,108.779553471,108.659456182,108.539332134,108.419181322,
64 108.299003742,108.178799389,108.058568258,107.938310344,107.818025643,
65 107.697714149,107.577375859,107.457010766,107.336618867,107.216200154,
66 107.095754624,106.975282272,106.854783091,106.734257077,106.613704224,
67 106.493124526,106.372517979,106.251884576,106.131224312,106.010537181,
68 105.889823177,105.769082295,105.648314528,105.52751987,105.406698316,
69 105.28584986,105.164974495,105.044072215,104.923143013,104.802186884,
70 104.681203821,104.560193818,104.439156867,104.318092963,104.197002099,
71 104.075884268,103.954739463,103.833567678,103.712368905,103.591143138,
72 103.46989037,103.348610593,103.2273038,103.105969985,102.98460914,
73 102.863221257,102.74180633,102.62036435,102.498895311,102.377399205,
74 102.255876023,102.134325759,102.012748405,101.891143952,101.769512394,
75 101.647853721,101.526167926,101.404455002,101.282714939,101.16094773,
76 101.039153366,100.917331839,100.795483141,100.673607263,100.551704197,
77 100.429773934,100.307816465,100.185831783,100.063819877,99.9417807401,
78 99.8197143622,99.6976207349,99.575499849,99.4533516955,99.3311762653,
79 99.2089735491,99.0867435378,98.964486222,98.8422015924,98.7198896394,
80 98.5975503536,98.4751837255,98.3527897454,98.2303684035,98.1079196902,
81 97.9854435957,97.86294011,97.7404092232,97.6178509253,97.4952652063,
82 97.3726520559,97.250011464,97.1273434204,97.0046479148,96.8819249367,
83 96.7591744756,96.6363965212,96.5135910627,96.3907580897,96.2678975913,
84 96.1450095569,96.0220939755,95.8991508364,95.7761801285,95.6531818408,
85 95.5301559623,95.4071024818,95.2840213882,95.1609126701,95.0377763163,
86 94.9146123152,94.7914206556,94.6682013258,94.5449543144,94.4216796095,
87 94.2983771996,94.1750470729,94.0516892175,93.9283036216,93.8048902731,
88 93.6814491601,93.5579802705,93.4344835922,93.3109591128,93.1874068203,
89 93.0638267021,92.940218746,92.8165829395,92.6929192701,92.5692277251,
90 92.4455082919,92.3217609579,92.1979857102,92.0741825361,91.9503514226,
91 91.8264923567,91.7026053255,91.5786903159,91.4547473147,91.3307763088,
92 91.2067772848,91.0827502295,90.9586951294,90.8346119711,90.7105007411,
93 90.5863614258,90.4621940116,90.3379984848,90.2137748316,90.0895230382,
94 89.9652430908,89.8409349754,89.7165986779,89.5922341844,89.4678414807,
95 89.3434205527,89.218971386,89.0944939665,88.9699882796,88.8454543111,
96 88.7208920464,88.596301471,88.4716825703,88.3470353296,88.2223597342,
97 88.0976557693,87.9729234202,87.8481626718,87.7233735093,87.5985559176,
98 87.4737098817,87.3488353864,87.2239324165,87.0990009569,86.9740409921,
99 86.8490525069,86.7240354858,86.5989899134,86.4739157741,86.3488130523,
100 86.2236817325,86.0985217988,85.9733332355,85.8481160269,85.7228701571,
101 85.5975956101,85.47229237,85.3469604207,85.2215997461,85.0962103302,
102 84.9707921567,84.8453452094,84.719869472,84.5943649281,84.4688315614,
103 84.3432693553,84.2176782934,84.092058359,83.9664095357,83.8407318067,
104 83.7150251553,83.5892895648,83.4635250183,83.337731499,83.2119089899,
105 83.0860574742,82.9601769347,82.8342673545,82.7083287164,82.5823610033,
106 82.456364198,82.3303382832,82.2042832416,82.078199056,81.9520857088,
107 81.8259431828,81.6997714604,81.5735705241,81.4473403564,81.3210809396,
108 81.1947922561,81.0684742883,80.9421270183,80.8157504285,80.6893445011,
109 80.5629092181,80.4364445617,80.309950514,80.1834270571,80.0568741728,
110 79.9302918433,79.8036800504,79.677038776,79.550368002,79.4236677102,
111 79.2969378824,79.1701785004,79.0433895459,78.9165710006,78.7897228462,
112 78.6628450643,78.5359376366,78.4090005446,78.2820337698,78.1550372939,
113 78.0280110983,77.9009551645,77.7738694739,77.6467540081,77.5196087483,
114 77.3924336761,77.2652287728,77.1379940197,77.0107293981,76.8834348895,
115 76.756110475,76.6287561361,76.5013718539,76.3739576098,76.2465133849,
116 76.1190391605,75.9915349179,75.8640006383,75.7364363029,75.6088418928,
117 75.4812173894,75.3535627738,75.2258780272,75.0981631308,74.9704180658,
118 74.8426428134,74.7148373548,74.5870016713,74.459135744,74.3312395542,
119 74.203313083,74.0753563118,73.9473692218,73.8193517943,73.6913040105,
120 73.5632258517,73.4351172993,73.3069783346,73.178808939,73.0506090938,
121 72.9223787804,72.7941179804,72.6658266751,72.537504846,72.4091524748,
122 72.2807695429,72.1523560319,72.0239119235,71.8954371994,71.7669318413,
123 71.6383958309,71.5098291501,71.3812317808,71.2526037048,71.1239449041,
124 70.9952553608,70.866535057,70.7377839747,70.6090020962,70.4801894039,
125 70.3513458799,70.2224715068,70.0935662671,69.9646301433,69.835663118,
126 69.706665174,69.5776362942,69.4485764614,69.3194856586,69.190363869,
127 69.0612110757,68.932027262,68.8028124113,68.6735665071,68.544289533,
128 68.4149814728,68.2856423104,68.1562720296,68.0268706146,67.8974380496,
129 67.767974319,67.6384794072,67.508953299,67.379395979,67.2498074323,
130 67.1201876439,66.990536599,66.8608542831,66.7311406816,66.6013957805,
131 66.4716195655,66.3418120229,66.2119731387,66.0821028996,65.9522012923,
132 65.8222683035,65.6923039203,65.5623081301,65.4322809203,65.3022222787,
133 65.1721321933,65.0420106521,64.9118576437,64.7816731566,64.65145718,
134 64.5212097028,64.3909307146,64.2606202051,64.1302781642,63.9999045824,
135 63.86949945,63.7390627581,63.6085944978,63.4780946606,63.3475632383,
136 63.2170002231,63.0864056074,62.955779384,62.8251215463,62.6944320876,
137 62.563711002,62.4329582837,62.3021739275,62.1713579283,62.0405102818,
138 61.9096309838,61.7787200307,61.6477774192,61.5168031466,61.3857972106,
139 61.2547596093,61.1236903414,60.9925894061,60.8614568029,60.7302925321,
140 60.5990965942,60.4678689907,60.3366097231,60.205318794,60.0739962062,
141 59.9426419632,59.8112560693,59.6798385291,59.5483893481,59.4169085323,
142 59.2853960884,59.1538520239,59.0222763469,58.8906690661,58.7590301912,
143 58.6273597325,58.4956577011,58.3639241087,58.2321589683,58.1003622931,
144 57.9685340977,57.8366743971,57.7047832076,57.5728605462,57.4409064308,
145 57.3089208804,57.1769039148,57.0448555549,56.9127758226,56.7806647409,
146 56.6485223339,56.5163486267,56.3841436456,56.251907418,56.1196399725,
147 55.9873413389,55.8550115484,55.7226506333,55.5902586273,55.4578355654,
148 55.3253814839,55.1928964206,55.0603804149,54.9278335073,54.7952557401,
149 54.6626471571,54.5300078037,54.3973377269,54.2646369754,54.1319055996,
150 53.9991436517,53.8663511857,53.7335282574,53.6006749245,53.4677912468,
151 53.3348772861,53.2019331059,53.0689587724,52.9359543534,52.8029199192,
152 52.6698555425,52.5367612981,52.4036372633,52.2704835179,52.1373001442,
153 52.0040872271,51.8708448542,51.7375731158,51.6042721052,51.4709419183,
154 51.3375826542,51.204194415,51.070777306,50.9373314355,50.8038569154,
155 50.6703538609,50.5368223907,50.4032626271,50.2696746961,50.1360587275,
156 50.0024148551,49.8687432167,49.7350439541,49.6013172136,49.4675631456,
157 49.3337819053,49.1999736524,49.0661385513,48.9322767715,48.7983884873,
158 48.6644738783,48.5305331297,48.3965664318,48.2625739808,48.1285559787,
159 47.9945126336,47.8604441597,47.7263507774,47.592232714,47.4580902033,
160 47.3239234861,47.1897328106,47.0555184321,46.9212806137,46.7870196261,
161 46.6527357484,46.5184292679,46.3841004803,46.2497496903,46.1153772119,
162 45.9809833681,45.846568492,45.7121329263,45.5776770243,45.4432011498,
163 45.3087056776,45.1741909936,45.0396574956,44.9051055933,44.7705357088,
164 44.635948277,44.5013437459,44.3667225771,44.2320852465,44.0974322441,
165 43.962764075,43.8280812598,43.6933843349,43.5586738531,43.4239503843,
166 43.2892145156,43.1544668524,43.0197080186,42.8849386573,42.7501594316,
167 42.6153710249,42.4805741417,42.3457695087,42.2109578746,42.0761400117,
168 41.9413167163,41.8064888093,41.6716571374,41.5368225735,41.401986018,
169 41.2671483992,41.1323106748,40.9974738322,40.8626388899,40.7278068984,
170 40.5929789412,40.4581561358,40.3233396351,40.1885306281,40.0537303414,
171 39.9189400403,39.78416103,39.6493946568,39.5146423098,39.3799054219,
172 39.2451854712,39.1104839826,38.9758025293,38.8411427342,38.7065062715,
173 38.5718948684,38.4373103067,38.3027544245,38.1682291179,38.0337363429,
174 37.8992781174,37.7648565227,37.6304737057,37.4961318809,37.3618333323,
175 37.2275804158,37.093375561,36.9592212736,36.8251201375,36.6910748171,
176 36.55708806,36.4231626987,36.2893016539,36.1555079361,36.0217846488,
177 35.8881349906,35.7545622582,35.6210698488,35.4876612628,35.3543401068,
178 35.2211100958,35.0879750567,34.9549389303,34.822005775,34.6891797689,
179 34.556465213,34.4238665343,34.2913882882,34.1590351614,34.0268119754,
180 33.8947236884,33.7627753988,33.6309723478,33.499319922,33.3678236562,
181 33.236489236,33.1053225003,32.9743294439,32.8435162196,32.7128891409,
182 32.5824546835,32.4522194881,32.3221903615,32.1923742787,32.0627783842,
183 31.9334099937,31.8042765947,31.6753858474,31.5467455858,31.4183638174,
184 31.2902487238,31.1624086599,31.0348521538,30.9075879057,30.7806247864,
185 30.6539718359,30.5276382612,30.4016334335,30.275966886,30.1506483095,
186 30.0256875494,29.9010946007,29.7768796032,29.6530528365,29.5296247133,
187 29.4066057737,29.2840066773,29.1618381963,29.0401112068,28.9188366802,
188 28.7980256739,28.6776893212,28.557838821,28.4384854266,28.3196404341,
189 28.2013151706,28.083520981,27.9662692154,27.8495712153,27.7334382994,
190 27.6178817497,27.502912796,27.3885426015,27.274782247,27.1616427153,
191 27.0491348756,26.9372694673,26.8260570842,26.7155081583,26.605632944,
192 26.4964415017,26.3879436828,26.2801491135,26.1730671799,26.066707013,
193 25.9610774742,25.8561871411,25.7520442943,25.6486569043,25.5460326191,
194 25.4441787527,25.343102274,25.2428097972,25.1433075719,25.0446014749,
195 24.9466970027,24.8495992647,24.7533129776,24.6578424604,24.5631916308,
196 24.4693640021,24.3763626815,24.284190369,24.1928493573,24.102341533,
197 24.0126683781,23.9238309727,23.8358299992,23.7486657456,23.6623381119,
198 23.576846615,23.492190396,23.4083682275,23.3253785212,23.2432193369,
199 23.1618883911,23.0813830671,23.0017004246,22.9228372103,22.8447898684,
200 22.7675545521,22.6911271343,22.6155032194,22.5406781549,22.4666470431,
201 22.3934047528,22.3209459315,22.2492650165,22.1783562475,22.1082136777,
202 22.0388311858,21.9702024871,21.9023211449,21.8351805819,21.7687740907,
203 21.7030948443,21.6381359073,21.573890245,21.5103507342,21.4475101722,
204 21.3853612859,21.3238967417,21.2631091529,21.2029910891,21.1435350836,
205 21.0847336411,21.0265792455,20.9690643664,20.9121814661,20.8559230061,
206 20.800281453,20.7452492842,20.6908189936,20.6369830967,20.5837341354,
207 20.5310646827,20.4789673469,20.4274347758,20.3764596604,20.3260347384,
208 20.2761527978,20.2268066794,20.1779892802,20.1296935556,20.081912522,
209 20.034639259,19.9878669114,19.941588691,19.8957978783,19.8504878237,
210 19.8056519493,19.7612837498,19.7173767936,19.6739247233,19.6309212573,
211 19.5883601896,19.5462353909,19.5045408084,19.4632704669,19.4224184683,
212 19.3819789922,19.3419462957,19.3023147134,19.2630786571,19.2242326162,
213 19.1857711566,19.1476889213,19.109980629,19.0726410748,19.0356651289,
214 18.9990477362,18.9627839162,18.9268687619,18.8912974396,18.8560651877,
215 18.8211673166,18.7865992077,18.7523563125,18.7184341523,18.6848283169,
216 18.6515344643,18.6185483195,18.5858656739,18.5534823845,18.5213943728,
217 18.4895976244,18.4580881876,18.4268621732,18.3959157529,18.3652451591,
218 18.3348466836,18.3047166771,18.2748515479,18.2452477615,18.2159018395,
219 18.1868103586,18.1579699502,18.1293772992,18.1010291432,18.0729222719,
220 18.0450535259,18.0174197962,17.9900180234,17.9628451967,17.9358983531,
221 17.9091745768,17.8826709984,17.856384794,17.8303131846,17.804453435,
222 17.7788028537,17.7533587915,17.7281186413,17.7030798369,17.6782398529,
223 17.6535962035,17.629146442,17.60488816,17.5808189872,17.5569365901,
224 17.5332386719,17.5097229715,17.4863872631,17.4632293556,17.4402470917,
225 17.4174383478,17.3948010329,17.3723330884,17.3500324875,17.3278972343,
226 17.3059253639,17.2841149411,17.2624640605,17.2409708457,17.2196334488,
227 17.19845005,17.177418857,17.1565381047,17.1358060544,17.1152209936,
228 17.0947812357,17.0744851191,17.0543310071,17.0343172874,17.0144423714,
229 16.9947046944,16.9751027147,16.9556349131,16.9362997931,16.9170958798,
230 16.8980217202,16.8790758822,16.8602569547,16.8415635471,16.8229942888,
231 16.804547829,16.7862228364,16.7680179988,16.7499320229,16.7319636336,
232 16.714111574,16.6963746054,16.6787515061,16.661241072,16.6438421159,
233 16.6265534672,16.6093739717,16.5923024914,16.5753379039,16.5584791027,
234 16.5417249963,16.5250745085,16.5085265778,16.4920801573,16.4757342144,
235 16.4594877306,16.4433397013,16.4272891353,16.4113350551,16.3954764962,
236 16.3797125071,16.3640421492,16.3484644962,16.3329786343,16.3175836618,
237 16.3022786889,16.2870628377,16.2719352417,16.2568950459,16.2419414064,
238 16.2270734904,16.2122904759,16.1975915515,16.1829759164,16.1684427801,
239 16.1539913623,16.1396208926,16.1253306106,16.1111197655,16.0969876161,
240 16.0829334306,16.0689564863,16.0550560698,16.0412314765,16.0274820108,
241 16.0138069857,16.0002057227,15.9866775518,15.9732218113,15.9598378476,
242 15.9465250152,15.9332826765,15.9201102017,15.9070069688,15.8939723631,
243 15.8810057776,15.8681066125,15.8552742754,15.8425081808,15.8298077503,
244 15.8171724125,15.8046016028,15.7920947632,15.7796513423,15.7672707954,
245 15.754952584,15.7426961761,15.7305010459,15.7183666735,15.7062925455,
246 15.694278154,15.6823229973,15.6704265793,15.6585884097,15.6468080039,
247 15.6350848828,15.6234185725,15.611808605,15.6002545171,15.5887558512,
248 15.5773121548,15.5659229802,15.5545878851,15.543306432,15.5320781883,
249 15.5209027261,15.5097796223,15.4987084586,15.4876888213,15.476720301,
250 15.465802493,15.454934997,15.4441174172,15.4333493618,15.4226304434,
251 15.4119602788,15.4013384891,15.3907646991,15.3802385379,15.3697596385,
252 15.3593276378,15.3489421765,15.3386028993,15.3283094545,15.3180614942,
253 15.3078586739,15.2977006532,15.2875870947,15.277517665,15.267492034,
254 15.2575098748,15.2475708642,15.2376746822,15.2278210121,15.2180095404,
255 15.208239957,15.1985119547,15.1888252296,15.1791794809,15.1695744108,
256 15.1600097243,15.1504851298,15.1410003383,15.1315550638,15.1221490232,
257 15.1127819361,15.1034535249,15.094163515,15.0849116342,15.0756976132,
258 15.0665211851,15.057382086,15.0482800541,15.0392148306,15.030186159,
259 15.0211937853,15.012237458,15.003316928,14.9944319486,14.9855822755,
260 14.9767676668,14.9679878826,14.9592426857,14.950531841,14.9418551155,
261 14.9332122786,14.9246031017,14.9160273584,14.9074848247,14.8989752782,
262 14.8904984989,14.8820542689,14.8736423721,14.8652625946,14.8569147243,
263 14.8485985512,14.8403138672,14.832060466,14.8238381434,14.8156466968,
264 14.8074859258,14.7993556314,14.7912556167,14.7831856865,14.7751456474,
265 14.7671353076,14.7591544771,14.7512029678,14.7432805929,14.7353871675,
266 14.7275225084,14.7196864338,14.7118787638,14.7040993197,14.6963479248,
267 14.6886244037,14.6809285825,14.6732602889,14.6656193522,14.6580056031,
268 14.6504188737,14.6428589975,14.6353258098,14.6278191469,14.6203388467,
269 14.6128847485,14.6054566928,14.5980545218,14.5906780788,14.5833272083,
270 14.5760017565,14.5687015706,14.5614264991,14.554176392,14.5469511003,
271 14.5397504764,14.532574374,14.5254226477,14.5182951536,14.511191749,
272 14.5041122922,14.4970566428,14.4900246616,14.4830162103,14.476031152,
273 14.4690693508,14.4621306719,14.4552149818,14.4483221476,14.4414520381,
274 14.4346045227,14.427779472,14.4209767576,14.4141962524,14.4074378298,
275 14.4007013648,14.3939867329,14.3872938109,14.3806224764,14.3739726081,
276 14.3673440856,14.3607367896,14.3541506013,14.3475854034,14.3410410791,
277 14.3345175128,14.3280145895,14.3215321954,14.3150702174,14.3086285433,
278 14.3022070619,14.2958056626,14.2894242359,14.283062673,14.276720866,
279 14.2703987079,14.2640960923,14.2578129137,14.2515490676,14.24530445,
280 14.2390789579,14.232872489,14.2266849416,14.2205162152,14.2143662096,
281 14.2082348255,14.2021219646,14.1960275289,14.1899514215,14.1838935459,
282 14.1778538067,14.1718321088,14.165828358,14.1598424609,14.1538743246,
283 14.1479238569,14.1419909664,14.1360755623,14.1301775544,14.1242968532,
284 14.11843337,14.1125870164,14.106757705,14.1009453487,14.0951498615,
285 14.0893711574,14.0836091515,14.0778637594,14.0721348971,14.0664224814,
286 14.0607264296,14.0550466597,14.0493830902,14.0437356402,14.0381042293,
287 14.0324887777,14.0268892062,14.0213054361,14.0157373894,14.0101849885,
288 14.0046481563,13.9991268163,13.9936208926,13.9881303098,13.9826549929,
289 13.9771948675,13.9717498598,13.9663198964,13.9609049044,13.9555048114,
290 13.9501195456,13.9447490356,13.9393932105,13.9340519998,13.9287253336,
291 13.9234131425,13.9181153575,13.91283191,13.9075627319,13.9023077557,
292 13.8970669141,13.8918401405,13.8866273686,13.8814285326,13.876243567,
293 13.871072407,13.865914988,13.860771246,13.8556411172,13.8505245383,
294 13.8454214467,13.8403317797,13.8352554755,13.8301924725,13.8251427093,
295 13.8201061252,13.8150826598,13.8100722531,13.8050748454,13.8000903775,
296 13.7951187905,13.790160026,13.7852140259,13.7802807323,13.775360088,
297 13.7704520359,13.7655565194,13.7606734822,13.7558028685,13.7509446227,
298 13.7460986895,13.7412650141,13.7364435419,13.7316342189,13.7268369912,
299 13.7220518053,13.717278608,13.7125173466,13.7077679684,13.7030304215,
300 13.6983046538,13.693590614,13.6888882508,13.6841975133,13.679518351,
301 13.6748507136,13.6701945512,13.665549814,13.6609164529,13.6562944187,
302 13.6516836627,13.6470841366,13.6424957921,13.6379185813,13.6333524569,
303 13.6287973714,13.6242532779,13.6197201297,13.6151978803,13.6106864838,
304 13.6061858941,13.6016960656,13.5972169532,13.5927485117,13.5882906964,
305 13.5838434627,13.5794067665,13.5749805636,13.5705648106,13.5661594637,
306 13.5617644799,13.5573798162,13.5530054299,13.5486412786,13.54428732,
307 13.5399435123,13.5356098136,13.5312861826,13.526972578,13.5226689589,
308 13.5183752845,13.5140915142,13.5098176079,13.5055535255,13.5012992271,
309 13.4970546733,13.4928198245,13.4885946418,13.4843790862,13.4801731191,
310 13.4759767019,13.4717897965,13.4676123647,13.4634443689,13.4592857713,
311 13.4551365347,13.4509966219,13.4468659959,13.4427446199,13.4386324575,
312 13.4345294722,13.4304356279,13.4263508888,13.422275219,13.418208583,
313 13.4141509456,13.4101022715,13.4060625259,13.4020316739,13.3980096811,
314 13.393996513,13.3899921354,13.3859965145,13.3820096163,13.3780314073,
315 13.374061854,13.3701009232,13.3661485818,13.362204797,13.358269536,
316 13.3543427662,13.3504244554,13.3465145714,13.3426130821,13.3387199557,
317 13.3348351605,13.3309586652,13.3270904383,13.3232304487,13.3193786654,
318 13.3155350575,13.3116995946,13.3078722459,13.3040529813,13.3002417706,
319 13.2964385836,13.2926433907,13.2888561621,13.2850768682,13.2813054797,
320 13.2775419674,13.2737863022,13.2700384552,13.2662983976,13.2625661008,
321 13.2588415363,13.2551246758,13.2514154912,13.2477139545,13.2440200377,
322 13.2403337131,13.2366549531,13.2329837303,13.2293200174,13.2256637873,
323 13.2220150128,13.2183736671,13.2147397235,13.2111131554,13.2074939363,
324 13.2038820398,13.2002774397,13.19668011,13.1930900248,13.1895071582,
325 13.1859314845,13.1823629783,13.178801614,13.1752473665,13.1717002105,
326 13.168160121,13.1646270732,13.1611010422,13.1575820033,13.1540699321,
327 13.1505648041,13.1470665951,13.1435752808,13.1400908372,13.1366132404,
328 13.1331424666,13.1296784921,13.1262212933,13.1227708467,13.1193271291,
329 13.1158901171,13.1124597877,13.1090361179,13.1056190848,13.1022086655,
330 13.0988048375,13.0954075782,13.0920168651,13.0886326759,13.0852549884,
331 13.0818837805,13.0785190301,13.0751607154,13.0718088145,13.0684633057,
332 13.0651241676,13.0617913785,13.0584649171,13.0551447622,13.0518308925,
333 13.048523287,13.0452219246,13.0419267846,13.0386378462,13.0353550886,
334 13.0320784913,13.0288080338,13.0255436958,13.0222854569,13.019033297,
335 13.0157871959,13.0125471336,13.0093130904,13.0060850462,13.0028629815,
336 12.9996468766,12.9964367119,12.993232468,12.9900341256,12.9868416654,
337 12.9836550682,12.9804743149,12.9772993866,12.9741302643,12.9709669292,
338 12.9678093625,12.9646575458,12.9615114602,12.9583710875,12.9552364092,
339 12.9521074069,12.9489840625,12.9458663579,12.9427542749,12.9396477957,
340 12.9365469022,12.9334515768,12.9303618016,12.9272775591,12.9241988316,
341 12.9211256016,12.9180578519,12.9149955649,12.9119387235,12.9088873106,
342 12.9058413089,12.9028007015,12.8997654714,12.8967356018,12.8937110759,
343 12.8906918769,12.8876779882,12.8846693933,12.8816660756,12.8786680187,
344 12.8756752064,12.8726876222,12.86970525,12.8667280736,12.8637560771,
345 12.8607892443,12.8578275594,12.8548710066,12.8519195701,12.848973234,
346 12.8460319829,12.8430958011,12.8401646731,12.8372385835,12.8343175169,
347 12.831401458,12.8284903916,12.8255843025,12.8226831755,12.8197869957,
348 12.8168957481,12.8140094178,12.8111279898,12.8082514496,12.8053797822,
349 12.8025129731,12.7996510076,12.7967938713,12.7939415497,12.7910940284,
350 12.7882512929,12.7854133292,12.7825801228,12.7797516597,12.7769279257,
351 12.7741089069,12.7712945892,12.7684849587,12.7656800016,12.762879704,
352 12.7600840522,12.7572930325,12.7545066312,12.7517248349,12.74894763,
353 12.7461750029,12.7434069404,12.7406434291,12.7378844557,12.7351300068,
354 12.7323800695,12.7296346305,12.7268936767,12.7241571952,12.721425173,
355 12.7186975971,12.7159744547,12.7132557331,12.7105414194,12.7078315009,
356 12.7051259651,12.7024247993,12.699727991,12.6970355276,12.6943473968,
357 12.6916635861,12.6889840833,12.6863088759,12.6836379519,12.680971299,
358 12.678308905,12.6756507579,12.6729968456,12.6703471562,12.6677016776,
359 12.6650603981,12.6624233057,12.6597903887,12.6571616353,12.6545370337,
360 12.6519165725,12.6493002398,12.6466880242,12.6440799142,12.6414758982,
361 12.6388759649,12.6362801029,12.6336883008,12.6311005473,12.6285168312,
362 12.6259371414,12.6233614666,12.6207897957,12.6182221177,12.6156584215,
363 12.6130986962,12.6105429308,12.6079911145,12.6054432363,12.6028992855,
364 12.6003592512,12.5978231229,12.5952908898,12.5927625412,12.5902380665,
365 12.5877174553,12.585200697,12.582687781,12.580178697,12.5776734346,
366 12.5751719835,12.5726743332,12.5701804736,12.5676903943,12.5652040853,
367 12.5627215363,12.5602427373,12.5577676781,12.5552963487,12.5528287392,
368 12.5503648395,12.5479046397,12.54544813,12.5429953005,12.5405461414,
369 12.5381006428,12.5356587952,12.5332205887,12.5307860138,12.5283550607,
370 12.52592772,12.523503982,12.5210838372,12.5186672762,12.5162542895,
371 12.5138448677,12.5114390014,12.5090366814,12.5066378982,12.5042426426,
372 12.5018509054,12.4994626774,12.4970779493,12.4946967122,12.4923189569,
373 12.4899446743,12.4875738554,12.4852064912,12.4828425728,12.4804820912,
374 12.4781250374,12.4757714028,12.4734211784,12.4710743554,12.468730925,
375 12.4663908786,12.4640542075,12.4617209029,12.4593909562,12.4570643588,
376 12.4547411022,12.4524211778,12.4501045771,12.4477912916,12.4454813129,
377 12.4431746326,12.4408712422,12.4385711334,12.4362742979,12.4339807274,
378 12.4316904136,12.4294033483,12.4271195232,12.4248389303,12.4225615613,
379 12.4202874082,12.4180164628,12.4157487171,12.413484163,12.4112227927,
380 12.408964598,12.406709571,12.4044577039,12.4022089887,12.3999634176,
381 12.3977209827,12.3954816763,12.3932454906,12.3910124178,12.3887824501,
382 12.38655558,12.3843317998,12.3821111017,12.3798934782,12.3776789218,
383 12.3754674248,12.3732589797,12.371053579,12.3688512153,12.366651881,
384 12.3644555688,12.3622622713,12.3600719811,12.3578846908,12.3557003931,
385 12.3535190807,12.3513407464,12.3491653829,12.3469929829,12.3448235394,
386 12.342657045,12.3404934928,12.3383328755,12.336175186,12.3340204173,
387 12.3318685624,12.3297196142,12.3275735657,12.3254304099,12.3232901399,
388 12.3211527488,12.3190182296,12.3168865756,12.3147577797,12.3126318353,
389 12.3105087354,12.3083884733,12.3062710423,12.3041564356,12.3020446464,
390 12.2999356681,12.2978294941,12.2957261176,12.2936255321,12.2915277309,
391 12.2894327075,12.2873404553,12.2852509678,12.2831642384,12.2810802607,
392 12.2789990281,12.2769205344,12.2748447729,12.2727717373,12.2707014213,
393 12.2686338185,12.2665689225,12.2645067269,12.2624472256,12.2603904123,
394 12.2583362806,12.2562848243,12.2542360373,12.2521899133,12.2501464462,
395 12.2481056297,12.2460674579,12.2440319245,12.2419990234,12.2399687487,
396 12.2379410942,12.2359160539,12.2338936219,12.231873792,12.2298565583,
397 12.227841915,12.225829856,12.2238203754,12.2218134674,12.2198091261,
398 12.2178073455,12.2158081199,12.2138114435,12.2118173105,12.209825715,
399 12.2078366513,12.2058501137,12.2038660965,12.2018845939,12.1999056003,
400 12.1979291099,12.1959551172,12.1939836165,12.1920146022,12.1900480687,
401 12.1880840104,12.1861224218,12.1841632973,12.1822066314,12.1802524186,
402 12.1783006534,12.1763513304,12.174404444,12.1724599888,12.1705179595,
403 12.1685783507,12.1666411568,12.1647063727,12.1627739928,12.160844012,
404 12.1589164248,12.156991226,12.1550684103,12.1531479725,12.1512299072,
405 12.1493142093,12.1474008735,12.1454898947,12.1435812676,12.1416749871,
406 12.1397710481,12.1378694453,12.1359701738,12.1340732283,12.1321786038,
407 12.1302862953,12.1283962977,12.1265086058,12.1246232148,12.1227401197,
408 12.1208593153,12.1189807968,12.1171045592,12.1152305975,12.1133589068,
409 12.1114894822,12.1096223189,12.1077574118,12.1058947562,12.1040343472,
410 12.1021761799,12.1003202496,12.0984665514,12.0966150806,12.0947658323,
411 12.0929188017,12.0910739843,12.0892313751,12.0873909695,12.0855527628,
412 12.0837167503,12.0818829273,12.0800512891,12.0782218311,12.0763945487,
413 12.0745694373,12.0727464922,12.0709257088,12.0691070826,12.067290609,
414 12.0654762834
415 }
416 },
417 {
418 // Ri = 250k
419 -5,5,200,2001, {
420 137.512728867,137.399223264,137.285690251,137.17212984,137.058542039,
421 136.944926859,136.831284308,136.717614396,136.603917133,136.490192528,
422 136.37644059,136.262661328,136.148854752,136.035020871,135.921159694,
423 135.80727123,135.693355487,135.579412475,135.465442203,135.351444679,
424 135.237419911,135.12336791,135.009288682,134.895182238,134.781048584,
425 134.66688773,134.552699684,134.438484454,134.324242049,134.209972477,
426 134.095675745,133.981351862,133.867000836,133.752622675,133.638217387,
427 133.523784979,133.40932546,133.294838836,133.180325116,133.065784308,
428 132.951216418,132.836621455,132.721999425,132.607350337,132.492674197,
429 132.377971012,132.263240791,132.148483539,132.033699265,131.918887974,
430 131.804049675,131.689184374,131.574292077,131.459372792,131.344426526,
431 131.229453284,131.114453074,130.999425902,130.884371775,130.769290699,
432 130.654182681,130.539047726,130.423885842,130.308697033,130.193481308,
433 130.078238671,129.962969128,129.847672686,129.732349351,129.616999128,
434 129.501622024,129.386218043,129.270787192,129.155329476,129.039844901,
435 128.924333473,128.808795197,128.693230078,128.577638121,128.462019333,
436 128.346373717,128.230701281,128.115002027,127.999275963,127.883523091,
437 127.767743419,127.65193695,127.536103689,127.420243641,127.304356811,
438 127.188443204,127.072502824,126.956535675,126.840541763,126.724521091,
439 126.608473664,126.492399486,126.376298562,126.260170896,126.144016492,
440 126.027835354,125.911627486,125.795392892,125.679131576,125.562843542,
441 125.446528794,125.330187335,125.213819169,125.0974243,124.981002732,
442 124.864554467,124.74807951,124.631577864,124.515049532,124.398494517,
443 124.281912824,124.165304454,124.048669411,123.932007699,123.815319319,
444 123.698604276,123.581862572,123.465094209,123.348299192,123.231477521,
445 123.114629201,122.997754234,122.880852622,122.763924367,122.646969473,
446 122.529987942,122.412979775,122.295944976,122.178883547,122.061795488,
447 121.944680804,121.827539496,121.710371565,121.593177014,121.475955845,
448 121.358708059,121.241433658,121.124132644,121.006805019,120.889450784,
449 120.772069941,120.654662491,120.537228435,120.419767776,120.302280513,
450 120.18476665,120.067226186,119.949659123,119.832065462,119.714445204,
451 119.596798349,119.4791249,119.361424857,119.24369822,119.12594499,
452 119.008165168,118.890358755,118.772525751,118.654666156,118.536779972,
453 118.418867198,118.300927835,118.182961883,118.064969342,117.946950213,
454 117.828904495,117.710832189,117.592733295,117.474607812,117.356455741,
455 117.238277081,117.120071832,117.001839993,116.883581565,116.765296548,
456 116.646984939,116.52864674,116.410281948,116.291890565,116.173472589,
457 116.055028019,115.936556854,115.818059094,115.699534738,115.580983784,
458 115.462406232,115.343802081,115.225171329,115.106513975,114.987830018,
459 114.869119456,114.750382289,114.631618514,114.51282813,114.394011136,
460 114.27516753,114.15629731,114.037400475,113.918477022,113.799526951,
461 113.680550258,113.561546942,113.442517002,113.323460434,113.204377236,
462 113.085267407,112.966130945,112.846967846,112.727778109,112.608561731,
463 112.489318709,112.370049041,112.250752725,112.131429757,112.012080135,
464 111.892703857,111.773300918,111.653871317,111.53441505,111.414932115,
465 111.295422508,111.175886226,111.056323266,110.936733624,110.817117298,
466 110.697474283,110.577804577,110.458108176,110.338385076,110.218635274,
467 110.098858766,109.979055549,109.859225618,109.739368969,109.619485599,
468 109.499575504,109.379638679,109.259675121,109.139684826,109.019667789,
469 108.899624005,108.779553471,108.659456182,108.539332134,108.419181322,
470 108.299003742,108.178799389,108.058568258,107.938310344,107.818025643,
471 107.69771415,107.577375859,107.457010766,107.336618867,107.216200154,
472 107.095754624,106.975282272,106.854783091,106.734257077,106.613704224,
473 106.493124526,106.372517979,106.251884576,106.131224312,106.010537181,
474 105.889823177,105.769082295,105.648314528,105.52751987,105.406698317,
475 105.28584986,105.164974495,105.044072215,104.923143013,104.802186884,
476 104.681203821,104.560193818,104.439156867,104.318092963,104.197002099,
477 104.075884268,103.954739463,103.833567678,103.712368905,103.591143138,
478 103.46989037,103.348610593,103.227303801,103.105969985,102.98460914,
479 102.863221258,102.74180633,102.620364351,102.498895311,102.377399205,
480 102.255876023,102.134325759,102.012748405,101.891143953,101.769512394,
481 101.647853721,101.526167927,101.404455002,101.282714939,101.16094773,
482 101.039153366,100.917331839,100.795483141,100.673607263,100.551704197,
483 100.429773934,100.307816466,100.185831783,100.063819878,99.9417807406,
484 99.8197143628,99.6976207354,99.5754998496,99.4533516961,99.3311762659,
485 99.2089735498,99.0867435385,98.9644862227,98.8422015931,98.7198896402,
486 98.5975503544,98.4751837263,98.3527897462,98.2303684044,98.1079196912,
487 97.9854435967,97.862940111,97.7404092242,97.6178509264,97.4952652074,
488 97.3726520571,97.2500114653,97.1273434217,97.0046479161,96.881924938,
489 96.759174477,96.6363965227,96.5135910643,96.3907580913,96.267897593,
490 96.1450095586,96.0220939773,95.8991508382,95.7761801304,95.6531818428,
491 95.5301559644,95.407102484,95.2840213905,95.1609126725,95.0377763187,
492 94.9146123178,94.7914206583,94.6682013286,94.5449543172,94.4216796125,
493 94.2983772027,94.1750470761,94.0516892209,93.9283036251,93.8048902767,
494 93.6814491639,93.5579802744,93.4344835962,93.3109591171,93.1874068247,
495 93.0638267067,92.9402187508,92.8165829445,92.6929192752,92.5692277304,
496 92.4455082975,92.3217609637,92.1979857163,92.0741825423,91.9503514291,
497 91.8264923635,91.7026053326,91.5786903232,91.4547473223,91.3307763167,
498 91.206777293,91.082750238,90.9586951383,90.8346119803,90.7105007507,
499 90.5863614358,90.462194022,90.3379984956,90.2137748429,90.0895230499,
500 89.965243103,89.840934988,89.7165986911,89.5922341981,89.467841495,
501 89.3434205675,89.2189714014,89.0944939825,88.9699882963,88.8454543284,
502 88.7208920644,88.5963014897,88.4716825897,88.3470353498,88.2223597552,
503 88.0976557912,87.9729234429,87.8481626954,87.7233735338,87.5985559431,
504 87.4737099082,87.3488354139,87.2239324452,87.0990009867,86.9740410231,
505 86.8490525391,86.7240355193,86.5989899482,86.4739158103,86.34881309,
506 86.2236817716,86.0985218395,85.9733332779,85.8481160709,85.7228702028,
507 85.5975956577,85.4722924194,85.3469604721,85.2215997996,85.0962103858,
508 84.9707922146,84.8453452696,84.7198695345,84.5943649931,84.4688316289,
509 84.3432694255,84.2176783664,84.092058435,83.9664096147,83.8407318888,
510 83.7150252407,83.5892896536,83.4635251106,83.3377315949,83.2119090897,
511 83.0860575779,82.9601770426,82.8342674667,82.708328833,82.5823611245,
512 82.456364324,82.3303384143,82.2042833779,82.0781991977,81.9520858562,
513 81.825943336,81.6997716197,81.5735706898,81.4473405286,81.3210811187,
514 81.1947924423,81.0684744819,80.9421272196,80.8157506378,80.6893447187,
515 80.5629094444,80.436444797,80.3099507586,80.1834273114,80.0568744373,
516 79.9302921182,79.8036803362,79.6770390732,79.550368311,79.4236680315,
517 79.2969382165,79.1701788478,79.0433899071,78.9165713762,78.7897232367,
518 78.6628454704,78.5359380588,78.4090009835,78.2820342262,78.1550377685,
519 78.0280115917,77.9009556775,77.7738700074,77.6467545627,77.519609325,
520 77.3924342757,77.2652293962,77.1379946679,77.0107300721,76.8834355903,
521 76.7561112037,76.6287568937,76.5013726416,76.3739584288,76.2465142365,
522 76.119040046,75.9915358386,75.8640015956,75.7364372982,75.6088429277,
523 75.4812184654,75.3535638926,75.2258791905,75.0981643403,74.9704193234,
524 74.842644121,74.7148387145,74.587003085,74.4591372139,74.3312410825,
525 74.2033146721,74.0753579641,73.9473709398,73.8193535805,73.6913058677,
526 73.5632277828,73.4351193072,73.3069804223,73.1788111097,73.0506113508,
527 72.9223811272,72.7941204204,72.6658292121,72.537507484,72.4091552176,
528 72.2807723947,72.1523589971,72.0239150066,71.8954404051,71.7669351744,
529 71.6383992966,71.5098327536,71.3812355275,71.2526076005,71.1239489547,
530 70.9952595725,70.8665394361,70.7377885279,70.6090068305,70.4801943263,
531 70.3513509981,70.2224768285,70.0935718004,69.9646358965,69.8356691,
532 69.7066713939,69.5776427614,69.4485831857,69.3194926503,69.1903711386,
533 69.0612186344,68.9320351212,68.802820583,68.6735750037,68.5442983675,
534 68.4149906585,68.2856518613,68.1562819603,68.0268809401,67.8974487857,
535 67.7679854819,67.638491014,67.5089653673,67.3794085272,67.2498204794,
536 67.1202012097,66.9905507042,66.8608689491,66.7311559309,66.601411636,
537 66.4716360515,66.3418291643,66.2119909618,66.0821214314,65.9522205608,
538 65.8222883382,65.6923247516,65.5623297897,65.4323034412,65.302245695,
539 65.1721565406,65.0420359675,64.9118839657,64.7817005253,64.6514856368,
540 64.5212392911,64.3909614794,64.2606521931,64.1303114242,63.9999391648,
541 63.8695354075,63.7391001453,63.6086333716,63.47813508,63.3476052649,
542 63.2170439207,63.0864510425,62.9558266257,62.8251706663,62.6944831608,
543 62.5637641059,62.4330134991,62.3022313383,62.1714176218,62.0405723488,
544 61.9096955186,61.7787871314,61.6478471879,61.5168756894,61.3858726377,
545 61.2548380355,61.1237718859,60.9926741928,60.8615449607,60.730384195,
546 60.5991919017,60.4679680876,60.3367127601,60.2054259277,60.0741075994,
547 59.9427577854,59.8113764964,59.6799637443,59.5485195417,59.4170439022,
548 59.2855368404,59.1539983719,59.0224285133,58.8908272824,58.7591946978,
549 58.6275307794,58.4958355482,58.3641090265,58.2323512377,58.1005622064,
550 57.9687419586,57.8368905217,57.7050079243,57.5730941965,57.4411493697,
551 57.3091734771,57.1771665531,57.0451286339,56.9130597573,56.7809599628,
552 56.6488292914,56.5166677863,56.3844754921,56.2522524556,56.1199987253,
553 55.9877143521,55.8553993885,55.7230538895,55.5906779121,55.4582715156,
554 55.3258347616,55.1933677144,55.0608704404,54.9283430087,54.7957854911,
555 54.6631979622,54.5305804991,54.3979331822,54.2652560946,54.1325493226,
556 53.9998129557,53.8670470866,53.7342518116,53.6014272301,53.4685734456,
557 53.3356905649,53.202778699,53.0698379626,52.9368684747,52.8038703584,
558 52.6708437413,52.5377887554,52.4047055373,52.2715942288,52.1384549761,
559 52.005287931,51.8720932505,51.7388710969,51.6056216384,51.4723450489,
560 51.3390415085,51.2057112034,51.0723543264,50.9389710768,50.8055616609,
561 50.6721262922,50.5386651916,50.4051785874,50.271666716,50.1381298218,
562 50.0045681577,49.8709819854,49.7373715755,49.6037372078,49.470079172,
563 49.3363977676,49.2026933043,49.0689661028,48.9352164944,48.8014448221,
564 48.6676514405,48.5338367167,48.40000103,48.2661447731,48.1322683519,
565 47.9983721867,47.8644567117,47.7305223766,47.5965696462,47.4625990014,
566 47.3286109398,47.1946059759,47.0605846422,46.9265474893,46.792495087,
567 46.6584280245,46.5243469117,46.3902523791,46.2561450792,46.122025687,
568 45.9878949008,45.853753443,45.7196020608,45.5854415275,45.4512726429,
569 45.3170962344,45.1829131581,45.0487242995,44.9145305749,44.7803329321,
570 44.6461323516,44.5119298478,44.3777264702,44.2435233043,44.1093214733,
571 43.9751221389,43.8409265029,43.7067358086,43.5725513419,43.4383744332,
572 43.3042064584,43.1700488409,43.0359030526,42.9017706161,42.7676531062,
573 42.6335521515,42.4994694361,42.3654067018,42.2313657496,42.0973484418,
574 41.9633567039,41.8293925267,41.6954579684,41.5615551566,41.4276862907,
575 41.293853644,41.1600595658,41.0263064842,40.8925969082,40.7589334302,
576 40.6253187286,40.4917555701,40.3582468127,40.2247954079,40.0914044039,
577 39.9580769478,39.8248162888,39.691625781,39.5585088858,39.4254691754,
578 39.2925103354,39.1596361679,39.0268505942,38.8941576581,38.7615615286,
579 38.6290665035,38.4966770114,38.3643976159,38.2322330175,38.1001880572,
580 37.9682677194,37.8364771346,37.7048215822,37.5733064936,37.4419374545,
581 37.3107202079,37.1796606565,37.0487648651,36.9180390628,36.7874896455,
582 36.6571231776,36.526946394,36.3969662016,36.2671896813,36.1376240885,
583 36.0082768545,35.8791555875,35.7502680727,35.6216222725,35.4932263267,
584 35.3650885517,35.23721744,35.1096216587,34.9823100482,34.8552916201,
585 34.7285755548,34.6021711986,34.4760880604,34.3503358077,34.2249242626,
586 34.0998633968,33.9751633259,33.8508343041,33.7268867171,33.6033310755,
587 33.4801780068,33.3574382475,33.2351226341,33.1132420942,32.9918076357,
588 32.8708303373,32.7503213367,32.6302918195,32.5107530067,32.3917161423,
589 32.2731924804,32.1551932711,32.037729747,31.9208131085,31.8044545095,
590 31.6886650419,31.5734557206,31.4588374679,31.3448210978,31.2314173004,
591 31.1186366258,31.0064894684,30.8949860509,30.7841364092,30.6739503761,
592 30.5644375666,30.455607363,30.3474688999,30.2400310502,30.1333024117,
593 30.0272912935,29.9220057037,29.8174533375,29.7136415657,29.6105774244,
594 29.5082676055,29.4067184471,29.3059359261,29.2059256507,29.1066928541,
595 29.0082423889,28.9105787231,28.8137059359,28.7176277156,28.6223473578,
596 28.5278677641,28.4341914432,28.3413205108,28.2492566924,28.1580013255,
597 28.0675553634,27.9779193796,27.8890935724,27.8010777713,27.7138714431,
598 27.6274736993,27.5418833035,27.4570986796,27.373117921,27.289938799,
599 27.2075587732,27.1259750009,27.0451843475,26.965183397,26.8859684628,
600 26.8075355984,26.7298806087,26.652999061,26.5768862962,26.5015374399,
601 26.426947414,26.3531109471,26.2800225865,26.2076767084,26.1360675291,
602 26.0651891153,25.9950353953,25.9256001685,25.8568771158,25.7888598095,
603 25.7215417227,25.6549162387,25.5889766601,25.5237162175,25.4591280777,
604 25.3952053525,25.331941106,25.2693283624,25.2073601134,25.1460293249,
605 25.0853289441,25.0252519052,24.9657911364,24.9069395648,24.8486901225,
606 24.7910357516,24.7339694092,24.677484072,24.6215727409,24.5662284448,
607 24.5114442449,24.4572132382,24.4035285609,24.3503833915,24.2977709541,
608 24.2456845208,24.1941174145,24.1430630113,24.0925147424,24.0424660964,
609 23.992910621,23.9438419248,23.8952536784,23.8471396162,23.7994935376,
610 23.7523093077,23.7055808586,23.6593021901,23.6134673704,23.5680705368,
611 23.5231058959,23.4785677245,23.4344503694,23.3907482481,23.3474558483,
612 23.3045677287,23.2620785186,23.2199829176,23.1782756959,23.1369516941,
613 23.0960058224,23.055433061,23.0152284591,22.9753871351,22.9359042758,
614 22.8967751359,22.8579950378,22.8195593706,22.7814635902,22.743703218,
615 22.7062738406,22.6691711094,22.6323907394,22.5959285091,22.5597802593,
616 22.5239418928,22.4884093734,22.4531787255,22.4182460329,22.3836074384,
617 22.3492591431,22.3151974054,22.2814185405,22.2479189191,22.2146949676,
618 22.1817431664,22.1490600496,22.1166422042,22.0844862693,22.0525889354,
619 22.0209469434,21.9895570842,21.9584161977,21.9275211724,21.896868944,
620 21.8664564954,21.8362808557,21.8063390992,21.7766283451,21.7471457566,
621 21.7178885402,21.6888539452,21.6600392626,21.631441825,21.6030590054,
622 21.5748882168,21.5469269116,21.5191725808,21.4916227535,21.4642749962,
623 21.4371269121,21.4101761408,21.3834203573,21.3568572718,21.3304846287,
624 21.3043002064,21.2783018166,21.2524873036,21.2268545441,21.2014014463,
625 21.1761259495,21.1510260236,21.1260996686,21.1013449141,21.0767598189,
626 21.0523424701,21.0280909831,21.004003501,20.9800781938,20.9563132586,
627 20.9327069183,20.9092574221,20.8859630443,20.8628220842,20.8398328657,
628 20.8169937368,20.7943030693,20.7717592581,20.7493607214,20.7271058996,
629 20.7049932554,20.6830212735,20.6611884598,20.6394933414,20.617934466,
630 20.5965104018,20.5752197372,20.5540610799,20.5330330574,20.512134316,
631 20.491363521,20.4707193559,20.4502005225,20.4298057403,20.4095337464,
632 20.3893832953,20.3693531584,20.3494421236,20.3296489955,20.3099725947,
633 20.2904117577,20.2709653368,20.2516321995,20.2324112284,20.2133013213,
634 20.1943013902,20.1754103619,20.1566271772,20.1379507909,20.1193801714,
635 20.1009143009,20.0825521747,20.0642928011,20.0461352015,20.0280784098,
636 20.0101214725,19.9922634483,19.9745034079,19.9568404342,19.9392736215,
637 19.9218020757,19.9044249141,19.8871412651,19.8699502683,19.8528510738,
638 19.8358428425,19.818924746,19.8020959659,19.7853556942,19.7687031328,
639 19.7521374934,19.7356579977,19.7192638768,19.702954371,19.6867287302,
640 19.6705862133,19.6545260883,19.6385476318,19.6226501296,19.6068328756,
641 19.5910951724,19.5754363311,19.5598556707,19.5443525186,19.5289262099,
642 19.5135760879,19.4983015033,19.4831018147,19.4679763881,19.4529245969,
643 19.4379458218,19.4230394509,19.4082048791,19.3934415084,19.3787487479,
644 19.3641260131,19.3495727265,19.3350883172,19.3206722206,19.3063238786,
645 19.2920427395,19.2778282577,19.263679894,19.2495971149,19.2355793932,
646 19.2216262073,19.2077370416,19.1939113861,19.1801487367,19.1664485945,
647 19.1528104664,19.1392338645,19.1257183064,19.1122633148,19.0988684177,
648 19.0855331483,19.0722570446,19.0590396499,19.0458805122,19.0327791844,
649 19.0197352243,19.0067481941,18.993817661,18.9809431967,18.9681243774,
650 18.9553607836,18.9426520006,18.9299976177,18.9173972287,18.9048504315,
651 18.8923568283,18.8799160254,18.8675276332,18.855191266,18.8429065421,
652 18.8306730839,18.8184905175,18.8063584728,18.7942765836,18.7822444873,
653 18.7702618249,18.7583282413,18.7464433847,18.734606907,18.7228184636,
654 18.7110777131,18.6993843177,18.6877379431,18.6761382579,18.6645849344,
655 18.6530776479,18.6416160769,18.6301999032,18.6188288114,18.6075024895,
656 18.5962206284,18.5849829221,18.5737890673,18.5626387639,18.5515317145,
657 18.5404676247,18.5294462029,18.5184671601,18.5075302104,18.4966350702,
658 18.4857814588,18.4749690983,18.4641977132,18.4534670307,18.4427767803,
659 18.4321266945,18.4215165079,18.4109459577,18.4004147836,18.3899227277,
660 18.3794695343,18.3690549502,18.3586787246,18.3483406089,18.3380403567,
661 18.327777724,18.3175524689,18.3073643518,18.2972131352,18.2870985837,
662 18.2770204641,18.2669785453,18.2569725982,18.2470023957,18.2370677129,
663 18.2271683268,18.2173040164,18.2074745625,18.1976797481,18.187919358,
664 18.1781931787,18.1685009989,18.1588426089,18.149217801,18.1396263691,
665 18.1300681091,18.1205428184,18.1110502966,18.1015903445,18.0921627649,
666 18.0827673623,18.0734039429,18.0640723142,18.0547722859,18.0455036688,
667 18.0362662756,18.0270599206,18.0178844194,18.0087395894,17.9996252494,
668 17.9905412198,17.9814873225,17.9724633808,17.9634692195,17.9545046649,
669 17.9455695447,17.9366636879,17.9277869252,17.9189390885,17.9101200109,
670 17.9013295273,17.8925674735,17.883833687,17.8751280064,17.8664502716,
671 17.857800324,17.849178006,17.8405831614,17.8320156354,17.8234752741,
672 17.8149619251,17.8064754372,17.7980156603,17.7895824455,17.7811756451,
673 17.7727951126,17.7644407026,17.7561122709,17.7478096744,17.7395327711,
674 17.7312814201,17.7230554816,17.714854817,17.7066792887,17.69852876,
675 17.6904030955,17.6823021608,17.6742258224,17.6661739479,17.6581464059,
676 17.6501430661,17.642163799,17.6342084763,17.6262769706,17.6183691553,
677 17.6104849049,17.6026240949,17.5947866017,17.5869723025,17.5791810756,
678 17.5714128001,17.5636673559,17.5559446241,17.5482444865,17.5405668256,
679 17.5329115251,17.5252784694,17.5176675436,17.510078634,17.5025116274,
680 17.4949664116,17.4874428751,17.4799409074,17.4724603986,17.4650012398,
681 17.4575633227,17.4501465398,17.4427507845,17.4353759509,17.4280219338,
682 17.4206886288,17.4133759324,17.4060837415,17.3988119541,17.3915604686,
683 17.3843291844,17.3771180014,17.3699268203,17.3627555424,17.35560407,
684 17.3484723057,17.341360153,17.3342675159,17.3271942994,17.3201404088,
685 17.3131057502,17.3060902305,17.2990937569,17.2921162377,17.2851575813,
686 17.2782176971,17.2712964951,17.2643938858,17.2575097803,17.2506440905,
687 17.2437967285,17.2369676075,17.2301566409,17.2233637429,17.2165888281,
688 17.2098318119,17.2030926101,17.1963711391,17.189667316,17.1829810581,
689 17.1763122836,17.1696609112,17.1630268599,17.1564100495,17.1498104003,
690 17.1432278329,17.1366622687,17.1301136294,17.1235818374,17.1170668156,
691 17.1105684871,17.1040867758,17.0976216062,17.0911729029,17.0847405913,
692 17.0783245972,17.0719248468,17.0655412669,17.0591737847,17.0528223279,
693 17.0464868247,17.0401672035,17.0338633936,17.0275753244,17.0213029259,
694 17.0150461285,17.008804863,17.0025790607,16.9963686535,16.9901735733,
695 16.9839937528,16.9778291251,16.9716796235,16.9655451818,16.9594257344,
696 16.9533212159,16.9472315614,16.9411567063,16.9350965866,16.9290511385,
697 16.9230202986,16.9170040041,16.9110021924,16.9050148013,16.8990417691,
698 16.8930830343,16.8871385358,16.8812082131,16.8752920059,16.8693898542,
699 16.8635016985,16.8576274795,16.8517671385,16.8459206169,16.8400878566,
700 16.8342687999,16.8284633893,16.8226715677,16.8168932783,16.8111284648,
701 16.8053770711,16.7996390414,16.7939143204,16.7882028529,16.7825045842,
702 16.7768194599,16.7711474258,16.7654884282,16.7598424137,16.7542093289,
703 16.7485891212,16.7429817379,16.7373871268,16.731805236,16.7262360139,
704 16.7206794092,16.7151353708,16.7096038479,16.7040847902,16.6985781476,
705 16.69308387,16.687601908,16.6821322124,16.676674734,16.6712294241,
706 16.6657962344,16.6603751165,16.6549660228,16.6495689054,16.6441837172,
707 16.6388104109,16.6334489397,16.6280992572,16.6227613169,16.617435073,
708 16.6121204796,16.6068174911,16.6015260624,16.5962461483,16.5909777043,
709 16.5857206857,16.5804750482,16.575240748,16.5700177411,16.5648059841,
710 16.5596054337,16.5544160468,16.5492377806,16.5440705926,16.5389144403,
711 16.5337692817,16.5286350749,16.5235117782,16.5183993502,16.5132977498,
712 16.5082069358,16.5031268677,16.4980575048,16.4929988068,16.4879507336,
713 16.4829132453,16.4778863024,16.4728698652,16.4678638946,16.4628683516,
714 16.4578831973,16.4529083931,16.4479439006,16.4429896815,16.438045698,
715 16.4331119121,16.4281882863,16.4232747832,16.4183713655,16.4134779963,
716 16.4085946388,16.4037212562,16.3988578123,16.3940042707,16.3891605954,
717 16.3843267505,16.3795027004,16.3746884096,16.3698838428,16.3650889649,
718 16.3603037408,16.3555281359,16.3507621156,16.3460056454,16.3412586913,
719 16.336521219,16.3317931948,16.3270745849,16.3223653558,16.3176654741,
720 16.3129749068,16.3082936207,16.303621583,16.298958761,16.2943051222,
721 16.2896606343,16.285025265,16.2803989824,16.2757817546,16.2711735499,
722 16.2665743366,16.2619840836,16.2574027594,16.2528303331,16.2482667737,
723 16.2437120505,16.2391661329,16.2346289903,16.2301005925,16.2255809094,
724 16.2210699108,16.2165675671,16.2120738484,16.2075887252,16.203112168,
725 16.1986441477,16.194184635,16.189733601,16.1852910168,16.1808568537,
726 16.1764310832,16.1720136768,16.1676046063,16.1632038434,16.1588113602,
727 16.1544271288,16.1500511214,16.1456833105,16.1413236685,16.1369721682,
728 16.1326287822,16.1282934836,16.1239662453,16.1196470405,16.1153358426,
729 16.1110326249,16.1067373611,16.1024500248,16.0981705898,16.0938990301,
730 16.0896353196,16.0853794327,16.0811313435,16.0768910266,16.0726584563,
731 16.0684336075,16.0642164549,16.0600069734,16.055805138,16.0516109239,
732 16.0474243062,16.0432452604,16.0390737619,16.0349097864,16.0307533095,
733 16.026604307,16.022462755,16.0183286294,16.0142019064,16.0100825622,
734 16.0059705733,16.0018659161,15.9977685672,15.9936785032,15.9895957011,
735 15.9855201377,15.98145179,15.9773906352,15.9733366504,15.9692898131,
736 15.9652501006,15.9612174904,15.9571919603,15.9531734879,15.949162051,
737 15.9451576277,15.941160196,15.9371697339,15.9331862197,15.9292096318,
738 15.9252399486,15.9212771486,15.9173212104,15.9133721128,15.9094298345,
739 15.9054943544,15.9015656517,15.8976437053,15.8937284944,15.8898199983,
740 15.8859181964,15.8820230682,15.8781345932,15.874252751,15.8703775214,
741 15.8665088841,15.8626468192,15.8587913065,15.8549423262,15.8510998585,
742 15.8472638835,15.8434343817,15.8396113335,15.8357947194,15.8319845199,
743 15.8281807158,15.8243832879,15.8205922169,15.8168074838,15.8130290697,
744 15.8092569556,15.8054911227,15.8017315522,15.7979782256,15.7942311241,
745 15.7904902294,15.7867555229,15.7830269864,15.7793046016,15.7755883502,
746 15.7718782142,15.7681741756,15.7644762164,15.7607843186,15.7570984646,
747 15.7534186365,15.7497448167,15.7460769876,15.7424151318,15.7387592317,
748 15.7351092701,15.7314652295,15.7278270929,15.7241948431,15.720568463,
749 15.7169479355,15.7133332439,15.7097243711,15.7061213004,15.7025240152,
750 15.6989324987,15.6953467343,15.6917667056,15.6881923961,15.6846237894,
751 15.6810608692,15.6775036193,15.6739520235,15.6704060657,15.6668657298,
752 15.6633309998,15.6598018599,15.6562782942,15.652760287,15.6492478224,
753 15.6457408848,15.6422394587,15.6387435286,15.6352530788,15.6317680941,
754 15.6282885592,15.6248144586,15.6213457773,15.6178825,15.6144246117,
755 15.6109720973,15.6075249419,15.6040831305,15.6006466483,15.5972154805,
756 15.5937896123,15.5903690291,15.5869537163,15.5835436592,15.5801388435,
757 15.5767392546,15.5733448782,15.5699556999,15.5665717054,15.5631928806,
758 15.5598192113,15.5564506833,15.5530872827,15.5497289954,15.5463758074,
759 15.543027705,15.5396846742,15.5363467014,15.5330137727,15.5296858744,
760 15.5263629931,15.5230451151,15.5197322269,15.5164243151,15.5131213662,
761 15.5098233669,15.5065303039,15.5032421639,15.4999589337,15.4966806003,
762 15.4934071504,15.4901385711,15.4868748494,15.4836159722,15.4803619267,
763 15.4771127001,15.4738682796,15.4706286523,15.4673938057,15.464163727,
764 15.4609384036,15.457717823,15.4545019727,15.4512908402,15.4480844132,
765 15.4448826791,15.4416856258,15.4384932409,15.4353055122,15.4321224276,
766 15.4289439748,15.4257701418,15.4226009166,15.4194362872,15.4162762415,
767 15.4131207678,15.409969854,15.4068234885,15.4036816594,15.400544355,
768 15.3974115636,15.3942832736,15.3911594733,15.3880401512,15.3849252958,
769 15.3818148956,15.3787089391,15.3756074151,15.3725103121,15.3694176188,
770 15.366329324,15.3632454164,15.3601658849,15.3570907183,15.3540199055,
771 15.3509534355,15.3478912972,15.3448334797,15.341779972,15.3387307632,
772 15.3356858425,15.3326451991,15.3296088221,15.3265767009,15.3235488246,
773 15.3205251828,15.3175057647,15.3144905597,15.3114795573,15.308472747,
774 15.3054701184,15.3024716609,15.2994773642,15.2964872179,15.2935012118,
775 15.2905193354,15.2875415787,15.2845679312,15.281598383,15.2786329238,
776 15.2756715436,15.2727142322,15.2697609796,15.2668117759,15.2638666111,
777 15.2609254752,15.2579883584,15.2550552508,15.2521261426,15.249201024,
778 15.2462798852,15.2433627166,15.2404495084,15.2375402511,15.2346349349,
779 15.2317335503,15.2288360878,15.2259425378,15.2230528908,15.2201671375,
780 15.2172852684,15.2144072741,15.2115331453,15.2086628726,15.2057964467,
781 15.2029338585,15.2000750986,15.197220158,15.1943690274,15.1915216977,
782 15.1886781598,15.1858384047,15.1830024233,15.1801702066,15.1773417457,
783 15.1745170316,15.1716960554,15.1688788083,15.1660652813,15.1632554657,
784 15.1604493526,15.1576469334,15.1548481993,15.1520531416,15.1492617516,
785 15.1464740206,15.1436899402,15.1409095017,15.1381326965,15.1353595161,
786 15.1325899521,15.1298239959,15.1270616392,15.1243028735,15.1215476904,
787 15.1187960816,15.1160480388,15.1133035537,15.1105626179,15.1078252234,
788 15.1050913618,15.1023610249,15.0996342047,15.0969108929,15.0941910815,
789 15.0914747624,15.0887619276,15.086052569,15.0833466786,15.0806442485,
790 15.0779452707,15.0752497372,15.0725576403,15.0698689721,15.0671837246,
791 15.0645018902,15.0618234609,15.0591484291,15.0564767869,15.0538085268,
792 15.051143641,15.0484821218,15.0458239617,15.0431691529,15.0405176879,
793 15.0378695592,15.0352247593,15.0325832805,15.0299451154,15.0273102566,
794 15.0246786966,15.022050428,15.0194254434,15.0168037355,15.0141852968,
795 15.0115701201,15.0089581981,15.0063495236,15.0037440891,15.0011418876,
796 14.9985429119,14.9959471547,14.9933546088,14.9907652673,14.9881791229,
797 14.9855961686,14.9830163972,14.9804398018,14.9778663754,14.9752961109,
798 14.9727290013,14.9701650398,14.9676042193,14.965046533,14.962491974,
799 14.9599405354,14.9573922104,14.9548469921,14.9523048738,14.9497658486,
800 14.9472299098,14.9446970507,14.9421672646,14.9396405447,14.9371168844,
801 14.9345962771,14.932078716,14.9295641947,14.9270527064,14.9245442447,
802 14.9220388029,14.9195363747,14.9170369533,14.9145405324,14.9120471055,
803 14.9095566662,14.9070692079,14.9045847244,14.9021032092,14.8996246559,
804 14.8971490582,14.8946764098,14.8922067044,14.8897399356,14.8872760973,
805 14.884815183,14.8823571867,14.8799021021,14.877449923,14.8750006433,
806 14.8725542567,14.8701107571,14.8676701385,14.8652323947,14.8627975196,
807 14.8603655072,14.8579363515,14.8555100463,14.8530865858,14.8506659638,
808 14.8482481745,14.8458332119,14.84342107,14.841011743,14.8386052248,
809 14.8362015098,14.8338005919,14.8314024654,14.8290071244,14.8266145631,
810 14.8242247756,14.8218377564,14.8194534995,14.8170719992,14.8146932498,
811 14.8123172457,14.809943981,14.8075734502,14.8052056476,14.8028405675,
812 14.8004782043,14.7981185525,14.7957616063,14.7934073604,14.791055809,
813 14.7887069467,14.7863607679,14.7840172671,14.7816764389,14.7793382777,
814 14.7770027781,14.7746699347,14.7723397421,14.7700121947,14.7676872873,
815 14.7653650145,14.7630453708,14.760728351,14.7584139497,14.7561021616,
816 14.7537929814,14.7514864038,14.7491824235,14.7468810354,14.7445822341,
817 14.7422860144,14.7399923711,14.7377012991,14.7354127931,14.733126848,
818 14.7308434587,14.72856262,14.7262843267,14.7240085739,14.7217353563,
819 14.719464669,14.7171965068,14.7149308648,14.7126677378,14.7104071209,
820 14.7081490091
821 }
822 }
823 };
0 /*
1 * Copyright (C) 2009, 2010 Hermann Meyer, James Warden, Andreas Degert
2 * Copyright (C) 2011 Pete Shorthose
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17 * ---------------------------------------------------------------------------
18 *
19 * This is the 6V6 tube table
20 * This file is part of the Guitarix Audio Engine
21 *
22 * ----------------------------------------------------------------------------
23 */
24
25 table1d_imp<2001> tubetable_6V6[2] =
26 {
27 {
28 // Ri = 68k
29 -5,5,200,2001, {
30 239.919843376,239.854937108,239.789738489,239.724247218,239.658462996,
31 239.592385535,239.526014546,239.459349752,239.392390878,239.325137654,
32 239.257589818,239.189747112,239.121609284,239.053176087,238.984447281,
33 238.91542263,238.846101903,238.776484877,238.706571332,238.636361055,
34 238.565853836,238.495049475,238.423947772,238.352548536,238.280851579,
35 238.208856722,238.136563787,238.063972604,237.991083007,237.917894835,
36 237.844407935,237.770622155,237.696537352,237.622153385,237.54747012,
37 237.472487429,237.397205186,237.321623273,237.245741575,237.169559984,
38 237.093078396,237.016296711,236.939214835,236.86183268,236.78415016,
39 236.706167196,236.627883714,236.549299644,236.470414921,236.391229484,
40 236.311743279,236.231956253,236.151868362,236.071479563,235.99078982,
41 235.9097991,235.828507376,235.746914624,235.665020826,235.582825967,
42 235.500330038,235.417533033,235.334434951,235.251035796,235.167335575,
43 235.083334301,234.999031988,234.914428659,234.829524337,234.744319051,
44 234.658812834,234.573005723,234.48689776,234.400488988,234.313779459,
45 234.226769224,234.13945834,234.05184687,233.963934876,233.875722429,
46 233.7872096,233.698396466,233.609283107,233.519869606,233.430156051,
47 233.340142534,233.249829147,233.159215991,233.068303166,232.977090779,
48 232.885578937,232.793767753,232.701657342,232.609247824,232.516539321,
49 232.423531959,232.330225867,232.236621177,232.142718023,232.048516546,
50 231.954016887,231.85921919,231.764123605,231.66873028,231.573039372,
51 231.477051037,231.380765434,231.284182727,231.187303082,231.090126667,
52 230.992653654,230.894884217,230.796818534,230.698456783,230.599799147,
53 230.500845813,230.401596966,230.302052798,230.202213502,230.102079273,
54 230.001650309,229.900926811,229.799908981,229.698597024,229.596991149,
55 229.495091566,229.392898486,229.290412124,229.187632698,229.084560426,
56 228.98119553,228.877538233,228.77358876,228.66934734,228.564814202,
57 228.459989578,228.354873701,228.249466808,228.143769136,228.037780925,
58 227.931502416,227.824933853,227.718075481,227.610927548,227.503490301,
59 227.395763992,227.287748873,227.179445197,227.070853221,226.961973202,
60 226.852805398,226.743350071,226.633607482,226.523577894,226.413261574,
61 226.302658786,226.1917698,226.080594885,225.969134311,225.857388351,
62 225.745357278,225.633041366,225.520440893,225.407556135,225.294387371,
63 225.180934881,225.067198945,224.953179846,224.838877868,224.724293293,
64 224.609426409,224.494277501,224.378846857,224.263134765,224.147141516,
65 224.030867399,223.914312706,223.79747773,223.680362764,223.562968102,
66 223.445294038,223.32734087,223.209108892,223.090598404,222.971809703,
67 222.852743088,222.733398858,222.613777314,222.493878757,222.373703489,
68 222.253251812,222.132524028,222.011520442,221.890241357,221.768687078,
69 221.64685791,221.524754159,221.402376131,221.279724132,221.15679847,
70 221.033599452,220.910127386,220.78638258,220.662365343,220.538075983,
71 220.413514811,220.288682136,220.163578268,220.038203517,219.912558193,
72 219.786642608,219.660457072,219.534001897,219.407277394,219.280283874,
73 219.15302165,219.025491033,218.897692335,218.769625868,218.641291945,
74 218.512690877,218.383822977,218.254688558,218.125287932,217.995621411,
75 217.865689308,217.735491935,217.605029605,217.47430263,217.343311321,
76 217.212055993,217.080536955,216.948754521,216.816709003,216.684400712,
77 216.551829959,216.418997057,216.285902317,216.152546049,216.018928564,
78 215.885050174,215.750911189,215.616511919,215.481852673,215.346933762,
79 215.211755495,215.076318182,214.94062213,214.804667649,214.668455047,
80 214.531984632,214.395256711,214.258271591,214.121029579,213.983530982,
81 213.845776106,213.707765256,213.569498737,213.430976855,213.292199913,
82 213.153168215,213.013882065,212.874341767,212.734547621,212.594499931,
83 212.454198998,212.313645122,212.172838605,212.031779746,211.890468845,
84 211.748906201,211.607092111,211.465026874,211.322710786,211.180144145,
85 211.037327247,210.894260386,210.750943858,210.607377956,210.463562975,
86 210.319499207,210.175186945,210.03062648,209.885818102,209.740762104,
87 209.595458773,209.449908399,209.30411127,209.158067675,209.011777899,
88 208.865242228,208.718460949,208.571434346,208.424162703,208.276646303,
89 208.128885428,207.980880361,207.832631382,207.684138772,207.53540281,
90 207.386423774,207.237201943,207.087737593,206.938031001,206.788082442,
91 206.637892191,206.487460522,206.336787708,206.185874021,206.034719731,
92 205.883325111,205.73169043,205.579815955,205.427701956,205.275348699,
93 205.122756451,204.969925477,204.816856041,204.663548407,204.510002838,
94 204.356219595,204.20219894,204.047941132,203.893446431,203.738715095,
95 203.583747381,203.428543545,203.273103843,203.117428529,202.961517858,
96 202.80537208,202.648991449,202.492376215,202.335526628,202.178442936,
97 202.021125388,201.86357423,201.705789708,201.547772068,201.389521553,
98 201.231038406,201.072322869,200.913375184,200.75419559,200.594784326,
99 200.435141631,200.275267741,200.115162893,199.954827322,199.794261261,
100 199.633464944,199.472438602,199.311182467,199.149696769,198.987981736,
101 198.826037597,198.663864578,198.501462905,198.338832802,198.175974495,
102 198.012888205,197.849574154,197.686032562,197.52226365,197.358267635,
103 197.194044735,197.029595166,196.864919145,196.700016884,196.534888597,
104 196.369534496,196.203954793,196.038149697,195.872119417,195.70586416,
105 195.539384134,195.372679544,195.205750595,195.03859749,194.871220431,
106 194.703619619,194.535795255,194.367747539,194.199476666,194.030982836,
107 193.862266242,193.69332708,193.524165544,193.354781825,193.185176116,
108 193.015348605,192.845299483,192.675028937,192.504537154,192.333824319,
109 192.162890617,191.991736232,191.820361346,191.648766139,191.476950793,
110 191.304915485,191.132660394,190.960185696,190.787491567,190.61457818,
111 190.44144571,190.268094328,190.094524205,189.92073551,189.746728413,
112 189.572503081,189.398059679,189.223398374,189.048519329,188.873422706,
113 188.698108668,188.522577375,188.346828986,188.17086366,187.994681553,
114 187.818282821,187.641667619,187.4648361,187.287788416,187.110524719,
115 186.933045159,186.755349884,186.577439042,186.399312779,186.220971241,
116 186.042414571,185.863642913,185.684656407,185.505455195,185.326039416,
117 185.146409208,184.966564707,184.78650605,184.606233371,184.425746802,
118 184.245046478,184.064132527,183.88300508,183.701664266,183.520110212,
119 183.338343043,183.156362885,182.974169862,182.791764095,182.609145707,
120 182.426314816,182.243271543,182.060016004,181.876548316,181.692868595,
121 181.508976953,181.324873504,181.14055836,180.95603163,180.771293424,
122 180.58634385,180.401183013,180.215811021,180.030227975,179.844433981,
123 179.658429138,179.472213549,179.285787311,179.099150523,178.912303282,
124 178.725245682,178.537977819,178.350499785,178.162811672,177.974913571,
125 177.78680557,177.598487758,177.409960222,177.221223046,177.032276316,
126 176.843120113,176.653754521,176.464179619,176.274395486,176.084402201,
127 175.894199839,175.703788477,175.513168189,175.322339047,175.131301123,
128 174.940054487,174.748599208,174.556935354,174.365062992,174.172982186,
129 173.980693001,173.788195499,173.595489741,173.402575787,173.209453697,
130 173.016123528,172.822585335,172.628839174,172.434885098,172.240723159,
131 172.046353409,171.851775896,171.65699067,171.461997778,171.266797264,
132 171.071389174,170.87577355,170.679950435,170.483919869,170.28768189,
133 170.091236537,169.894583847,169.697723853,169.500656591,169.303382093,
134 169.105900389,168.90821151,168.710315484,168.512212338,168.313902098,
135 168.115384789,167.916660433,167.717729053,167.518590668,167.319245298,
136 167.11969296,166.919933671,166.719967446,166.519794298,166.31941424,
137 166.118827282,165.918033434,165.717032704,165.515825098,165.314410622,
138 165.112789281,164.910961076,164.708926008,164.506684078,164.304235284,
139 164.101579623,163.898717091,163.695647681,163.492371386,163.288888199,
140 163.085198108,162.881301103,162.67719717,162.472886295,162.268368463,
141 162.063643656,161.858711857,161.653573044,161.448227196,161.242674291,
142 161.036914304,160.83094721,160.62477298,160.418391588,160.211803002,
143 160.005007191,159.798004121,159.590793759,159.383376069,159.175751012,
144 158.967918551,158.759878644,158.551631251,158.343176326,158.134513827,
145 157.925643705,157.716565915,157.507280405,157.297787126,157.088086025,
146 156.878177048,156.66806014,156.457735244,156.247202301,156.036461253,
147 155.825512036,155.614354589,155.402988847,155.191414744,154.979632212,
148 154.767641183,154.555441585,154.343033346,154.130416393,153.91759065,
149 153.704556041,153.491312486,153.277859907,153.064198221,152.850327345,
150 152.636247195,152.421957684,152.207458725,151.992750227,151.7778321,
151 151.562704251,151.347366586,151.131819009,150.916061423,150.700093728,
152 150.483915823,150.267527608,150.050928976,149.834119824,149.617100043,
153 149.399869526,149.182428161,148.964775837,148.746912439,148.528837853,
154 148.310551961,148.092054646,147.873345786,147.65442526,147.435292944,
155 147.215948713,146.99639244,146.776623997,146.556643254,146.336450078,
156 146.116044336,145.895425893,145.674594613,145.453550356,145.232292983,
157 145.010822352,144.789138319,144.567240739,144.345129466,144.122804351,
158 143.900265243,143.677511992,143.454544443,143.231362442,143.007965832,
159 142.784354453,142.560528148,142.336486752,142.112230104,141.887758038,
160 141.663070388,141.438166985,141.213047659,140.987712238,140.762160551,
161 140.536392421,140.310407672,140.084206127,139.857787605,139.631151926,
162 139.404298906,139.177228362,138.949940108,138.722433955,138.494709716,
163 138.266767199,138.038606213,137.810226563,137.581628056,137.352810494,
164 137.12377368,136.894517415,136.665041496,136.435345723,136.205429892,
165 135.975293798,135.744937235,135.514359995,135.283561869,135.052542648,
166 134.82130212,134.589840073,134.358156292,134.126250564,133.894122672,
167 133.661772399,133.429199528,133.19640384,132.963385115,132.730143131,
168 132.496677668,132.262988503,132.029075413,131.794938175,131.560576562,
169 131.325990352,131.091179317,130.856143233,130.620881872,130.385395008,
170 130.149682414,129.913743863,129.677579128,129.441187981,129.204570195,
171 128.967725544,128.730653801,128.493354739,128.255828133,128.018073758,
172 127.780091388,127.541880801,127.303441774,127.064774085,126.825877513,
173 126.58675184,126.347396848,126.107812322,125.867998046,125.627953809,
174 125.387679402,125.147174616,124.906439246,124.665473091,124.424275951,
175 124.18284763,123.941187934,123.699296676,123.457173669,123.214818733,
176 122.97223169,122.729412369,122.486360602,122.243076228,121.99955909,
177 121.755809038,121.511825927,121.26760962,121.023159987,120.778476904,
178 120.533560256,120.288409935,120.043025842,119.797407887,119.551555992,
179 119.305470084,119.059150105,118.812596006,118.565807749,118.318785311,
180 118.071528678,117.824037853,117.57631285,117.328353699,117.080160446,
181 116.831733152,116.583071896,116.334176775,116.085047901,115.835685411,
182 115.586089457,115.336260215,115.086197883,114.835902681,114.585374855,
183 114.334614673,114.083622432,113.832398456,113.580943098,113.329256739,
184 113.077339793,112.825192708,112.572815961,112.320210071,112.067375588,
185 111.814313105,111.561023251,111.307506702,111.053764172,110.799796425,
186 110.545604269,110.291188564,110.036550219,109.781690197,109.526609517,
187 109.271309257,109.015790552,108.760054603,108.504102673,108.247936094,
188 107.99155627,107.734964676,107.478162863,107.221152462,106.963935187,
189 106.706512834,106.448887292,106.191060538,105.933034646,105.674811791,
190 105.416394248,105.157784399,104.89898474,104.639997879,104.380826542,
191 104.121473582,103.861941977,103.602234839,103.342355417,103.082307103,
192 102.822093435,102.561718104,102.30118496,102.040498015,101.779661449,
193 101.518679619,101.25755706,100.996298495,100.734908838,100.473393204,
194 100.211756913,99.9500054931,99.6881446953,99.4261804934,99.1641190935,
195 98.9019669409,98.6397307266,98.3774173951,98.115034151,97.8525884667,
196 97.5900880897,97.32754105,97.0649556675,96.8023405592,96.5397046474,
197 96.2770571663,96.01440767,95.7517660395,95.4891424902,95.226547579,
198 94.9639922112,94.7014876479,94.4390455122,94.1766777957,93.9143968652,
199 93.6522154685,93.39014674,93.1282042061,92.8664017902,92.6047538171,
200 92.3432750174,92.0819805307,91.820885909,91.5600071186,91.2993605427,
201 91.0389629817,90.7788316539,90.5189841954,90.2594386585,90.0002135096,
202 89.7413276266,89.4828002945,89.2246512005,88.9669004284,88.709568451,
203 88.4526761221,88.196244667,87.940295672,87.6848510727,87.4299331406,
204 87.1755644693,86.9217679583,86.6685667964,86.4159844438,86.1640446119,
205 85.9127712432,85.6621884888,85.4123206855,85.163192331,84.914828058,
206 84.6672526082,84.4204908033,84.1745675171,83.9295076449,83.6853360732,
207 83.4420776478,83.1997571419,82.9583992232,82.7180284205,82.4786690901,
208 82.2403453816,82.0030812043,81.7669001925,81.5318256718,81.2978806254,
209 81.0650876604,80.8334689751,80.6030463265,80.373840999,80.1458737738,
210 79.9191648987,79.6937340602,79.469600356,79.2467822688,79.025297642,
211 78.8051636567,78.5863968102,78.3690128963,78.1530269874,77.9384534185,
212 77.7253057722,77.5135968673,77.3033387471,77.0945426718,76.8872191109,
213 76.6813777391,76.4770274327,76.274176269,76.0728315269,75.8729996892,
214 75.674686447,75.4778967059,75.2826345928,75.0889034655,74.896705923,
215 74.7060438173,74.5169182664,74.3293296689,74.1432777192,73.958761424,
216 73.7757791196,73.5943284902,73.4144065864,73.2360098455,73.0591341108,
217 72.8837746527,72.7099261894,72.5375829084,72.3667384877,72.1973861174,
218 72.0295185219,71.8631279807,71.698206351,71.5347450886,71.3727352695,
219 71.2121676108,71.0530324916,70.895319974,70.7390198224,70.5841215239,
220 70.4306143075,70.2784871629,70.127728859,69.9783279618,69.8302728517,
221 69.6835517406,69.5381526878,69.3940636164,69.251272328,69.1097665175,
222 68.9695337873,68.8305616607,68.692837595,68.556348994,68.4210832195,
223 68.2870276031,68.1541694565,68.0224960825,67.8919947839,67.7626528733,
224 67.6344576819,67.5073965675,67.3814569225,67.2566261813,67.132891827,
225 67.0102413984,66.8886624955,66.7681427857,66.6486700089,66.5302319826,
226 66.4128166063,66.2964118658,66.1810058376,66.0665866919,65.9531426963,
227 65.8406622188,65.7291337307,65.6185458088,65.5088871381,65.4001465135,
228 65.2923128418,65.1853751436,65.0793225539,64.9741443241,64.869829823,
229 64.7663685372,64.6637500722,64.5619641527,64.4610006235,64.3608494493,
230 64.261500715,64.1629446261,64.0651715079,63.9681718061,63.8719360861,
231 63.776455033,63.6817194506,63.5877202614,63.4944485058,63.4018953417,
232 63.3100520431,63.2189100002,63.1284607182,63.038695816,62.9496070262,
233 62.8611861931,62.7734252727,62.6863163309,62.5998515428,62.5140231916,
234 62.4288236674,62.344245466,62.2602811881,62.1769235376,62.094165321,
235 62.0119994454,61.9304189184,61.8494168459,61.7689864313,61.6891209743,
236 61.6098138696,61.5310586057,61.4528487634,61.3751780152,61.2980401233,
237 61.2214289391,61.1453384013,61.0697625353,60.9946954515,60.9201313444,
238 60.8460644913,60.772489251,60.699400063,60.6267914458,60.554657996,
239 60.4829943874,60.4117953693,60.3410557658,60.2707704748,60.2009344661,
240 60.1315427815,60.0625905326,59.9940729003,59.9259851339,59.8583225495,
241 59.7910805294,59.724254521,59.6578400356,59.5918326476,59.5262279936,
242 59.4610217712,59.3962097382,59.3317877115,59.2677515663,59.2040972355,
243 59.140820708,59.0779180285,59.0153852966,58.9532186654,58.8914143412,
244 58.8299685825,58.768877699,58.708138051,58.6477460488,58.5876981511,
245 58.5279908653,58.4686207459,58.4095843943,58.3508784577,58.2924996285,
246 58.2344446436,58.1767102838,58.119293373,58.0621907773,58.005399405,
247 57.948916205,57.892738167,57.8368623204,57.7812857339,57.7260055146,
248 57.6710188078,57.616322796,57.5619146987,57.5077917713,57.4539513053,
249 57.4003906269,57.3471070972,57.2940981111,57.241361097,57.1888935166,
250 57.1366928636,57.084756664,57.0330824751,56.9816678854,56.9305105136,
251 56.8796080089,56.8289580495,56.7785583433,56.7284066266,56.6785006639,
252 56.6288382478,56.5794171979,56.5302353612,56.4812906111,56.432580847,
253 56.3841039945,56.3358580041,56.2878408518,56.2400505378,56.1924850868,
254 56.1451425476,56.0980209921,56.0511185157,56.0044332366,55.9579632956,
255 55.9117068555,55.8656621011,55.8198272387,55.7742004958,55.7287801209,
256 55.6835643831,55.6385515716,55.5937399958,55.5491279849,55.5047138872,
257 55.4604960706,55.4164729216,55.3726428452,55.3290042651,55.2855556227,
258 55.2422953775,55.1992220065,55.1563340038,55.1136298808,55.0711081657,
259 55.0287674032,54.9866061544,54.9446229966,54.9028165229,54.8611853421,
260 54.8197280785,54.7784433715,54.7373298757,54.6963862605,54.6556112098,
261 54.6150034221,54.5745616098,54.5342844997,54.4941708323,54.4542193616,
262 54.4144288551,54.3747980937,54.3353258713,54.2960109948,54.2568522837,
263 54.2178485702,54.1789986988,54.1403015262,54.1017559213,54.0633607649,
264 54.0251149495,53.9870173791,53.9490669694,53.9112626471,53.8736033501,
265 53.8360880275,53.7987156391,53.7614851554,53.7243955574,53.6874458368,
266 53.6506349953,53.6139620448,53.5774260075,53.5410259151,53.5047608095,
267 53.4686297419,53.4326317732,53.3967659736,53.3610314227,53.3254272092,
268 53.2899524309,53.2546061945,53.2193876154,53.184295818,53.149329935,
269 53.1144891078,53.079772486,53.0451792278,53.0107084993,52.9763594747,
270 52.9421313363,52.9080232742,52.8740344864,52.8401641783,52.8064115633,
271 52.772775862,52.7392563025,52.7058521203,52.672562558,52.6393868653,
272 52.6063242993,52.5733741236,52.5405356091,52.5078080332,52.4751906802,
273 52.442682841,52.4102838131,52.3779929004,52.3458094133,52.3137326685,
274 52.281761989,52.2498967038,52.2181361484,52.1864796639,52.1549265977,
275 52.123476303,52.0921281387,52.0608814697,52.0297356664,51.998690105,
276 51.9677441672,51.9368972401,51.9061487165,51.8754979942,51.8449444767,
277 51.8144875727,51.7841266957,51.7538612649,51.7236907043,51.6936144428,
278 51.6636319146,51.6337425585,51.6039458184,51.5742411427,51.544627985,
279 51.5151058032,51.4856740601,51.4563322228,51.4270797633,51.3979161578,
280 51.3688408872,51.3398534365,51.3109532954,51.2821399576,51.2534129212,
281 51.2247716884,51.1962157658,51.1677446638,51.1393578971,51.1110549843,
282 51.0828354481,51.0546988151,51.0266446158,50.9986723845,50.9707816593,
283 50.9429719823,50.9152428991,50.8875939591,50.8600247153,50.8325347244,
284 50.8051235466,50.7777907458,50.7505358892,50.7233585476,50.6962582952,
285 50.6692347097,50.6422873719,50.6154158663,50.5886197804,50.5618987051,
286 50.5352522345,50.5086799659,50.4821814997,50.4557564396,50.4294043921,
287 50.4031249672,50.3769177775,50.3507824389,50.3247185701,50.2987257929,
288 50.2728037319,50.2469520147,50.2211702716,50.1954581358,50.1698152434,
289 50.1442412332,50.1187357466,50.0932984281,50.0679289244,50.0426268854,
290 50.0173919631,49.9922238125,49.967122091,49.9420864588,49.9171165783,
291 49.8922121146,49.8673727353,49.8425981105,49.8178879127,49.7932418167,
292 49.7686594998,49.7441406417,49.7196849244,49.6952920323,49.670961652,
293 49.6466934725,49.622487185,49.5983424828,49.5742590617,49.5502366195,
294 49.5262748563,49.5023734741,49.4785321775,49.4547506727,49.4310286684,
295 49.4073658752,49.3837620058,49.3602167748,49.336729899,49.3133010971,
296 49.28993009,49.2666166002,49.2433603524,49.2201610732,49.197018491,
297 49.1739323363,49.1509023413,49.12792824,49.1050097686,49.0821466646,
298 49.0593386678,49.0365855194,49.0138869628,48.9912427428,48.968652606,
299 48.9461163009,48.9236335776,48.901204188,48.8788278855,48.8565044252,
300 48.8342335641,48.8120150606,48.7898486748,48.7677341684,48.7456713047,
301 48.7236598486,48.7016995666,48.6797902266,48.6579315983,48.6361234527,
302 48.6143655624,48.5926577015,48.5709996457,48.5493911719,48.5278320588,
303 48.5063220864,48.484861036,48.4634486905,48.4420848342,48.4207692528,
304 48.3995017333,48.3782820642,48.3571100353,48.3359854377,48.314908064,
305 48.2938777081,48.272894165,48.2519572313,48.2310667048,48.2102223845,
306 48.1894240707,48.1686715652,48.1479646707,48.1273031914,48.1066869326,
307 48.0861157009,48.0655893041,48.0451075513,48.0246702526,48.0042772194,
308 47.9839282643,47.963623201,47.9433618444,47.9231440105,47.9029695165,
309 47.8828381808,47.8627498227,47.8427042628,47.8227013227,47.8027408252,
310 47.7828225941,47.7629464542,47.7431122316,47.7233197533,47.7035688473,
311 47.6838593428,47.6641910699,47.6445638598,47.6249775446,47.6054319576,
312 47.5859269331,47.5664623061,47.5470379129,47.5276535906,47.5083091774,
313 47.4890045124,47.4697394356,47.450513788,47.4313274116,47.4121801493,
314 47.3930718448,47.3740023428,47.3549714891,47.3359791301,47.3170251133,
315 47.2981092869,47.2792315003,47.2603916035,47.2415894475,47.2228248841,
316 47.2040977659,47.1854079466,47.1667552804,47.1481396226,47.1295608293,
317 47.1110187573,47.0925132644,47.0740442089,47.0556114503,47.0372148487,
318 47.0188542649,47.0005295607,46.9822405986,46.9639872418,46.9457693543,
319 46.9275868009,46.9094394473,46.8913271597,46.8732498052,46.8552072516,
320 46.8371993674,46.8192260219,46.8012870852,46.7833824279,46.7655119216,
321 46.7476754383,46.7298728509,46.712104033,46.6943688588,46.6766672034,
322 46.6589989423,46.6413639518,46.6237621091,46.6061932917,46.5886573779,
323 46.5711542468,46.5536837781,46.5362458519,46.5188403494,46.501467152,
324 46.4841261421,46.4668172024,46.4495402166,46.4322950687,46.4150816434,
325 46.3978998262,46.3807495031,46.3636305605,46.3465428857,46.3294863665,
326 46.3124608912,46.2954663489,46.2785026291,46.261569622,46.2446672182,
327 46.2277953091,46.2109537865,46.1941425428,46.1773614712,46.1606104651,
328 46.1438894186,46.1271982264,46.1105367837,46.0939049864,46.0773027305,
329 46.0607299131,46.0441864315,46.0276721836,46.0111870677,45.9947309829,
330 45.9783038286,45.9619055047,45.9455359118,45.9291949509,45.9128825234,
331 45.8965985314,45.8803428774,45.8641154643,45.8479161957,45.8317449755,
332 45.8156017082,45.7994862988,45.7833986526,45.7673386755,45.751306274,
333 45.7353013548,45.7193238253,45.7033735933,45.6874505668,45.6715546547,
334 45.6556857661,45.6398438106,45.6240286981,45.6082403393,45.5924786449,
335 45.5767435264,45.5610348956,45.5453526646,45.5296967462,45.5140670535,
336 45.4984635,45.4828859995,45.4673344665,45.4518088158,45.4363089625,
337 45.4208348222,45.4053863109,45.3899633451,45.3745658416,45.3591937176,
338 45.3438468908,45.328525279,45.3132288009,45.297957375,45.2827109208,
339 45.2674893576,45.2522926056,45.2371205849,45.2219732164,45.2068504212,
340 45.1917521207,45.1766782368,45.1616286916,45.1466034078,45.1316023084,
341 45.1166253165,45.101672356,45.0867433507,45.0718382252,45.0569569041,
342 45.0420993126,45.027265376,45.0124550203,44.9976681714,44.9829047559,
343 44.9681647005,44.9534479326,44.9387543794,44.924083969,44.9094366294,
344 44.8948122891,44.8802108769,44.865632322,44.8510765539,44.8365435024,
345 44.8220330976,44.8075452698,44.7930799499,44.778637069,44.7642165583,
346 44.7498183497,44.735442375,44.7210885667,44.7067568573,44.6924471798,
347 44.6781594673,44.6638936534,44.6496496719,44.6354274569,44.6212269429,
348 44.6070480645,44.5928907568,44.578754955,44.5646405947,44.5505476118,
349 44.5364759423,44.5224255228,44.50839629,44.4943881808,44.4804011325,
350 44.4664350827,44.4524899692,44.43856573,44.4246623036,44.4107796285,
351 44.3969176438,44.3830762885,44.369255502,44.3554552242,44.341675395,
352 44.3279159545,44.3141768433,44.3004580021,44.2867593719,44.2730808939,
353 44.2594225098,44.2457841612,44.2321657901,44.2185673388,44.2049887499,
354 44.191429966,44.1778909302,44.1643715857,44.150871876,44.1373917448,
355 44.1239311362,44.1104899942,44.0970682634,44.0836658884,44.0702828141,
356 44.0569189857,44.0435743485,44.0302488482,44.0169424307,44.0036550418,
357 43.990386628,43.9771371358,43.9639065119,43.9506947033,43.9375016571,
358 43.9243273208,43.911171642,43.8980345685,43.8849160484,43.8718160299,
359 43.8587344616,43.8456712922,43.8326264705,43.8195999457,43.8065916671,
360 43.7936015843,43.780629647,43.7676758052,43.7547400091,43.7418222089,
361 43.7289223553,43.7160403991,43.7031762912,43.6903299827,43.6775014252,
362 43.66469057,43.6518973691,43.6391217743,43.6263637378,43.613623212,
363 43.6009001494,43.5881945027,43.5755062248,43.5628352689,43.5501815883,
364 43.5375451365,43.524925867,43.5123237339,43.499738691,43.4871706927,
365 43.4746196934,43.4620856476,43.4495685102,43.437068236,43.4245847802,
366 43.4121180981,43.3996681453,43.3872348772,43.3748182499,43.3624182192,
367 43.3500347414,43.3376677729,43.32531727,43.3129831897,43.3006654886,
368 43.2883641239,43.2760790527,43.2638102324,43.2515576206,43.2393211749,
369 43.2271008533,43.2148966136,43.2027084142,43.1905362133,43.1783799696,
370 43.1662396416,43.1541151882,43.1420065683,43.1299137412,43.1178366661,
371 43.1057753025,43.0937296101,43.0816995485,43.0696850777,43.0576861577,
372 43.0457027489,43.0337348116,43.0217823063,43.0098451938,42.9979234347,
373 42.9860169902,42.9741258213,42.9622498893,42.9503891557,42.938543582,
374 42.9267131299,42.9148977612,42.9030974381,42.8913121225,42.8795417768,
375 42.8677863635,42.856045845,42.8443201841,42.8326093436,42.8209132865,
376 42.809231976,42.7975653752,42.7859134476,42.7742761567,42.7626534662,
377 42.7510453398,42.7394517416,42.7278726355,42.7163079857,42.7047577566,
378 42.6932219127,42.6817004185,42.6701932388,42.6587003383,42.6472216822,
379 42.6357572354,42.6243069633,42.6128708311,42.6014488044,42.5900408488,
380 42.57864693,42.5672670139,42.5559010665,42.5445490538,42.5332109421,
381 42.5218866978,42.5105762873,42.4992796772,42.4879968343,42.4767277253,
382 42.4654723173,42.4542305773,42.4430024724,42.4317879701,42.4205870377,
383 42.4093996427,42.3982257529,42.3870653359,42.3759183598,42.3647847924,
384 42.3536646019,42.3425577565,42.3314642245,42.3203839745,42.309316975,
385 42.2982631946,42.2872226021,42.2761951665,42.2651808567,42.2541796418,
386 42.2431914911,42.2322163739,42.2212542596,42.2103051178,42.1993689181,
387 42.1884456302,42.1775352242,42.1666376698,42.1557529372,42.1448809965,
388 42.1340218181,42.1231753722,42.1123416295,42.1015205604,42.0907121357,
389 42.0799163261,42.0691331025,42.058362436,42.0476042976,42.0368586585,
390 42.0261254899,42.0154047634,42.0046964503,41.9940005222,41.9833169508,
391 41.972645708,41.9619867655,41.9513400953,41.9407056694,41.9300834602,
392 41.9194734397,41.9088755803,41.8982898545,41.8877162349,41.8771546939,
393 41.8666052044,41.8560677391,41.845542271,41.8350287731,41.8245272183,
394 41.81403758,41.8035598313,41.7930939457,41.7826398964,41.7721976572,
395 41.7617672016,41.7513485032,41.740941536,41.7305462738,41.7201626905,
396 41.7097907601,41.699430457,41.6890817552,41.6787446291,41.668419053,
397 41.6581050015,41.6478024491,41.6375113705,41.6272317404,41.6169635335,
398 41.6067067249,41.5964612895,41.5862272023,41.5760044385,41.5657929734,
399 41.5555927821,41.5454038401,41.535226123,41.5250596061,41.5149042652,
400 41.5047600759,41.4946270141,41.4845050556,41.4743941762,41.4642943522,
401 41.4542055595,41.4441277743,41.4340609729,41.4240051315,41.4139602267,
402 41.4039262349,41.3939031326,41.3838908964,41.3738895031,41.3638989294,
403 41.3539191523,41.3439501485,41.3339918952,41.3240443693,41.3141075481,
404 41.3041814088,41.2942659286,41.2843610849,41.2744668552,41.2645832169,
405 41.2547101477,41.2448476251,41.234995627,41.225154131,41.2153231151,
406 41.2055025572,41.1956924352,41.1858927273,41.1761034116,41.1663244663,
407 41.1565558696,41.1467976,41.1370496357,41.1273119554,41.1175845375,
408 41.1078673606,41.0981604035,41.0884636448,41.0787770634,41.0691006382,
409 41.059434348,41.049778172,41.0401320891,41.0304960786,41.0208701195,
410 41.0112541912,41.0016482731,40.9920523444,40.9824663846,40.9728903734,
411 40.9633242901,40.9537681146,40.9442218265,40.9346854055,40.9251588316,
412 40.9156420845,40.9061351443,40.8966379909,40.8871506045,40.8776729651,
413 40.868205053,40.8587468484,40.8492983317,40.8398594831,40.8304302833,
414 40.8210107125,40.8116007515,40.8022003807,40.792809581,40.7834283329,
415 40.7740566174,40.7646944152,40.7553417072,40.7459984744,40.7366646979,
416 40.7273403586,40.7180254378,40.7087199165,40.6994237762,40.6901369979,
417 40.6808595632,40.6715914533,40.6623326499,40.6530831343,40.6438428882,
418 40.6346118932,40.625390131,40.6161775833,40.6069742319,40.5977800587,
419 40.5885950455,40.5794191744,40.5702524272,40.5610947862,40.5519462333,
420 40.5428067507,40.5336763208,40.5245549257,40.5154425477,40.5063391692,
421 40.4972447727,40.4881593407,40.4790828555,40.4700152999,40.4609566565,
422 40.4519069079,40.4428660369,40.4338340262,40.4248108587,40.4157965172,
423 40.4067909847,40.3977942441,40.3888062786,40.3798270711,40.3708566047,
424 40.3618948628,40.3529418284,40.3439974848,40.3350618154,40.3261348035,
425 40.3172164326,40.3083066861,40.2994055475,40.2905130003,40.2816290283,
426 40.2727536149,40.2638867439,40.2550283991,40.2461785643,40.2373372232,
427 40.2285043598,40.219679958,40.2108640017,40.202056475,40.1932573619,
428 40.1844666466,40.1756843131,40.1669103458,40.1581447288,40.1493874464,
429 40.1406384829,40.1318978228,40.1231654504,40.1144413503,40.1057255068,
430 40.0970179046
431 }
432 },
433 {
434 // Ri = 250k
435 -5,5,200,2001, {
436 239.919843376,239.854937108,239.789738489,239.724247218,239.658462996,
437 239.592385535,239.526014546,239.459349752,239.392390878,239.325137654,
438 239.257589818,239.189747112,239.121609284,239.053176087,238.984447281,
439 238.91542263,238.846101903,238.776484877,238.706571332,238.636361055,
440 238.565853836,238.495049475,238.423947772,238.352548536,238.280851579,
441 238.208856722,238.136563787,238.063972604,237.991083007,237.917894835,
442 237.844407935,237.770622155,237.696537352,237.622153385,237.54747012,
443 237.472487429,237.397205186,237.321623273,237.245741575,237.169559984,
444 237.093078396,237.016296711,236.939214835,236.86183268,236.78415016,
445 236.706167196,236.627883714,236.549299644,236.470414921,236.391229484,
446 236.311743279,236.231956253,236.151868362,236.071479563,235.99078982,
447 235.9097991,235.828507376,235.746914624,235.665020826,235.582825967,
448 235.500330038,235.417533033,235.334434951,235.251035796,235.167335575,
449 235.083334301,234.999031988,234.914428659,234.829524337,234.744319051,
450 234.658812834,234.573005723,234.48689776,234.400488988,234.313779459,
451 234.226769224,234.13945834,234.05184687,233.963934876,233.875722429,
452 233.7872096,233.698396466,233.609283107,233.519869606,233.430156051,
453 233.340142534,233.249829147,233.159215991,233.068303166,232.977090779,
454 232.885578937,232.793767753,232.701657342,232.609247824,232.516539321,
455 232.423531959,232.330225867,232.236621177,232.142718023,232.048516546,
456 231.954016887,231.85921919,231.764123605,231.66873028,231.573039372,
457 231.477051037,231.380765434,231.284182727,231.187303082,231.090126667,
458 230.992653654,230.894884217,230.796818534,230.698456783,230.599799147,
459 230.500845813,230.401596966,230.302052798,230.202213502,230.102079273,
460 230.001650309,229.900926811,229.799908981,229.698597024,229.596991149,
461 229.495091566,229.392898486,229.290412124,229.187632698,229.084560426,
462 228.98119553,228.877538233,228.77358876,228.66934734,228.564814202,
463 228.459989578,228.354873701,228.249466808,228.143769136,228.037780925,
464 227.931502416,227.824933853,227.718075481,227.610927548,227.503490301,
465 227.395763992,227.287748873,227.179445197,227.070853221,226.961973202,
466 226.852805398,226.743350071,226.633607482,226.523577894,226.413261574,
467 226.302658786,226.1917698,226.080594885,225.969134311,225.857388351,
468 225.745357278,225.633041366,225.520440893,225.407556135,225.294387371,
469 225.180934881,225.067198945,224.953179846,224.838877868,224.724293293,
470 224.609426409,224.494277501,224.378846857,224.263134765,224.147141516,
471 224.030867399,223.914312706,223.79747773,223.680362764,223.562968102,
472 223.445294038,223.32734087,223.209108892,223.090598404,222.971809703,
473 222.852743088,222.733398858,222.613777314,222.493878757,222.373703489,
474 222.253251812,222.132524028,222.011520442,221.890241357,221.768687078,
475 221.64685791,221.524754159,221.402376131,221.279724132,221.15679847,
476 221.033599452,220.910127386,220.78638258,220.662365343,220.538075983,
477 220.413514811,220.288682136,220.163578268,220.038203517,219.912558193,
478 219.786642608,219.660457072,219.534001897,219.407277394,219.280283874,
479 219.15302165,219.025491033,218.897692335,218.769625868,218.641291945,
480 218.512690877,218.383822977,218.254688558,218.125287932,217.995621411,
481 217.865689308,217.735491935,217.605029605,217.47430263,217.343311321,
482 217.212055993,217.080536955,216.948754521,216.816709003,216.684400712,
483 216.551829959,216.418997057,216.285902317,216.152546049,216.018928564,
484 215.885050174,215.750911189,215.616511919,215.481852673,215.346933762,
485 215.211755495,215.076318182,214.94062213,214.804667649,214.668455047,
486 214.531984632,214.395256711,214.258271591,214.121029579,213.983530982,
487 213.845776106,213.707765256,213.569498737,213.430976855,213.292199913,
488 213.153168215,213.013882066,212.874341767,212.734547621,212.594499931,
489 212.454198998,212.313645123,212.172838605,212.031779747,211.890468845,
490 211.748906201,211.607092111,211.465026874,211.322710786,211.180144146,
491 211.037327247,210.894260386,210.750943858,210.607377956,210.463562975,
492 210.319499207,210.175186945,210.03062648,209.885818102,209.740762104,
493 209.595458773,209.449908399,209.304111271,209.158067675,209.011777899,
494 208.865242229,208.71846095,208.571434346,208.424162703,208.276646303,
495 208.128885429,207.980880362,207.832631383,207.684138772,207.53540281,
496 207.386423774,207.237201943,207.087737593,206.938031001,206.788082442,
497 206.637892192,206.487460523,206.336787708,206.185874021,206.034719732,
498 205.883325112,205.73169043,205.579815956,205.427701956,205.2753487,
499 205.122756451,204.969925477,204.816856041,204.663548407,204.510002838,
500 204.356219596,204.202198941,204.047941133,203.893446432,203.738715096,
501 203.583747382,203.428543546,203.273103844,203.11742853,202.961517859,
502 202.805372081,202.64899145,202.492376216,202.335526629,202.178442938,
503 202.021125389,201.863574231,201.70578971,201.547772069,201.389521554,
504 201.231038407,201.072322871,200.913375185,200.754195591,200.594784328,
505 200.435141633,200.275267743,200.115162895,199.954827324,199.794261263,
506 199.633464946,199.472438604,199.31118247,199.149696771,198.987981739,
507 198.826037599,198.66386458,198.501462908,198.338832806,198.175974498,
508 198.012888208,197.849574157,197.686032566,197.522263653,197.358267639,
509 197.194044739,197.029595171,196.864919149,196.700016888,196.534888602,
510 196.369534501,196.203954798,196.038149702,195.872119422,195.705864166,
511 195.53938414,195.372679551,195.205750602,195.038597496,194.871220438,
512 194.703619627,194.535795263,194.367747547,194.199476675,194.030982844,
513 193.862266251,193.69332709,193.524165554,193.354781836,193.185176127,
514 193.015348617,192.845299495,192.675028949,192.504537166,192.333824332,
515 192.162890631,191.991736246,191.820361361,191.648766155,191.476950809,
516 191.304915502,191.132660411,190.960185714,190.787491586,190.6145782,
517 190.441445731,190.268094349,190.094524227,189.920735533,189.746728437,
518 189.572503106,189.398059705,189.223398401,189.048519357,188.873422736,
519 188.698108699,188.522577407,188.34682902,188.170863695,187.994681589,
520 187.818282858,187.641667658,187.46483614,187.287788459,187.110524763,
521 186.933045205,186.755349932,186.577439092,186.399312831,186.220971295,
522 186.042414627,185.863642971,185.684656468,185.505455258,185.326039482,
523 185.146409276,184.966564778,184.786506124,184.606233447,184.425746882,
524 184.245046561,184.064132614,183.883005171,183.70166436,183.52011031,
525 183.338343145,183.156362991,182.974169972,182.79176421,182.609145826,
526 182.426314941,182.243271672,182.060016139,181.876548456,181.69286874,
527 181.508977105,181.324873662,181.140558524,180.956031801,180.771293602,
528 180.586344035,180.401183206,180.215811221,180.030228184,179.844434198,
529 179.658429365,179.472213784,179.285787556,179.099150778,178.912303547,
530 178.725245958,178.537978106,178.350500084,178.162811983,177.974913895,
531 177.786805907,177.598488109,177.409960587,177.221223426,177.032276711,
532 176.843120525,176.653754949,176.464180064,176.274395949,176.084402683,
533 175.894200341,175.703788999,175.513168732,175.322339612,175.131301711,
534 174.940055099,174.748599845,174.556936017,174.365063682,174.172982904,
535 173.980693748,173.788196276,173.59549055,173.402576629,173.209454574,
536 173.01612444,172.822586284,172.628840161,172.434886125,172.240724228,
537 172.046354521,171.851777054,171.656991875,171.461999032,171.266798569,
538 171.071390532,170.875774963,170.679951906,170.483921399,170.287683483,
539 170.091238194,169.894585571,169.697725648,169.500658458,169.303384036,
540 169.105902411,168.908213614,168.710317673,168.512214616,168.313904469,
541 168.115387256,167.916663,167.717731724,167.518593448,167.31924819,
542 167.11969597,166.919936804,166.719970706,166.51979769,166.319417769,
543 166.118830954,165.918037255,165.71703668,165.515829236,165.314414928,
544 165.112793761,164.910965738,164.70893086,164.506689127,164.304240538,
545 164.10158509,163.898722779,163.6956536,163.492377545,163.288894608,
546 163.085204777,162.881308042,162.677204391,162.472893809,162.268376282,
547 162.063651792,161.858720322,161.653581853,161.448236362,161.242683829,
548 161.036924229,160.830957537,160.624783727,160.41840277,160.211814637,
549 160.005019298,159.79801672,159.590806869,159.38338971,159.175765206,
550 158.967933321,158.759894013,158.551647242,158.343192966,158.134531141,
551 157.925661722,157.716584662,157.507299912,157.297807424,157.088107145,
552 156.878199025,156.668083008,156.457759039,156.247227061,156.036487016,
553 155.825538844,155.614382484,155.403017872,155.191444946,154.979663638,
554 154.767673882,154.55547561,154.34306875,154.130453232,153.917628982,
555 153.704595926,153.491353989,153.277903091,153.064243155,152.850374101,
556 152.636295846,152.422008306,152.207511398,151.992805035,151.777889129,
557 151.562763591,151.347428331,151.131883256,150.916128273,150.700163287,
558 150.483988202,150.267602919,150.051007339,149.834201362,149.617184885,
559 149.399957805,149.182520017,148.964871415,148.74701189,148.528941333,
560 148.310659634,148.092166681,147.873462361,147.654546557,147.435419156,
561 147.216080038,146.996529086,146.776766179,146.556791196,146.336604013,
562 146.116204508,145.895592554,145.674768025,145.453730794,145.23248073,
563 145.011017705,144.789341586,144.56745224,144.345349535,144.123033334,
564 143.900503503,143.677759903,143.454802397,143.231630845,143.008245106,
565 142.784645041,142.560830506,142.336801358,142.112557454,141.888098647,
566 141.663424793,141.438535745,141.213431356,140.988111477,140.76257596,
567 140.536824656,140.310857414,140.084674085,139.858274517,139.631658559,
568 139.40482606,139.177776866,138.950510827,138.72302779,138.495327601,
569 138.267410109,138.039275161,137.810922605,137.582352287,137.353564057,
570 137.124557761,136.89533325,136.665890372,136.436228977,136.206348916,
571 135.976250041,135.745932202,135.515395255,135.284639054,135.053663455,
572 134.822468314,134.591053492,134.359418849,134.127564247,133.895489551,
573 133.663194629,133.430679348,133.197943581,132.964987203,132.73181009,
574 132.498412124,132.264793187,132.030953168,131.796891958,131.562609451,
575 131.328105548,131.093380151,130.85843317,130.623264518,130.387874115,
576 130.152261884,129.916427758,129.680371672,129.444093571,129.207593404,
577 128.970871129,128.733926713,128.496760129,128.259371358,128.021760393,
578 127.783927234,127.545871891,127.307594385,127.069094748,126.830373023,
579 126.591429265,126.352263542,126.112875935,125.873266537,125.633435457,
580 125.393382821,125.153108766,124.91261345,124.671897045,124.430959742,
581 124.189801752,123.948423304,123.706824648,123.465006057,123.222967823,
582 122.980710263,122.738233721,122.495538562,122.252625181,122.009493998,
583 121.766145463,121.522580057,121.278798292,121.034800711,120.790587894,
584 120.546160453,120.30151904,120.056664344,119.811597095,119.566318064,
585 119.320828067,119.075127963,118.82921866,118.583101115,118.336776335,
586 118.090245381,117.84350937,117.596569475,117.349426929,117.102083029,
587 116.854539134,116.606796673,116.358857143,116.110722114,115.862393231,
588 115.613872218,115.365160881,115.116261108,114.867174879,114.61790426,
589 114.368451414,114.118818604,113.86900819,113.619022642,113.368864537,
590 113.118536565,112.868041535,112.617382378,112.366562149,112.115584036,
591 111.864451361,111.613167587,111.361736321,111.11016132,110.858446499,
592 110.60659593,110.354613852,110.102504677,109.850272992,109.597923569,
593 109.345461366,109.09289154,108.840219447,108.587450649,108.334590925,
594 108.081646272,107.828622915,107.575527312,107.322366164,107.069146415,
595 106.815875267,106.562560181,106.309208889,106.055829395,105.802429989,
596 105.549019247,105.295606044,105.042199559,104.78880928,104.535445014,
597 104.282116893,104.028835379,103.775611272,103.522455718,103.26938021,
598 103.016396602,102.763517107,102.510754307,102.258121157,102.00563099,
599 101.75329752,101.501134848,101.249157464,100.997380252,100.74581849,
600 100.494487852,100.243404412,99.9925846399,99.7420454065,99.4918039784,
601 99.2418780182,98.992285581,98.7430451111,98.4941754376,98.2456957684,
602 97.9976256841,97.7499851301,97.5027944079,97.2560741654,97.0098453854,
603 96.764129374,96.5189477467,96.2743224139,96.030275565,95.7868296514,
604 95.5440073677,95.3018316327,95.0603255681,94.8195124769,94.5794158196,
605 94.3400591904,94.1014662917,93.8636609074,93.6266668754,93.3905080596,
606 93.1552083202,92.9207914838,92.687281313,92.4547014744,92.2230755076,
607 91.9924267924,91.7627785162,91.5341536421,91.3065748752,91.0800646308,
608 90.8546450013,90.6303377244,90.4071641513,90.1851452154,89.9643014023,
609 89.7446527197,89.5262186689,89.309018217,89.0930697707,88.8783911506,
610 88.6649995678,88.452911601,88.2421431758,88.0327095454,87.8246252726,
611 87.6179042144,87.4125595073,87.2086035549,87.0060480178,86.8049038042,
612 86.6051810635,86.4068891809,86.2100367742,86.0146316924,85.820681016,
613 85.6281910588,85.4371673718,85.2476147483,85.059537231,84.8729381203,
614 84.6878199835,84.5041846669,84.3220333071,84.1413663453,83.9621835415,
615 83.78448399,83.6082661365,83.4335277947,83.2602661648,83.088477852,
616 82.918158886,82.7493047404,82.581910353,82.4159701465,82.2514780484,
617 82.0884275127,81.9268115401,81.7666226995,81.6078531484,81.450494654,
618 81.2945386136,81.1399760753,80.9867977578,80.8349940706,80.6845551334,
619 80.5354707951,80.387730653,80.2413240706,80.0962401958,79.9524679782,
620 79.8099961858,79.668813422,79.5289081407,79.3902686621,79.2528831875,
621 79.1167398133,78.9818265451,78.8481313104,78.7156419717,78.5843463383,
622 78.4542321781,78.3252872283,78.1974992063,78.0708558196,77.9453447751,
623 77.8209537885,77.6976705926,77.5754829453,77.4543786377,77.3343455008,
624 77.2153714125,77.097444304,76.9805521656,76.8646830525,76.7498250897,
625 76.6359664772,76.5230954944,76.411200504,76.3002699564,76.1902923926,
626 76.081256448,75.9731508553,75.865964447,75.7596861581,75.6543050282,
627 75.5498102036,75.446190939,75.3434365993,75.2415366608,75.1404807122,
628 75.0402584562,74.94085971,74.8422744057,74.7444925918,74.6475044324,
629 74.5513002088,74.4558703183,74.3612052756,74.2672957116,74.1741323741,
630 74.0817061269,73.9900079501,73.8990289392,73.8087603045,73.7191933711,
631 73.630319578,73.542130477,73.4546177327,73.3677731209,73.2815885286,
632 73.1960559524,73.1111674979,73.0269153786,72.943291915,72.8602895336,
633 72.7779007657,72.6961182464,72.6149347136,72.5343430066,72.4543360653,
634 72.3749069287,72.296048734,72.2177547155,72.140018203,72.062832621,
635 71.9861914875,71.9100884125,71.834517097,71.7594713319,71.6849449967,
636 71.6109320582,71.5374265695,71.4644226687,71.3919145776,71.3198966008,
637 71.2483631244,71.1773086147,71.1067276173,71.0366147558,70.9669647305,
638 70.8977723176,70.829032368,70.7607398058,70.692889628,70.6254769025,
639 70.5584967677,70.491944431,70.4258151681,70.3601043217,70.2948073007,
640 70.2299195789,70.1654366943,70.1013542477,70.0376679022,69.974373382,
641 69.9114664714,69.848943014,69.7867989115,69.7250301233,69.663632665,
642 69.6026026079,69.5419360781,69.4816292553,69.4216783727,69.3620797151,
643 69.302829619,69.2439244713,69.1853607088,69.127134817,69.0692433298,
644 69.0116828285,68.9544499408,68.8975413407,68.8409537471,68.7846839236,
645 68.7287286773,68.6730848588,68.6177493608,68.5627191177,68.5079911053,
646 68.4535623394,68.399429876,68.3455908099,68.2920422747,68.238781442,
647 68.1858055204,68.1331117557,68.0806974294,68.0285598591,67.9766963971,
648 67.9251044304,67.8737813799,67.8227247,67.7719318779,67.7214004334,
649 67.671127918,67.6211119148,67.5713500377,67.521839931,67.4725792692,
650 67.4235657562,67.3747971248,67.3262711367,67.2779855816,67.2299382769,
651 67.1821270675,67.1345498251,67.0872044479,67.0400888603,66.9932010121,
652 66.9465388788,66.9001004606,66.8538837821,66.8078868926,66.7621078646,
653 66.7165447945,66.6711958016,66.626059028,66.5811326384,66.5364148192,
654 66.491903779,66.4475977476,66.4034949759,66.3595937358,66.3158923195,
655 66.2723890395,66.2290822282,66.1859702377,66.1430514394,66.1003242235,
656 66.0577869994,66.0154381946,65.9732762552,65.9312996451,65.8895068457,
657 65.8478963563,65.806466693,65.7652163892,65.7241439947,65.6832480761,
658 65.642527216,65.6019800131,65.5616050819,65.5214010526,65.4813665705,
659 65.4415002962,65.4018009052,65.3622670877,65.3228975484,65.2836910063,
660 65.2446461946,65.2057618602,65.1670367641,65.1284696804,65.0900593968,
661 65.0518047142,65.0137044463,64.9757574197,64.9379624738,64.9003184602,
662 64.8628242429,64.825478698,64.7882807137,64.7512291898,64.7143230378,
663 64.6775611809,64.6409425534,64.6044661009,64.5681307798,64.5319355578,
664 64.4958794131,64.4599613344,64.4241803212,64.388535383,64.3530255396,
665 64.317649821,64.282407267,64.2472969272,64.2123178609,64.1774691369,
666 64.1427498335,64.1081590383,64.0736958481,64.0393593686,64.0051487146,
667 63.9710630098,63.9371013865,63.9032629857,63.8695469568,63.8359524576,
668 63.8024786545,63.7691247216,63.7358898415,63.7027732045,63.669774009,
669 63.636891461,63.6041247743,63.5714731704,63.5389358781,63.5065121337,
670 63.4742011808,63.4420022703,63.4099146602,63.3779376154,63.3460704081,
671 63.3143123171,63.2826626281,63.2511206336,63.2196856325,63.1883569306,
672 63.1571338399,63.1260156789,63.0950017724,63.0640914515,63.0332840535,
673 63.0025789217,62.9719754055,62.9414728602,62.9110706472,62.8807681334,
674 62.8505646917,62.8204597006,62.7904525442,62.7605426122,62.7307292997,
675 62.7010120074,62.6713901411,62.6418631122,62.6124303372,62.5830912378,
676 62.5538452407,62.5246917779,62.4956302862,62.4666602075,62.4377809884,
677 62.4089920806,62.3802929404,62.3516830289,62.3231618119,62.2947287596,
678 62.2663833472,62.238125054,62.2099533641,62.1818677657,62.1538677518,
679 62.1259528192,62.0981224695,62.0703762081,62.0427135449,62.0151339937,
680 61.9876370727,61.9602223038,61.9328892131,61.9056373307,61.8784661904,
681 61.8513753301,61.8243642916,61.7974326202,61.7705798651,61.7438055793,
682 61.7171093194,61.6904906456,61.6639491218,61.6374843153,61.6110957971,
683 61.5847831416,61.5585459265,61.5323837333,61.5062961465,61.4802827541,
684 61.4543431474,61.4284769208,61.4026836724,61.376963003,61.3513145168,
685 61.3257378211,61.3002325264,61.2747982461,61.2494345967,61.2241411979,
686 61.1989176721,61.1737636448,61.1486787445,61.1236626024,61.0987148526,
687 61.0738351323,61.049023081,61.0242783416,60.9996005592,60.9749893819,
688 60.9504444605,60.9259654483,60.9015520014,60.8772037785,60.8529204409,
689 60.8287016523,60.8045470791,60.7804563903,60.7564292571,60.7324653534,
690 60.7085643554,60.6847259419,60.660949794,60.637235595,60.6135830308,
691 60.5899917896,60.5664615617,60.5429920399,60.5195829191,60.4962338965,
692 60.4729446717,60.4497149461,60.4265444237,60.4034328102,60.3803798139,
693 60.357385145,60.3344485156,60.3115696402,60.2887482352,60.2659840191,
694 60.2432767122,60.2206260372,60.1980317183,60.1754934821,60.1530110568,
695 60.1305841728,60.1082125622,60.0858959592,60.0636340995,60.041426721,
696 60.0192735634,59.9971743681,59.9751288783,59.9531368392,59.9311979974,
697 59.9093121016,59.8874789021,59.865698151,59.8439696018,59.8222930102,
698 59.8006681332,59.7790947295,59.7575725597,59.7361013857,59.7146809713,
699 59.6933110816,59.6719914837,59.6507219459,59.6295022382,59.6083321322,
700 59.587211401,59.5661398192,59.5451171629,59.5241432098,59.5032177389,
701 59.4823405308,59.4615113675,59.4407300325,59.4199963107,59.3993099884,
702 59.3786708534,59.3580786947,59.3375333029,59.3170344698,59.2965819887,
703 59.2761756541,59.2558152619,59.2355006095,59.2152314953,59.1950077192,
704 59.1748290824,59.1546953873,59.1346064375,59.1145620381,59.0945619952,
705 59.0746061163,59.05469421,59.0348260863,59.0150015562,58.9952204321,
706 58.9754825273,58.9557876566,58.9361356358,58.9165262819,58.896959413,
707 58.8774348483,58.8579524084,58.8385119146,58.8191131897,58.7997560573,
708 58.7804403424,58.7611658707,58.7419324694,58.7227399664,58.7035881909,
709 58.684476973,58.665406144,58.6463755361,58.6273849825,58.6084343176,
710 58.5895233766,58.5706519958,58.5518200125,58.533027265,58.5142735925,
711 58.4955588353,58.4768828345,58.4582454322,58.4396464715,58.4210857965,
712 58.402563252,58.384078684,58.3656319393,58.3472228655,58.3288513112,
713 58.310517126,58.2922201602,58.2739602651,58.2557372929,58.2375510965,
714 58.2194015299,58.2012884478,58.1832117056,58.16517116,58.1471666681,
715 58.129198088,58.1112652786,58.0933680997,58.0755064118,58.0576800761,
716 58.039888955,58.0221329113,58.0044118086,57.9867255116,57.9690738855,
717 57.9514567963,57.9338741109,57.9163256968,57.8988114223,57.8813311564,
718 57.8638847691,57.8464721308,57.8290931127,57.8117475869,57.7944354261,
719 57.7771565037,57.7599106939,57.7426978714,57.7255179118,57.7083706914,
720 57.691256087,57.6741739762,57.6571242374,57.6401067494,57.6231213918,
721 57.6061680451,57.58924659,57.5723569081,57.5554988818,57.5386723939,
722 57.5218773279,57.505113568,57.488380999,57.4716795062,57.4550089757,
723 57.4383692942,57.4217603489,57.4051820278,57.3886342192,57.3721168123,
724 57.3556296967,57.3391727627,57.3227459011,57.3063490034,57.2899819617,
725 57.2736446684,57.2573370167,57.2410589004,57.2248102138,57.2085908517,
726 57.1924007095,57.1762396831,57.1601076691,57.1440045645,57.127930267,
727 57.1118846745,57.0958676858,57.0798792,57.063919117,57.0479873368,
728 57.0320837602,57.0162082886,57.0003608236,56.9845412676,56.9687495233,
729 56.952985494,56.9372490836,56.9215401962,56.9058587367,56.8902046103,
730 56.8745777228,56.8589779803,56.8434052895,56.8278595578,56.8123406926,
731 56.796848602,56.7813831948,56.7659443798,56.7505320667,56.7351461652,
732 56.719786586,56.7044532397,56.6891460378,56.6738648919,56.6586097143,
733 56.6433804175,56.6281769146,56.6129991191,56.597846945,56.5827203065,
734 56.5676191185,56.5525432961,56.537492755,56.5224674112,56.507467181,
735 56.4924919814,56.4775417297,56.4626163434,56.4477157406,56.4328398399,
736 56.41798856,56.4031618202,56.3883595402,56.37358164,56.35882804,
737 56.3440986611,56.3293934243,56.3147122514,56.3000550642,56.2854217851,
738 56.2708123367,56.2562266421,56.2416646249,56.2271262086,56.2126113176,
739 56.1981198764,56.1836518097,56.1692070429,56.1547855016,56.1403871117,
740 56.1260117995,56.1116594916,56.097330115,56.0830235971,56.0687398656,
741 56.0544788483,56.0402404738,56.0260246706,56.0118313678,55.9976604948,
742 55.9835119812,55.969385757,55.9552817525,55.9411998985,55.9271401258,
743 55.9131023657,55.89908655,55.8850926104,55.8711204792,55.8571700891,
744 55.8432413727,55.8293342633,55.8154486945,55.8015845998,55.7877419134,
745 55.7739205698,55.7601205035,55.7463416495,55.7325839431,55.7188473199,
746 55.7051317156,55.6914370665,55.677763309,55.6641103798,55.6504782158,
747 55.6368667544,55.6232759331,55.6097056897,55.5961559624,55.5826266896,
748 55.5691178099,55.5556292623,55.542160986,55.5287129205,55.5152850055,
749 55.501877181,55.4884893873,55.475121565,55.4617736549,55.448445598,
750 55.4351373357,55.4218488095,55.4085799613,55.3953307332,55.3821010675,
751 55.3688909069,55.3557001941,55.3425288723,55.3293768848,55.3162441752,
752 55.3031306873,55.2900363653,55.2769611534,55.2639049962,55.2508678385,
753 55.2378496253,55.2248503018,55.2118698137,55.1989081067,55.1859651266,
754 55.1730408198,55.1601351326,55.1472480117,55.134379404,55.1215292566,
755 55.1086975168,55.0958841322,55.0830890507,55.0703122201,55.0575535887,
756 55.0448131049,55.0320907175,55.0193863752,55.0067000272,54.9940316227,
757 54.9813811114,54.9687484428,54.956133567,54.943536434,54.9309569943,
758 54.9183951983,54.9058509969,54.893324341,54.8808151818,54.8683234706,
759 54.8558491591,54.8433921989,54.8309525421,54.8185301409,54.8061249475,
760 54.7937369146,54.7813659949,54.7690121413,54.7566753071,54.7443554455,
761 54.73205251,54.7197664544,54.7074972325,54.6952447985,54.6830091066,
762 54.6707901112,54.6585877671,54.646402029,54.634232852,54.6220801911,
763 54.6099440019,54.5978242398,54.5857208606,54.5736338202,54.5615630746,
764 54.5495085801,54.5374702932,54.5254481704,54.5134421685,54.5014522444,
765 54.4894783554,54.4775204586,54.4655785116,54.4536524719,54.4417422974,
766 54.429847946,54.4179693758,54.4061065451,54.3942594124,54.3824279364,
767 54.3706120757,54.3588117893,54.3470270364,54.3352577761,54.323503968,
768 54.3117655715,54.3000425465,54.2883348527,54.2766424504,54.2649652996,
769 54.2533033607,54.2416565943,54.2300249609,54.2184084215,54.206806937,
770 54.1952204684,54.1836489771,54.1720924245,54.1605507722,54.1490239817,
771 54.1375120151,54.1260148343,54.1145324014,54.1030646788,54.0916116288,
772 54.0801732141,54.0687493974,54.0573401415,54.0459454094,54.0345651643,
773 54.0231993694,54.0118479883,54.0005109843,53.9891883213,53.977879963,
774 53.9665858734,53.9553060167,53.944040357,53.9327888587,53.9215514863,
775 53.9103282045,53.8991189781,53.8879237718,53.8767425508,53.8655752802,
776 53.8544219253,53.8432824515,53.8321568244,53.8210450096,53.8099469729,
777 53.7988626803,53.7877920977,53.7767351915,53.7656919278,53.7546622731,
778 53.7436461939,53.7326436569,53.721654629,53.7106790769,53.6997169678,
779 53.6887682688,53.6778329471,53.6669109702,53.6560023055,53.6451069207,
780 53.6342247836,53.6233558619,53.6125001237,53.6016575371,53.5908280702,
781 53.5800116914,53.5692083692,53.558418072,53.5476407686,53.5368764276,
782 53.5261250181,53.5153865089,53.5046608693,53.4939480683,53.4832480754,
783 53.47256086,53.4618863916,53.4512246399,53.4405755746,53.4299391657,
784 53.419315383,53.4087041967,53.398105577,53.3875194941,53.3769459184,
785 53.3663848205,53.355836171,53.3452999404,53.3347760998,53.3242646199,
786 53.3137654719,53.3032786267,53.2928040557,53.2823417301,53.2718916214,
787 53.261453701,53.2510279406,53.240614312,53.2302127868,53.2198233371,
788 53.2094459348,53.1990805521,53.1887271611,53.1783857341,53.1680562435,
789 53.1577386619,53.1474329617,53.1371391157,53.1268570966,53.1165868773,
790 53.1063284308,53.09608173,53.0858467482,53.0756234586,53.0654118344,
791 53.0552118491,53.0450234762,53.0348466893,53.0246814621,53.0145277683,
792 53.0043855819,52.9942548766,52.9841356267,52.9740278062,52.9639313893,
793 52.9538463503,52.9437726636,52.9337103037,52.9236592451,52.9136194624,
794 52.9035909305,52.8935736241,52.883567518,52.8735725874,52.8635888072,
795 52.8536161525,52.8436545987,52.833704121,52.8237646948,52.8138362956,
796 52.8039188989,52.7940124804,52.7841170158,52.7742324808,52.7643588514,
797 52.7544961035,52.7446442132,52.7348031565,52.7249729097,52.7151534489,
798 52.7053447507,52.6955467913,52.6857595473,52.6759829952,52.6662171118,
799 52.6564618738,52.6467172578,52.636983241,52.6272598001,52.6175469122,
800 52.6078445544,52.598152704,52.5884713381,52.5788004341,52.5691399694,
801 52.5594899214,52.5498502678,52.5402209861,52.5306020539,52.5209934492,
802 52.5113951496,52.5018071332,52.4922293778,52.4826618616,52.4731045626,
803 52.463557459,52.4540205291,52.4444937512,52.4349771037,52.425470565,
804 52.4159741138,52.4064877284,52.3970113878,52.3875450705,52.3780887554,
805 52.3686424213,52.3592060472,52.3497796121,52.340363095,52.3309564751,
806 52.3215597316,52.3121728436,52.3027957907,52.293428552,52.2840711072,
807 52.2747234357,52.2653855171,52.2560573311,52.2467388573,52.2374300756,
808 52.2281309658,52.2188415077,52.2095616814,52.2002914668,52.1910308441,
809 52.1817797934,52.1725382949,52.1633063289,52.1540838757,52.1448709156,
810 52.1356674293,52.1264733971,52.1172887997,52.1081136176,52.0989478315,
811 52.0897914223,52.0806443707,52.0715066576,52.0623782639,52.0532591707,
812 52.0441493588,52.0350488095,52.0259575039,52.0168754232,52.0078025486,
813 51.9987388616,51.9896843435,51.9806389757,51.9716027398,51.9625756172,
814 51.9535575896,51.9445486387,51.9355487462,51.9265578938,51.9175760635,
815 51.908603237,51.8996393962,51.8906845233,51.8817386003,51.8728016091,
816 51.8638735321,51.8549543514,51.8460440492,51.8371426079,51.8282500099,
817 51.8193662375,51.8104912732,51.8016250996,51.7927676992,51.7839190547,
818 51.7750791486,51.7662479639,51.7574254831,51.7486116892,51.7398065651,
819 51.7310100936,51.7222222578,51.7134430406,51.7046724253,51.6959103948,
820 51.6871569323,51.6784120212,51.6696756447,51.660947786,51.6522284287,
821 51.643517556,51.6348151515,51.6261211987,51.6174356812,51.6087585825,
822 51.6000898864,51.5914295766,51.5827776367,51.5741340507,51.5654988023,
823 51.5568718755,51.5482532542,51.5396429225,51.5310408642,51.5224470636,
824 51.5138615047,51.5052841718,51.496715049,51.4881541206,51.4796013709,
825 51.4710567843,51.4625203452,51.453992038,51.4454718472,51.4369597573,
826 51.428455753,51.4199598188,51.4114719394,51.4029920995,51.3945202839,
827 51.3860564773,51.3776006646,51.3691528308,51.3607129606,51.352281039,
828 51.3438570512,51.3354409821,51.3270328167,51.3186325404,51.3102401382,
829 51.3018555953,51.293478897,51.2851100286,51.2767489755,51.268395723,
830 51.2600502566,51.2517125617,51.2433826238,51.2350604285,51.2267459613,
831 51.218439208,51.210140154,51.2018487853,51.1935650874,51.1852890462,
832 51.1770206476,51.1687598773,51.1605067213,51.1522611655,51.1440231959,
833 51.1357927985,51.1275699594,51.1193546647,51.1111469005,51.1029466529,
834 51.0947539083,51.0865686527,51.0783908726,51.0702205543,51.062057684,
835 51.0539022483,51.0457542335,51.0376136261,51.0294804127,51.0213545797,
836 51.0132361137
837 }
838 }
839 };
0 /*
1 * Copyright (C) 2012 Hermann Meyer, Andreas Degert, Pete Shorthose
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 * --------------------------------------------------------------------------
17 */
18
19 Ampf::Ampf()
20 {
21 }
22
23 Ampf::~Ampf()
24 {
25 }
26
27 inline void Ampf::init(uint32_t samplingFreq)
28 {
29 fSamplingFreq = samplingFreq;
30 }
31
32 inline void Ampf::compute(int32_t count, float *input0, float *output0, float value)
33 {
34 double fSlow0 = value * value * 0.01;
35 //double fSlow1 = (fSlow0 * pow(10,(0 - (0.1 * fSlow0))));
36 for (int32_t i=0; i<count; i++)
37 {
38 output0[i] = fSlow0 * input0[i];
39 }
40 }
41
42 void Ampf::connect(uint32_t port,void* data)
43 {
44 switch ((PortIndex)port)
45 {
46 case AMP_MASTERGAIN:
47 break;
48 case AMP_PREGAIN:
49 break;
50 case AMP_WET_DRY:
51 break;
52 case AMP_DRIVE:
53 break;
54 case MID:
55 break;
56 case BASS:
57 break;
58 case TREBLE:
59 break;
60 case CLevel:
61 break;
62 case ALevel:
63 break;
64 case AMP_CONTROL:
65 break;
66 case AMP_NOTIFY:
67 break;
68 case AMP_OUTPUT:
69 break;
70 case AMP_INPUT:
71 break;
72 case AMP_OUTPUT1:
73 break;
74 case AMP_INPUT1:
75 break;
76 }
77 }
78
79 void Ampf::connect_static(uint32_t port,void* data, Ampf *p)
80 {
81 static_cast<Ampf*>(p)->connect(port, data);
82 }
83
84 void Ampf::init_static(uint32_t samplingFreq, Ampf *p)
85 {
86 static_cast<Ampf*>(p)->init(samplingFreq);
87 }
88
0 /*
1 * Copyright (C) 2012 Hermann Meyer, Andreas Degert, Pete Shorthose
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 * --------------------------------------------------------------------------
17 */
18
19 class Ampf
20 {
21 private:
22 int32_t fSamplingFreq;
23 void init(uint32_t samplingFreq);
24 void connect(uint32_t port,void* data);
25
26 public:
27 void compute(int32_t count, float *input0, float *output0, float value);
28 static void connect_static(uint32_t port,void* data, Ampf *p);
29 static void init_static(uint32_t samplingFreq, Ampf *p);
30 Ampf();
31 ~Ampf();
32 };
33
0 /*
1 * Copyright (C) 2012 Hermann Meyer, Andreas Degert, Pete Shorthose
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 * --------------------------------------------------------------------------
17 */
18
19
20 struct CabDesc
21 {
22 int32_t ir_count;
23 uint32_t ir_sr;
24 float ir_data[];
25 };
26
27 template <int32_t tab_size>
28 struct CabDesc_imp
29 {
30 int32_t ir_count;
31 uint32_t ir_sr;
32 float ir_data[tab_size];
33 operator CabDesc&()
34 {
35 return *(CabDesc*)this;
36 }
37 };
38 /**----------------------------- cabinet impulse response data --------------------------------**/
39 CabDesc_imp<192> cab_data_HighGain =
40 {
41 192, 48000,
42 {
43 0.147081, 0.208808, 0.208996, 0.163228, 0.0858905, -0.0119104, -0.0932825, -0.121011, -0.0999426, -0.071073, -0.0403973, -0.00214844, 0.0287018,
44 0.0381079, 0.0372284, 0.0330389, 0.0252979, 0.0141394, 0.00118835, -0.00764709, -0.00751953, 0.00262512, 0.0143475, 0.0174762, 0.0168384, 0.0179126,
45 0.00738525, -0.0114069, -0.0192352, -0.0145825, -0.0179932, -0.0244049, -0.0173956, -0.00357178, 0.00643188, 0.0108966, 0.0132935, 0.0123737, 0.00680786,
46 -0.000214844, -0.0040686, -0.00533752, -0.00738525, -0.00539124, -0.00171875, 0.00156433, 0.00481384, 0.0038739, -0.00666016, -0.018866, -0.0216522, -0.0171606,
47 -0.00717712, 0.00770081, 0.0209003, 0.0251971, 0.0221222, 0.0157977, 0.00453857, -0.0107892, -0.022478, -0.029165, -0.0303467, 0, -0.0169592,
48 -0.00966125, -0.00163147, 0.00273254, 0.000436401, -0.00282654, -0.00791565, -0.0136493, -0.0128436, -0.00564636, 0.00298096, 0.0090033, 0.00841248, 0.00201416,
49 -0.00579407, -0.0119171, -0.0145624, -0.0128436, -0.00741211, 0.000543823, 0.00414917, 0.00414917, 0.00114136, -0.00778809, -0.021377, -0.0325623, -0.0386584,
50 -0.038974, -0.0333679, -0.0221289, -0.0107825, -0.00453186, -0.00127563, -0.000261841, 0.000631104, 0.000537109, 0.000355835, 0.00114136, 0.00174561, 0.00104065,
51 -0.000100708, -0.00128906, -0.00083252, 0.00146362, 0.00234314, 0.000443115, -0.00245056, -0.00782165, -0.0164423, -0.0250092, -0.0309644, -0.0314343, -0.0265063,
52 -0.0176508, -0.00496155, 0.00805664, 0.0157843, 0.0171069, 0.0131055, 0.00613647, -0.00216187, -0.00804321, -0.0117157, 0, -0.015321, -0.0154352,
53 -0.013374, -0.00994995, -0.00672058, -0.00353821, -0.00110779, 0.000678101, 0.00250427, -0.00564636, 0.00298096, 0.0090033, 0.00841248, 0.00201416, -0.00579407,
54 -0.0119171, -0.0145624, -0.0128436, -0.00741211, 0.000543823, 0.00414917, 0.00414917, 0.00114136, -0.00778809, -0.021377, -0.0325623, -0.0386584, -0.038974,
55 -0.0333679, -0.0221289, -0.0107825, -0.00453186, -0.00127563, -0.000261841, 0.000631104, 0.000537109, 0.000355835, 0.00114136, 0.00174561, 0.00104065, -0.000100708,
56 -0.00128906, -0.00083252, 0.00146362, 0.00234314, 0.000443115, -0.00245056, -0.00782165, -0.0164423, -0.0250092, -0.0309644, -0.0314343, -0.0265063, -0.0176508,
57 -0.00496155, 0.00805664, 0.0157843, 0.0171069, 0.0131055, 0.00613647, -0.00216187, -0.00804321, -0.0117157, 0
58 }
59 };
60
61 CabDesc_imp<192> cab_data_AC30 =
62 {
63 192, 48000,
64 {
65 7.32422e-05, 0.00015564, 0.00302429, 0.0057251, 0.00652466, 0.00614014, 0.00662537, 0.00419922, 0.00424194, -0.00379334, -0.00308838, -0.0103577, -0.0165436,
66 -0.0208832, -0.0206482, -0.027774, -0.0240204, -0.0231415, -0.0195801, -0.0178253, -0.015921, -0.0149628, -0.0164642, -0.0195465, -0.0218109, -0.0230652,
67 -0.0246216, -0.0256104, -0.0260925, -0.0210358, -0.0207489, -0.015863, -0.0106201, -0.0106628, -0.00259705, 0.00690613, 0.0146484, 0.026236, 0.0348633,
68 0.0506409, 0.0615387, 0.0747467, 0.0847351, 0.0917419, 0.0999908, 0.0957062, 0.093335, 0.0774262, 0.0564789, 0.0312073, 0.00177002, -0.0296539,
69 -0.047522, -0.0584259, -0.0557098, -0.0279785, 0.00585632, 0.0454926, 0.0777039, 0.0871948, 0.0838074, 0.0664886, 0.039389, 0.0180054, 0.00166931,
70 -0.00537415, 0.00290527, 0.00549622, 0.0210938, 0.0162201, 0.0135376, 0.00706482, 0.00458679, -0.00133667, 0.00446777, 0.00727539, 0.0085144, 0.00765076,
71 0.00744324, 0.00810852, 0.011911, 0.0117432, 0.00995789, 0.0141144, 0.0146301, 0.01651, 0.0221497, 0.0218842, 0.0201477, 0.0221466, 0.0210632,
72 0.0162018, 0.0183746, 0.0163727, 0.0168152, 0.0135895, 0.013208, 0.013208, 0.0101379, 0.0105713, 0.0109039, 0.0103699, 0.00718689, 0.0068634,
73 0.00429993, 0.0033844, 0.00050354, -9.15527e-05, 0.00460815, 0.00307617, 0.00213318, 0.00421143, 0.00546875, 0.00121155, 0.00124817, 0.0053894, 0.00281677,
74 0.0017395, 0.00368652, 0.00334778, 0.00233459, 0.00368347, 0.000366211, 0.00219727, 0.00175476, -0.00145874, 0.0006073, -0.000961304, -0.000509644, 0.00078125,
75 -0.00332336, 0.00331726, 0.000183105, -0.000747681, 0.00293274, -0.000637817, 0.000924683, -0.00149231, -0.00195312, -0.000564575, -0.00177917, 0.000491333, 0.00137024,
76 0.00274353, -0.000256348, 0.0024353, -0.00281372, -0.00131531, -0.00141602, -0.00289307, 0.000964355, 0.00017395, 0.00233765, -0.000726318, -0.000454712, -0.00398254,
77 -0.00518494, 0.000839233, 0.0168152, 0.0135895, 0.013208, 0.013208, 0.0101379, 0.0105713, 0.0109039, 0.0103699, 0.00718689, 0.0068634, 0.00429993,
78 0.0033844, 0.00050354, -9.15527e-05, 0.00460815, 0.00307617, 0.00213318, 0.00421143, 0.00546875, 0.00121155, 0.00124817, 0.0053894, 0.00281677, 0.0017395,
79 0.00368652, 0.00334778, 0.00233459, 0.00368347, 0.000366211, 0.00219727, 0.00175476, -0.00145874, 0.0006073, -0.000961304
80 }
81 };
82
83 CabDesc_imp<511> cab_data_1x15 =
84 {
85 511, 48000,
86 {
87 0.000134277, 0.000299072, 0.000500488, 0.000701904, 0.000897217, 0.00107422, 0.0012207, 0.00134277, 0.00166016, 0.00279541, 0.00596924, 0.0129211, 0.0255066,
88 0.0450439, 0.0717041, 0.103967, 0.138361, 0.169751, 0.192133, 0.199994, 0.189673, 0.160516, 0.115253, 0.0595947, 0.00111084, -0.0523376,
89 -0.09422, -0.120544, -0.130334, -0.125336, -0.109198, -0.0863647, -0.0610535, -0.036554, -0.015033, 0.00230103, 0.0147949, 0.0221741, 0.0244629,
90 0.0220886, 0.015863, 0.00692749, -0.00336914, -0.0137573, -0.0232178, -0.0311218, -0.0372253, -0.041571, -0.0443298, -0.0456299, -0.0454651, -0.0437683,
91 -0.0405396, -0.0360168, -0.0307495, -0.0255127, -0.0211731, -0.018396, -0.0174988, -0.0183716, -0.0206116, -0.0236694, -0.0270508, 0, -0.0337097,
92 -0.0368042, -0.0396301, -0.0419495, -0.0433411, -0.0432739, -0.0412781, -0.0371643, -0.0311523, -0.0238831, -0.016272, -0.00932617, -0.00390625, -0.000634766,
93 0.000219727, -0.00123291, -0.0045166, -0.00890503, -0.013562, -0.0176819, -0.0205872, -0.021814, -0.0211914, -0.0188721, -0.0152954, -0.0111328, -0.00716553,
94 -0.00413818, -0.00258789, -0.00273437, -0.00445557, -0.00733032, -0.0107849, -0.0142944, -0.0174927, -0.0202332, -0.0226074, -0.0248291, -0.027124, -0.0295776,
95 -0.0320679, -0.0342712, -0.0357727, -0.0361938, -0.0352844, -0.0329712, -0.0293701, -0.0247498, -0.0194946, -0.0140198, -0.00877075, -0.00415649, -0.00057373,
96 0.00169678, 0.00249634, 0.00189209, 0.000170898, -0.00219727, -0.0046814, -0.0067749, -0.00814209, -0.0086731, -0.00847778, 0, -0.00687866, -0.00581055,
97 -0.0045227, -0.0027832, -0.000341797, 0.00289307, 0.0067627, 0.0108215, 0.0144226, 0.0168823, 0.017688, 0.0166565, 0.0139832, 0.010199, 0.00598755,
98 0.00205688, -0.0010376, -0.00300293, -0.00379028, -0.00352173, -0.00244141, -0.000805664, 0.00119019, 0.00338745, 0.00569458, 0.00802002, 0.0102478, 0.0122314,
99 0.0138184, 0.0148865, 0.0153687, 0.0152466, 0.014563, 0.0133667, 0.0117493, 0.00982056, 0.00775146, 0.00578003, 0.00420532, 0.003302, 0.00330811,
100 0.00438232, 0.00649414, 0.00944214, 0.0127869, 0.0159607, 0.0184021, 0.0197144, 0.0197632, 0.0186768, 0.0167664, 0.0143921, 0.0118164, 0.00919189,
101 0.00656738, 0.00415039, 0.00236816, 0.00170288, 0.00239258, 0.00419922, 0.00649414, 0.00848999, 0.00963135, 0, 0.00950928, 0.00913696, 0.00916748,
102 0.00994873, 0.0114441, 0.0129517, 0.0133057, 0.0118164, 0.00891113, 0.00587769, 0.00390625, 0.00344238, 0.00426636, 0.00597534, 0.00808716, 0.0100098,
103 0.011261, 0.0118774, 0.0124756, 0.0137451, 0.0159851, 0.0189636, 0.0220642, 0.0245972, 0.0260681, 0.0262634, 0.0252197, 0.0232483, 0.0209595,
104 0.0191345, 0.018335, 0.0185791, 0.0194336, 0.0203552, 0.0208679, 0.0206482, 0.0198303, 0.0189514, 0.0185608, 0.0187256, 0.0190613, 0.0190186,
105 0.0180847, 0.0159729, 0.0129333, 0.00982666, 0.00770264, 0.00709839, 0.00768433, 0.00869141, 0.009552, 0.0102844, 0.0112671, 0.0126709, 0.0141357,
106 0.0149963, 0.0149658, 0.0143555, 0.0136536, 0.0131897, 0.0129456, 0.0123962, 0.01073, 0, 0.003302, -0.00055542, -0.00249023, -0.00183716,
107 0.000653076, 0.00330811, 0.00470581, 0.00438232, 0.00276489, 0.000653076, -0.00116577, -0.00214233, -0.00214233, -0.00164795, -0.00159912, -0.00278931, -0.00516357,
108 -0.0078186, -0.00956421, -0.00946655, -0.00714111, -0.00299683, 0.00181885, 0.00605469, 0.00899658, 0.010614, 0.0112976, 0.0117004, 0.0124268, 0.0136475,
109 0.0148865, 0.0155334, 0.0153259, 0.0143738, 0.0128174, 0.0107178, 0.00843506, 0.00675659, 0.00626831, 0.00688477, 0.00808716, 0.00939941, 0.0105408,
110 0.0111877, 0.0109558, 0.00969238, 0.00762939, 0.00519409, 0.00283203, 0.000946045, -0.000274658, -0.00098877, -0.00159302, -0.00229492, -0.00292969, -0.00309448,
111 -0.00252686, -0.00139771, -0.000219727, 0.000463867, 0.000421143, -0.000146484, -0.000793457, 0, -0.00114136, -0.000982666, -0.000830078, -0.000634766, -0.000286865,
112 0.000250244, 0.00090332, 0.00143433, 0.00161133, 0.00128174, 0.000592041, -0.000128174, -0.000628662, -0.00098877, -0.00145874, -0.00221558, -0.0032898, -0.00459595,
113 -0.00594482, -0.00700684, -0.00742798, -0.0071106, -0.00638428, -0.00586548, -0.00601807, -0.00681152, -0.00780029, -0.00846558, -0.00839844, -0.00752563, -0.00609741,
114 -0.00449829, -0.00308838, -0.00220947, -0.00217285, -0.00292969, -0.0039978, -0.00477905, -0.00494995, -0.0045105, -0.0036377, -0.00254517, -0.00152588, -0.000872803,
115 -0.000720215, -0.000958252, -0.00129395, -0.00142212, -0.00125122, -0.00102539, -0.00112915, -0.00167236, -0.00245972, -0.00327759, -0.00406494, -0.00474854, -0.00515747,
116 -0.00513916, -0.00465698, -0.00377808, -0.00269775, -0.00169678, -0.0010437, 0, -0.00129395, -0.00206299, -0.00284424, -0.00324097, -0.00306396, -0.0024292,
117 -0.00175171, -0.0015686, -0.00222778, -0.00378418, -0.00597534, -0.00823975, -0.00977173, -0.00990601, -0.00860596, -0.00648804, -0.00442505, -0.00300903, -0.0024292,
118 -0.00257568, -0.00314331, -0.00378418, -0.00437622, -0.0050293, -0.00586548, -0.00681763, -0.00765991, -0.0081604, -0.00825195, -0.00813599, -0.00806274, -0.00805664,
119 -0.00791626, -0.00751343, -0.00697632, -0.006604, -0.00667725, -0.00727539, -0.00825195, -0.00933228, -0.0102417, -0.01073, -0.0106934, -0.0101929, -0.00941772,
120 -0.00853272, -0.00772705, -0.00722046, -0.0071167, -0.00734253, -0.00775757, -0.00819702, -0.00848389, -0.0085022, -0.00836792, -0.00825806, -0.00820312, -0.00802002,
121 -0.00759277, -0.00710449, -0.00682373, -0.00691528, -0.00737305, 0, -0.00810547, -0.00736694, -0.00585938, -0.00427246, -0.00317993, -0.00258789, -0.00221558,
122 -0.00192871, -0.00171509, -0.00146484, -0.00110474, -0.000738525, -0.00057373, -0.000805664, -0.0015564, -0.00251465, -0.00287476, -0.00202026, -0.000274658, 0.00140381,
123 0.00223389, 0.00211182, 0.00143433, 0.000683594, 7.93457e-05, -0.000537109, -0.00145874, -0.00272217, -0.00408325, -0.00528564, -0.00620117, -0.00673828, -0.00682373,
124 -0.006427, -0.00548706, -0.0039917, -0.00223999, -0.000958252, -0.000842285, -0.00187988, -0.00343628, -0.00494385, -0.00612793, -0.00692139, -0.00733032, -0.00742798,
125 -0.00737305, -0.00731201, -0.00737305, -0.00758667, -0.00773926, -0.00747681, -0.00657959, -0.0052002, -0.00383911, -0.00291748, -0.00247192, -0.00231934, -0.00227661,
126 -0.00219116, -0.00198364, -0.00184937, -0.0019043
127 }
128 };
129
130 CabDesc_imp<998> cab_data_mesa =
131 {
132 998, 48000,
133 {
134 0.00020752, 0.000354004, 0.000421143, 0.000354004, 0.000213623, 3.05176e-05, 0.00010376, 0.00178223, 0.00993652, 0.0342224, 0.0856934, 0.154669, 0.199994,
135 0.186456, 0.115784, 0.0149719, -0.0793213, -0.134674, -0.144513, -0.121069, -0.0771423, -0.0290222, 0.00469971, 0.0174072, 0.0143616, 0.00430908,
136 -0.00318604, -0.00372925, 0.00308228, 0.014386, 0.0227295, 0.0225159, 0.0127075, -0.000439453, -0.00760498, -0.00966797, -0.0125916, -0.015387, -0.0153625,
137 -0.0173401, -0.0275513, -0.0406067, -0.044635, -0.0366638, -0.0249084, -0.0157288, -0.00880737, -0.00385742, 0.000500488, 0.00552368, 0.0072937, 0.00379639,
138 -0.000646973, -0.00421143, -0.011554, -0.0231873, -0.0317993, -0.0343262, -0.0347473, -0.0345398, -0.0317749, -0.0270691, -0.0201294, 0, 0.00819702,
139 0.0214722, 0.0278442, 0.0240112, 0.010791, -0.00495605, -0.0165405, -0.0211426, -0.0202087, -0.0174377, -0.0157532, -0.0155273, -0.0153198, -0.0130981,
140 -0.00821533, -0.00350952, -0.00205688, -0.00298462, -0.00479736, -0.00900879, -0.0153992, -0.0206055, -0.0214661, -0.0169678, -0.00876465, 0.000488281, 0.00910034,
141 0.0159668, 0.0195923, 0.0187073, 0.0139221, 0.0071228, -0.000280762, -0.00716553, -0.012561, -0.0164307, -0.0199951, -0.0237122, -0.0257385, -0.0239319,
142 -0.0181946, -0.00994263, -0.00133057, 0.00576782, 0.010498, 0.0131409, 0.0147278, 0.0158875, 0.0163879, 0.0148132, 0.00995483, 0.00288696, -0.00346069,
143 -0.00641479, -0.00625, -0.00564575, -0.00671997, -0.00940552, -0.0114258, -0.01026, -0.00533447, 0.00151367, 0.0074646, 0, 0.0127625, 0.0132996,
144 0.0135132, 0.0130554, 0.0112, 0.00772705, 0.00321655, -0.00134888, -0.00551147, -0.00891724, -0.0106873, -0.0100708, -0.00715332, -0.00227051, 0.00411987,
145 0.0107239, 0.016272, 0.0203125, 0.022467, 0.0223083, 0.0198242, 0.0156982, 0.0109863, 0.00653687, 0.00307007, 0.000872803, -0.000744629, -0.00249634,
146 -0.00411987, -0.00512085, -0.00524902, -0.00421753, -0.00172119, 0.00222168, 0.00689087, 0.010907, 0.0132263, 0.0137146, 0.0125244, 0.0100891, 0.00727539,
147 0.00509033, 0.00405273, 0.00396118, 0.0043396, 0.00493164, 0.00542603, 0.00534058, 0.00458984, 0.00357666, 0.00273437, 0.0024231, 0.00309448, 0.00482178,
148 0.00687866, 0.00841064, 0.00910645, 0.00899658, 0.00805054, 0.006427, 0.00455933, 0.00275269, 0.00125732, 0, 0.000964355, 0.00222168, 0.00396729,
149 0.0059021, 0.0078064, 0.009552, 0.0110535, 0.0121948, 0.0128662, 0.0129578, 0.012384, 0.0112732, 0.00984497, 0.00819092, 0.00645752, 0.00488892,
150 0.00383301, 0.00350952, 0.00369263, 0.00373535, 0.0032898, 0.00265503, 0.00245361, 0.00301514, 0.00424194, 0.0057251, 0.00699463, 0.00770874, 0.00772095,
151 0.00706177, 0.00592041, 0.00457764, 0.00320435, 0.00202026, 0.0015625, 0.00206299, 0.00321655, 0.00463257, 0.00596924, 0.00702515, 0.00765381, 0.00772705,
152 0.0072937, 0.00652466, 0.00553589, 0.00446167, 0.0034668, 0.00252686, 0.00158691, 0.000775146, 0.000366211, 0.000671387, 0.00159912, 0.00280151, 0.00404663,
153 0.00512695, 0.00581055, 0.00594482, 0.00556641, 0.00476074, 0.00366211, 0.00255737, 0.00169678, 0, 1.83105e-05, -0.00131226, -0.00247803, -0.00265503,
154 -0.00128174, 0.00134277, 0.00421143, 0.00625, 0.00690918, 0.00640869, 0.00543823, 0.00447388, 0.00372314, 0.00337524, 0.00349121, 0.00390015, 0.00432129,
155 0.00459595, 0.00484009, 0.0052002, 0.00544434, 0.00530396, 0.00480957, 0.00409546, 0.00325317, 0.00251465, 0.00203857, 0.00178833, 0.00170288, 0.00159302,
156 0.000994873, -0.000476074, -0.0026123, -0.00474854, -0.00640259, -0.00733032, -0.00740356, -0.00665894, -0.00523682, -0.00335083, -0.00142822, -6.71387e-05, 0.000408936,
157 0.000183105, -0.0003479, -0.000793457, -0.000964355, -0.000891113, -0.000732422, -0.000738525, -0.000964355, -0.00133057, -0.00180054, -0.00220337, -0.00218506, -0.00158081,
158 -0.000720215, -7.93457e-05, 0.000146484, -6.71387e-05, -0.000610352, -0.00110474, -0.00126953, 0, -0.00128784, -0.0015564, -0.00216064, -0.00307617, -0.00404053,
159 -0.00465088, -0.00470581, -0.00445557, -0.00430298, -0.00430908, -0.00435791, -0.00424805, -0.00397339, -0.00395508, -0.00460815, -0.00584717, -0.00720825, -0.00813599,
160 -0.00832519, -0.00797729, -0.00750732, -0.00708618, -0.00664063, -0.00593872, -0.00474854, -0.0031311, -0.00148315, -0.000238037, 0.000390625, 0.000585938, 0.000726318,
161 0.000933838, 0.000982666, 0.000683594, 0.000134277, -0.000610352, -0.00168457, -0.00303955, -0.00440063, -0.00553589, -0.00634155, -0.00675659, -0.0067749, -0.00652466,
162 -0.00618896, -0.00598755, -0.00613403, -0.00653687, -0.00679932, -0.00665283, -0.00618896, -0.00574951, -0.00565186, -0.00585327, -0.00618286, -0.0065979, -0.0069519,
163 -0.00705566, -0.00687866, -0.0065979, -0.00651245, -0.0067688, -0.00722046, 0, -0.0078064, -0.00776367, -0.00752563, -0.00704346, -0.00639648, -0.00576782,
164 -0.00524292, -0.00474243, -0.0041748, -0.0034729, -0.00264282, -0.00183716, -0.00136108, -0.00144043, -0.00202637, -0.00288086, -0.0036438, -0.00405884, -0.00415649,
165 -0.00408325, -0.00391846, -0.00388184, -0.00430298, -0.00526123, -0.00645142, -0.00740356, -0.00783691, -0.0078186, -0.00752563, -0.0071228, -0.0067749, -0.00652466,
166 -0.00638428, -0.00629883, -0.00604248, -0.00536499, -0.00426025, -0.00298462, -0.00195312, -0.00154419, -0.00193481, -0.00302734, -0.00447388, -0.00574341, -0.00636597,
167 -0.00614014, -0.00529175, -0.00437622, -0.00377197, -0.003479, -0.00327759, -0.00300903, -0.00270386, -0.00245972, -0.00234985, -0.0024353, -0.00270996, -0.00309448,
168 -0.00352173, -0.00393677, -0.00419312, -0.00418701, -0.0039978, 0, -0.00402832, -0.00458374, -0.00532837, -0.005896, -0.00601807, -0.0057312, -0.00526123,
169 -0.00478516, -0.00427246, -0.00363159, -0.00289917, -0.00217896, -0.00143433, -0.000671387, -0.000115967, 4.88281e-05, -0.000170898, -0.000628662, -0.00112305, -0.00148315,
170 -0.00166016, -0.00158691, -0.00130005, -0.0010498, -0.00102539, -0.00118408, -0.00130615, -0.00123901, -0.0010376, -0.000842285, -0.000750732, -0.000866699, -0.00122681,
171 -0.00176392, -0.00228882, -0.00263062, -0.00264893, -0.00224609, -0.00150757, -0.000787353, -0.000402832, -0.00032959, -0.000372314, -0.000372314, -0.000292969, -0.000256348,
172 -0.000335693, -0.000579834, -0.00102539, -0.00154419, -0.00183105, -0.00153809, -0.000518799, 0.000946045, 0.00230713, 0.00316162, 0.00335693, 0.00296631, 0.00222778,
173 0.00140381, 0.000646973, 7.93457e-05, -0.000170898, 0, 0.000274658, 0.000653076, 0.000897217, 0.000958252, 0.000909424, 0.000769043, 0.000439453, -6.71387e-05,
174 -0.000585938, -0.00101318, -0.00117798, -0.00098877, -0.000537109, 7.93457e-05, 0.000738525, 0.00130615, 0.00176392, 0.00203247, 0.0020874, 0.00213623, 0.00238037,
175 0.00283203, 0.00335083, 0.00372314, 0.00384521, 0.00388184, 0.00405884, 0.00445557, 0.0050293, 0.00566406, 0.00620117, 0.00649414, 0.00648804, 0.00636597,
176 0.00634155, 0.00631714, 0.00599976, 0.00523071, 0.00402832, 0.00261841, 0.00146484, 0.000964355, 0.00115967, 0.00184937, 0.00275269, 0.00346069, 0.00374146,
177 0.00368042, 0.00341187, 0.00301514, 0.00268555, 0.00259399, 0.00274658, 0.0031189, 0.00361328, 0.00412598, 0.00467529, 0.00530396, 0.00591431, 0.00632935,
178 0.00639038, 0.00603027, 0.0053772, 0, 0.00407715, 0.00383301, 0.00391846, 0.00430908, 0.00491943, 0.00549927, 0.00586548, 0.00602417, 0.00604858,
179 0.00595703, 0.00576782, 0.00549927, 0.00517578, 0.00482178, 0.00442505, 0.00401001, 0.00368042, 0.00354004, 0.00357666, 0.00366821, 0.00357666, 0.00313721,
180 0.00250244, 0.00204468, 0.00209961, 0.00266724, 0.00348511, 0.00422363, 0.00466309, 0.00472412, 0.00450439, 0.00418701, 0.00392456, 0.00380249, 0.00386353,
181 0.00403442, 0.00414429, 0.00406494, 0.00377197, 0.00343018, 0.00335083, 0.00368042, 0.00422363, 0.00473022, 0.00508423, 0.00529175, 0.00541992, 0.00542603,
182 0.00516357, 0.00466309, 0.00414429, 0.00379639, 0.00368042, 0.00370483, 0.0036377, 0.00335693, 0.00293579, 0.00256958, 0.00245972, 0.00263672, 0.00300903,
183 0.00341797, 0.00365601, 0, 0.00307617, 0.00255127, 0.00218506, 0.00219727, 0.00264893, 0.00332031, 0.00391846, 0.0041687, 0.00391235, 0.003125,
184 0.00195923, 0.000811768, 4.27246e-05, -0.00020752, -1.2207e-05, 0.000360107, 0.000640869, 0.000836182, 0.00111694, 0.00157471, 0.00203857, 0.00219116, 0.00186157,
185 0.00125732, 0.000714111, 0.000439453, 0.000439453, 0.000628662, 0.000939941, 0.00133057, 0.00170288, 0.00184326, 0.00162354, 0.00111084, 0.000567627, 0.000268555,
186 0.000402832, 0.00100708, 0.00194702, 0.00292969, 0.00361328, 0.00385132, 0.00372925, 0.00351562, 0.00337524, 0.00336304, 0.00350952, 0.00374146, 0.00383301,
187 0.00354614, 0.00275879, 0.00159302, 0.000384521, -0.000482178, -0.000805664, -0.000689697, -0.000463867, -0.000354004, -0.000396729, -0.000531006, -0.00057373, -0.000396729,
188 -5.49316e-05, 0, 0.000469971, 0.000543213, 0.000585938, 0.00057373, 0.000549316, 0.000640869, 0.000933838, 0.00141602, 0.00189819, 0.0020752, 0.00189209,
189 0.00155029, 0.00125122, 0.00108643, 0.000970459, 0.000750732, 0.000415039, -2.44141e-05, -0.000592041, -0.00117188, -0.00150146, -0.00147095, -0.0012146, -0.000878906,
190 -0.000488281, -0.00012207, 0, -0.000292969, -0.000915527, -0.00164185, -0.00223389, -0.00253296, -0.00244141, -0.00209351, -0.00177002, -0.00170288, -0.00192261,
191 -0.0022644, -0.00248413, -0.00239868, -0.00198975, -0.00142212, -0.000860596, -0.000415039, -0.000158691, -0.00012207, -0.000256348, -0.000482178, -0.000695801, -0.000848389,
192 -0.000927734, -0.000946045, -0.000939941, -0.0010437, -0.00131836, -0.00169067, -0.00202637, -0.00227051, -0.00241699, -0.00246582, -0.00250244, -0.00266724, -0.00296021,
193 0, -0.00341187, -0.00338745, -0.00332642, -0.00344849, -0.00390015, -0.00459595, -0.00522461, -0.00548096, -0.00523682, -0.0045227, -0.0034668, -0.00231934,
194 -0.00135498, -0.000799561, -0.000775146, -0.00130615, -0.0022522, -0.00331421, -0.00413818, -0.00449829, -0.00435791, -0.00378418, -0.00299072, -0.00223389, -0.00169678,
195 -0.00142822, -0.00144043, -0.00167236, -0.00197754, -0.00217285, -0.00220337, -0.00216064, -0.00215454, -0.00221558, -0.00228882, -0.00228882, -0.00217896, -0.00213623,
196 -0.00233765, -0.00270996, -0.00301514, -0.00308228, -0.00292358, -0.00275269, -0.0027771, -0.00298462, -0.003302, -0.00374756, -0.00420532, -0.00446777, -0.00442505,
197 -0.00404663, -0.0034668, -0.00297852, -0.00267334, -0.00245361, -0.00227051, -0.00206299, -0.00181885, -0.00161133, -0.00145874, -0.00135498, -0.00132446, 0,
198 -0.00187378, -0.00247803, -0.00302734, -0.003302, -0.00321045, -0.00291138, -0.00266724, -0.00250244, -0.00241089, -0.00245972, -0.00256958, -0.00256348, -0.00234985,
199 -0.00192261, -0.00144043, -0.00112305, -0.00112915, -0.00136108, -0.00153809, -0.00159302, -0.00164795, -0.0017395, -0.00180664, -0.00184937, -0.00197754, -0.00223999,
200 -0.00251465, -0.00269165, -0.00288086, -0.00316772, -0.00349121, -0.00375977, -0.00385742, -0.00371094, -0.00339966, -0.00303955, -0.00262451, -0.00217896, -0.00176392,
201 -0.00141602, -0.00116577, -0.00111084, -0.00134888, -0.00174561, -0.0020752, -0.00227661, -0.00241699, -0.00247192, -0.00234985, -0.0020752, -0.00184326, -0.00172119,
202 -0.00158691, -0.0013855, -0.0012085, -0.00117188, -0.00127563, -0.00143433, -0.00153198, -0.00150146, -0.0013855, -0.00123901, -0.00100708, 0, -0.000286865,
203 -1.83105e-05, 2.44141e-05, -9.15527e-05, -0.000158691, 1.2207e-05, 0.000415039, 0.000878906, 0.00119019, 0.00124512, 0.00113525, 0.000933838, 0.000610352, 0.000189209,
204 -0.00020752, -0.000457764, -0.00055542, -0.000561523, -0.000488281, -0.0003479, -0.000152588, 4.88281e-05, 0.000201416, 0.000262451, 0.000250244, 0.000189209, 0.000140381,
205 0.00010376, 7.32422e-05, 4.88281e-05, 6.71387e-05, 0.000146484, 0.000262451, 0.000323486, 0.000262451, 0.000115967, -5.49316e-05, -0.000201416, -0.000244141, -0.000146484,
206 -1.83105e-05, 1.83105e-05, -2.44141e-05, -4.27246e-05, -4.27246e-05, -5.49316e-05, -3.05176e-05, 0.00010376, 0.000335693, 0.000592041, 0.000823975, 0.0010437, 0.00131836,
207 0.00168457, 0.0020874, 0.00249634, 0.00282593, 0.00292358, 0.0027771, 0.00250854, 0.00221558, 0.00195923, 0.00170288, 0, 0.000933838, 0.000415039,
208 -1.83105e-05, -0.000213623, -0.000146484, 0.00012207, 0.000463867, 0.000720215, 0.000805664, 0.000756836, 0.00065918, 0.000561523, 0.000506592, 0.000500488, 0.00055542,
209 0.000683594, 0.000848389, 0.00103149, 0.0012207, 0.00142212, 0.00163574, 0.0019104, 0.00223389, 0.00251465, 0.00263062, 0.00249634, 0.00221558, 0.00200806,
210 0.00203247, 0.00227051, 0.00252686, 0.00252686, 0.00219116, 0.00170898, 0.00132446, 0.00119019, 0.00130615, 0.00154419
211 }
212 };
213
214 CabDesc_imp<192> contrast_ir_desc =
215 {
216 192, 48000,
217 {
218 0.147081, 0.208808, 0.208996, 0.163228, 0.0858905, -0.0119104, -0.0932825, -0.121011, -0.0999426, -0.071073, -0.0403973, -0.00214844, 0.0287018,
219 0.0381079, 0.0372284, 0.0330389, 0.0252979, 0.0141394, 0.00118835, -0.00764709, -0.00751953, 0.00262512, 0.0143475, 0.0174762, 0.0168384, 0.0179126,
220 0.00738525, -0.0114069, -0.0192352, -0.0145825, -0.0179932, -0.0244049, -0.0173956, -0.00357178, 0.00643188, 0.0108966, 0.0132935, 0.0123737, 0.00680786,
221 -0.000214844, -0.0040686, -0.00533752, -0.00738525, -0.00539124, -0.00171875, 0.00156433, 0.00481384, 0.0038739, -0.00666016, -0.018866, -0.0216522, -0.0171606,
222 -0.00717712, 0.00770081, 0.0209003, 0.0251971, 0.0221222, 0.0157977, 0.00453857, -0.0107892, -0.022478, -0.029165, -0.0303467, 0, -0.0169592,
223 -0.00966125, -0.00163147, 0.00273254, 0.000436401, -0.00282654, -0.00791565, -0.0136493, -0.0128436, -0.00564636, 0.00298096, 0.0090033, 0.00841248, 0.00201416,
224 -0.00579407, -0.0119171, -0.0145624, -0.0128436, -0.00741211, 0.000543823, 0.00414917, 0.00414917, 0.00114136, -0.00778809, -0.021377, -0.0325623, -0.0386584,
225 -0.038974, -0.0333679, -0.0221289, -0.0107825, -0.00453186, -0.00127563, -0.000261841, 0.000631104, 0.000537109, 0.000355835, 0.00114136, 0.00174561, 0.00104065,
226 -0.000100708, -0.00128906, -0.00083252, 0.00146362, 0.00234314, 0.000443115, -0.00245056, -0.00782165, -0.0164423, -0.0250092, -0.0309644, -0.0314343, -0.0265063,
227 -0.0176508, -0.00496155, 0.00805664, 0.0157843, 0.0171069, 0.0131055, 0.00613647, -0.00216187, -0.00804321, -0.0117157, 0, -0.015321, -0.0154352,
228 -0.013374, -0.00994995, -0.00672058, -0.00353821, -0.00110779, 0.000678101, 0.00250427, -0.00564636, 0.00298096, 0.0090033, 0.00841248, 0.00201416, -0.00579407,
229 -0.0119171, -0.0145624, -0.0128436, -0.00741211, 0.000543823, 0.00414917, 0.00414917, 0.00114136, -0.00778809, -0.021377, -0.0325623, -0.0386584, -0.038974,
230 -0.0333679, -0.0221289, -0.0107825, -0.00453186, -0.00127563, -0.000261841, 0.000631104, 0.000537109, 0.000355835, 0.00114136, 0.00174561, 0.00104065, -0.000100708,
231 -0.00128906, -0.00083252, 0.00146362, 0.00234314, 0.000443115, -0.00245056, -0.00782165, -0.0164423, -0.0250092, -0.0309644, -0.0314343, -0.0265063, -0.0176508,
232 -0.00496155, 0.00805664, 0.0157843, 0.0171069, 0.0131055, 0.00613647, -0.00216187, -0.00804321, -0.0117157, 0
233 }
234 };
235
236 CabDesc_imp<1000> cab_data_4x12 =
237 {
238 1000, 48000,
239 {
240 0.0210554,0.0750885,0.139243,0.180713,0.184139,0.144903,0.0686037,-0.0185033,-0.0886042,-0.12552,
241 -0.121363,-0.0787852,-0.0213013,0.0229356,0.0411458,0.0370145,0.0195269,-0.00133213,-0.0152812,-0.0145159,
242 -0.00183383,0.0137818,0.0256187,0.0286779,0.0207782,0.0077942,-0.00120299,-0.0031918,-0.00206098,-0.00135227,
243 -0.00140983,-0.00497816,-0.0130377,-0.0218103,-0.0277226,-0.0286464,-0.0215221,-0.00951618,-0.00086607,0.0013951,
244 4.17435e-05,-0.00319773,-0.00740044,-0.00716618,-0.00255126,0.00219789,0.00519503,0.00521192,0.000273707,-0.00618929,
245 -0.00908,-0.010311,-0.0123735,-0.0142287,-0.017697,-0.0241029,-0.0284137,-0.0277091,-0.0227469,-0.0152625,
246 -0.00519387,0.00359817,0.00729039,0.00671523,0.00318916,-0.00156796,-0.0063908,-0.00976712,-0.0129904,-0.017544,
247 -0.022616,-0.0259348,-0.0261542,-0.0244839,-0.0203182,-0.0130093,-0.00603727,-0.0032797,-0.00488236,-0.00846209,
248 -0.0130562,-0.0172578,-0.019061,-0.0178728,-0.0150705,-0.0105603,-0.00434051,0.000776129,0.00313197,0.00289589,
249 0.00099021,-0.00304687,-0.00856731,-0.0134404,-0.0173033,-0.019982,-0.0200995,-0.0189035,-0.0176908,-0.0158077,
250 -0.0144982,-0.0144288,-0.0148401,-0.0143923,-0.0124568,-0.00914924,-0.00554664,-0.00161911,0.00204186,0.00466298,
251 0.00609433,0.00586043,0.00444049,0.00230369,-0.000460247,-0.00331487,-0.00620476,-0.00860464,-0.00977339,-0.0103904,
252 -0.010582,-0.010316,-0.00959965,-0.0079265,-0.00490751,-0.000773675,0.00326292,0.0060596,0.00712823,0.0062126,
253 0.00304346,-0.00120159,-0.00554078,-0.00940086,-0.0116814,-0.0115473,-0.00920741,-0.00570695,-0.00192381,0.00131636,
254 0.00313601,0.00310522,0.0019866,0.00024603,-0.00151895,-0.00254442,-0.00257635,-0.00162088,0.000189493,0.00233523,
255 0.00431406,0.00546426,0.00550678,0.00412306,0.00163322,-0.00135299,-0.00397516,-0.00564887,-0.00616138,-0.00556616,
256 -0.00411866,-0.00213908,-0.000414186,0.000858571,0.00146968,0.00134177,0.000706731,0.000101598,-2.74503e-05,0.000216126,
257 0.000921334,0.00170689,0.00206986,0.00178904,0.00108999,0.000418435,-0.000329494,-0.00108679,-0.00160318,-0.00186207,
258 -0.00184908,-0.00174925,-0.0017532,-0.00168678,-0.00128635,-0.000532894,0.000551346,0.00173037,0.00285549,0.00381329,
259 0.00444954,0.00483888,0.00505528,0.00517976,0.00536394,0.00566848,0.00582878,0.00582337,0.00573454,0.00568407,
260 0.005573,0.00543545,0.00536728,0.00536814,0.00553587,0.00596405,0.00663779,0.00725726,0.00749624,0.00707181,
261 0.00588561,0.00408059,0.00192134,3.47446e-05,-0.00100598,-0.000915017,4.2448e-05,0.00134795,0.00249509,0.00322568,
262 0.0035816,0.00386374,0.00451921,0.00540239,0.0062616,0.00694728,0.0072783,0.00703991,0.00629145,0.00535576,
263 0.00433242,0.0032916,0.00256128,0.00234155,0.00256369,0.00301814,0.00356167,0.00389767,0.00377937,0.00333664,
264 0.00305993,0.00308825,0.00323129,0.00347644,0.00368722,0.00369027,0.0035434,0.0033256,0.00313601,0.00318107,
265 0.00358381,0.00415188,0.00472327,0.00508203,0.00512893,0.00469563,0.00385072,0.00285837,0.00193384,0.0011745,
266 0.000625585,0.000444931,0.000447908,0.000509171,0.000766472,0.00131361,0.00198278,0.00252006,0.00288339,0.00305278,
267 0.00301612,0.00284385,0.0027595,0.0028841,0.00307673,0.00335143,0.00374592,0.00420453,0.00472283,0.00537605,
268 0.00605867,0.00667969,0.0071488,0.00726939,0.00694415,0.00626471,0.00550721,0.0049613,0.00471663,0.00477505,
269 0.00498066,0.00516581,0.00520946,0.00505574,0.00483425,0.00468391,0.00466834,0.00471656,0.00470018,0.00453961,
270 0.0042108,0.00375276,0.00315533,0.00236797,0.00148797,0.000770994,0.000356717,0.000263414,0.000411073,0.00065758,
271 0.000956942,0.00116598,0.00118259,0.0010794,0.00090411,0.000730068,0.000713639,0.00101561,0.00158903,0.0022272,
272 0.00269874,0.00283804,0.00266545,0.00230882,0.00195122,0.00177202,0.0018221,0.00198835,0.00219707,0.0024585,
273 0.00262623,0.00258478,0.00247114,0.00236725,0.00229178,0.00227378,0.00223327,0.0020942,0.0018775,0.00165049,
274 0.00145125,0.0013392,0.00133322,0.0013771,0.00146459,0.00154074,0.00148781,0.00131534,0.00115589,0.00110735,
275 0.00111562,0.00117102,0.0011977,0.00112514,0.000940195,0.000626312,0.000241008,-0.000110301,-0.000294454,-0.00026455,
276 -3.9153e-05,0.000364625,0.000848391,0.00124397,0.00133727,0.00111349,0.00081935,0.000737272,0.000979052,0.00152794,
277 0.00229764,0.00300549,0.00349459,0.00378848,0.00383738,0.00362037,0.00319689,0.00261696,0.00202673,0.00153753,
278 0.0010692,0.000529509,-3.48582e-05,-0.000518806,-0.000836461,-0.000893089,-0.000683757,-0.00041539,-0.000240531,-0.000199855,
279 -0.00040037,-0.000829803,-0.00130214,-0.00175941,-0.00214005,-0.00239538,-0.00255126,-0.00260319,-0.00258167,-0.00258312,
280 -0.00261625,-0.00257821,-0.00243703,-0.00224874,-0.002035,-0.0018443,-0.00177327,-0.00182376,-0.00196122,-0.00222559,
281 -0.00246046,-0.0023872,-0.00200267,-0.00146368,-0.000895475,-0.000426638,-0.000116391,8.54413e-05,0.000229487,0.000434546,
282 0.000783401,0.00125185,0.00170428,0.00195945,0.00191818,0.00165093,0.0013,0.000928947,0.00048422,-4.45158e-05,
283 -0.000552028,-0.000942422,-0.00123235,-0.00149559,-0.00177645,-0.00204586,-0.00228739,-0.00245312,-0.00249216,-0.00238563,
284 -0.00216864,-0.00195288,-0.00184076,-0.0018401,-0.00190445,-0.00195077,-0.0018578,-0.00162677,-0.00132209,-0.00103643,
285 -0.000946898,-0.00112221,-0.00150406,-0.00195615,-0.00229437,-0.00239499,-0.00218277,-0.0017268,-0.00124285,-0.00091104,
286 -0.000849391,-0.00104366,-0.00129184,-0.00138022,-0.00126944,-0.00107845,-0.000937854,-0.000922902,-0.00107965,-0.00139665,
287 -0.00174952,-0.00198203,-0.00202984,-0.00187962,-0.0015708,-0.00124176,-0.00109158,-0.00130834,-0.0019349,-0.00284735,
288 -0.00377169,-0.00432535,-0.00427272,-0.00367104,-0.00275803,-0.00184037,-0.00124326,-0.00112073,-0.00138117,-0.00175739,
289 -0.00199908,-0.00197451,-0.00163986,-0.00107954,-0.000508739,-0.000136274,-2.69049e-05,-0.000195924,-0.000604997,-0.00107277,
290 -0.00139074,-0.00147588,-0.00138458,-0.00119441,-0.00105561,-0.00112623,-0.00139983,-0.00174871,-0.00207738,-0.00232496,
291 -0.00235838,-0.00213469,-0.00182601,-0.00162957,-0.00156907,-0.00164833,-0.00185294,-0.00208449,-0.002181,-0.00207736,
292 -0.00181851,-0.00145291,-0.00105886,-0.000777402,-0.000693301,-0.000780538,-0.000966736,-0.00110846,-0.00100441,-0.000639605,
293 -0.000167997,0.000278684,0.000595589,0.000718707,0.000677736,0.000535644,0.000359331,0.000214058,0.000116118,-2.04741e-05,
294 -0.000248734,-0.000545983,-0.00088025,-0.00122061,-0.0015376,-0.00175523,-0.00175457,-0.00148886,-0.00107979,-0.000750293,
295 -0.000715752,-0.00112187,-0.0019394,-0.0029335,-0.00377016,-0.00421975,-0.00417837,-0.00370331,-0.00304405,-0.00245053,
296 -0.00210699,-0.00207797,-0.0022711,-0.00249086,-0.00253708,-0.00230403,-0.00181831,-0.00124433,-0.000780152,-0.000599361,
297 -0.00073175,-0.00104361,-0.00127435,-0.00119859,-0.000762859,-8.26917e-05,0.000629675,0.00112308,0.00126592,0.0011715,
298 0.00103854,0.000983915,0.00102964,0.00109781,0.00111035,0.000980961,0.000642923,0.000128366,-0.000457361,-0.000965123,
299 -0.00129109,-0.00143212,-0.00144318,-0.0014024,-0.00139796,-0.00148234,-0.00166874,-0.00191579,-0.00211699,-0.00215912,
300 -0.0020502,-0.00183696,-0.00155674,-0.00122281,-0.000867206,-0.000589227,-0.000474017,-0.000498718,-0.000541393,-0.000489083,
301 -0.000283456,6.39901e-05,0.000442908,0.000769699,0.000966486,0.000987869,0.000807193,0.000472449,6.91029e-05,-0.000300749,
302 -0.000520124,-0.000506989,-0.000277707,-7.49884e-07,0.000197924,0.000303067,0.000322268,0.000290614,0.000293023,0.000353695,
303 0.000410527,0.000420457,0.000342197,0.000133297,-0.000165088,-0.000453839,-0.000679258,-0.000834689,-0.000952602,-0.00110901,
304 -0.00138581,-0.00176734,-0.00213167,-0.00235534,-0.00238038,-0.0022105,-0.0018848,-0.00142392,-0.000878386,-0.000337561,
305 0.000124526,0.000442113,0.000576183,0.000579069,0.000590295,0.000704595,0.000887021,0.00101477,0.0010045,0.000847664,
306 0.000575138,0.000306771,0.000121299,3.08588e-05,9.36218e-06,-8.68729e-05,-0.000309611,-0.000568184,-0.000781879,-0.00090086,
307 -0.000816373,-0.000530804,-0.00015868,0.000212172,0.000470813,0.000541848,0.000420117,0.000213262,5.74002e-05,5.44461e-05,
308 0.000231169,0.000503149,0.000735295,0.000831939,0.000801057,0.00070564,0.000658602,0.000765108,0.00102202,0.00132866,
309 0.00158623,0.00171223,0.00161877,0.00138119,0.00109374,0.000773789,0.000429865,0.000119368,-0.000121345,-0.000232623,
310 -0.000125412,0.000170474,0.000515011,0.000714866,0.000659852,0.000381759,2.34736e-05,-0.000255279,-0.000353581,-0.00027348,
311 -8.40097e-05,0.000180108,0.000442772,0.000595703,0.00059443,0.000443181,0.00020006,-4.72427e-05,-0.000237849,-0.000336152,
312 -0.000260891,-1.77245e-06,0.000308816,0.000549233,0.000726773,0.000843596,0.000880568,0.000881363,0.000886135,0.000917471,
313 0.000981234,0.00105438,0.00110092,0.0011346,0.00116191,0.00120611,0.00130918,0.00150924,0.00173518,0.00188839,
314 0.0019312,0.00182619,0.00154596,0.00111546,0.000674054,0.000338175,0.000137615,6.37174e-05,9.953e-05,0.000188198,
315 0.000251211,0.000265322,0.000236736,0.000180904,0.000111483,2.96318e-05,-4.73336e-05,-8.53731e-05,-1.88834e-05,0.000190425,
316 0.000533576,0.000938581,0.00131834,0.00155549,0.00158925,0.00148725,0.0013572,0.00129875,0.00134022,0.00146789,
317 0.00163836,0.00174532,0.00169876,0.00147691,0.00111449,0.000735204,0.000492014,0.000435092,0.000515761,0.000663783,
318 0.000799262,0.00084905,0.000801557,0.000690779,0.000557527,0.000428524,0.000314815,0.00019497,5.04922e-05,-0.000104847,
319 -0.000234282,-0.000318564,-0.000372079,-0.000385258,-0.00035599,-0.0003227,-0.000303067,-0.000293341,-0.000320655,-0.000354127,
320 -0.000328881,-0.000232259,-0.000107938,1.18163e-05,0.000143091,0.000270049,0.000361626,0.000452498,0.00056314,0.000661147,
321 0.000724365,0.000744134,0.000727273,0.00072107,0.000736863,0.000779379,0.000855094,0.000962941,0.00110471,0.00125183,
322 0.001321,0.00125508,0.00107511,0.000815532,0.000494719,0.000180608,-4.70381e-05,-0.000147682,-0.000113164,2.06559e-05,
323 0.000179654,0.000301226,0.00036008,0.000352877,0.000314178,0.000264527,0.000197424,0.000127707,7.75789e-05,3.03816e-05,
324 -4.49248e-05,-0.000123981,-0.000188198,-0.000230032,-0.000205332,-9.22811e-05,8.61003e-05,0.000310111,0.000546188,0.00074752,
325 0.000886044,0.000967781,0.000983915,0.000906905,0.000743066,0.000538462,0.000377373,0.000343151,0.000430569,0.000540598,
326 0.000564958,0.000431751,0.000133502,-0.000251643,-0.000614836,-0.000844801,-0.00086966,-0.000704595,-0.000452021,-0.000232532,
327 -0.00011021,-9.40536e-05,-0.000144818,-0.000166747,-0.000102916,5.03785e-05,0.000256278,0.000434682,0.000496309,0.000419026,
328 0.000240804,4.47203e-05,-9.02133e-05,-0.000122117,-6.04452e-05,1.82926e-05,5.15602e-05,1.39297e-05,-0.00012089,-0.00033004,
329 -0.000557345,-0.000726751,-0.000759268,-0.000650285,-0.000450657,-0.00021608,3.68579e-05,0.000297704,0.000538644,0.000710049,
330 0.00077363,0.000723092,0.000614791,0.000532167,0.000514057,0.00058116,0.000682076,0.00072566,0.000673282,0.000508217,
331 0.000270299,6.37401e-05,-5.79001e-05,-0.000104257,-9.17585e-05,-6.15359e-05,-5.7741e-05,-7.34204e-05,-8.94407e-05,-0.000104779,
332 -0.00013891,-0.000166588,-0.000132638,-2.27237e-05,0.000174609,0.00045193,0.00072032,0.000864434,0.000871569,0.000768994,
333 0.00059284,0.00041948,0.000294795,0.000222579,0.000194515,0.000144409,-1.60202e-05,-0.000275753,-0.000566662,-0.00085005,
334 -0.00107913,-0.00119302,-0.00120593,-0.00115421,-0.00108797,-0.00107377,-0.00112567,-0.00117748,-0.00117754,-0.00112203,
335 -0.00103152,-0.000931128,-0.000873637,-0.000869274,-0.000861684,-0.000822599,-0.000761041,-0.000649717,-0.000460974,-0.000247598,
336 -6.14223e-05,9.10313e-05,0.000194265,0.000208968,0.000170814,0.000139069,0.000142114,0.000191107,0.000249529,0.000275162,
337 0.000279048,0.000277048,0.000268231,0.000283933,0.000336425,0.000397711,0.000432933,0.0004093,0.00032804,0.000203196,
338 6.06951e-05,-4.35841e-05,-8.5464e-05,-7.4602e-05,-3.88122e-05,-4.04483e-05,-0.000130343,-0.00030134,-0.000497514,-0.000679258,
339 -0.000815623,-0.000864775,-0.000821327,-0.000721615,-0.000589863,-0.000465223,-0.000387599,-0.000366648,-0.000385849,-0.000436
340 }
341 };
0 /*
1 * Copyright (C) 2012 Hermann Meyer, Andreas Degert, Pete Shorthose
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 * --------------------------------------------------------------------------
17 */
18
19
20 inline void GxAmpMono::clear_state_f()
21 {
22 for (int32_t i=0; i<2; i++) fRec0[i] = 0;
23 for (int32_t i=0; i<2; i++) fRec7[i] = 0;
24 for (int32_t i=0; i<2; i++) fRec18[i] = 0;
25 for (int32_t i=0; i<3; i++) fRec17[i] = 0;
26 for (int32_t i=0; i<2; i++) fVec0[i] = 0;
27 for (int32_t i=0; i<2; i++) fRec16[i] = 0;
28 for (int32_t i=0; i<2; i++) fRec15[i] = 0;
29 for (int32_t i=0; i<3; i++) fRec14[i] = 0;
30 for (int32_t i=0; i<2; i++) fVec1[i] = 0;
31 for (int32_t i=0; i<2; i++) fRec13[i] = 0;
32 for (int32_t i=0; i<3; i++) fRec12[i] = 0;
33 for (int32_t i=0; i<3; i++) fRec11[i] = 0;
34 for (int32_t i=0; i<2; i++) fRec22[i] = 0;
35 for (int32_t i=0; i<3; i++) fRec21[i] = 0;
36 for (int32_t i=0; i<2; i++) fVec2[i] = 0;
37 for (int32_t i=0; i<2; i++) fRec20[i] = 0;
38 for (int32_t i=0; i<3; i++) fRec19[i] = 0;
39 for (int32_t i=0; i<2; i++) fRec26[i] = 0;
40 for (int32_t i=0; i<3; i++) fRec25[i] = 0;
41 for (int32_t i=0; i<3; i++) fRec24[i] = 0;
42 for (int32_t i=0; i<3; i++) fRec23[i] = 0;
43 for (int32_t i=0; i<2; i++) fRec28[i] = 0;
44 for (int32_t i=0; i<3; i++) fRec27[i] = 0;
45 for (int32_t i=0; i<2; i++) fVec3[i] = 0;
46 for (int32_t i=0; i<2; i++) fRec10[i] = 0;
47 for (int32_t i=0; i<2; i++) fRec29[i] = 0;
48 for (int32_t i=0; i<3; i++) fRec9[i] = 0;
49 for (int32_t i=0; i<2; i++) fRec8[i] = 0;
50 for (int32_t i=0; i<2; i++) fVec4[i] = 0;
51 for (int32_t i=0; i<2; i++) fRec6[i] = 0;
52 for (int32_t i=0; i<2; i++) fRec30[i] = 0;
53 for (int32_t i=0; i<3; i++) fRec5[i] = 0;
54 for (int32_t i=0; i<2; i++) fRec4[i] = 0;
55 for (int32_t i=0; i<2; i++) fVec5[i] = 0;
56 for (int32_t i=0; i<2; i++) fRec3[i] = 0;
57 for (int32_t i=0; i<2; i++) fRec31[i] = 0;
58 for (int32_t i=0; i<3; i++) fRec2[i] = 0;
59 for (int32_t i=0; i<2; i++) fRec1[i] = 0;
60 }
61
62 inline void GxAmpMono::init(uint32_t samplingFreq)
63 {
64
65 fSamplingFreq = samplingFreq;
66 fslider0 = 0;
67 iConst0 = min(192000, max(1, fSamplingFreq));
68 fConst1 = (1.0 / tan((97.38937226128358 / iConst0)));
69 fConst2 = (1 + fConst1);
70 fConst3 = (0 - ((1 - fConst1) / fConst2));
71 fConst4 = (1.0 / tan((20517.741620594938 / iConst0)));
72 fConst5 = (1 + fConst4);
73 fConst6 = (0 - ((1 - fConst4) / fConst5));
74 fConst7 = tan((942.4777960769379 / iConst0));
75 fConst8 = (1.0 / faustpower<2>(fConst7));
76 fConst9 = (2 * (1 - fConst8));
77 fConst10 = (1.0 / fConst7);
78 fConst11 = (1 + ((fConst10 - 1.0) / fConst7));
79 fConst12 = (1.0 / (1 + ((1.0 + fConst10) / fConst7)));
80 fConst13 = tan((3769.9111843077517 / iConst0));
81 fConst14 = (1.0 / faustpower<2>(fConst13));
82 fConst15 = (2 * (1 - fConst14));
83 fConst16 = (1.0 / fConst13);
84 fConst17 = (1 + ((fConst16 - 1.0000000000000004) / fConst13));
85 fConst18 = (1 + ((fConst16 + 1.0000000000000004) / fConst13));
86 fConst19 = (1.0 / fConst18);
87 fConst20 = (1 + fConst16);
88 fConst21 = (0 - ((1 - fConst16) / fConst20));
89 fConst22 = tan((10053.096491487338 / iConst0));
90 fConst23 = (1.0 / faustpower<2>(fConst22));
91 fConst24 = (2 * (1 - fConst23));
92 fConst25 = (1.0 / fConst22);
93 fConst26 = (1 + ((fConst25 - 1.0000000000000004) / fConst22));
94 fConst27 = (1 + ((1.0000000000000004 + fConst25) / fConst22));
95 fConst28 = (1.0 / fConst27);
96 fConst29 = (1 + fConst25);
97 fConst30 = (0 - ((1 - fConst25) / fConst29));
98 fConst31 = tan((47123.8898038469 / iConst0));
99 fConst32 = (2 * (1 - (1.0 / faustpower<2>(fConst31))));
100 fConst33 = (1.0 / fConst31);
101 fConst34 = (1 + ((fConst33 - 1.414213562373095) / fConst31));
102 fConst35 = (1 + ((1.414213562373095 + fConst33) / fConst31));
103 fConst36 = (1.0 / fConst35);
104 fConst37 = (0 - fConst1);
105 fConst38 = (1.0 / (fConst2 * fConst35));
106 fConst39 = (1.0 / fConst29);
107 fConst40 = (0 - fConst16);
108 fConst41 = (1.0 / (fConst20 * fConst27));
109 fConst42 = (2 * (0 - fConst14));
110 fConst43 = (1 + ((fConst10 - 1.0000000000000004) / fConst7));
111 fConst44 = (1.0 / (1 + ((fConst10 + 1.0000000000000004) / fConst7)));
112 fConst45 = (1 + fConst10);
113 fConst46 = (0 - ((1 - fConst10) / fConst45));
114 fConst47 = (0 - fConst10);
115 fConst48 = (1.0 / (fConst45 * fConst18));
116 fConst49 = (2 * (0 - fConst8));
117 fConst50 = (1 + ((fConst16 - 1.0) / fConst13));
118 fConst51 = (1.0 / (1 + ((1.0 + fConst16) / fConst13)));
119 fConst52 = (0 - fConst25);
120 fConst53 = (2 * (0 - fConst23));
121 fConst54 = (1.0 / fConst5);
122 fConst55 = (1.0 / tan((270.1769682087222 / iConst0)));
123 fConst56 = (1 + fConst55);
124 fConst57 = (0 - ((1 - fConst55) / fConst56));
125 fConst58 = (0.027 / fConst56);
126 fConst59 = (0.025 / fConst2);
127 fConst60 = (1.0 / tan((414.6902302738527 / iConst0)));
128 fConst61 = (1 + fConst60);
129 fConst62 = (0 - ((1 - fConst60) / fConst61));
130 fConst63 = (0.015 / fConst61);
131 fConst64 = (1.0 / tan((609.4689747964198 / iConst0)));
132 fConst65 = (1 + fConst64);
133 fConst66 = (0 - ((1 - fConst64) / fConst65));
134 fConst67 = (0.0082 / fConst65);
135 clear_state_f();
136 }
137
138 void GxAmpMono::connect(uint32_t port,void* data)
139 {
140 switch ((PortIndex)port)
141 {
142 case AMP_MASTERGAIN:
143 fslider0_ = (float*)data;
144 break;
145 case AMP_PREGAIN:
146 fslider1_ = (float*)data;
147 break;
148 case AMP_WET_DRY:
149 fslider2_ = (float*)data;
150 break;
151 case AMP_DRIVE:
152 fslider3_ = (float*)data;
153 break;
154 case MID:
155 break;
156 case BASS:
157 break;
158 case TREBLE:
159 break;
160 case CLevel:
161 break;
162 case ALevel:
163 break;
164 case AMP_CONTROL:
165 break;
166 case AMP_NOTIFY:
167 break;
168 case AMP_OUTPUT:
169 break;
170 case AMP_INPUT:
171 break;
172 case AMP_OUTPUT1:
173 break;
174 case AMP_INPUT1:
175 break;
176 }
177 }
178
179 void GxAmpMono::run_12ax7(uint32_t n_samples, float* input, float* output)
180 {
181 fslider0 = (*fslider0_);
182 fslider1 = (*fslider1_);
183 fslider2 = (*fslider2_);
184 fslider3 = (*fslider3_);
185 double fSlow0 = (0.0010000000000000009 * pow(10,(0.05 * fslider0)));
186 double fSlow1 = (0.0010000000000000009 * pow(10,(0.05 * fslider1)));
187 double fSlow2 = (1.000000000000001e-05 * fslider2);
188 double fSlow3 = fslider3;
189 double fSlow4 = pow(1e+01,(1.2 * fSlow3));
190 double fSlow5 = (fConst44 * pow(1e+01,(2 * fSlow3)));
191 double fSlow6 = pow(1e+01,(0.8 * fSlow3));
192 double fSlow7 = (fConst44 * pow(1e+01,(0.9 * fSlow3)));
193 double fSlow8 = (2 * (fSlow3 - 0.5));
194 double fSlow9 = (1 - max(0, (0 - fSlow8)));
195 double fSlow10 = (1.25 * fSlow3);
196 double fSlow11 = (1 - max(0, fSlow8));
197 for (uint32_t i=0; i<n_samples; i++)
198 {
199 fRec0[0] = (fSlow0 + (0.999 * fRec0[1]));
200 fRec7[0] = (fSlow1 + (0.999 * fRec7[1]));
201 double fTemp0 = (fConst9 * fRec11[1]);
202 fRec18[0] = (fSlow2 + (0.999 * fRec18[1]));
203 double fTemp1 = (double)input[i];
204 fRec17[0] = ((fTemp1 * fRec18[0]) - (fConst36 * ((fConst34 * fRec17[2]) + (fConst32 * fRec17[1]))));
205 double fTemp2 = (fRec17[2] + (fRec17[0] + (2 * fRec17[1])));
206 fVec0[0] = fTemp2;
207 fRec16[0] = ((fConst38 * ((fConst37 * fVec0[1]) + (fConst1 * fVec0[0]))) + (fConst3 * fRec16[1]));
208 fRec15[0] = ((fConst39 * (fRec16[0] + fRec16[1])) + (fConst30 * fRec15[1]));
209 fRec14[0] = (fRec15[0] - (fConst28 * ((fConst26 * fRec14[2]) + (fConst24 * fRec14[1]))));
210 double fTemp3 = (fRec14[2] + (fRec14[0] + (2 * fRec14[1])));
211 fVec1[0] = fTemp3;
212 fRec13[0] = ((fConst41 * ((fConst40 * fVec1[1]) + (fConst16 * fVec1[0]))) + (fConst21 * fRec13[1]));
213 fRec12[0] = (fRec13[0] - (fConst19 * ((fConst17 * fRec12[2]) + (fConst15 * fRec12[1]))));
214 fRec11[0] = ((fConst19 * (((fConst14 * fRec12[0]) + (fConst42 * fRec12[1])) + (fConst14 * fRec12[2]))) - (fConst12 * ((fConst11 * fRec11[2]) + fTemp0)));
215 double fTemp4 = max(-1, min(1, (fSlow4 * (fRec11[2] + (fConst12 * (fTemp0 + (fConst11 * fRec11[0])))))));
216 fRec22[0] = ((fConst41 * (fVec1[0] + fVec1[1])) + (fConst21 * fRec22[1]));
217 fRec21[0] = (fRec22[0] - (fConst19 * ((fConst17 * fRec21[2]) + (fConst15 * fRec21[1]))));
218 double fTemp5 = (fRec21[2] + (fRec21[0] + (2 * fRec21[1])));
219 fVec2[0] = fTemp5;
220 fRec20[0] = ((fConst48 * ((fConst47 * fVec2[1]) + (fConst10 * fVec2[0]))) + (fConst46 * fRec20[1]));
221 fRec19[0] = (fRec20[0] - (fConst44 * ((fConst43 * fRec19[2]) + (fConst9 * fRec19[1]))));
222 double fTemp6 = max(-1, min(1, (fSlow5 * (((fConst8 * fRec19[0]) + (fConst49 * fRec19[1])) + (fConst8 * fRec19[2])))));
223 double fTemp7 = (fConst9 * fRec23[1]);
224 double fTemp8 = (fConst15 * fRec24[1]);
225 fRec26[0] = ((fConst39 * ((fConst52 * fRec16[1]) + (fConst25 * fRec16[0]))) + (fConst30 * fRec26[1]));
226 fRec25[0] = (fRec26[0] - (fConst28 * ((fConst26 * fRec25[2]) + (fConst24 * fRec25[1]))));
227 fRec24[0] = ((fConst28 * (((fConst23 * fRec25[0]) + (fConst53 * fRec25[1])) + (fConst23 * fRec25[2]))) - (fConst51 * ((fConst50 * fRec24[2]) + fTemp8)));
228 fRec23[0] = ((fRec24[2] + (fConst51 * (fTemp8 + (fConst50 * fRec24[0])))) - (fConst12 * ((fConst11 * fRec23[2]) + fTemp7)));
229 double fTemp9 = max(-1, min(1, (fSlow6 * (fRec23[2] + (fConst12 * (fTemp7 + (fConst11 * fRec23[0])))))));
230 fRec28[0] = ((fConst48 * (fVec2[0] + fVec2[1])) + (fConst46 * fRec28[1]));
231 fRec27[0] = (fRec28[0] - (fConst44 * ((fConst43 * fRec27[2]) + (fConst9 * fRec27[1]))));
232 double fTemp10 = max(-1, min(1, (fSlow7 * (fRec27[2] + (fRec27[0] + (2 * fRec27[1]))))));
233 double fTemp11 = ((1.2589412 * (fTemp10 * (1 - (0.3333333333333333 * faustpower<2>(fTemp10))))) + (1.584893192 * ((fTemp9 * (1 - (0.3333333333333333 * faustpower<2>(fTemp9)))) + ((fTemp6 * (1 - (0.3333333333333333 * faustpower<2>(fTemp6)))) + (0.8413951417869425 * (fTemp4 * (1 - (0.3333333333333333 * faustpower<2>(fTemp4)))))))));
234 fVec3[0] = fTemp11;
235 fRec10[0] = ((fConst54 * (fVec3[0] + fVec3[1])) + (fConst6 * fRec10[1]));
236 fRec29[0] = ((fConst58 * (fRec9[1] + fRec9[2])) + (fConst57 * fRec29[1]));
237 double fTemp12 = (1 - fRec18[0]);
238 fRec9[0] = (Ftube(TUBE_TABLE_12AX7_68k, (((fTemp1 * ((fSlow11 * fRec18[0]) + (fTemp12 * (1 + (fSlow10 * ((4 - (4 * fabs((fTemp1 * fTemp12)))) - 1)))))) + (fRec29[0] + (fSlow9 * fRec10[0]))) - 1.581656)) - 191.42014814814814);
239 fRec8[0] = ((fConst59 * ((fConst37 * fRec9[1]) + (fConst1 * fRec9[0]))) + (fConst3 * fRec8[1]));
240 double fTemp13 = (fRec8[0] * fRec7[0]);
241 fVec4[0] = fTemp13;
242 fRec6[0] = ((fConst54 * (fVec4[0] + fVec4[1])) + (fConst6 * fRec6[1]));
243 fRec30[0] = ((fConst63 * (fRec5[1] + fRec5[2])) + (fConst62 * fRec30[1]));
244 fRec5[0] = (Ftube(TUBE_TABLE_12AX7_250k, ((fRec30[0] + fRec6[0]) - 1.204285)) - 169.71433333333334);
245 fRec4[0] = ((fConst59 * ((fConst37 * fRec5[1]) + (fConst1 * fRec5[0]))) + (fConst3 * fRec4[1]));
246 double fTemp14 = (fRec7[0] * fRec4[0]);
247 fVec5[0] = fTemp14;
248 fRec3[0] = ((fConst54 * (fVec5[0] + fVec5[1])) + (fConst6 * fRec3[1]));
249 fRec31[0] = ((fConst67 * (fRec2[1] + fRec2[2])) + (fConst66 * fRec31[1]));
250 fRec2[0] = (Ftube(TUBE_TABLE_12AX7_250k, ((fRec31[0] + fRec3[0]) - 0.840703)) - 147.47524390243905);
251 fRec1[0] = ((fConst59 * ((fConst37 * fRec2[1]) + (fConst1 * fRec2[0]))) + (fConst3 * fRec1[1]));
252 output[i] = (float)(fRec1[0] * fRec0[0]);
253 // post processing
254 fRec1[1] = fRec1[0];
255 fRec2[2] = fRec2[1];
256 fRec2[1] = fRec2[0];
257 fRec31[1] = fRec31[0];
258 fRec3[1] = fRec3[0];
259 fVec5[1] = fVec5[0];
260 fRec4[1] = fRec4[0];
261 fRec5[2] = fRec5[1];
262 fRec5[1] = fRec5[0];
263 fRec30[1] = fRec30[0];
264 fRec6[1] = fRec6[0];
265 fVec4[1] = fVec4[0];
266 fRec8[1] = fRec8[0];
267 fRec9[2] = fRec9[1];
268 fRec9[1] = fRec9[0];
269 fRec29[1] = fRec29[0];
270 fRec10[1] = fRec10[0];
271 fVec3[1] = fVec3[0];
272 fRec27[2] = fRec27[1];
273 fRec27[1] = fRec27[0];
274 fRec28[1] = fRec28[0];
275 fRec23[2] = fRec23[1];
276 fRec23[1] = fRec23[0];
277 fRec24[2] = fRec24[1];
278 fRec24[1] = fRec24[0];
279 fRec25[2] = fRec25[1];
280 fRec25[1] = fRec25[0];
281 fRec26[1] = fRec26[0];
282 fRec19[2] = fRec19[1];
283 fRec19[1] = fRec19[0];
284 fRec20[1] = fRec20[0];
285 fVec2[1] = fVec2[0];
286 fRec21[2] = fRec21[1];
287 fRec21[1] = fRec21[0];
288 fRec22[1] = fRec22[0];
289 fRec11[2] = fRec11[1];
290 fRec11[1] = fRec11[0];
291 fRec12[2] = fRec12[1];
292 fRec12[1] = fRec12[0];
293 fRec13[1] = fRec13[0];
294 fVec1[1] = fVec1[0];
295 fRec14[2] = fRec14[1];
296 fRec14[1] = fRec14[0];
297 fRec15[1] = fRec15[0];
298 fRec16[1] = fRec16[0];
299 fVec0[1] = fVec0[0];
300 fRec17[2] = fRec17[1];
301 fRec17[1] = fRec17[0];
302 fRec18[1] = fRec18[0];
303 fRec7[1] = fRec7[0];
304 fRec0[1] = fRec0[0];
305 }
306 }
307
308 void GxAmpMono::run_12AT7(uint32_t n_samples, float* input, float* output)
309 {
310 fslider0 = (*fslider0_);
311 fslider1 = (*fslider1_);
312 fslider2 = (*fslider2_);
313 fslider3 = (*fslider3_);
314 double fSlow0 = (0.0010000000000000009 * pow(10,(0.05 * fslider0)));
315 double fSlow1 = (0.0010000000000000009 * pow(10,(0.05 * fslider1)));
316 double fSlow2 = (1.000000000000001e-05 * fslider2);
317 double fSlow3 = fslider3;
318 double fSlow4 = pow(1e+01,(1.2 * fSlow3));
319 double fSlow5 = (fConst44 * pow(1e+01,(2 * fSlow3)));
320 double fSlow6 = pow(1e+01,(0.8 * fSlow3));
321 double fSlow7 = (fConst44 * pow(1e+01,(0.9 * fSlow3)));
322 double fSlow8 = (2 * (fSlow3 - 0.5));
323 double fSlow9 = (1 - max(0, (0 - fSlow8)));
324 double fSlow10 = (1.25 * fSlow3);
325 double fSlow11 = (1 - max(0, fSlow8));
326 for (uint32_t i=0; i<n_samples; i++)
327 {
328 fRec0[0] = (fSlow0 + (0.999 * fRec0[1]));
329 fRec7[0] = (fSlow1 + (0.999 * fRec7[1]));
330 double fTemp0 = (fConst9 * fRec11[1]);
331 fRec18[0] = (fSlow2 + (0.999 * fRec18[1]));
332 double fTemp1 = (double)input[i];
333 fRec17[0] = ((fTemp1 * fRec18[0]) - (fConst36 * ((fConst34 * fRec17[2]) + (fConst32 * fRec17[1]))));
334 double fTemp2 = (fRec17[2] + (fRec17[0] + (2 * fRec17[1])));
335 fVec0[0] = fTemp2;
336 fRec16[0] = ((fConst38 * ((fConst37 * fVec0[1]) + (fConst1 * fVec0[0]))) + (fConst3 * fRec16[1]));
337 fRec15[0] = ((fConst39 * (fRec16[0] + fRec16[1])) + (fConst30 * fRec15[1]));
338 fRec14[0] = (fRec15[0] - (fConst28 * ((fConst26 * fRec14[2]) + (fConst24 * fRec14[1]))));
339 double fTemp3 = (fRec14[2] + (fRec14[0] + (2 * fRec14[1])));
340 fVec1[0] = fTemp3;
341 fRec13[0] = ((fConst41 * ((fConst40 * fVec1[1]) + (fConst16 * fVec1[0]))) + (fConst21 * fRec13[1]));
342 fRec12[0] = (fRec13[0] - (fConst19 * ((fConst17 * fRec12[2]) + (fConst15 * fRec12[1]))));
343 fRec11[0] = ((fConst19 * (((fConst14 * fRec12[0]) + (fConst42 * fRec12[1])) + (fConst14 * fRec12[2]))) - (fConst12 * ((fConst11 * fRec11[2]) + fTemp0)));
344 double fTemp4 = max(-1, min(1, (fSlow4 * (fRec11[2] + (fConst12 * (fTemp0 + (fConst11 * fRec11[0])))))));
345 fRec22[0] = ((fConst41 * (fVec1[0] + fVec1[1])) + (fConst21 * fRec22[1]));
346 fRec21[0] = (fRec22[0] - (fConst19 * ((fConst17 * fRec21[2]) + (fConst15 * fRec21[1]))));
347 double fTemp5 = (fRec21[2] + (fRec21[0] + (2 * fRec21[1])));
348 fVec2[0] = fTemp5;
349 fRec20[0] = ((fConst48 * ((fConst47 * fVec2[1]) + (fConst10 * fVec2[0]))) + (fConst46 * fRec20[1]));
350 fRec19[0] = (fRec20[0] - (fConst44 * ((fConst43 * fRec19[2]) + (fConst9 * fRec19[1]))));
351 double fTemp6 = max(-1, min(1, (fSlow5 * (((fConst8 * fRec19[0]) + (fConst49 * fRec19[1])) + (fConst8 * fRec19[2])))));
352 double fTemp7 = (fConst9 * fRec23[1]);
353 double fTemp8 = (fConst15 * fRec24[1]);
354 fRec26[0] = ((fConst39 * ((fConst52 * fRec16[1]) + (fConst25 * fRec16[0]))) + (fConst30 * fRec26[1]));
355 fRec25[0] = (fRec26[0] - (fConst28 * ((fConst26 * fRec25[2]) + (fConst24 * fRec25[1]))));
356 fRec24[0] = ((fConst28 * (((fConst23 * fRec25[0]) + (fConst53 * fRec25[1])) + (fConst23 * fRec25[2]))) - (fConst51 * ((fConst50 * fRec24[2]) + fTemp8)));
357 fRec23[0] = ((fRec24[2] + (fConst51 * (fTemp8 + (fConst50 * fRec24[0])))) - (fConst12 * ((fConst11 * fRec23[2]) + fTemp7)));
358 double fTemp9 = max(-1, min(1, (fSlow6 * (fRec23[2] + (fConst12 * (fTemp7 + (fConst11 * fRec23[0])))))));
359 fRec28[0] = ((fConst48 * (fVec2[0] + fVec2[1])) + (fConst46 * fRec28[1]));
360 fRec27[0] = (fRec28[0] - (fConst44 * ((fConst43 * fRec27[2]) + (fConst9 * fRec27[1]))));
361 double fTemp10 = max(-1, min(1, (fSlow7 * (fRec27[2] + (fRec27[0] + (2 * fRec27[1]))))));
362 double fTemp11 = ((1.2589412 * (fTemp10 * (1 - (0.3333333333333333 * faustpower<2>(fTemp10))))) + (1.584893192 * ((fTemp9 * (1 - (0.3333333333333333 * faustpower<2>(fTemp9)))) + ((fTemp6 * (1 - (0.3333333333333333 * faustpower<2>(fTemp6)))) + (0.8413951417869425 * (fTemp4 * (1 - (0.3333333333333333 * faustpower<2>(fTemp4)))))))));
363 fVec3[0] = fTemp11;
364 fRec10[0] = ((fConst54 * (fVec3[0] + fVec3[1])) + (fConst6 * fRec10[1]));
365 fRec29[0] = ((fConst58 * (fRec9[1] + fRec9[2])) + (fConst57 * fRec29[1]));
366 double fTemp12 = (1 - fRec18[0]);
367 fRec9[0] = (Ftube(TUBE_TABLE_12AT7_68k, (((fTemp1 * ((fSlow11 * fRec18[0]) + (fTemp12 * (1 + (fSlow10 * ((4 - (4 * fabs((fTemp1 * fTemp12)))) - 1)))))) + (fRec29[0] + (fSlow9 * fRec10[0]))) - 2.617753)) - 153.04618518518518);
368 fRec8[0] = ((fConst59 * ((fConst37 * fRec9[1]) + (fConst1 * fRec9[0]))) + (fConst3 * fRec8[1]));
369 double fTemp13 = (fRec8[0] * fRec7[0]);
370 fVec4[0] = fTemp13;
371 fRec6[0] = ((fConst54 * (fVec4[0] + fVec4[1])) + (fConst6 * fRec6[1]));
372 fRec30[0] = ((fConst63 * (fRec5[1] + fRec5[2])) + (fConst62 * fRec30[1]));
373 fRec5[0] = (Ftube(TUBE_TABLE_12AT7_250k, ((fRec30[0] + fRec6[0]) - 1.887332)) - 124.17786666666666);
374 fRec4[0] = ((fConst59 * ((fConst37 * fRec5[1]) + (fConst1 * fRec5[0]))) + (fConst3 * fRec4[1]));
375 double fTemp14 = (fRec7[0] * fRec4[0]);
376 fVec5[0] = fTemp14;
377 fRec3[0] = ((fConst54 * (fVec5[0] + fVec5[1])) + (fConst6 * fRec3[1]));
378 fRec31[0] = ((fConst67 * (fRec2[1] + fRec2[2])) + (fConst66 * fRec31[1]));
379 fRec2[0] = (Ftube(TUBE_TABLE_12AT7_250k, ((fRec31[0] + fRec3[0]) - 1.256962)) - 96.7119512195122);
380 fRec1[0] = ((fConst59 * ((fConst37 * fRec2[1]) + (fConst1 * fRec2[0]))) + (fConst3 * fRec1[1]));
381 output[i] = (float)(fRec1[0] * fRec0[0]);
382 // post processing
383 fRec1[1] = fRec1[0];
384 fRec2[2] = fRec2[1];
385 fRec2[1] = fRec2[0];
386 fRec31[1] = fRec31[0];
387 fRec3[1] = fRec3[0];
388 fVec5[1] = fVec5[0];
389 fRec4[1] = fRec4[0];
390 fRec5[2] = fRec5[1];
391 fRec5[1] = fRec5[0];
392 fRec30[1] = fRec30[0];
393 fRec6[1] = fRec6[0];
394 fVec4[1] = fVec4[0];
395 fRec8[1] = fRec8[0];
396 fRec9[2] = fRec9[1];
397 fRec9[1] = fRec9[0];
398 fRec29[1] = fRec29[0];
399 fRec10[1] = fRec10[0];
400 fVec3[1] = fVec3[0];
401 fRec27[2] = fRec27[1];
402 fRec27[1] = fRec27[0];
403 fRec28[1] = fRec28[0];
404 fRec23[2] = fRec23[1];
405 fRec23[1] = fRec23[0];
406 fRec24[2] = fRec24[1];
407 fRec24[1] = fRec24[0];
408 fRec25[2] = fRec25[1];
409 fRec25[1] = fRec25[0];
410 fRec26[1] = fRec26[0];
411 fRec19[2] = fRec19[1];
412 fRec19[1] = fRec19[0];
413 fRec20[1] = fRec20[0];
414 fVec2[1] = fVec2[0];
415 fRec21[2] = fRec21[1];
416 fRec21[1] = fRec21[0];
417 fRec22[1] = fRec22[0];
418 fRec11[2] = fRec11[1];
419 fRec11[1] = fRec11[0];
420 fRec12[2] = fRec12[1];
421 fRec12[1] = fRec12[0];
422 fRec13[1] = fRec13[0];
423 fVec1[1] = fVec1[0];
424 fRec14[2] = fRec14[1];
425 fRec14[1] = fRec14[0];
426 fRec15[1] = fRec15[0];
427 fRec16[1] = fRec16[0];
428 fVec0[1] = fVec0[0];
429 fRec17[2] = fRec17[1];
430 fRec17[1] = fRec17[0];
431 fRec18[1] = fRec18[0];
432 fRec7[1] = fRec7[0];
433 fRec0[1] = fRec0[0];
434 }
435 }
436
437 void GxAmpMono::run_6C16(uint32_t n_samples, float* input, float* output)
438 {
439 fslider0 = (*fslider0_);
440 fslider1 = (*fslider1_);
441 fslider2 = (*fslider2_);
442 fslider3 = (*fslider3_);
443 double fSlow0 = (0.0010000000000000009 * pow(10,(0.05 * fslider0)));
444 double fSlow1 = (0.0010000000000000009 * pow(10,(0.05 * fslider1)));
445 double fSlow2 = (1.000000000000001e-05 * fslider2);
446 double fSlow3 = fslider3;
447 double fSlow4 = pow(1e+01,(1.2 * fSlow3));
448 double fSlow5 = (fConst44 * pow(1e+01,(2 * fSlow3)));
449 double fSlow6 = pow(1e+01,(0.8 * fSlow3));
450 double fSlow7 = (fConst44 * pow(1e+01,(0.9 * fSlow3)));
451 double fSlow8 = (2 * (fSlow3 - 0.5));
452 double fSlow9 = (1 - max(0, (0 - fSlow8)));
453 double fSlow10 = (1.25 * fSlow3);
454 double fSlow11 = (1 - max(0, fSlow8));
455 for (uint32_t i=0; i<n_samples; i++)
456 {
457 fRec0[0] = (fSlow0 + (0.999 * fRec0[1]));
458 fRec7[0] = (fSlow1 + (0.999 * fRec7[1]));
459 double fTemp0 = (fConst9 * fRec11[1]);
460 fRec18[0] = (fSlow2 + (0.999 * fRec18[1]));
461 double fTemp1 = (double)input[i];
462 fRec17[0] = ((fTemp1 * fRec18[0]) - (fConst36 * ((fConst34 * fRec17[2]) + (fConst32 * fRec17[1]))));
463 double fTemp2 = (fRec17[2] + (fRec17[0] + (2 * fRec17[1])));
464 fVec0[0] = fTemp2;
465 fRec16[0] = ((fConst38 * ((fConst37 * fVec0[1]) + (fConst1 * fVec0[0]))) + (fConst3 * fRec16[1]));
466 fRec15[0] = ((fConst39 * (fRec16[0] + fRec16[1])) + (fConst30 * fRec15[1]));
467 fRec14[0] = (fRec15[0] - (fConst28 * ((fConst26 * fRec14[2]) + (fConst24 * fRec14[1]))));
468 double fTemp3 = (fRec14[2] + (fRec14[0] + (2 * fRec14[1])));
469 fVec1[0] = fTemp3;
470 fRec13[0] = ((fConst41 * ((fConst40 * fVec1[1]) + (fConst16 * fVec1[0]))) + (fConst21 * fRec13[1]));
471 fRec12[0] = (fRec13[0] - (fConst19 * ((fConst17 * fRec12[2]) + (fConst15 * fRec12[1]))));
472 fRec11[0] = ((fConst19 * (((fConst14 * fRec12[0]) + (fConst42 * fRec12[1])) + (fConst14 * fRec12[2]))) - (fConst12 * ((fConst11 * fRec11[2]) + fTemp0)));
473 double fTemp4 = max(-1, min(1, (fSlow4 * (fRec11[2] + (fConst12 * (fTemp0 + (fConst11 * fRec11[0])))))));
474 fRec22[0] = ((fConst41 * (fVec1[0] + fVec1[1])) + (fConst21 * fRec22[1]));
475 fRec21[0] = (fRec22[0] - (fConst19 * ((fConst17 * fRec21[2]) + (fConst15 * fRec21[1]))));
476 double fTemp5 = (fRec21[2] + (fRec21[0] + (2 * fRec21[1])));
477 fVec2[0] = fTemp5;
478 fRec20[0] = ((fConst48 * ((fConst47 * fVec2[1]) + (fConst10 * fVec2[0]))) + (fConst46 * fRec20[1]));
479 fRec19[0] = (fRec20[0] - (fConst44 * ((fConst43 * fRec19[2]) + (fConst9 * fRec19[1]))));
480 double fTemp6 = max(-1, min(1, (fSlow5 * (((fConst8 * fRec19[0]) + (fConst49 * fRec19[1])) + (fConst8 * fRec19[2])))));
481 double fTemp7 = (fConst9 * fRec23[1]);
482 double fTemp8 = (fConst15 * fRec24[1]);
483 fRec26[0] = ((fConst39 * ((fConst52 * fRec16[1]) + (fConst25 * fRec16[0]))) + (fConst30 * fRec26[1]));
484 fRec25[0] = (fRec26[0] - (fConst28 * ((fConst26 * fRec25[2]) + (fConst24 * fRec25[1]))));
485 fRec24[0] = ((fConst28 * (((fConst23 * fRec25[0]) + (fConst53 * fRec25[1])) + (fConst23 * fRec25[2]))) - (fConst51 * ((fConst50 * fRec24[2]) + fTemp8)));
486 fRec23[0] = ((fRec24[2] + (fConst51 * (fTemp8 + (fConst50 * fRec24[0])))) - (fConst12 * ((fConst11 * fRec23[2]) + fTemp7)));
487 double fTemp9 = max(-1, min(1, (fSlow6 * (fRec23[2] + (fConst12 * (fTemp7 + (fConst11 * fRec23[0])))))));
488 fRec28[0] = ((fConst48 * (fVec2[0] + fVec2[1])) + (fConst46 * fRec28[1]));
489 fRec27[0] = (fRec28[0] - (fConst44 * ((fConst43 * fRec27[2]) + (fConst9 * fRec27[1]))));
490 double fTemp10 = max(-1, min(1, (fSlow7 * (fRec27[2] + (fRec27[0] + (2 * fRec27[1]))))));
491 double fTemp11 = ((1.2589412 * (fTemp10 * (1 - (0.3333333333333333 * faustpower<2>(fTemp10))))) + (1.584893192 * ((fTemp9 * (1 - (0.3333333333333333 * faustpower<2>(fTemp9)))) + ((fTemp6 * (1 - (0.3333333333333333 * faustpower<2>(fTemp6)))) + (0.8413951417869425 * (fTemp4 * (1 - (0.3333333333333333 * faustpower<2>(fTemp4)))))))));
492 fVec3[0] = fTemp11;
493 fRec10[0] = ((fConst54 * (fVec3[0] + fVec3[1])) + (fConst6 * fRec10[1]));
494 fRec29[0] = ((fConst58 * (fRec9[1] + fRec9[2])) + (fConst57 * fRec29[1]));
495 double fTemp12 = (1 - fRec18[0]);
496 fRec9[0] = (Ftube(TUBE_TABLE_6C16_68k, (((fTemp1 * ((fSlow11 * fRec18[0]) + (fTemp12 * (1 + (fSlow10 * ((4 - (4 * fabs((fTemp1 * fTemp12)))) - 1)))))) + (fRec29[0] + (fSlow9 * fRec10[0]))) - 2.921806)) - 141.78496296296294);
497 fRec8[0] = ((fConst59 * ((fConst37 * fRec9[1]) + (fConst1 * fRec9[0]))) + (fConst3 * fRec8[1]));
498 double fTemp13 = (fRec8[0] * fRec7[0]);
499 fVec4[0] = fTemp13;
500 fRec6[0] = ((fConst54 * (fVec4[0] + fVec4[1])) + (fConst6 * fRec6[1]));
501 fRec30[0] = ((fConst63 * (fRec5[1] + fRec5[2])) + (fConst62 * fRec30[1]));
502 fRec5[0] = (Ftube(TUBE_TABLE_6C16_250k, ((fRec30[0] + fRec6[0]) - 2.097743)) - 110.15046666666666);
503 fRec4[0] = ((fConst59 * ((fConst37 * fRec5[1]) + (fConst1 * fRec5[0]))) + (fConst3 * fRec4[1]));
504 double fTemp14 = (fRec7[0] * fRec4[0]);
505 fVec5[0] = fTemp14;
506 fRec3[0] = ((fConst54 * (fVec5[0] + fVec5[1])) + (fConst6 * fRec3[1]));
507 fRec31[0] = ((fConst67 * (fRec2[1] + fRec2[2])) + (fConst66 * fRec31[1]));
508 fRec2[0] = (Ftube(TUBE_TABLE_6C16_250k, ((fRec31[0] + fRec3[0]) - 1.378742)) - 81.86073170731709);
509 fRec1[0] = ((fConst59 * ((fConst37 * fRec2[1]) + (fConst1 * fRec2[0]))) + (fConst3 * fRec1[1]));
510 output[i] = (float)(fRec1[0] * fRec0[0]);
511 // post processing
512 fRec1[1] = fRec1[0];
513 fRec2[2] = fRec2[1];
514 fRec2[1] = fRec2[0];
515 fRec31[1] = fRec31[0];
516 fRec3[1] = fRec3[0];
517 fVec5[1] = fVec5[0];
518 fRec4[1] = fRec4[0];
519 fRec5[2] = fRec5[1];
520 fRec5[1] = fRec5[0];
521 fRec30[1] = fRec30[0];
522 fRec6[1] = fRec6[0];
523 fVec4[1] = fVec4[0];
524 fRec8[1] = fRec8[0];
525 fRec9[2] = fRec9[1];
526 fRec9[1] = fRec9[0];
527 fRec29[1] = fRec29[0];
528 fRec10[1] = fRec10[0];
529 fVec3[1] = fVec3[0];
530 fRec27[2] = fRec27[1];
531 fRec27[1] = fRec27[0];
532 fRec28[1] = fRec28[0];
533 fRec23[2] = fRec23[1];
534 fRec23[1] = fRec23[0];
535 fRec24[2] = fRec24[1];
536 fRec24[1] = fRec24[0];
537 fRec25[2] = fRec25[1];
538 fRec25[1] = fRec25[0];
539 fRec26[1] = fRec26[0];
540 fRec19[2] = fRec19[1];
541 fRec19[1] = fRec19[0];
542 fRec20[1] = fRec20[0];
543 fVec2[1] = fVec2[0];
544 fRec21[2] = fRec21[1];
545 fRec21[1] = fRec21[0];
546 fRec22[1] = fRec22[0];
547 fRec11[2] = fRec11[1];
548 fRec11[1] = fRec11[0];
549 fRec12[2] = fRec12[1];
550 fRec12[1] = fRec12[0];
551 fRec13[1] = fRec13[0];
552 fVec1[1] = fVec1[0];
553 fRec14[2] = fRec14[1];
554 fRec14[1] = fRec14[0];
555 fRec15[1] = fRec15[0];
556 fRec16[1] = fRec16[0];
557 fVec0[1] = fVec0[0];
558 fRec17[2] = fRec17[1];
559 fRec17[1] = fRec17[0];
560 fRec18[1] = fRec18[0];
561 fRec7[1] = fRec7[0];
562 fRec0[1] = fRec0[0];
563 }
564 }
565
566 void GxAmpMono::run_6V6(uint32_t n_samples, float* input, float* output)
567 {
568 fslider0 = (*fslider0_);
569 fslider1 = (*fslider1_);
570 fslider2 = (*fslider2_);
571 fslider3 = (*fslider3_);
572 double fSlow0 = (0.0010000000000000009 * pow(10,(0.05 * fslider0)));
573 double fSlow1 = (0.0010000000000000009 * pow(10,(0.05 * fslider1)));
574 double fSlow2 = (1.000000000000001e-05 * fslider2);
575 double fSlow3 = fslider3;
576 double fSlow4 = pow(1e+01,(1.2 * fSlow3));
577 double fSlow5 = (fConst44 * pow(1e+01,(2 * fSlow3)));
578 double fSlow6 = pow(1e+01,(0.8 * fSlow3));
579 double fSlow7 = (fConst44 * pow(1e+01,(0.9 * fSlow3)));
580 double fSlow8 = (2 * (fSlow3 - 0.5));
581 double fSlow9 = (1 - max(0, (0 - fSlow8)));
582 double fSlow10 = (1.25 * fSlow3);
583 double fSlow11 = (1 - max(0, fSlow8));
584 for (uint32_t i=0; i<n_samples; i++)
585 {
586 fRec0[0] = (fSlow0 + (0.999 * fRec0[1]));
587 fRec7[0] = (fSlow1 + (0.999 * fRec7[1]));
588 double fTemp0 = (fConst9 * fRec11[1]);
589 fRec18[0] = (fSlow2 + (0.999 * fRec18[1]));
590 double fTemp1 = (double)input[i];
591 fRec17[0] = ((fTemp1 * fRec18[0]) - (fConst36 * ((fConst34 * fRec17[2]) + (fConst32 * fRec17[1]))));
592 double fTemp2 = (fRec17[2] + (fRec17[0] + (2 * fRec17[1])));
593 fVec0[0] = fTemp2;
594 fRec16[0] = ((fConst38 * ((fConst37 * fVec0[1]) + (fConst1 * fVec0[0]))) + (fConst3 * fRec16[1]));
595 fRec15[0] = ((fConst39 * (fRec16[0] + fRec16[1])) + (fConst30 * fRec15[1]));
596 fRec14[0] = (fRec15[0] - (fConst28 * ((fConst26 * fRec14[2]) + (fConst24 * fRec14[1]))));
597 double fTemp3 = (fRec14[2] + (fRec14[0] + (2 * fRec14[1])));
598 fVec1[0] = fTemp3;
599 fRec13[0] = ((fConst41 * ((fConst40 * fVec1[1]) + (fConst16 * fVec1[0]))) + (fConst21 * fRec13[1]));
600 fRec12[0] = (fRec13[0] - (fConst19 * ((fConst17 * fRec12[2]) + (fConst15 * fRec12[1]))));
601 fRec11[0] = ((fConst19 * (((fConst14 * fRec12[0]) + (fConst42 * fRec12[1])) + (fConst14 * fRec12[2]))) - (fConst12 * ((fConst11 * fRec11[2]) + fTemp0)));
602 double fTemp4 = max(-1, min(1, (fSlow4 * (fRec11[2] + (fConst12 * (fTemp0 + (fConst11 * fRec11[0])))))));
603 fRec22[0] = ((fConst41 * (fVec1[0] + fVec1[1])) + (fConst21 * fRec22[1]));
604 fRec21[0] = (fRec22[0] - (fConst19 * ((fConst17 * fRec21[2]) + (fConst15 * fRec21[1]))));
605 double fTemp5 = (fRec21[2] + (fRec21[0] + (2 * fRec21[1])));
606 fVec2[0] = fTemp5;
607 fRec20[0] = ((fConst48 * ((fConst47 * fVec2[1]) + (fConst10 * fVec2[0]))) + (fConst46 * fRec20[1]));
608 fRec19[0] = (fRec20[0] - (fConst44 * ((fConst43 * fRec19[2]) + (fConst9 * fRec19[1]))));
609 double fTemp6 = max(-1, min(1, (fSlow5 * (((fConst8 * fRec19[0]) + (fConst49 * fRec19[1])) + (fConst8 * fRec19[2])))));
610 double fTemp7 = (fConst9 * fRec23[1]);
611 double fTemp8 = (fConst15 * fRec24[1]);
612 fRec26[0] = ((fConst39 * ((fConst52 * fRec16[1]) + (fConst25 * fRec16[0]))) + (fConst30 * fRec26[1]));
613 fRec25[0] = (fRec26[0] - (fConst28 * ((fConst26 * fRec25[2]) + (fConst24 * fRec25[1]))));
614 fRec24[0] = ((fConst28 * (((fConst23 * fRec25[0]) + (fConst53 * fRec25[1])) + (fConst23 * fRec25[2]))) - (fConst51 * ((fConst50 * fRec24[2]) + fTemp8)));
615 fRec23[0] = ((fRec24[2] + (fConst51 * (fTemp8 + (fConst50 * fRec24[0])))) - (fConst12 * ((fConst11 * fRec23[2]) + fTemp7)));
616 double fTemp9 = max(-1, min(1, (fSlow6 * (fRec23[2] + (fConst12 * (fTemp7 + (fConst11 * fRec23[0])))))));
617 fRec28[0] = ((fConst48 * (fVec2[0] + fVec2[1])) + (fConst46 * fRec28[1]));
618 fRec27[0] = (fRec28[0] - (fConst44 * ((fConst43 * fRec27[2]) + (fConst9 * fRec27[1]))));
619 double fTemp10 = max(-1, min(1, (fSlow7 * (fRec27[2] + (fRec27[0] + (2 * fRec27[1]))))));
620 double fTemp11 = ((1.2589412 * (fTemp10 * (1 - (0.3333333333333333 * faustpower<2>(fTemp10))))) + (1.584893192 * ((fTemp9 * (1 - (0.3333333333333333 * faustpower<2>(fTemp9)))) + ((fTemp6 * (1 - (0.3333333333333333 * faustpower<2>(fTemp6)))) + (0.8413951417869425 * (fTemp4 * (1 - (0.3333333333333333 * faustpower<2>(fTemp4)))))))));
621 fVec3[0] = fTemp11;
622 fRec10[0] = ((fConst54 * (fVec3[0] + fVec3[1])) + (fConst6 * fRec10[1]));
623 fRec29[0] = ((fConst58 * (fRec9[1] + fRec9[2])) + (fConst57 * fRec29[1]));
624 double fTemp12 = (1 - fRec18[0]);
625 fRec9[0] = (Ftube(TUBE_TABLE_6V6_68k, (((fTemp1 * ((fSlow11 * fRec18[0]) + (fTemp12 * (1 + (fSlow10 * ((4 - (4 * fabs((fTemp1 * fTemp12)))) - 1)))))) + (fRec29[0] + (fSlow9 * fRec10[0]))) - 2.29615)) - 164.9574074074074);
626 fRec8[0] = ((fConst59 * ((fConst37 * fRec9[1]) + (fConst1 * fRec9[0]))) + (fConst3 * fRec8[1]));
627 double fTemp13 = (fRec8[0] * fRec7[0]);
628 fVec4[0] = fTemp13;
629 fRec6[0] = ((fConst54 * (fVec4[0] + fVec4[1])) + (fConst6 * fRec6[1]));
630 fRec30[0] = ((fConst63 * (fRec5[1] + fRec5[2])) + (fConst62 * fRec30[1]));
631 fRec5[0] = (Ftube(TUBE_TABLE_6V6_250k, ((fRec30[0] + fRec6[0]) - 1.675587)) - 138.2942);
632 fRec4[0] = ((fConst59 * ((fConst37 * fRec5[1]) + (fConst1 * fRec5[0]))) + (fConst3 * fRec4[1]));
633 double fTemp14 = (fRec7[0] * fRec4[0]);
634 fVec5[0] = fTemp14;
635 fRec3[0] = ((fConst54 * (fVec5[0] + fVec5[1])) + (fConst6 * fRec3[1]));
636 fRec31[0] = ((fConst67 * (fRec2[1] + fRec2[2])) + (fConst66 * fRec31[1]));
637 fRec2[0] = (Ftube(TUBE_TABLE_6V6_250k, ((fRec31[0] + fRec3[0]) - 1.130462)) - 112.13878048780487);
638 fRec1[0] = ((fConst59 * ((fConst37 * fRec2[1]) + (fConst1 * fRec2[0]))) + (fConst3 * fRec1[1]));
639 output[i] = (float)(fRec1[0] * fRec0[0]);
640 // post processing
641 fRec1[1] = fRec1[0];
642 fRec2[2] = fRec2[1];
643 fRec2[1] = fRec2[0];
644 fRec31[1] = fRec31[0];
645 fRec3[1] = fRec3[0];
646 fVec5[1] = fVec5[0];
647 fRec4[1] = fRec4[0];
648 fRec5[2] = fRec5[1];
649 fRec5[1] = fRec5[0];
650 fRec30[1] = fRec30[0];
651 fRec6[1] = fRec6[0];
652 fVec4[1] = fVec4[0];
653 fRec8[1] = fRec8[0];
654 fRec9[2] = fRec9[1];
655 fRec9[1] = fRec9[0];
656 fRec29[1] = fRec29[0];
657 fRec10[1] = fRec10[0];
658 fVec3[1] = fVec3[0];
659 fRec27[2] = fRec27[1];
660 fRec27[1] = fRec27[0];
661 fRec28[1] = fRec28[0];
662 fRec23[2] = fRec23[1];
663 fRec23[1] = fRec23[0];
664 fRec24[2] = fRec24[1];
665 fRec24[1] = fRec24[0];
666 fRec25[2] = fRec25[1];
667 fRec25[1] = fRec25[0];
668 fRec26[1] = fRec26[0];
669 fRec19[2] = fRec19[1];
670 fRec19[1] = fRec19[0];
671 fRec20[1] = fRec20[0];
672 fVec2[1] = fVec2[0];
673 fRec21[2] = fRec21[1];
674 fRec21[1] = fRec21[0];
675 fRec22[1] = fRec22[0];
676 fRec11[2] = fRec11[1];
677 fRec11[1] = fRec11[0];
678 fRec12[2] = fRec12[1];
679 fRec12[1] = fRec12[0];
680 fRec13[1] = fRec13[0];
681 fVec1[1] = fVec1[0];
682 fRec14[2] = fRec14[1];
683 fRec14[1] = fRec14[0];
684 fRec15[1] = fRec15[0];
685 fRec16[1] = fRec16[0];
686 fVec0[1] = fVec0[0];
687 fRec17[2] = fRec17[1];
688 fRec17[1] = fRec17[0];
689 fRec18[1] = fRec18[0];
690 fRec7[1] = fRec7[0];
691 fRec0[1] = fRec0[0];
692 }
693 }
694
695
696 void GxAmpMono::run_6DJ8(uint32_t n_samples, float* input, float* output)
697 {
698 fslider0 = (*fslider0_);
699 fslider1 = (*fslider1_);
700 fslider2 = (*fslider2_);
701 fslider3 = (*fslider3_);
702 double fSlow0 = (0.0010000000000000009 * pow(10,(0.05 * fslider0)));
703 double fSlow1 = (0.0010000000000000009 * pow(10,(0.05 * fslider1)));
704 double fSlow2 = (1.000000000000001e-05 * fslider2);
705 double fSlow3 = fslider3;
706 double fSlow4 = pow(1e+01,(1.2 * fSlow3));
707 double fSlow5 = (fConst44 * pow(1e+01,(2 * fSlow3)));
708 double fSlow6 = pow(1e+01,(0.8 * fSlow3));
709 double fSlow7 = (fConst44 * pow(1e+01,(0.9 * fSlow3)));
710 double fSlow8 = (2 * (fSlow3 - 0.5));
711 double fSlow9 = (1 - max(0, (0 - fSlow8)));
712 double fSlow10 = (1.25 * fSlow3);
713 double fSlow11 = (1 - max(0, fSlow8));
714 for (uint32_t i=0; i<n_samples; i++)
715 {
716 fRec0[0] = (fSlow0 + (0.999 * fRec0[1]));
717 fRec7[0] = (fSlow1 + (0.999 * fRec7[1]));
718 double fTemp0 = (fConst9 * fRec11[1]);
719 fRec18[0] = (fSlow2 + (0.999 * fRec18[1]));
720 double fTemp1 = (double)input[i];
721 fRec17[0] = ((fTemp1 * fRec18[0]) - (fConst36 * ((fConst34 * fRec17[2]) + (fConst32 * fRec17[1]))));
722 double fTemp2 = (fRec17[2] + (fRec17[0] + (2 * fRec17[1])));
723 fVec0[0] = fTemp2;
724 fRec16[0] = ((fConst38 * ((fConst37 * fVec0[1]) + (fConst1 * fVec0[0]))) + (fConst3 * fRec16[1]));
725 fRec15[0] = ((fConst39 * (fRec16[0] + fRec16[1])) + (fConst30 * fRec15[1]));
726 fRec14[0] = (fRec15[0] - (fConst28 * ((fConst26 * fRec14[2]) + (fConst24 * fRec14[1]))));
727 double fTemp3 = (fRec14[2] + (fRec14[0] + (2 * fRec14[1])));
728 fVec1[0] = fTemp3;
729 fRec13[0] = ((fConst41 * ((fConst40 * fVec1[1]) + (fConst16 * fVec1[0]))) + (fConst21 * fRec13[1]));
730 fRec12[0] = (fRec13[0] - (fConst19 * ((fConst17 * fRec12[2]) + (fConst15 * fRec12[1]))));
731 fRec11[0] = ((fConst19 * (((fConst14 * fRec12[0]) + (fConst42 * fRec12[1])) + (fConst14 * fRec12[2]))) - (fConst12 * ((fConst11 * fRec11[2]) + fTemp0)));
732 double fTemp4 = max(-1, min(1, (fSlow4 * (fRec11[2] + (fConst12 * (fTemp0 + (fConst11 * fRec11[0])))))));
733 fRec22[0] = ((fConst41 * (fVec1[0] + fVec1[1])) + (fConst21 * fRec22[1]));
734 fRec21[0] = (fRec22[0] - (fConst19 * ((fConst17 * fRec21[2]) + (fConst15 * fRec21[1]))));
735 double fTemp5 = (fRec21[2] + (fRec21[0] + (2 * fRec21[1])));
736 fVec2[0] = fTemp5;
737 fRec20[0] = ((fConst48 * ((fConst47 * fVec2[1]) + (fConst10 * fVec2[0]))) + (fConst46 * fRec20[1]));
738 fRec19[0] = (fRec20[0] - (fConst44 * ((fConst43 * fRec19[2]) + (fConst9 * fRec19[1]))));
739 double fTemp6 = max(-1, min(1, (fSlow5 * (((fConst8 * fRec19[0]) + (fConst49 * fRec19[1])) + (fConst8 * fRec19[2])))));
740 double fTemp7 = (fConst9 * fRec23[1]);
741 double fTemp8 = (fConst15 * fRec24[1]);
742 fRec26[0] = ((fConst39 * ((fConst52 * fRec16[1]) + (fConst25 * fRec16[0]))) + (fConst30 * fRec26[1]));
743 fRec25[0] = (fRec26[0] - (fConst28 * ((fConst26 * fRec25[2]) + (fConst24 * fRec25[1]))));
744 fRec24[0] = ((fConst28 * (((fConst23 * fRec25[0]) + (fConst53 * fRec25[1])) + (fConst23 * fRec25[2]))) - (fConst51 * ((fConst50 * fRec24[2]) + fTemp8)));
745 fRec23[0] = ((fRec24[2] + (fConst51 * (fTemp8 + (fConst50 * fRec24[0])))) - (fConst12 * ((fConst11 * fRec23[2]) + fTemp7)));
746 double fTemp9 = max(-1, min(1, (fSlow6 * (fRec23[2] + (fConst12 * (fTemp7 + (fConst11 * fRec23[0])))))));
747 fRec28[0] = ((fConst48 * (fVec2[0] + fVec2[1])) + (fConst46 * fRec28[1]));
748 fRec27[0] = (fRec28[0] - (fConst44 * ((fConst43 * fRec27[2]) + (fConst9 * fRec27[1]))));
749 double fTemp10 = max(-1, min(1, (fSlow7 * (fRec27[2] + (fRec27[0] + (2 * fRec27[1]))))));
750 double fTemp11 = ((1.2589412 * (fTemp10 * (1 - (0.3333333333333333 * faustpower<2>(fTemp10))))) + (1.584893192 * ((fTemp9 * (1 - (0.3333333333333333 * faustpower<2>(fTemp9)))) + ((fTemp6 * (1 - (0.3333333333333333 * faustpower<2>(fTemp6)))) + (0.8413951417869425 * (fTemp4 * (1 - (0.3333333333333333 * faustpower<2>(fTemp4)))))))));
751 fVec3[0] = fTemp11;
752 fRec10[0] = ((fConst54 * (fVec3[0] + fVec3[1])) + (fConst6 * fRec10[1]));
753 fRec29[0] = ((fConst58 * (fRec9[1] + fRec9[2])) + (fConst57 * fRec29[1]));
754 double fTemp12 = (1 - fRec18[0]);
755 fRec9[0] = (Ftube(TUBE_TABLE_6DJ8_68k, (((fTemp1 * ((fSlow11 * fRec18[0]) + (fTemp12 * (1 + (fSlow10 * ((4 - (4 * fabs((fTemp1 * fTemp12)))) - 1)))))) + (fRec29[0] + (fSlow9 * fRec10[0]))) - 1.863946)) - 60.96496296296296);
756 fRec8[0] = ((fConst59 * ((fConst37 * fRec9[1]) + (fConst1 * fRec9[0]))) + (fConst3 * fRec8[1]));
757 double fTemp13 = (fRec8[0] * fRec7[0]);
758 fVec4[0] = fTemp13;
759 fRec6[0] = ((fConst54 * (fVec4[0] + fVec4[1])) + (fConst6 * fRec6[1]));
760 fRec30[0] = ((fConst63 * (fRec5[1] + fRec5[2])) + (fConst62 * fRec30[1]));
761 fRec5[0] = (Ftube(TUBE_TABLE_6DJ8_250k, ((fRec30[0] + fRec6[0]) - 1.271609)) - 45.22606666666667);
762 fRec4[0] = ((fConst59 * ((fConst37 * fRec5[1]) + (fConst1 * fRec5[0]))) + (fConst3 * fRec4[1]));
763 double fTemp14 = (fRec7[0] * fRec4[0]);
764 fVec5[0] = fTemp14;
765 fRec3[0] = ((fConst54 * (fVec5[0] + fVec5[1])) + (fConst6 * fRec3[1]));
766 fRec31[0] = ((fConst67 * (fRec2[1] + fRec2[2])) + (fConst66 * fRec31[1]));
767 fRec2[0] = (Ftube(TUBE_TABLE_6DJ8_250k, ((fRec31[0] + fRec3[0]) - 0.797043)) - 32.799634146341475);
768 fRec1[0] = ((fConst59 * ((fConst37 * fRec2[1]) + (fConst1 * fRec2[0]))) + (fConst3 * fRec1[1]));
769 output[i] = (float)(fRec1[0] * fRec0[0]);
770 // post processing
771 fRec1[1] = fRec1[0];
772 fRec2[2] = fRec2[1];
773 fRec2[1] = fRec2[0];
774 fRec31[1] = fRec31[0];
775 fRec3[1] = fRec3[0];
776 fVec5[1] = fVec5[0];
777 fRec4[1] = fRec4[0];
778 fRec5[2] = fRec5[1];
779 fRec5[1] = fRec5[0];
780 fRec30[1] = fRec30[0];
781 fRec6[1] = fRec6[0];
782 fVec4[1] = fVec4[0];
783 fRec8[1] = fRec8[0];
784 fRec9[2] = fRec9[1];
785 fRec9[1] = fRec9[0];
786 fRec29[1] = fRec29[0];
787 fRec10[1] = fRec10[0];
788 fVec3[1] = fVec3[0];
789 fRec27[2] = fRec27[1];
790 fRec27[1] = fRec27[0];
791 fRec28[1] = fRec28[0];
792 fRec23[2] = fRec23[1];
793 fRec23[1] = fRec23[0];
794 fRec24[2] = fRec24[1];
795 fRec24[1] = fRec24[0];
796 fRec25[2] = fRec25[1];
797 fRec25[1] = fRec25[0];
798 fRec26[1] = fRec26[0];
799 fRec19[2] = fRec19[1];
800 fRec19[1] = fRec19[0];
801 fRec20[1] = fRec20[0];
802 fVec2[1] = fVec2[0];
803 fRec21[2] = fRec21[1];
804 fRec21[1] = fRec21[0];
805 fRec22[1] = fRec22[0];
806 fRec11[2] = fRec11[1];
807 fRec11[1] = fRec11[0];
808 fRec12[2] = fRec12[1];
809 fRec12[1] = fRec12[0];
810 fRec13[1] = fRec13[0];
811 fVec1[1] = fVec1[0];
812 fRec14[2] = fRec14[1];
813 fRec14[1] = fRec14[0];
814 fRec15[1] = fRec15[0];
815 fRec16[1] = fRec16[0];
816 fVec0[1] = fVec0[0];
817 fRec17[2] = fRec17[1];
818 fRec17[1] = fRec17[0];
819 fRec18[1] = fRec18[0];
820 fRec7[1] = fRec7[0];
821 fRec0[1] = fRec0[0];
822 }
823 }
824
825
826 // static wrappers
827 void GxAmpMono::init_static(uint32_t samplingFreq, GxAmpMono *p)
828 {
829 p->init(samplingFreq);
830 }
831
832 void GxAmpMono::connect_static(uint32_t port,void* data, GxAmpMono *p)
833 {
834 p->connect(port, data);
835 }
836
837
838 void GxAmpMono::run_static(uint32_t n_samples, float* input, float* output, GxAmpMono *p)
839 {
840 (p->*_a_ptr)(n_samples, input, output);
841 }
842
843 /////////////////////////////// STEREO /////////////////////////////////
844
845
846 inline void GxAmpStereo::clear_state_f()
847 {
848 for (int32_t i=0; i<2; i++) fRec0[i] = 0;
849 for (int32_t i=0; i<2; i++) fRec7[i] = 0;
850 for (int32_t i=0; i<2; i++) fRec18[i] = 0;
851 for (int32_t i=0; i<3; i++) fRec17[i] = 0;
852 for (int32_t i=0; i<2; i++) fVec0[i] = 0;
853 for (int32_t i=0; i<2; i++) fRec16[i] = 0;
854 for (int32_t i=0; i<2; i++) fRec15[i] = 0;
855 for (int32_t i=0; i<3; i++) fRec14[i] = 0;
856 for (int32_t i=0; i<2; i++) fVec1[i] = 0;
857 for (int32_t i=0; i<2; i++) fRec13[i] = 0;
858 for (int32_t i=0; i<3; i++) fRec12[i] = 0;
859 for (int32_t i=0; i<3; i++) fRec11[i] = 0;
860 for (int32_t i=0; i<2; i++) fRec22[i] = 0;
861 for (int32_t i=0; i<3; i++) fRec21[i] = 0;
862 for (int32_t i=0; i<2; i++) fVec2[i] = 0;
863 for (int32_t i=0; i<2; i++) fRec20[i] = 0;
864 for (int32_t i=0; i<3; i++) fRec19[i] = 0;
865 for (int32_t i=0; i<2; i++) fRec26[i] = 0;
866 for (int32_t i=0; i<3; i++) fRec25[i] = 0;
867 for (int32_t i=0; i<3; i++) fRec24[i] = 0;
868 for (int32_t i=0; i<3; i++) fRec23[i] = 0;
869 for (int32_t i=0; i<2; i++) fRec28[i] = 0;
870 for (int32_t i=0; i<3; i++) fRec27[i] = 0;
871 for (int32_t i=0; i<2; i++) fVec3[i] = 0;
872 for (int32_t i=0; i<2; i++) fRec10[i] = 0;
873 for (int32_t i=0; i<2; i++) fRec29[i] = 0;
874 for (int32_t i=0; i<3; i++) fRec9[i] = 0;
875 for (int32_t i=0; i<2; i++) fRec8[i] = 0;
876 for (int32_t i=0; i<2; i++) fVec4[i] = 0;
877 for (int32_t i=0; i<2; i++) fRec6[i] = 0;
878 for (int32_t i=0; i<2; i++) fRec30[i] = 0;
879 for (int32_t i=0; i<3; i++) fRec5[i] = 0;
880 for (int32_t i=0; i<2; i++) fRec4[i] = 0;
881 for (int32_t i=0; i<2; i++) fVec5[i] = 0;
882 for (int32_t i=0; i<2; i++) fRec3[i] = 0;
883 for (int32_t i=0; i<2; i++) fRec31[i] = 0;
884 for (int32_t i=0; i<3; i++) fRec2[i] = 0;
885 for (int32_t i=0; i<2; i++) fRec1[i] = 0;
886 for (int32_t i=0; i<3; i++) fRec47[i] = 0;
887 for (int32_t i=0; i<2; i++) fVec6[i] = 0;
888 for (int32_t i=0; i<2; i++) fRec46[i] = 0;
889 for (int32_t i=0; i<2; i++) fRec45[i] = 0;
890 for (int32_t i=0; i<3; i++) fRec44[i] = 0;
891 for (int32_t i=0; i<2; i++) fVec7[i] = 0;
892 for (int32_t i=0; i<2; i++) fRec43[i] = 0;
893 for (int32_t i=0; i<3; i++) fRec42[i] = 0;
894 for (int32_t i=0; i<3; i++) fRec41[i] = 0;
895 for (int32_t i=0; i<2; i++) fRec51[i] = 0;
896 for (int32_t i=0; i<3; i++) fRec50[i] = 0;
897 for (int32_t i=0; i<2; i++) fVec8[i] = 0;
898 for (int32_t i=0; i<2; i++) fRec49[i] = 0;
899 for (int32_t i=0; i<3; i++) fRec48[i] = 0;
900 for (int32_t i=0; i<2; i++) fRec55[i] = 0;
901 for (int32_t i=0; i<3; i++) fRec54[i] = 0;
902 for (int32_t i=0; i<3; i++) fRec53[i] = 0;
903 for (int32_t i=0; i<3; i++) fRec52[i] = 0;
904 for (int32_t i=0; i<2; i++) fRec57[i] = 0;
905 for (int32_t i=0; i<3; i++) fRec56[i] = 0;
906 for (int32_t i=0; i<2; i++) fVec9[i] = 0;
907 for (int32_t i=0; i<2; i++) fRec40[i] = 0;
908 for (int32_t i=0; i<2; i++) fRec58[i] = 0;
909 for (int32_t i=0; i<3; i++) fRec39[i] = 0;
910 for (int32_t i=0; i<2; i++) fRec38[i] = 0;
911 for (int32_t i=0; i<2; i++) fVec10[i] = 0;
912 for (int32_t i=0; i<2; i++) fRec37[i] = 0;
913 for (int32_t i=0; i<2; i++) fRec59[i] = 0;
914 for (int32_t i=0; i<3; i++) fRec36[i] = 0;
915 for (int32_t i=0; i<2; i++) fRec35[i] = 0;
916 for (int32_t i=0; i<2; i++) fVec11[i] = 0;
917 for (int32_t i=0; i<2; i++) fRec34[i] = 0;
918 for (int32_t i=0; i<2; i++) fRec60[i] = 0;
919 for (int32_t i=0; i<3; i++) fRec33[i] = 0;
920 for (int32_t i=0; i<2; i++) fRec32[i] = 0;
921 }
922
923
924 inline void GxAmpStereo::init(uint32_t samplingFreq)
925 {
926 fSamplingFreq = samplingFreq;
927 iConst0 = min(192000, max(1, fSamplingFreq));
928 fConst1 = (1.0 / tan((97.38937226128358 / iConst0)));
929 fConst2 = (1 + fConst1);
930 fConst3 = (0 - ((1 - fConst1) / fConst2));
931 fConst4 = (1.0 / tan((20517.741620594938 / iConst0)));
932 fConst5 = (1 + fConst4);
933 fConst6 = (0 - ((1 - fConst4) / fConst5));
934 fConst7 = tan((942.4777960769379 / iConst0));
935 fConst8 = (1.0 / faustpower<2>(fConst7));
936 fConst9 = (2 * (1 - fConst8));
937 fConst10 = (1.0 / fConst7);
938 fConst11 = (1 + ((fConst10 - 1.0) / fConst7));
939 fConst12 = (1.0 / (1 + ((1.0 + fConst10) / fConst7)));
940 fConst13 = tan((3769.9111843077517 / iConst0));
941 fConst14 = (1.0 / faustpower<2>(fConst13));
942 fConst15 = (2 * (1 - fConst14));
943 fConst16 = (1.0 / fConst13);
944 fConst17 = (1 + ((fConst16 - 1.0000000000000004) / fConst13));
945 fConst18 = (1 + ((fConst16 + 1.0000000000000004) / fConst13));
946 fConst19 = (1.0 / fConst18);
947 fConst20 = (1 + fConst16);
948 fConst21 = (0 - ((1 - fConst16) / fConst20));
949 fConst22 = tan((10053.096491487338 / iConst0));
950 fConst23 = (1.0 / faustpower<2>(fConst22));
951 fConst24 = (2 * (1 - fConst23));
952 fConst25 = (1.0 / fConst22);
953 fConst26 = (1 + ((fConst25 - 1.0000000000000004) / fConst22));
954 fConst27 = (1 + ((1.0000000000000004 + fConst25) / fConst22));
955 fConst28 = (1.0 / fConst27);
956 fConst29 = (1 + fConst25);
957 fConst30 = (0 - ((1 - fConst25) / fConst29));
958 fConst31 = tan((47123.8898038469 / iConst0));
959 fConst32 = (2 * (1 - (1.0 / faustpower<2>(fConst31))));
960 fConst33 = (1.0 / fConst31);
961 fConst34 = (1 + ((fConst33 - 1.414213562373095) / fConst31));
962 fConst35 = (1 + ((1.414213562373095 + fConst33) / fConst31));
963 fConst36 = (1.0 / fConst35);
964 fConst37 = (0 - fConst1);
965 fConst38 = (1.0 / (fConst2 * fConst35));
966 fConst39 = (1.0 / fConst29);
967 fConst40 = (0 - fConst16);
968 fConst41 = (1.0 / (fConst20 * fConst27));
969 fConst42 = (2 * (0 - fConst14));
970 fConst43 = (1 + ((fConst10 - 1.0000000000000004) / fConst7));
971 fConst44 = (1.0 / (1 + ((fConst10 + 1.0000000000000004) / fConst7)));
972 fConst45 = (1 + fConst10);
973 fConst46 = (0 - ((1 - fConst10) / fConst45));
974 fConst47 = (0 - fConst10);
975 fConst48 = (1.0 / (fConst45 * fConst18));
976 fConst49 = (2 * (0 - fConst8));
977 fConst50 = (1 + ((fConst16 - 1.0) / fConst13));
978 fConst51 = (1.0 / (1 + ((1.0 + fConst16) / fConst13)));
979 fConst52 = (0 - fConst25);
980 fConst53 = (2 * (0 - fConst23));
981 fConst54 = (1.0 / fConst5);
982 fConst55 = (1.0 / tan((270.1769682087222 / iConst0)));
983 fConst56 = (1 + fConst55);
984 fConst57 = (0 - ((1 - fConst55) / fConst56));
985 fConst58 = (0.027 / fConst56);
986 fConst59 = (0.025 / fConst2);
987 fConst60 = (1.0 / tan((414.6902302738527 / iConst0)));
988 fConst61 = (1 + fConst60);
989 fConst62 = (0 - ((1 - fConst60) / fConst61));
990 fConst63 = (0.015 / fConst61);
991 fConst64 = (1.0 / tan((609.4689747964198 / iConst0)));
992 fConst65 = (1 + fConst64);
993 fConst66 = (0 - ((1 - fConst64) / fConst65));
994 fConst67 = (0.0082 / fConst65);
995 clear_state_f();
996 }
997
998 void GxAmpStereo::connect(uint32_t port,void* data)
999 {
1000 switch ((PortIndex)port)
1001 {
1002 case AMP_MASTERGAIN:
1003 fslider0_ = (float*)data;
1004 break;
1005 case AMP_PREGAIN:
1006 fslider1_ = (float*)data;
1007 break;
1008 case AMP_WET_DRY:
1009 fslider2_ = (float*)data;
1010 break;
1011 case AMP_DRIVE:
1012 fslider3_ = (float*)data;
1013 break;
1014 case MID:
1015 break;
1016 case BASS:
1017 break;
1018 case TREBLE:
1019 break;
1020 case CLevel:
1021 break;
1022 case ALevel:
1023 break;
1024 case AMP_OUTPUT:
1025 //output = (float*)data;
1026 break;
1027 case AMP_INPUT:
1028 //input = (float*)data;
1029 break;
1030 case AMP_OUTPUT1:
1031 //output = (float*)data;
1032 break;
1033 case AMP_INPUT1:
1034 //input = (float*)data;
1035 break;
1036 case AMP_CONTROL:
1037 break;
1038 case AMP_NOTIFY:
1039 break;
1040 }
1041 }
1042
1043 inline void GxAmpStereo::run_12ax7(uint32_t count, float *input0, float *input1, float *output0, float *output1)
1044 {
1045 fslider0 = (*fslider0_);
1046 fslider1 = (*fslider1_);
1047 fslider2 = (*fslider2_);
1048 fslider3 = (*fslider3_);
1049 double fSlow0 = (0.0010000000000000009 * pow(10,(0.05 * fslider0)));
1050 double fSlow1 = (0.0010000000000000009 * pow(10,(0.05 * fslider1)));
1051 double fSlow2 = (1.000000000000001e-05 * fslider2);
1052 double fSlow3 = fslider3;
1053 double fSlow4 = pow(1e+01,(1.2 * fSlow3));
1054 double fSlow5 = (fConst44 * pow(1e+01,(2 * fSlow3)));
1055 double fSlow6 = pow(1e+01,(0.8 * fSlow3));
1056 double fSlow7 = (fConst44 * pow(1e+01,(0.9 * fSlow3)));
1057 double fSlow8 = (2 * (fSlow3 - 0.5));
1058 double fSlow9 = (1 - max(0, (0 - fSlow8)));
1059 double fSlow10 = (1.25 * fSlow3);
1060 double fSlow11 = (1 - max(0, fSlow8));
1061 for (uint32_t i=0; i<count; i++)
1062 {
1063 fRec0[0] = (fSlow0 + (0.999 * fRec0[1]));
1064 fRec7[0] = (fSlow1 + (0.999 * fRec7[1]));
1065 double fTemp0 = (fConst9 * fRec11[1]);
1066 fRec18[0] = (fSlow2 + (0.999 * fRec18[1]));
1067 double fTemp1 = (double)input0[i];
1068 fRec17[0] = ((fTemp1 * fRec18[0]) - (fConst36 * ((fConst34 * fRec17[2]) + (fConst32 * fRec17[1]))));
1069 double fTemp2 = (fRec17[2] + (fRec17[0] + (2 * fRec17[1])));
1070 fVec0[0] = fTemp2;
1071 fRec16[0] = ((fConst38 * ((fConst37 * fVec0[1]) + (fConst1 * fVec0[0]))) + (fConst3 * fRec16[1]));
1072 fRec15[0] = ((fConst39 * (fRec16[0] + fRec16[1])) + (fConst30 * fRec15[1]));
1073 fRec14[0] = (fRec15[0] - (fConst28 * ((fConst26 * fRec14[2]) + (fConst24 * fRec14[1]))));
1074 double fTemp3 = (fRec14[2] + (fRec14[0] + (2 * fRec14[1])));
1075 fVec1[0] = fTemp3;
1076 fRec13[0] = ((fConst41 * ((fConst40 * fVec1[1]) + (fConst16 * fVec1[0]))) + (fConst21 * fRec13[1]));
1077 fRec12[0] = (fRec13[0] - (fConst19 * ((fConst17 * fRec12[2]) + (fConst15 * fRec12[1]))));
1078 fRec11[0] = ((fConst19 * (((fConst14 * fRec12[0]) + (fConst42 * fRec12[1])) + (fConst14 * fRec12[2]))) - (fConst12 * ((fConst11 * fRec11[2]) + fTemp0)));
1079 double fTemp4 = max(-1, min(1, (fSlow4 * (fRec11[2] + (fConst12 * (fTemp0 + (fConst11 * fRec11[0])))))));
1080 fRec22[0] = ((fConst41 * (fVec1[0] + fVec1[1])) + (fConst21 * fRec22[1]));
1081 fRec21[0] = (fRec22[0] - (fConst19 * ((fConst17 * fRec21[2]) + (fConst15 * fRec21[1]))));
1082 double fTemp5 = (fRec21[2] + (fRec21[0] + (2 * fRec21[1])));
1083 fVec2[0] = fTemp5;
1084 fRec20[0] = ((fConst48 * ((fConst47 * fVec2[1]) + (fConst10 * fVec2[0]))) + (fConst46 * fRec20[1]));
1085 fRec19[0] = (fRec20[0] - (fConst44 * ((fConst43 * fRec19[2]) + (fConst9 * fRec19[1]))));
1086 double fTemp6 = max(-1, min(1, (fSlow5 * (((fConst8 * fRec19[0]) + (fConst49 * fRec19[1])) + (fConst8 * fRec19[2])))));
1087 double fTemp7 = (fConst9 * fRec23[1]);
1088 double fTemp8 = (fConst15 * fRec24[1]);
1089 fRec26[0] = ((fConst39 * ((fConst52 * fRec16[1]) + (fConst25 * fRec16[0]))) + (fConst30 * fRec26[1]));
1090 fRec25[0] = (fRec26[0] - (fConst28 * ((fConst26 * fRec25[2]) + (fConst24 * fRec25[1]))));
1091 fRec24[0] = ((fConst28 * (((fConst23 * fRec25[0]) + (fConst53 * fRec25[1])) + (fConst23 * fRec25[2]))) - (fConst51 * ((fConst50 * fRec24[2]) + fTemp8)));
1092 fRec23[0] = ((fRec24[2] + (fConst51 * (fTemp8 + (fConst50 * fRec24[0])))) - (fConst12 * ((fConst11 * fRec23[2]) + fTemp7)));
1093 double fTemp9 = max(-1, min(1, (fSlow6 * (fRec23[2] + (fConst12 * (fTemp7 + (fConst11 * fRec23[0])))))));
1094 fRec28[0] = ((fConst48 * (fVec2[0] + fVec2[1])) + (fConst46 * fRec28[1]));
1095 fRec27[0] = (fRec28[0] - (fConst44 * ((fConst43 * fRec27[2]) + (fConst9 * fRec27[1]))));
1096 double fTemp10 = max(-1, min(1, (fSlow7 * (fRec27[2] + (fRec27[0] + (2 * fRec27[1]))))));
1097 double fTemp11 = ((1.2589412 * (fTemp10 * (1 - (0.3333333333333333 * faustpower<2>(fTemp10))))) + (1.584893192 * ((fTemp9 * (1 - (0.3333333333333333 * faustpower<2>(fTemp9)))) + ((fTemp6 * (1 - (0.3333333333333333 * faustpower<2>(fTemp6)))) + (0.8413951417869425 * (fTemp4 * (1 - (0.3333333333333333 * faustpower<2>(fTemp4)))))))));
1098 fVec3[0] = fTemp11;
1099 fRec10[0] = ((fConst54 * (fVec3[0] + fVec3[1])) + (fConst6 * fRec10[1]));
1100 fRec29[0] = ((fConst58 * (fRec9[1] + fRec9[2])) + (fConst57 * fRec29[1]));
1101 double fTemp12 = (1 - fRec18[0]);
1102 double fTemp13 = (fSlow11 * fRec18[0]);
1103 fRec9[0] = (Ftube(TUBE_TABLE_12AX7_68k, (((fTemp1 * (fTemp13 + (fTemp12 * (1 + (fSlow10 * ((4 - (4 * fabs((fTemp1 * fTemp12)))) - 1)))))) + (fRec29[0] + (fSlow9 * fRec10[0]))) - 1.581656)) - 191.42014814814814);
1104 fRec8[0] = ((fConst59 * ((fConst37 * fRec9[1]) + (fConst1 * fRec9[0]))) + (fConst3 * fRec8[1]));
1105 double fTemp14 = (fRec8[0] * fRec7[0]);
1106 fVec4[0] = fTemp14;
1107 fRec6[0] = ((fConst54 * (fVec4[0] + fVec4[1])) + (fConst6 * fRec6[1]));
1108 fRec30[0] = ((fConst63 * (fRec5[1] + fRec5[2])) + (fConst62 * fRec30[1]));
1109 fRec5[0] = (Ftube(TUBE_TABLE_12AX7_250k, ((fRec30[0] + fRec6[0]) - 1.204285)) - 169.71433333333334);
1110 fRec4[0] = ((fConst59 * ((fConst37 * fRec5[1]) + (fConst1 * fRec5[0]))) + (fConst3 * fRec4[1]));
1111 double fTemp15 = (fRec7[0] * fRec4[0]);
1112 fVec5[0] = fTemp15;
1113 fRec3[0] = ((fConst54 * (fVec5[0] + fVec5[1])) + (fConst6 * fRec3[1]));
1114 fRec31[0] = ((fConst67 * (fRec2[1] + fRec2[2])) + (fConst66 * fRec31[1]));
1115 fRec2[0] = (Ftube(TUBE_TABLE_12AX7_250k, ((fRec31[0] + fRec3[0]) - 0.840703)) - 147.47524390243905);
1116 fRec1[0] = ((fConst59 * ((fConst37 * fRec2[1]) + (fConst1 * fRec2[0]))) + (fConst3 * fRec1[1]));
1117 output0[i] = (float)(fRec1[0] * fRec0[0]);
1118 double fTemp16 = (fConst9 * fRec41[1]);
1119 double fTemp17 = (double)input1[i];
1120 fRec47[0] = ((fTemp17 * fRec18[0]) - (fConst36 * ((fConst34 * fRec47[2]) + (fConst32 * fRec47[1]))));
1121 double fTemp18 = (fRec47[2] + (fRec47[0] + (2 * fRec47[1])));
1122 fVec6[0] = fTemp18;
1123 fRec46[0] = ((fConst38 * ((fConst37 * fVec6[1]) + (fConst1 * fVec6[0]))) + (fConst3 * fRec46[1]));
1124 fRec45[0] = ((fConst39 * (fRec46[0] + fRec46[1])) + (fConst30 * fRec45[1]));
1125 fRec44[0] = (fRec45[0] - (fConst28 * ((fConst26 * fRec44[2]) + (fConst24 * fRec44[1]))));
1126 double fTemp19 = (fRec44[2] + (fRec44[0] + (2 * fRec44[1])));
1127 fVec7[0] = fTemp19;
1128 fRec43[0] = ((fConst41 * ((fConst40 * fVec7[1]) + (fConst16 * fVec7[0]))) + (fConst21 * fRec43[1]));
1129 fRec42[0] = (fRec43[0] - (fConst19 * ((fConst17 * fRec42[2]) + (fConst15 * fRec42[1]))));
1130 fRec41[0] = ((fConst19 * (((fConst14 * fRec42[0]) + (fConst42 * fRec42[1])) + (fConst14 * fRec42[2]))) - (fConst12 * ((fConst11 * fRec41[2]) + fTemp16)));
1131 double fTemp20 = max(-1, min(1, (fSlow4 * (fRec41[2] + (fConst12 * (fTemp16 + (fConst11 * fRec41[0])))))));
1132 fRec51[0] = ((fConst41 * (fVec7[0] + fVec7[1])) + (fConst21 * fRec51[1]));
1133 fRec50[0] = (fRec51[0] - (fConst19 * ((fConst17 * fRec50[2]) + (fConst15 * fRec50[1]))));
1134 double fTemp21 = (fRec50[2] + (fRec50[0] + (2 * fRec50[1])));
1135 fVec8[0] = fTemp21;
1136 fRec49[0] = ((fConst48 * ((fConst47 * fVec8[1]) + (fConst10 * fVec8[0]))) + (fConst46 * fRec49[1]));
1137 fRec48[0] = (fRec49[0] - (fConst44 * ((fConst43 * fRec48[2]) + (fConst9 * fRec48[1]))));
1138 double fTemp22 = max(-1, min(1, (fSlow5 * (((fConst8 * fRec48[0]) + (fConst49 * fRec48[1])) + (fConst8 * fRec48[2])))));
1139 double fTemp23 = (fConst9 * fRec52[1]);
1140 double fTemp24 = (fConst15 * fRec53[1]);
1141 fRec55[0] = ((fConst39 * ((fConst52 * fRec46[1]) + (fConst25 * fRec46[0]))) + (fConst30 * fRec55[1]));
1142 fRec54[0] = (fRec55[0] - (fConst28 * ((fConst26 * fRec54[2]) + (fConst24 * fRec54[1]))));
1143 fRec53[0] = ((fConst28 * (((fConst23 * fRec54[0]) + (fConst53 * fRec54[1])) + (fConst23 * fRec54[2]))) - (fConst51 * ((fConst50 * fRec53[2]) + fTemp24)));
1144 fRec52[0] = ((fRec53[2] + (fConst51 * (fTemp24 + (fConst50 * fRec53[0])))) - (fConst12 * ((fConst11 * fRec52[2]) + fTemp23)));
1145 double fTemp25 = max(-1, min(1, (fSlow6 * (fRec52[2] + (fConst12 * (fTemp23 + (fConst11 * fRec52[0])))))));
1146 fRec57[0] = ((fConst48 * (fVec8[0] + fVec8[1])) + (fConst46 * fRec57[1]));
1147 fRec56[0] = (fRec57[0] - (fConst44 * ((fConst43 * fRec56[2]) + (fConst9 * fRec56[1]))));
1148 double fTemp26 = max(-1, min(1, (fSlow7 * (fRec56[2] + (fRec56[0] + (2 * fRec56[1]))))));
1149 double fTemp27 = ((1.2589412 * (fTemp26 * (1 - (0.3333333333333333 * faustpower<2>(fTemp26))))) + (1.584893192 * ((fTemp25 * (1 - (0.3333333333333333 * faustpower<2>(fTemp25)))) + ((fTemp22 * (1 - (0.3333333333333333 * faustpower<2>(fTemp22)))) + (0.8413951417869425 * (fTemp20 * (1 - (0.3333333333333333 * faustpower<2>(fTemp20)))))))));
1150 fVec9[0] = fTemp27;
1151 fRec40[0] = ((fConst54 * (fVec9[0] + fVec9[1])) + (fConst6 * fRec40[1]));
1152 fRec58[0] = ((fConst58 * (fRec39[1] + fRec39[2])) + (fConst57 * fRec58[1]));
1153 fRec39[0] = (Ftube(TUBE_TABLE_12AX7_68k, (((fTemp17 * (fTemp13 + (fTemp12 * (1 + (fSlow10 * ((4 - (4 * fabs((fTemp17 * fTemp12)))) - 1)))))) + (fRec58[0] + (fSlow9 * fRec40[0]))) - 1.581656)) - 191.42014814814814);
1154 fRec38[0] = ((fConst59 * ((fConst37 * fRec39[1]) + (fConst1 * fRec39[0]))) + (fConst3 * fRec38[1]));
1155 double fTemp28 = (fRec7[0] * fRec38[0]);
1156 fVec10[0] = fTemp28;
1157 fRec37[0] = ((fConst54 * (fVec10[0] + fVec10[1])) + (fConst6 * fRec37[1]));
1158 fRec59[0] = ((fConst63 * (fRec36[1] + fRec36[2])) + (fConst62 * fRec59[1]));
1159 fRec36[0] = (Ftube(TUBE_TABLE_12AX7_250k, ((fRec59[0] + fRec37[0]) - 1.204285)) - 169.71433333333334);
1160 fRec35[0] = ((fConst59 * ((fConst37 * fRec36[1]) + (fConst1 * fRec36[0]))) + (fConst3 * fRec35[1]));
1161 double fTemp29 = (fRec7[0] * fRec35[0]);
1162 fVec11[0] = fTemp29;
1163 fRec34[0] = ((fConst54 * (fVec11[0] + fVec11[1])) + (fConst6 * fRec34[1]));
1164 fRec60[0] = ((fConst67 * (fRec33[1] + fRec33[2])) + (fConst66 * fRec60[1]));
1165 fRec33[0] = (Ftube(TUBE_TABLE_12AX7_250k, ((fRec60[0] + fRec34[0]) - 0.840703)) - 147.47524390243905);
1166 fRec32[0] = ((fConst59 * ((fConst37 * fRec33[1]) + (fConst1 * fRec33[0]))) + (fConst3 * fRec32[1]));
1167 output1[i] = (float)(fRec0[0] * fRec32[0]);
1168 // post processing
1169 fRec32[1] = fRec32[0];
1170 fRec33[2] = fRec33[1];
1171 fRec33[1] = fRec33[0];
1172 fRec60[1] = fRec60[0];
1173 fRec34[1] = fRec34[0];
1174 fVec11[1] = fVec11[0];
1175 fRec35[1] = fRec35[0];
1176 fRec36[2] = fRec36[1];
1177 fRec36[1] = fRec36[0];
1178 fRec59[1] = fRec59[0];
1179 fRec37[1] = fRec37[0];
1180 fVec10[1] = fVec10[0];
1181 fRec38[1] = fRec38[0];
1182 fRec39[2] = fRec39[1];
1183 fRec39[1] = fRec39[0];
1184 fRec58[1] = fRec58[0];
1185 fRec40[1] = fRec40[0];
1186 fVec9[1] = fVec9[0];
1187 fRec56[2] = fRec56[1];
1188 fRec56[1] = fRec56[0];
1189 fRec57[1] = fRec57[0];
1190 fRec52[2] = fRec52[1];
1191 fRec52[1] = fRec52[0];
1192 fRec53[2] = fRec53[1];
1193 fRec53[1] = fRec53[0];
1194 fRec54[2] = fRec54[1];
1195 fRec54[1] = fRec54[0];
1196 fRec55[1] = fRec55[0];
1197 fRec48[2] = fRec48[1];
1198 fRec48[1] = fRec48[0];
1199 fRec49[1] = fRec49[0];
1200 fVec8[1] = fVec8[0];
1201 fRec50[2] = fRec50[1];
1202 fRec50[1] = fRec50[0];
1203 fRec51[1] = fRec51[0];
1204 fRec41[2] = fRec41[1];
1205 fRec41[1] = fRec41[0];
1206 fRec42[2] = fRec42[1];
1207 fRec42[1] = fRec42[0];
1208 fRec43[1] = fRec43[0];
1209 fVec7[1] = fVec7[0];
1210 fRec44[2] = fRec44[1];
1211 fRec44[1] = fRec44[0];
1212 fRec45[1] = fRec45[0];
1213 fRec46[1] = fRec46[0];
1214 fVec6[1] = fVec6[0];
1215 fRec47[2] = fRec47[1];
1216 fRec47[1] = fRec47[0];
1217 fRec1[1] = fRec1[0];
1218 fRec2[2] = fRec2[1];
1219 fRec2[1] = fRec2[0];
1220 fRec31[1] = fRec31[0];
1221 fRec3[1] = fRec3[0];
1222 fVec5[1] = fVec5[0];
1223 fRec4[1] = fRec4[0];
1224 fRec5[2] = fRec5[1];
1225 fRec5[1] = fRec5[0];
1226 fRec30[1] = fRec30[0];
1227 fRec6[1] = fRec6[0];
1228 fVec4[1] = fVec4[0];
1229 fRec8[1] = fRec8[0];
1230 fRec9[2] = fRec9[1];
1231 fRec9[1] = fRec9[0];
1232 fRec29[1] = fRec29[0];
1233 fRec10[1] = fRec10[0];
1234 fVec3[1] = fVec3[0];
1235 fRec27[2] = fRec27[1];
1236 fRec27[1] = fRec27[0];
1237 fRec28[1] = fRec28[0];
1238 fRec23[2] = fRec23[1];
1239 fRec23[1] = fRec23[0];
1240 fRec24[2] = fRec24[1];
1241 fRec24[1] = fRec24[0];
1242 fRec25[2] = fRec25[1];
1243 fRec25[1] = fRec25[0];
1244 fRec26[1] = fRec26[0];
1245 fRec19[2] = fRec19[1];
1246 fRec19[1] = fRec19[0];
1247 fRec20[1] = fRec20[0];
1248 fVec2[1] = fVec2[0];
1249 fRec21[2] = fRec21[1];
1250 fRec21[1] = fRec21[0];
1251 fRec22[1] = fRec22[0];
1252 fRec11[2] = fRec11[1];
1253 fRec11[1] = fRec11[0];
1254 fRec12[2] = fRec12[1];
1255 fRec12[1] = fRec12[0];
1256 fRec13[1] = fRec13[0];
1257 fVec1[1] = fVec1[0];
1258 fRec14[2] = fRec14[1];
1259 fRec14[1] = fRec14[0];
1260 fRec15[1] = fRec15[0];
1261 fRec16[1] = fRec16[0];
1262 fVec0[1] = fVec0[0];
1263 fRec17[2] = fRec17[1];
1264 fRec17[1] = fRec17[0];
1265 fRec18[1] = fRec18[0];
1266 fRec7[1] = fRec7[0];
1267 fRec0[1] = fRec0[0];
1268 }
1269 }
1270
1271 inline void GxAmpStereo::run_6V6(uint32_t count, float *input0, float *input1, float *output0, float *output1)
1272 {
1273 fslider0 = (*fslider0_);
1274 fslider1 = (*fslider1_);
1275 fslider2 = (*fslider2_);
1276 fslider3 = (*fslider3_);
1277 double fSlow0 = (0.0010000000000000009 * pow(10,(0.05 * fslider0)));
1278 double fSlow1 = (0.0010000000000000009 * pow(10,(0.05 * fslider1)));
1279 double fSlow2 = (1.000000000000001e-05 * fslider2);
1280 double fSlow3 = fslider3;
1281 double fSlow4 = pow(1e+01,(1.2 * fSlow3));
1282 double fSlow5 = (fConst44 * pow(1e+01,(2 * fSlow3)));
1283 double fSlow6 = pow(1e+01,(0.8 * fSlow3));
1284 double fSlow7 = (fConst44 * pow(1e+01,(0.9 * fSlow3)));
1285 double fSlow8 = (2 * (fSlow3 - 0.5));
1286 double fSlow9 = (1 - max(0, (0 - fSlow8)));
1287 double fSlow10 = (1.25 * fSlow3);
1288 double fSlow11 = (1 - max(0, fSlow8));
1289 for (uint32_t i=0; i<count; i++)
1290 {
1291 fRec0[0] = (fSlow0 + (0.999 * fRec0[1]));
1292 fRec7[0] = (fSlow1 + (0.999 * fRec7[1]));
1293 double fTemp0 = (fConst9 * fRec11[1]);
1294 fRec18[0] = (fSlow2 + (0.999 * fRec18[1]));
1295 double fTemp1 = (double)input0[i];
1296 fRec17[0] = ((fTemp1 * fRec18[0]) - (fConst36 * ((fConst34 * fRec17[2]) + (fConst32 * fRec17[1]))));
1297 double fTemp2 = (fRec17[2] + (fRec17[0] + (2 * fRec17[1])));
1298 fVec0[0] = fTemp2;
1299 fRec16[0] = ((fConst38 * ((fConst37 * fVec0[1]) + (fConst1 * fVec0[0]))) + (fConst3 * fRec16[1]));
1300 fRec15[0] = ((fConst39 * (fRec16[0] + fRec16[1])) + (fConst30 * fRec15[1]));
1301 fRec14[0] = (fRec15[0] - (fConst28 * ((fConst26 * fRec14[2]) + (fConst24 * fRec14[1]))));
1302 double fTemp3 = (fRec14[2] + (fRec14[0] + (2 * fRec14[1])));
1303 fVec1[0] = fTemp3;
1304 fRec13[0] = ((fConst41 * ((fConst40 * fVec1[1]) + (fConst16 * fVec1[0]))) + (fConst21 * fRec13[1]));
1305 fRec12[0] = (fRec13[0] - (fConst19 * ((fConst17 * fRec12[2]) + (fConst15 * fRec12[1]))));
1306 fRec11[0] = ((fConst19 * (((fConst14 * fRec12[0]) + (fConst42 * fRec12[1])) + (fConst14 * fRec12[2]))) - (fConst12 * ((fConst11 * fRec11[2]) + fTemp0)));
1307 double fTemp4 = max(-1, min(1, (fSlow4 * (fRec11[2] + (fConst12 * (fTemp0 + (fConst11 * fRec11[0])))))));
1308 fRec22[0] = ((fConst41 * (fVec1[0] + fVec1[1])) + (fConst21 * fRec22[1]));
1309 fRec21[0] = (fRec22[0] - (fConst19 * ((fConst17 * fRec21[2]) + (fConst15 * fRec21[1]))));
1310 double fTemp5 = (fRec21[2] + (fRec21[0] + (2 * fRec21[1])));
1311 fVec2[0] = fTemp5;
1312 fRec20[0] = ((fConst48 * ((fConst47 * fVec2[1]) + (fConst10 * fVec2[0]))) + (fConst46 * fRec20[1]));
1313 fRec19[0] = (fRec20[0] - (fConst44 * ((fConst43 * fRec19[2]) + (fConst9 * fRec19[1]))));
1314 double fTemp6 = max(-1, min(1, (fSlow5 * (((fConst8 * fRec19[0]) + (fConst49 * fRec19[1])) + (fConst8 * fRec19[2])))));
1315 double fTemp7 = (fConst9 * fRec23[1]);
1316 double fTemp8 = (fConst15 * fRec24[1]);
1317 fRec26[0] = ((fConst39 * ((fConst52 * fRec16[1]) + (fConst25 * fRec16[0]))) + (fConst30 * fRec26[1]));
1318 fRec25[0] = (fRec26[0] - (fConst28 * ((fConst26 * fRec25[2]) + (fConst24 * fRec25[1]))));
1319 fRec24[0] = ((fConst28 * (((fConst23 * fRec25[0]) + (fConst53 * fRec25[1])) + (fConst23 * fRec25[2]))) - (fConst51 * ((fConst50 * fRec24[2]) + fTemp8)));
1320 fRec23[0] = ((fRec24[2] + (fConst51 * (fTemp8 + (fConst50 * fRec24[0])))) - (fConst12 * ((fConst11 * fRec23[2]) + fTemp7)));
1321 double fTemp9 = max(-1, min(1, (fSlow6 * (fRec23[2] + (fConst12 * (fTemp7 + (fConst11 * fRec23[0])))))));
1322 fRec28[0] = ((fConst48 * (fVec2[0] + fVec2[1])) + (fConst46 * fRec28[1]));
1323 fRec27[0] = (fRec28[0] - (fConst44 * ((fConst43 * fRec27[2]) + (fConst9 * fRec27[1]))));
1324 double fTemp10 = max(-1, min(1, (fSlow7 * (fRec27[2] + (fRec27[0] + (2 * fRec27[1]))))));
1325 double fTemp11 = ((1.2589412 * (fTemp10 * (1 - (0.3333333333333333 * faustpower<2>(fTemp10))))) + (1.584893192 * ((fTemp9 * (1 - (0.3333333333333333 * faustpower<2>(fTemp9)))) + ((fTemp6 * (1 - (0.3333333333333333 * faustpower<2>(fTemp6)))) + (0.8413951417869425 * (fTemp4 * (1 - (0.3333333333333333 * faustpower<2>(fTemp4)))))))));
1326 fVec3[0] = fTemp11;
1327 fRec10[0] = ((fConst54 * (fVec3[0] + fVec3[1])) + (fConst6 * fRec10[1]));
1328 fRec29[0] = ((fConst58 * (fRec9[1] + fRec9[2])) + (fConst57 * fRec29[1]));
1329 double fTemp12 = (1 - fRec18[0]);
1330 double fTemp13 = (fSlow11 * fRec18[0]);
1331 fRec9[0] = (Ftube(TUBE_TABLE_6V6_68k, (((fTemp1 * (fTemp13 + (fTemp12 * (1 + (fSlow10 * ((4 - (4 * fabs((fTemp1 * fTemp12)))) - 1)))))) + (fRec29[0] + (fSlow9 * fRec10[0]))) - 2.29615)) - 164.9574074074074);
1332 fRec8[0] = ((fConst59 * ((fConst37 * fRec9[1]) + (fConst1 * fRec9[0]))) + (fConst3 * fRec8[1]));
1333 double fTemp14 = (fRec8[0] * fRec7[0]);
1334 fVec4[0] = fTemp14;
1335 fRec6[0] = ((fConst54 * (fVec4[0] + fVec4[1])) + (fConst6 * fRec6[1]));
1336 fRec30[0] = ((fConst63 * (fRec5[1] + fRec5[2])) + (fConst62 * fRec30[1]));
1337 fRec5[0] = (Ftube(TUBE_TABLE_6V6_250k, ((fRec30[0] + fRec6[0]) - 1.675587)) - 138.2942);
1338 fRec4[0] = ((fConst59 * ((fConst37 * fRec5[1]) + (fConst1 * fRec5[0]))) + (fConst3 * fRec4[1]));
1339 double fTemp15 = (fRec7[0] * fRec4[0]);
1340 fVec5[0] = fTemp15;
1341 fRec3[0] = ((fConst54 * (fVec5[0] + fVec5[1])) + (fConst6 * fRec3[1]));
1342 fRec31[0] = ((fConst67 * (fRec2[1] + fRec2[2])) + (fConst66 * fRec31[1]));
1343 fRec2[0] = (Ftube(TUBE_TABLE_6V6_250k, ((fRec31[0] + fRec3[0]) - 1.130462)) - 112.13878048780487);
1344 fRec1[0] = ((fConst59 * ((fConst37 * fRec2[1]) + (fConst1 * fRec2[0]))) + (fConst3 * fRec1[1]));
1345 output0[i] = (float)(fRec1[0] * fRec0[0]);
1346 double fTemp16 = (fConst9 * fRec41[1]);
1347 double fTemp17 = (double)input1[i];
1348 fRec47[0] = ((fTemp17 * fRec18[0]) - (fConst36 * ((fConst34 * fRec47[2]) + (fConst32 * fRec47[1]))));
1349 double fTemp18 = (fRec47[2] + (fRec47[0] + (2 * fRec47[1])));
1350 fVec6[0] = fTemp18;
1351 fRec46[0] = ((fConst38 * ((fConst37 * fVec6[1]) + (fConst1 * fVec6[0]))) + (fConst3 * fRec46[1]));
1352 fRec45[0] = ((fConst39 * (fRec46[0] + fRec46[1])) + (fConst30 * fRec45[1]));
1353 fRec44[0] = (fRec45[0] - (fConst28 * ((fConst26 * fRec44[2]) + (fConst24 * fRec44[1]))));
1354 double fTemp19 = (fRec44[2] + (fRec44[0] + (2 * fRec44[1])));
1355 fVec7[0] = fTemp19;
1356 fRec43[0] = ((fConst41 * ((fConst40 * fVec7[1]) + (fConst16 * fVec7[0]))) + (fConst21 * fRec43[1]));
1357 fRec42[0] = (fRec43[0] - (fConst19 * ((fConst17 * fRec42[2]) + (fConst15 * fRec42[1]))));
1358 fRec41[0] = ((fConst19 * (((fConst14 * fRec42[0]) + (fConst42 * fRec42[1])) + (fConst14 * fRec42[2]))) - (fConst12 * ((fConst11 * fRec41[2]) + fTemp16)));
1359 double fTemp20 = max(-1, min(1, (fSlow4 * (fRec41[2] + (fConst12 * (fTemp16 + (fConst11 * fRec41[0])))))));
1360 fRec51[0] = ((fConst41 * (fVec7[0] + fVec7[1])) + (fConst21 * fRec51[1]));
1361 fRec50[0] = (fRec51[0] - (fConst19 * ((fConst17 * fRec50[2]) + (fConst15 * fRec50[1]))));
1362 double fTemp21 = (fRec50[2] + (fRec50[0] + (2 * fRec50[1])));
1363 fVec8[0] = fTemp21;
1364 fRec49[0] = ((fConst48 * ((fConst47 * fVec8[1]) + (fConst10 * fVec8[0]))) + (fConst46 * fRec49[1]));
1365 fRec48[0] = (fRec49[0] - (fConst44 * ((fConst43 * fRec48[2]) + (fConst9 * fRec48[1]))));
1366 double fTemp22 = max(-1, min(1, (fSlow5 * (((fConst8 * fRec48[0]) + (fConst49 * fRec48[1])) + (fConst8 * fRec48[2])))));
1367 double fTemp23 = (fConst9 * fRec52[1]);
1368 double fTemp24 = (fConst15 * fRec53[1]);
1369 fRec55[0] = ((fConst39 * ((fConst52 * fRec46[1]) + (fConst25 * fRec46[0]))) + (fConst30 * fRec55[1]));
1370 fRec54[0] = (fRec55[0] - (fConst28 * ((fConst26 * fRec54[2]) + (fConst24 * fRec54[1]))));
1371 fRec53[0] = ((fConst28 * (((fConst23 * fRec54[0]) + (fConst53 * fRec54[1])) + (fConst23 * fRec54[2]))) - (fConst51 * ((fConst50 * fRec53[2]) + fTemp24)));
1372 fRec52[0] = ((fRec53[2] + (fConst51 * (fTemp24 + (fConst50 * fRec53[0])))) - (fConst12 * ((fConst11 * fRec52[2]) + fTemp23)));
1373 double fTemp25 = max(-1, min(1, (fSlow6 * (fRec52[2] + (fConst12 * (fTemp23 + (fConst11 * fRec52[0])))))));
1374 fRec57[0] = ((fConst48 * (fVec8[0] + fVec8[1])) + (fConst46 * fRec57[1]));
1375 fRec56[0] = (fRec57[0] - (fConst44 * ((fConst43 * fRec56[2]) + (fConst9 * fRec56[1]))));
1376 double fTemp26 = max(-1, min(1, (fSlow7 * (fRec56[2] + (fRec56[0] + (2 * fRec56[1]))))));
1377 double fTemp27 = ((1.2589412 * (fTemp26 * (1 - (0.3333333333333333 * faustpower<2>(fTemp26))))) + (1.584893192 * ((fTemp25 * (1 - (0.3333333333333333 * faustpower<2>(fTemp25)))) + ((fTemp22 * (1 - (0.3333333333333333 * faustpower<2>(fTemp22)))) + (0.8413951417869425 * (fTemp20 * (1 - (0.3333333333333333 * faustpower<2>(fTemp20)))))))));
1378 fVec9[0] = fTemp27;
1379 fRec40[0] = ((fConst54 * (fVec9[0] + fVec9[1])) + (fConst6 * fRec40[1]));
1380 fRec58[0] = ((fConst58 * (fRec39[1] + fRec39[2])) + (fConst57 * fRec58[1]));
1381 fRec39[0] = (Ftube(TUBE_TABLE_6V6_68k, (((fTemp17 * (fTemp13 + (fTemp12 * (1 + (fSlow10 * ((4 - (4 * fabs((fTemp17 * fTemp12)))) - 1)))))) + (fRec58[0] + (fSlow9 * fRec40[0]))) - 2.29615)) - 164.9574074074074);
1382 fRec38[0] = ((fConst59 * ((fConst37 * fRec39[1]) + (fConst1 * fRec39[0]))) + (fConst3 * fRec38[1]));
1383 double fTemp28 = (fRec7[0] * fRec38[0]);
1384 fVec10[0] = fTemp28;
1385 fRec37[0] = ((fConst54 * (fVec10[0] + fVec10[1])) + (fConst6 * fRec37[1]));
1386 fRec59[0] = ((fConst63 * (fRec36[1] + fRec36[2])) + (fConst62 * fRec59[1]));
1387 fRec36[0] = (Ftube(TUBE_TABLE_6V6_250k, ((fRec59[0] + fRec37[0]) - 1.675587)) - 138.2942);
1388 fRec35[0] = ((fConst59 * ((fConst37 * fRec36[1]) + (fConst1 * fRec36[0]))) + (fConst3 * fRec35[1]));
1389 double fTemp29 = (fRec7[0] * fRec35[0]);
1390 fVec11[0] = fTemp29;
1391 fRec34[0] = ((fConst54 * (fVec11[0] + fVec11[1])) + (fConst6 * fRec34[1]));
1392 fRec60[0] = ((fConst67 * (fRec33[1] + fRec33[2])) + (fConst66 * fRec60[1]));
1393 fRec33[0] = (Ftube(TUBE_TABLE_6V6_250k, ((fRec60[0] + fRec34[0]) - 1.130462)) - 112.13878048780487);
1394 fRec32[0] = ((fConst59 * ((fConst37 * fRec33[1]) + (fConst1 * fRec33[0]))) + (fConst3 * fRec32[1]));
1395 output1[i] = (float)(fRec0[0] * fRec32[0]);
1396 // post processing
1397 fRec32[1] = fRec32[0];
1398 fRec33[2] = fRec33[1];
1399 fRec33[1] = fRec33[0];
1400 fRec60[1] = fRec60[0];
1401 fRec34[1] = fRec34[0];
1402 fVec11[1] = fVec11[0];
1403 fRec35[1] = fRec35[0];
1404 fRec36[2] = fRec36[1];
1405 fRec36[1] = fRec36[0];
1406 fRec59[1] = fRec59[0];
1407 fRec37[1] = fRec37[0];
1408 fVec10[1] = fVec10[0];
1409 fRec38[1] = fRec38[0];
1410 fRec39[2] = fRec39[1];
1411 fRec39[1] = fRec39[0];
1412 fRec58[1] = fRec58[0];
1413 fRec40[1] = fRec40[0];
1414 fVec9[1] = fVec9[0];
1415 fRec56[2] = fRec56[1];
1416 fRec56[1] = fRec56[0];
1417 fRec57[1] = fRec57[0];
1418 fRec52[2] = fRec52[1];
1419 fRec52[1] = fRec52[0];
1420 fRec53[2] = fRec53[1];
1421 fRec53[1] = fRec53[0];
1422 fRec54[2] = fRec54[1];
1423 fRec54[1] = fRec54[0];
1424 fRec55[1] = fRec55[0];
1425 fRec48[2] = fRec48[1];
1426 fRec48[1] = fRec48[0];
1427 fRec49[1] = fRec49[0];
1428 fVec8[1] = fVec8[0];
1429 fRec50[2] = fRec50[1];
1430 fRec50[1] = fRec50[0];
1431 fRec51[1] = fRec51[0];
1432 fRec41[2] = fRec41[1];
1433 fRec41[1] = fRec41[0];
1434 fRec42[2] = fRec42[1];
1435 fRec42[1] = fRec42[0];
1436 fRec43[1] = fRec43[0];
1437 fVec7[1] = fVec7[0];
1438 fRec44[2] = fRec44[1];
1439 fRec44[1] = fRec44[0];
1440 fRec45[1] = fRec45[0];
1441 fRec46[1] = fRec46[0];
1442 fVec6[1] = fVec6[0];
1443 fRec47[2] = fRec47[1];
1444 fRec47[1] = fRec47[0];
1445 fRec1[1] = fRec1[0];
1446 fRec2[2] = fRec2[1];
1447 fRec2[1] = fRec2[0];
1448 fRec31[1] = fRec31[0];
1449 fRec3[1] = fRec3[0];
1450 fVec5[1] = fVec5[0];
1451 fRec4[1] = fRec4[0];
1452 fRec5[2] = fRec5[1];
1453 fRec5[1] = fRec5[0];
1454 fRec30[1] = fRec30[0];
1455 fRec6[1] = fRec6[0];
1456 fVec4[1] = fVec4[0];
1457 fRec8[1] = fRec8[0];
1458 fRec9[2] = fRec9[1];
1459 fRec9[1] = fRec9[0];
1460 fRec29[1] = fRec29[0];
1461 fRec10[1] = fRec10[0];
1462 fVec3[1] = fVec3[0];
1463 fRec27[2] = fRec27[1];
1464 fRec27[1] = fRec27[0];
1465 fRec28[1] = fRec28[0];
1466 fRec23[2] = fRec23[1];
1467 fRec23[1] = fRec23[0];
1468 fRec24[2] = fRec24[1];
1469 fRec24[1] = fRec24[0];
1470 fRec25[2] = fRec25[1];
1471 fRec25[1] = fRec25[0];
1472 fRec26[1] = fRec26[0];
1473 fRec19[2] = fRec19[1];
1474 fRec19[1] = fRec19[0];
1475 fRec20[1] = fRec20[0];
1476 fVec2[1] = fVec2[0];
1477 fRec21[2] = fRec21[1];
1478 fRec21[1] = fRec21[0];
1479 fRec22[1] = fRec22[0];
1480 fRec11[2] = fRec11[1];
1481 fRec11[1] = fRec11[0];
1482 fRec12[2] = fRec12[1];
1483 fRec12[1] = fRec12[0];
1484 fRec13[1] = fRec13[0];
1485 fVec1[1] = fVec1[0];
1486 fRec14[2] = fRec14[1];
1487 fRec14[1] = fRec14[0];
1488 fRec15[1] = fRec15[0];
1489 fRec16[1] = fRec16[0];
1490 fVec0[1] = fVec0[0];
1491 fRec17[2] = fRec17[1];
1492 fRec17[1] = fRec17[0];
1493 fRec18[1] = fRec18[0];
1494 fRec7[1] = fRec7[0];
1495 fRec0[1] = fRec0[0];
1496 }
1497 }
1498
1499 inline void GxAmpStereo::run_6DJ8(uint32_t count, float *input0, float *input1, float *output0, float *output1)
1500 {
1501 fslider0 = (*fslider0_);
1502 fslider1 = (*fslider1_);
1503 fslider2 = (*fslider2_);
1504 fslider3 = (*fslider3_);
1505 double fSlow0 = (0.0010000000000000009 * pow(10,(0.05 * fslider0)));
1506 double fSlow1 = (0.0010000000000000009 * pow(10,(0.05 * fslider1)));
1507 double fSlow2 = (1.000000000000001e-05 * fslider2);
1508 double fSlow3 = fslider3;
1509 double fSlow4 = pow(1e+01,(1.2 * fSlow3));
1510 double fSlow5 = (fConst44 * pow(1e+01,(2 * fSlow3)));
1511 double fSlow6 = pow(1e+01,(0.8 * fSlow3));
1512 double fSlow7 = (fConst44 * pow(1e+01,(0.9 * fSlow3)));
1513 double fSlow8 = (2 * (fSlow3 - 0.5));
1514 double fSlow9 = (1 - max(0, (0 - fSlow8)));
1515 double fSlow10 = (1.25 * fSlow3);
1516 double fSlow11 = (1 - max(0, fSlow8));
1517 for (uint32_t i=0; i<count; i++)
1518 {
1519 fRec0[0] = (fSlow0 + (0.999 * fRec0[1]));
1520 fRec7[0] = (fSlow1 + (0.999 * fRec7[1]));
1521 double fTemp0 = (fConst9 * fRec11[1]);
1522 fRec18[0] = (fSlow2 + (0.999 * fRec18[1]));
1523 double fTemp1 = (double)input0[i];
1524 fRec17[0] = ((fTemp1 * fRec18[0]) - (fConst36 * ((fConst34 * fRec17[2]) + (fConst32 * fRec17[1]))));
1525 double fTemp2 = (fRec17[2] + (fRec17[0] + (2 * fRec17[1])));
1526 fVec0[0] = fTemp2;
1527 fRec16[0] = ((fConst38 * ((fConst37 * fVec0[1]) + (fConst1 * fVec0[0]))) + (fConst3 * fRec16[1]));
1528 fRec15[0] = ((fConst39 * (fRec16[0] + fRec16[1])) + (fConst30 * fRec15[1]));
1529 fRec14[0] = (fRec15[0] - (fConst28 * ((fConst26 * fRec14[2]) + (fConst24 * fRec14[1]))));
1530 double fTemp3 = (fRec14[2] + (fRec14[0] + (2 * fRec14[1])));
1531 fVec1[0] = fTemp3;
1532 fRec13[0] = ((fConst41 * ((fConst40 * fVec1[1]) + (fConst16 * fVec1[0]))) + (fConst21 * fRec13[1]));
1533 fRec12[0] = (fRec13[0] - (fConst19 * ((fConst17 * fRec12[2]) + (fConst15 * fRec12[1]))));
1534 fRec11[0] = ((fConst19 * (((fConst14 * fRec12[0]) + (fConst42 * fRec12[1])) + (fConst14 * fRec12[2]))) - (fConst12 * ((fConst11 * fRec11[2]) + fTemp0)));
1535 double fTemp4 = max(-1, min(1, (fSlow4 * (fRec11[2] + (fConst12 * (fTemp0 + (fConst11 * fRec11[0])))))));
1536 fRec22[0] = ((fConst41 * (fVec1[0] + fVec1[1])) + (fConst21 * fRec22[1]));
1537 fRec21[0] = (fRec22[0] - (fConst19 * ((fConst17 * fRec21[2]) + (fConst15 * fRec21[1]))));
1538 double fTemp5 = (fRec21[2] + (fRec21[0] + (2 * fRec21[1])));
1539 fVec2[0] = fTemp5;
1540 fRec20[0] = ((fConst48 * ((fConst47 * fVec2[1]) + (fConst10 * fVec2[0]))) + (fConst46 * fRec20[1]));
1541 fRec19[0] = (fRec20[0] - (fConst44 * ((fConst43 * fRec19[2]) + (fConst9 * fRec19[1]))));
1542 double fTemp6 = max(-1, min(1, (fSlow5 * (((fConst8 * fRec19[0]) + (fConst49 * fRec19[1])) + (fConst8 * fRec19[2])))));
1543 double fTemp7 = (fConst9 * fRec23[1]);
1544 double fTemp8 = (fConst15 * fRec24[1]);
1545 fRec26[0] = ((fConst39 * ((fConst52 * fRec16[1]) + (fConst25 * fRec16[0]))) + (fConst30 * fRec26[1]));
1546 fRec25[0] = (fRec26[0] - (fConst28 * ((fConst26 * fRec25[2]) + (fConst24 * fRec25[1]))));
1547 fRec24[0] = ((fConst28 * (((fConst23 * fRec25[0]) + (fConst53 * fRec25[1])) + (fConst23 * fRec25[2]))) - (fConst51 * ((fConst50 * fRec24[2]) + fTemp8)));
1548 fRec23[0] = ((fRec24[2] + (fConst51 * (fTemp8 + (fConst50 * fRec24[0])))) - (fConst12 * ((fConst11 * fRec23[2]) + fTemp7)));
1549 double fTemp9 = max(-1, min(1, (fSlow6 * (fRec23[2] + (fConst12 * (fTemp7 + (fConst11 * fRec23[0])))))));
1550 fRec28[0] = ((fConst48 * (fVec2[0] + fVec2[1])) + (fConst46 * fRec28[1]));
1551 fRec27[0] = (fRec28[0] - (fConst44 * ((fConst43 * fRec27[2]) + (fConst9 * fRec27[1]))));
1552 double fTemp10 = max(-1, min(1, (fSlow7 * (fRec27[2] + (fRec27[0] + (2 * fRec27[1]))))));
1553 double fTemp11 = ((1.2589412 * (fTemp10 * (1 - (0.3333333333333333 * faustpower<2>(fTemp10))))) + (1.584893192 * ((fTemp9 * (1 - (0.3333333333333333 * faustpower<2>(fTemp9)))) + ((fTemp6 * (1 - (0.3333333333333333 * faustpower<2>(fTemp6)))) + (0.8413951417869425 * (fTemp4 * (1 - (0.3333333333333333 * faustpower<2>(fTemp4)))))))));
1554 fVec3[0] = fTemp11;
1555 fRec10[0] = ((fConst54 * (fVec3[0] + fVec3[1])) + (fConst6 * fRec10[1]));
1556 fRec29[0] = ((fConst58 * (fRec9[1] + fRec9[2])) + (fConst57 * fRec29[1]));
1557 double fTemp12 = (1 - fRec18[0]);
1558 double fTemp13 = (fSlow11 * fRec18[0]);
1559 fRec9[0] = (Ftube(TUBE_TABLE_6DJ8_68k, (((fTemp1 * (fTemp13 + (fTemp12 * (1 + (fSlow10 * ((4 - (4 * fabs((fTemp1 * fTemp12)))) - 1)))))) + (fRec29[0] + (fSlow9 * fRec10[0]))) - 1.863946)) - 60.96496296296296);
1560 fRec8[0] = ((fConst59 * ((fConst37 * fRec9[1]) + (fConst1 * fRec9[0]))) + (fConst3 * fRec8[1]));
1561 double fTemp14 = (fRec8[0] * fRec7[0]);
1562 fVec4[0] = fTemp14;
1563 fRec6[0] = ((fConst54 * (fVec4[0] + fVec4[1])) + (fConst6 * fRec6[1]));
1564 fRec30[0] = ((fConst63 * (fRec5[1] + fRec5[2])) + (fConst62 * fRec30[1]));
1565 fRec5[0] = (Ftube(TUBE_TABLE_6DJ8_250k, ((fRec30[0] + fRec6[0]) - 1.271609)) - 45.22606666666667);
1566 fRec4[0] = ((fConst59 * ((fConst37 * fRec5[1]) + (fConst1 * fRec5[0]))) + (fConst3 * fRec4[1]));
1567 double fTemp15 = (fRec7[0] * fRec4[0]);
1568 fVec5[0] = fTemp15;
1569 fRec3[0] = ((fConst54 * (fVec5[0] + fVec5[1])) + (fConst6 * fRec3[1]));
1570 fRec31[0] = ((fConst67 * (fRec2[1] + fRec2[2])) + (fConst66 * fRec31[1]));
1571 fRec2[0] = (Ftube(TUBE_TABLE_6DJ8_250k, ((fRec31[0] + fRec3[0]) - 0.797043)) - 32.799634146341475);
1572 fRec1[0] = ((fConst59 * ((fConst37 * fRec2[1]) + (fConst1 * fRec2[0]))) + (fConst3 * fRec1[1]));
1573 output0[i] = (float)(fRec1[0] * fRec0[0]);
1574 double fTemp16 = (fConst9 * fRec41[1]);
1575 double fTemp17 = (double)input1[i];
1576 fRec47[0] = ((fTemp17 * fRec18[0]) - (fConst36 * ((fConst34 * fRec47[2]) + (fConst32 * fRec47[1]))));
1577 double fTemp18 = (fRec47[2] + (fRec47[0] + (2 * fRec47[1])));
1578 fVec6[0] = fTemp18;
1579 fRec46[0] = ((fConst38 * ((fConst37 * fVec6[1]) + (fConst1 * fVec6[0]))) + (fConst3 * fRec46[1]));
1580 fRec45[0] = ((fConst39 * (fRec46[0] + fRec46[1])) + (fConst30 * fRec45[1]));
1581 fRec44[0] = (fRec45[0] - (fConst28 * ((fConst26 * fRec44[2]) + (fConst24 * fRec44[1]))));
1582 double fTemp19 = (fRec44[2] + (fRec44[0] + (2 * fRec44[1])));
1583 fVec7[0] = fTemp19;
1584 fRec43[0] = ((fConst41 * ((fConst40 * fVec7[1]) + (fConst16 * fVec7[0]))) + (fConst21 * fRec43[1]));
1585 fRec42[0] = (fRec43[0] - (fConst19 * ((fConst17 * fRec42[2]) + (fConst15 * fRec42[1]))));
1586 fRec41[0] = ((fConst19 * (((fConst14 * fRec42[0]) + (fConst42 * fRec42[1])) + (fConst14 * fRec42[2]))) - (fConst12 * ((fConst11 * fRec41[2]) + fTemp16)));
1587 double fTemp20 = max(-1, min(1, (fSlow4 * (fRec41[2] + (fConst12 * (fTemp16 + (fConst11 * fRec41[0])))))));
1588 fRec51[0] = ((fConst41 * (fVec7[0] + fVec7[1])) + (fConst21 * fRec51[1]));
1589 fRec50[0] = (fRec51[0] - (fConst19 * ((fConst17 * fRec50[2]) + (fConst15 * fRec50[1]))));
1590 double fTemp21 = (fRec50[2] + (fRec50[0] + (2 * fRec50[1])));
1591 fVec8[0] = fTemp21;
1592 fRec49[0] = ((fConst48 * ((fConst47 * fVec8[1]) + (fConst10 * fVec8[0]))) + (fConst46 * fRec49[1]));
1593 fRec48[0] = (fRec49[0] - (fConst44 * ((fConst43 * fRec48[2]) + (fConst9 * fRec48[1]))));
1594 double fTemp22 = max(-1, min(1, (fSlow5 * (((fConst8 * fRec48[0]) + (fConst49 * fRec48[1])) + (fConst8 * fRec48[2])))));
1595 double fTemp23 = (fConst9 * fRec52[1]);
1596 double fTemp24 = (fConst15 * fRec53[1]);
1597 fRec55[0] = ((fConst39 * ((fConst52 * fRec46[1]) + (fConst25 * fRec46[0]))) + (fConst30 * fRec55[1]));
1598 fRec54[0] = (fRec55[0] - (fConst28 * ((fConst26 * fRec54[2]) + (fConst24 * fRec54[1]))));
1599 fRec53[0] = ((fConst28 * (((fConst23 * fRec54[0]) + (fConst53 * fRec54[1])) + (fConst23 * fRec54[2]))) - (fConst51 * ((fConst50 * fRec53[2]) + fTemp24)));
1600 fRec52[0] = ((fRec53[2] + (fConst51 * (fTemp24 + (fConst50 * fRec53[0])))) - (fConst12 * ((fConst11 * fRec52[2]) + fTemp23)));
1601 double fTemp25 = max(-1, min(1, (fSlow6 * (fRec52[2] + (fConst12 * (fTemp23 + (fConst11 * fRec52[0])))))));
1602 fRec57[0] = ((fConst48 * (fVec8[0] + fVec8[1])) + (fConst46 * fRec57[1]));
1603 fRec56[0] = (fRec57[0] - (fConst44 * ((fConst43 * fRec56[2]) + (fConst9 * fRec56[1]))));
1604 double fTemp26 = max(-1, min(1, (fSlow7 * (fRec56[2] + (fRec56[0] + (2 * fRec56[1]))))));
1605 double fTemp27 = ((1.2589412 * (fTemp26 * (1 - (0.3333333333333333 * faustpower<2>(fTemp26))))) + (1.584893192 * ((fTemp25 * (1 - (0.3333333333333333 * faustpower<2>(fTemp25)))) + ((fTemp22 * (1 - (0.3333333333333333 * faustpower<2>(fTemp22)))) + (0.8413951417869425 * (fTemp20 * (1 - (0.3333333333333333 * faustpower<2>(fTemp20)))))))));
1606 fVec9[0] = fTemp27;
1607 fRec40[0] = ((fConst54 * (fVec9[0] + fVec9[1])) + (fConst6 * fRec40[1]));
1608 fRec58[0] = ((fConst58 * (fRec39[1] + fRec39[2])) + (fConst57 * fRec58[1]));
1609 fRec39[0] = (Ftube(TUBE_TABLE_6DJ8_68k, (((fTemp17 * (fTemp13 + (fTemp12 * (1 + (fSlow10 * ((4 - (4 * fabs((fTemp17 * fTemp12)))) - 1)))))) + (fRec58[0] + (fSlow9 * fRec40[0]))) - 1.863946)) - 60.96496296296296);
1610 fRec38[0] = ((fConst59 * ((fConst37 * fRec39[1]) + (fConst1 * fRec39[0]))) + (fConst3 * fRec38[1]));
1611 double fTemp28 = (fRec7[0] * fRec38[0]);
1612 fVec10[0] = fTemp28;
1613 fRec37[0] = ((fConst54 * (fVec10[0] + fVec10[1])) + (fConst6 * fRec37[1]));
1614 fRec59[0] = ((fConst63 * (fRec36[1] + fRec36[2])) + (fConst62 * fRec59[1]));
1615 fRec36[0] = (Ftube(TUBE_TABLE_6DJ8_250k, ((fRec59[0] + fRec37[0]) - 1.271609)) - 45.22606666666667);
1616 fRec35[0] = ((fConst59 * ((fConst37 * fRec36[1]) + (fConst1 * fRec36[0]))) + (fConst3 * fRec35[1]));
1617 double fTemp29 = (fRec7[0] * fRec35[0]);
1618 fVec11[0] = fTemp29;
1619 fRec34[0] = ((fConst54 * (fVec11[0] + fVec11[1])) + (fConst6 * fRec34[1]));
1620 fRec60[0] = ((fConst67 * (fRec33[1] + fRec33[2])) + (fConst66 * fRec60[1]));
1621 fRec33[0] = (Ftube(TUBE_TABLE_6DJ8_250k, ((fRec60[0] + fRec34[0]) - 0.797043)) - 32.799634146341475);
1622 fRec32[0] = ((fConst59 * ((fConst37 * fRec33[1]) + (fConst1 * fRec33[0]))) + (fConst3 * fRec32[1]));
1623 output1[i] = (float)(fRec0[0] * fRec32[0]);
1624 // post processing
1625 fRec32[1] = fRec32[0];
1626 fRec33[2] = fRec33[1];
1627 fRec33[1] = fRec33[0];
1628 fRec60[1] = fRec60[0];
1629 fRec34[1] = fRec34[0];
1630 fVec11[1] = fVec11[0];
1631 fRec35[1] = fRec35[0];
1632 fRec36[2] = fRec36[1];
1633 fRec36[1] = fRec36[0];
1634 fRec59[1] = fRec59[0];
1635 fRec37[1] = fRec37[0];
1636 fVec10[1] = fVec10[0];
1637 fRec38[1] = fRec38[0];
1638 fRec39[2] = fRec39[1];
1639 fRec39[1] = fRec39[0];
1640 fRec58[1] = fRec58[0];
1641 fRec40[1] = fRec40[0];
1642 fVec9[1] = fVec9[0];
1643 fRec56[2] = fRec56[1];
1644 fRec56[1] = fRec56[0];
1645 fRec57[1] = fRec57[0];
1646 fRec52[2] = fRec52[1];
1647 fRec52[1] = fRec52[0];
1648 fRec53[2] = fRec53[1];
1649 fRec53[1] = fRec53[0];
1650 fRec54[2] = fRec54[1];
1651 fRec54[1] = fRec54[0];
1652 fRec55[1] = fRec55[0];
1653 fRec48[2] = fRec48[1];
1654 fRec48[1] = fRec48[0];
1655 fRec49[1] = fRec49[0];
1656 fVec8[1] = fVec8[0];
1657 fRec50[2] = fRec50[1];
1658 fRec50[1] = fRec50[0];
1659 fRec51[1] = fRec51[0];
1660 fRec41[2] = fRec41[1];
1661 fRec41[1] = fRec41[0];
1662 fRec42[2] = fRec42[1];
1663 fRec42[1] = fRec42[0];
1664 fRec43[1] = fRec43[0];
1665 fVec7[1] = fVec7[0];
1666 fRec44[2] = fRec44[1];
1667 fRec44[1] = fRec44[0];
1668 fRec45[1] = fRec45[0];
1669 fRec46[1] = fRec46[0];
1670 fVec6[1] = fVec6[0];
1671 fRec47[2] = fRec47[1];
1672 fRec47[1] = fRec47[0];
1673 fRec1[1] = fRec1[0];
1674 fRec2[2] = fRec2[1];
1675 fRec2[1] = fRec2[0];
1676 fRec31[1] = fRec31[0];
1677 fRec3[1] = fRec3[0];
1678 fVec5[1] = fVec5[0];
1679 fRec4[1] = fRec4[0];
1680 fRec5[2] = fRec5[1];
1681 fRec5[1] = fRec5[0];
1682 fRec30[1] = fRec30[0];
1683 fRec6[1] = fRec6[0];
1684 fVec4[1] = fVec4[0];
1685 fRec8[1] = fRec8[0];
1686 fRec9[2] = fRec9[1];
1687 fRec9[1] = fRec9[0];
1688 fRec29[1] = fRec29[0];
1689 fRec10[1] = fRec10[0];
1690 fVec3[1] = fVec3[0];
1691 fRec27[2] = fRec27[1];
1692 fRec27[1] = fRec27[0];
1693 fRec28[1] = fRec28[0];
1694 fRec23[2] = fRec23[1];
1695 fRec23[1] = fRec23[0];
1696 fRec24[2] = fRec24[1];
1697 fRec24[1] = fRec24[0];
1698 fRec25[2] = fRec25[1];
1699 fRec25[1] = fRec25[0];
1700 fRec26[1] = fRec26[0];
1701 fRec19[2] = fRec19[1];
1702 fRec19[1] = fRec19[0];
1703 fRec20[1] = fRec20[0];
1704 fVec2[1] = fVec2[0];
1705 fRec21[2] = fRec21[1];
1706 fRec21[1] = fRec21[0];
1707 fRec22[1] = fRec22[0];
1708 fRec11[2] = fRec11[1];
1709 fRec11[1] = fRec11[0];
1710 fRec12[2] = fRec12[1];
1711 fRec12[1] = fRec12[0];
1712 fRec13[1] = fRec13[0];
1713 fVec1[1] = fVec1[0];
1714 fRec14[2] = fRec14[1];
1715 fRec14[1] = fRec14[0];
1716 fRec15[1] = fRec15[0];
1717 fRec16[1] = fRec16[0];
1718 fVec0[1] = fVec0[0];
1719 fRec17[2] = fRec17[1];
1720 fRec17[1] = fRec17[0];
1721 fRec18[1] = fRec18[0];
1722 fRec7[1] = fRec7[0];
1723 fRec0[1] = fRec0[0];
1724 }
1725 }
1726
1727 inline void GxAmpStereo::run_12AT7(uint32_t count, float *input0, float *input1, float *output0, float *output1)
1728 {
1729 fslider0 = (*fslider0_);
1730 fslider1 = (*fslider1_);
1731 fslider2 = (*fslider2_);
1732 fslider3 = (*fslider3_);
1733 double fSlow0 = (0.0010000000000000009 * pow(10,(0.05 * fslider0)));
1734 double fSlow1 = (0.0010000000000000009 * pow(10,(0.05 * fslider1)));
1735 double fSlow2 = (1.000000000000001e-05 * fslider2);
1736 double fSlow3 = fslider3;
1737 double fSlow4 = pow(1e+01,(1.2 * fSlow3));
1738 double fSlow5 = (fConst44 * pow(1e+01,(2 * fSlow3)));
1739 double fSlow6 = pow(1e+01,(0.8 * fSlow3));
1740 double fSlow7 = (fConst44 * pow(1e+01,(0.9 * fSlow3)));
1741 double fSlow8 = (2 * (fSlow3 - 0.5));
1742 double fSlow9 = (1 - max(0, (0 - fSlow8)));
1743 double fSlow10 = (1.25 * fSlow3);
1744 double fSlow11 = (1 - max(0, fSlow8));
1745 for (uint32_t i=0; i<count; i++)
1746 {
1747 fRec0[0] = (fSlow0 + (0.999 * fRec0[1]));
1748 fRec7[0] = (fSlow1 + (0.999 * fRec7[1]));
1749 double fTemp0 = (fConst9 * fRec11[1]);
1750 fRec18[0] = (fSlow2 + (0.999 * fRec18[1]));
1751 double fTemp1 = (double)input0[i];
1752 fRec17[0] = ((fTemp1 * fRec18[0]) - (fConst36 * ((fConst34 * fRec17[2]) + (fConst32 * fRec17[1]))));
1753 double fTemp2 = (fRec17[2] + (fRec17[0] + (2 * fRec17[1])));
1754 fVec0[0] = fTemp2;
1755 fRec16[0] = ((fConst38 * ((fConst37 * fVec0[1]) + (fConst1 * fVec0[0]))) + (fConst3 * fRec16[1]));
1756 fRec15[0] = ((fConst39 * (fRec16[0] + fRec16[1])) + (fConst30 * fRec15[1]));
1757 fRec14[0] = (fRec15[0] - (fConst28 * ((fConst26 * fRec14[2]) + (fConst24 * fRec14[1]))));
1758 double fTemp3 = (fRec14[2] + (fRec14[0] + (2 * fRec14[1])));
1759 fVec1[0] = fTemp3;
1760 fRec13[0] = ((fConst41 * ((fConst40 * fVec1[1]) + (fConst16 * fVec1[0]))) + (fConst21 * fRec13[1]));
1761 fRec12[0] = (fRec13[0] - (fConst19 * ((fConst17 * fRec12[2]) + (fConst15 * fRec12[1]))));
1762 fRec11[0] = ((fConst19 * (((fConst14 * fRec12[0]) + (fConst42 * fRec12[1])) + (fConst14 * fRec12[2]))) - (fConst12 * ((fConst11 * fRec11[2]) + fTemp0)));
1763 double fTemp4 = max(-1, min(1, (fSlow4 * (fRec11[2] + (fConst12 * (fTemp0 + (fConst11 * fRec11[0])))))));
1764 fRec22[0] = ((fConst41 * (fVec1[0] + fVec1[1])) + (fConst21 * fRec22[1]));
1765 fRec21[0] = (fRec22[0] - (fConst19 * ((fConst17 * fRec21[2]) + (fConst15 * fRec21[1]))));
1766 double fTemp5 = (fRec21[2] + (fRec21[0] + (2 * fRec21[1])));
1767 fVec2[0] = fTemp5;
1768 fRec20[0] = ((fConst48 * ((fConst47 * fVec2[1]) + (fConst10 * fVec2[0]))) + (fConst46 * fRec20[1]));
1769 fRec19[0] = (fRec20[0] - (fConst44 * ((fConst43 * fRec19[2]) + (fConst9 * fRec19[1]))));
1770 double fTemp6 = max(-1, min(1, (fSlow5 * (((fConst8 * fRec19[0]) + (fConst49 * fRec19[1])) + (fConst8 * fRec19[2])))));
1771 double fTemp7 = (fConst9 * fRec23[1]);
1772 double fTemp8 = (fConst15 * fRec24[1]);
1773 fRec26[0] = ((fConst39 * ((fConst52 * fRec16[1]) + (fConst25 * fRec16[0]))) + (fConst30 * fRec26[1]));
1774 fRec25[0] = (fRec26[0] - (fConst28 * ((fConst26 * fRec25[2]) + (fConst24 * fRec25[1]))));
1775 fRec24[0] = ((fConst28 * (((fConst23 * fRec25[0]) + (fConst53 * fRec25[1])) + (fConst23 * fRec25[2]))) - (fConst51 * ((fConst50 * fRec24[2]) + fTemp8)));
1776 fRec23[0] = ((fRec24[2] + (fConst51 * (fTemp8 + (fConst50 * fRec24[0])))) - (fConst12 * ((fConst11 * fRec23[2]) + fTemp7)));
1777 double fTemp9 = max(-1, min(1, (fSlow6 * (fRec23[2] + (fConst12 * (fTemp7 + (fConst11 * fRec23[0])))))));
1778 fRec28[0] = ((fConst48 * (fVec2[0] + fVec2[1])) + (fConst46 * fRec28[1]));
1779 fRec27[0] = (fRec28[0] - (fConst44 * ((fConst43 * fRec27[2]) + (fConst9 * fRec27[1]))));
1780 double fTemp10 = max(-1, min(1, (fSlow7 * (fRec27[2] + (fRec27[0] + (2 * fRec27[1]))))));
1781 double fTemp11 = ((1.2589412 * (fTemp10 * (1 - (0.3333333333333333 * faustpower<2>(fTemp10))))) + (1.584893192 * ((fTemp9 * (1 - (0.3333333333333333 * faustpower<2>(fTemp9)))) + ((fTemp6 * (1 - (0.3333333333333333 * faustpower<2>(fTemp6)))) + (0.8413951417869425 * (fTemp4 * (1 - (0.3333333333333333 * faustpower<2>(fTemp4)))))))));
1782 fVec3[0] = fTemp11;
1783 fRec10[0] = ((fConst54 * (fVec3[0] + fVec3[1])) + (fConst6 * fRec10[1]));
1784 fRec29[0] = ((fConst58 * (fRec9[1] + fRec9[2])) + (fConst57 * fRec29[1]));
1785 double fTemp12 = (1 - fRec18[0]);
1786 double fTemp13 = (fSlow11 * fRec18[0]);
1787 fRec9[0] = (Ftube(TUBE_TABLE_12AT7_68k, (((fTemp1 * (fTemp13 + (fTemp12 * (1 + (fSlow10 * ((4 - (4 * fabs((fTemp1 * fTemp12)))) - 1)))))) + (fRec29[0] + (fSlow9 * fRec10[0]))) - 2.617753)) - 153.04618518518518);
1788 fRec8[0] = ((fConst59 * ((fConst37 * fRec9[1]) + (fConst1 * fRec9[0]))) + (fConst3 * fRec8[1]));
1789 double fTemp14 = (fRec8[0] * fRec7[0]);
1790 fVec4[0] = fTemp14;
1791 fRec6[0] = ((fConst54 * (fVec4[0] + fVec4[1])) + (fConst6 * fRec6[1]));
1792 fRec30[0] = ((fConst63 * (fRec5[1] + fRec5[2])) + (fConst62 * fRec30[1]));
1793 fRec5[0] = (Ftube(TUBE_TABLE_12AT7_250k, ((fRec30[0] + fRec6[0]) - 1.887332)) - 124.17786666666666);
1794 fRec4[0] = ((fConst59 * ((fConst37 * fRec5[1]) + (fConst1 * fRec5[0]))) + (fConst3 * fRec4[1]));
1795 double fTemp15 = (fRec7[0] * fRec4[0]);
1796 fVec5[0] = fTemp15;
1797 fRec3[0] = ((fConst54 * (fVec5[0] + fVec5[1])) + (fConst6 * fRec3[1]));
1798 fRec31[0] = ((fConst67 * (fRec2[1] + fRec2[2])) + (fConst66 * fRec31[1]));
1799 fRec2[0] = (Ftube(TUBE_TABLE_12AT7_250k, ((fRec31[0] + fRec3[0]) - 1.256962)) - 96.7119512195122);
1800 fRec1[0] = ((fConst59 * ((fConst37 * fRec2[1]) + (fConst1 * fRec2[0]))) + (fConst3 * fRec1[1]));
1801 output0[i] = (float)(fRec1[0] * fRec0[0]);
1802 double fTemp16 = (fConst9 * fRec41[1]);
1803 double fTemp17 = (double)input1[i];
1804 fRec47[0] = ((fTemp17 * fRec18[0]) - (fConst36 * ((fConst34 * fRec47[2]) + (fConst32 * fRec47[1]))));
1805 double fTemp18 = (fRec47[2] + (fRec47[0] + (2 * fRec47[1])));
1806 fVec6[0] = fTemp18;
1807 fRec46[0] = ((fConst38 * ((fConst37 * fVec6[1]) + (fConst1 * fVec6[0]))) + (fConst3 * fRec46[1]));
1808 fRec45[0] = ((fConst39 * (fRec46[0] + fRec46[1])) + (fConst30 * fRec45[1]));
1809 fRec44[0] = (fRec45[0] - (fConst28 * ((fConst26 * fRec44[2]) + (fConst24 * fRec44[1]))));
1810 double fTemp19 = (fRec44[2] + (fRec44[0] + (2 * fRec44[1])));
1811 fVec7[0] = fTemp19;
1812 fRec43[0] = ((fConst41 * ((fConst40 * fVec7[1]) + (fConst16 * fVec7[0]))) + (fConst21 * fRec43[1]));
1813 fRec42[0] = (fRec43[0] - (fConst19 * ((fConst17 * fRec42[2]) + (fConst15 * fRec42[1]))));
1814 fRec41[0] = ((fConst19 * (((fConst14 * fRec42[0]) + (fConst42 * fRec42[1])) + (fConst14 * fRec42[2]))) - (fConst12 * ((fConst11 * fRec41[2]) + fTemp16)));
1815 double fTemp20 = max(-1, min(1, (fSlow4 * (fRec41[2] + (fConst12 * (fTemp16 + (fConst11 * fRec41[0])))))));
1816 fRec51[0] = ((fConst41 * (fVec7[0] + fVec7[1])) + (fConst21 * fRec51[1]));
1817 fRec50[0] = (fRec51[0] - (fConst19 * ((fConst17 * fRec50[2]) + (fConst15 * fRec50[1]))));
1818 double fTemp21 = (fRec50[2] + (fRec50[0] + (2 * fRec50[1])));
1819 fVec8[0] = fTemp21;
1820 fRec49[0] = ((fConst48 * ((fConst47 * fVec8[1]) + (fConst10 * fVec8[0]))) + (fConst46 * fRec49[1]));
1821 fRec48[0] = (fRec49[0] - (fConst44 * ((fConst43 * fRec48[2]) + (fConst9 * fRec48[1]))));
1822 double fTemp22 = max(-1, min(1, (fSlow5 * (((fConst8 * fRec48[0]) + (fConst49 * fRec48[1])) + (fConst8 * fRec48[2])))));
1823 double fTemp23 = (fConst9 * fRec52[1]);
1824 double fTemp24 = (fConst15 * fRec53[1]);
1825 fRec55[0] = ((fConst39 * ((fConst52 * fRec46[1]) + (fConst25 * fRec46[0]))) + (fConst30 * fRec55[1]));
1826 fRec54[0] = (fRec55[0] - (fConst28 * ((fConst26 * fRec54[2]) + (fConst24 * fRec54[1]))));
1827 fRec53[0] = ((fConst28 * (((fConst23 * fRec54[0]) + (fConst53 * fRec54[1])) + (fConst23 * fRec54[2]))) - (fConst51 * ((fConst50 * fRec53[2]) + fTemp24)));
1828 fRec52[0] = ((fRec53[2] + (fConst51 * (fTemp24 + (fConst50 * fRec53[0])))) - (fConst12 * ((fConst11 * fRec52[2]) + fTemp23)));
1829 double fTemp25 = max(-1, min(1, (fSlow6 * (fRec52[2] + (fConst12 * (fTemp23 + (fConst11 * fRec52[0])))))));
1830 fRec57[0] = ((fConst48 * (fVec8[0] + fVec8[1])) + (fConst46 * fRec57[1]));
1831 fRec56[0] = (fRec57[0] - (fConst44 * ((fConst43 * fRec56[2]) + (fConst9 * fRec56[1]))));
1832 double fTemp26 = max(-1, min(1, (fSlow7 * (fRec56[2] + (fRec56[0] + (2 * fRec56[1]))))));
1833 double fTemp27 = ((1.2589412 * (fTemp26 * (1 - (0.3333333333333333 * faustpower<2>(fTemp26))))) + (1.584893192 * ((fTemp25 * (1 - (0.3333333333333333 * faustpower<2>(fTemp25)))) + ((fTemp22 * (1 - (0.3333333333333333 * faustpower<2>(fTemp22)))) + (0.8413951417869425 * (fTemp20 * (1 - (0.3333333333333333 * faustpower<2>(fTemp20)))))))));
1834 fVec9[0] = fTemp27;
1835 fRec40[0] = ((fConst54 * (fVec9[0] + fVec9[1])) + (fConst6 * fRec40[1]));
1836 fRec58[0] = ((fConst58 * (fRec39[1] + fRec39[2])) + (fConst57 * fRec58[1]));
1837 fRec39[0] = (Ftube(TUBE_TABLE_12AT7_68k, (((fTemp17 * (fTemp13 + (fTemp12 * (1 + (fSlow10 * ((4 - (4 * fabs((fTemp17 * fTemp12)))) - 1)))))) + (fRec58[0] + (fSlow9 * fRec40[0]))) - 2.617753)) - 153.04618518518518);
1838 fRec38[0] = ((fConst59 * ((fConst37 * fRec39[1]) + (fConst1 * fRec39[0]))) + (fConst3 * fRec38[1]));
1839 double fTemp28 = (fRec7[0] * fRec38[0]);
1840 fVec10[0] = fTemp28;
1841 fRec37[0] = ((fConst54 * (fVec10[0] + fVec10[1])) + (fConst6 * fRec37[1]));
1842 fRec59[0] = ((fConst63 * (fRec36[1] + fRec36[2])) + (fConst62 * fRec59[1]));
1843 fRec36[0] = (Ftube(TUBE_TABLE_12AT7_250k, ((fRec59[0] + fRec37[0]) - 1.887332)) - 124.17786666666666);
1844 fRec35[0] = ((fConst59 * ((fConst37 * fRec36[1]) + (fConst1 * fRec36[0]))) + (fConst3 * fRec35[1]));
1845 double fTemp29 = (fRec7[0] * fRec35[0]);
1846 fVec11[0] = fTemp29;
1847 fRec34[0] = ((fConst54 * (fVec11[0] + fVec11[1])) + (fConst6 * fRec34[1]));
1848 fRec60[0] = ((fConst67 * (fRec33[1] + fRec33[2])) + (fConst66 * fRec60[1]));
1849 fRec33[0] = (Ftube(TUBE_TABLE_12AT7_250k, ((fRec60[0] + fRec34[0]) - 1.256962)) - 96.7119512195122);
1850 fRec32[0] = ((fConst59 * ((fConst37 * fRec33[1]) + (fConst1 * fRec33[0]))) + (fConst3 * fRec32[1]));
1851 output1[i] = (float)(fRec0[0] * fRec32[0]);
1852 // post processing
1853 fRec32[1] = fRec32[0];
1854 fRec33[2] = fRec33[1];
1855 fRec33[1] = fRec33[0];
1856 fRec60[1] = fRec60[0];
1857 fRec34[1] = fRec34[0];
1858 fVec11[1] = fVec11[0];
1859 fRec35[1] = fRec35[0];
1860 fRec36[2] = fRec36[1];
1861 fRec36[1] = fRec36[0];
1862 fRec59[1] = fRec59[0];
1863 fRec37[1] = fRec37[0];
1864 fVec10[1] = fVec10[0];
1865 fRec38[1] = fRec38[0];
1866 fRec39[2] = fRec39[1];
1867 fRec39[1] = fRec39[0];
1868 fRec58[1] = fRec58[0];
1869 fRec40[1] = fRec40[0];
1870 fVec9[1] = fVec9[0];
1871 fRec56[2] = fRec56[1];
1872 fRec56[1] = fRec56[0];
1873 fRec57[1] = fRec57[0];
1874 fRec52[2] = fRec52[1];
1875 fRec52[1] = fRec52[0];
1876 fRec53[2] = fRec53[1];
1877 fRec53[1] = fRec53[0];
1878 fRec54[2] = fRec54[1];
1879 fRec54[1] = fRec54[0];
1880 fRec55[1] = fRec55[0];
1881 fRec48[2] = fRec48[1];
1882 fRec48[1] = fRec48[0];
1883 fRec49[1] = fRec49[0];
1884 fVec8[1] = fVec8[0];
1885 fRec50[2] = fRec50[1];
1886 fRec50[1] = fRec50[0];
1887 fRec51[1] = fRec51[0];
1888 fRec41[2] = fRec41[1];
1889 fRec41[1] = fRec41[0];
1890 fRec42[2] = fRec42[1];
1891 fRec42[1] = fRec42[0];
1892 fRec43[1] = fRec43[0];
1893 fVec7[1] = fVec7[0];
1894 fRec44[2] = fRec44[1];
1895 fRec44[1] = fRec44[0];
1896 fRec45[1] = fRec45[0];
1897 fRec46[1] = fRec46[0];
1898 fVec6[1] = fVec6[0];
1899 fRec47[2] = fRec47[1];
1900 fRec47[1] = fRec47[0];
1901 fRec1[1] = fRec1[0];
1902 fRec2[2] = fRec2[1];
1903 fRec2[1] = fRec2[0];
1904 fRec31[1] = fRec31[0];
1905 fRec3[1] = fRec3[0];
1906 fVec5[1] = fVec5[0];
1907 fRec4[1] = fRec4[0];
1908 fRec5[2] = fRec5[1];
1909 fRec5[1] = fRec5[0];
1910 fRec30[1] = fRec30[0];
1911 fRec6[1] = fRec6[0];
1912 fVec4[1] = fVec4[0];
1913 fRec8[1] = fRec8[0];
1914 fRec9[2] = fRec9[1];
1915 fRec9[1] = fRec9[0];
1916 fRec29[1] = fRec29[0];
1917 fRec10[1] = fRec10[0];
1918 fVec3[1] = fVec3[0];
1919 fRec27[2] = fRec27[1];
1920 fRec27[1] = fRec27[0];
1921 fRec28[1] = fRec28[0];
1922 fRec23[2] = fRec23[1];
1923 fRec23[1] = fRec23[0];
1924 fRec24[2] = fRec24[1];
1925 fRec24[1] = fRec24[0];
1926 fRec25[2] = fRec25[1];
1927 fRec25[1] = fRec25[0];
1928 fRec26[1] = fRec26[0];
1929 fRec19[2] = fRec19[1];
1930 fRec19[1] = fRec19[0];
1931 fRec20[1] = fRec20[0];
1932 fVec2[1] = fVec2[0];
1933 fRec21[2] = fRec21[1];
1934 fRec21[1] = fRec21[0];
1935 fRec22[1] = fRec22[0];
1936 fRec11[2] = fRec11[1];
1937 fRec11[1] = fRec11[0];
1938 fRec12[2] = fRec12[1];
1939 fRec12[1] = fRec12[0];
1940 fRec13[1] = fRec13[0];
1941 fVec1[1] = fVec1[0];
1942 fRec14[2] = fRec14[1];
1943 fRec14[1] = fRec14[0];
1944 fRec15[1] = fRec15[0];
1945 fRec16[1] = fRec16[0];
1946 fVec0[1] = fVec0[0];
1947 fRec17[2] = fRec17[1];
1948 fRec17[1] = fRec17[0];
1949 fRec18[1] = fRec18[0];
1950 fRec7[1] = fRec7[0];
1951 fRec0[1] = fRec0[0];
1952 }
1953 }
1954
1955
1956 inline void GxAmpStereo::run_6C16(uint32_t count, float *input0, float *input1, float *output0, float *output1)
1957 {
1958 fslider0 = (*fslider0_);
1959 fslider1 = (*fslider1_);
1960 fslider2 = (*fslider2_);
1961 fslider3 = (*fslider3_);
1962 double fSlow0 = (0.0010000000000000009 * pow(10,(0.05 * fslider0)));
1963 double fSlow1 = (0.0010000000000000009 * pow(10,(0.05 * fslider1)));
1964 double fSlow2 = (1.000000000000001e-05 * fslider2);
1965 double fSlow3 = fslider3;
1966 double fSlow4 = pow(1e+01,(1.2 * fSlow3));
1967 double fSlow5 = (fConst44 * pow(1e+01,(2 * fSlow3)));
1968 double fSlow6 = pow(1e+01,(0.8 * fSlow3));
1969 double fSlow7 = (fConst44 * pow(1e+01,(0.9 * fSlow3)));
1970 double fSlow8 = (2 * (fSlow3 - 0.5));
1971 double fSlow9 = (1 - max(0, (0 - fSlow8)));
1972 double fSlow10 = (1.25 * fSlow3);
1973 double fSlow11 = (1 - max(0, fSlow8));
1974 for (uint32_t i=0; i<count; i++)
1975 {
1976 fRec0[0] = (fSlow0 + (0.999 * fRec0[1]));
1977 fRec7[0] = (fSlow1 + (0.999 * fRec7[1]));
1978 double fTemp0 = (fConst9 * fRec11[1]);
1979 fRec18[0] = (fSlow2 + (0.999 * fRec18[1]));
1980 double fTemp1 = (double)input0[i];
1981 fRec17[0] = ((fTemp1 * fRec18[0]) - (fConst36 * ((fConst34 * fRec17[2]) + (fConst32 * fRec17[1]))));
1982 double fTemp2 = (fRec17[2] + (fRec17[0] + (2 * fRec17[1])));
1983 fVec0[0] = fTemp2;
1984 fRec16[0] = ((fConst38 * ((fConst37 * fVec0[1]) + (fConst1 * fVec0[0]))) + (fConst3 * fRec16[1]));
1985 fRec15[0] = ((fConst39 * (fRec16[0] + fRec16[1])) + (fConst30 * fRec15[1]));
1986 fRec14[0] = (fRec15[0] - (fConst28 * ((fConst26 * fRec14[2]) + (fConst24 * fRec14[1]))));
1987 double fTemp3 = (fRec14[2] + (fRec14[0] + (2 * fRec14[1])));
1988 fVec1[0] = fTemp3;
1989 fRec13[0] = ((fConst41 * ((fConst40 * fVec1[1]) + (fConst16 * fVec1[0]))) + (fConst21 * fRec13[1]));
1990 fRec12[0] = (fRec13[0] - (fConst19 * ((fConst17 * fRec12[2]) + (fConst15 * fRec12[1]))));
1991 fRec11[0] = ((fConst19 * (((fConst14 * fRec12[0]) + (fConst42 * fRec12[1])) + (fConst14 * fRec12[2]))) - (fConst12 * ((fConst11 * fRec11[2]) + fTemp0)));
1992 double fTemp4 = max(-1, min(1, (fSlow4 * (fRec11[2] + (fConst12 * (fTemp0 + (fConst11 * fRec11[0])))))));
1993 fRec22[0] = ((fConst41 * (fVec1[0] + fVec1[1])) + (fConst21 * fRec22[1]));
1994 fRec21[0] = (fRec22[0] - (fConst19 * ((fConst17 * fRec21[2]) + (fConst15 * fRec21[1]))));
1995 double fTemp5 = (fRec21[2] + (fRec21[0] + (2 * fRec21[1])));
1996 fVec2[0] = fTemp5;
1997 fRec20[0] = ((fConst48 * ((fConst47 * fVec2[1]) + (fConst10 * fVec2[0]))) + (fConst46 * fRec20[1]));
1998 fRec19[0] = (fRec20[0] - (fConst44 * ((fConst43 * fRec19[2]) + (fConst9 * fRec19[1]))));
1999 double fTemp6 = max(-1, min(1, (fSlow5 * (((fConst8 * fRec19[0]) + (fConst49 * fRec19[1])) + (fConst8 * fRec19[2])))));
2000 double fTemp7 = (fConst9 * fRec23[1]);
2001 double fTemp8 = (fConst15 * fRec24[1]);
2002 fRec26[0] = ((fConst39 * ((fConst52 * fRec16[1]) + (fConst25 * fRec16[0]))) + (fConst30 * fRec26[1]));
2003 fRec25[0] = (fRec26[0] - (fConst28 * ((fConst26 * fRec25[2]) + (fConst24 * fRec25[1]))));
2004 fRec24[0] = ((fConst28 * (((fConst23 * fRec25[0]) + (fConst53 * fRec25[1])) + (fConst23 * fRec25[2]))) - (fConst51 * ((fConst50 * fRec24[2]) + fTemp8)));
2005 fRec23[0] = ((fRec24[2] + (fConst51 * (fTemp8 + (fConst50 * fRec24[0])))) - (fConst12 * ((fConst11 * fRec23[2]) + fTemp7)));
2006 double fTemp9 = max(-1, min(1, (fSlow6 * (fRec23[2] + (fConst12 * (fTemp7 + (fConst11 * fRec23[0])))))));
2007 fRec28[0] = ((fConst48 * (fVec2[0] + fVec2[1])) + (fConst46 * fRec28[1]));
2008 fRec27[0] = (fRec28[0] - (fConst44 * ((fConst43 * fRec27[2]) + (fConst9 * fRec27[1]))));
2009 double fTemp10 = max(-1, min(1, (fSlow7 * (fRec27[2] + (fRec27[0] + (2 * fRec27[1]))))));
2010 double fTemp11 = ((1.2589412 * (fTemp10 * (1 - (0.3333333333333333 * faustpower<2>(fTemp10))))) + (1.584893192 * ((fTemp9 * (1 - (0.3333333333333333 * faustpower<2>(fTemp9)))) + ((fTemp6 * (1 - (0.3333333333333333 * faustpower<2>(fTemp6)))) + (0.8413951417869425 * (fTemp4 * (1 - (0.3333333333333333 * faustpower<2>(fTemp4)))))))));
2011 fVec3[0] = fTemp11;
2012 fRec10[0] = ((fConst54 * (fVec3[0] + fVec3[1])) + (fConst6 * fRec10[1]));
2013 fRec29[0] = ((fConst58 * (fRec9[1] + fRec9[2])) + (fConst57 * fRec29[1]));
2014 double fTemp12 = (1 - fRec18[0]);
2015 double fTemp13 = (fSlow11 * fRec18[0]);
2016 fRec9[0] = (Ftube(TUBE_TABLE_6C16_68k, (((fTemp1 * (fTemp13 + (fTemp12 * (1 + (fSlow10 * ((4 - (4 * fabs((fTemp1 * fTemp12)))) - 1)))))) + (fRec29[0] + (fSlow9 * fRec10[0]))) - 2.921806)) - 141.78496296296294);
2017 fRec8[0] = ((fConst59 * ((fConst37 * fRec9[1]) + (fConst1 * fRec9[0]))) + (fConst3 * fRec8[1]));
2018 double fTemp14 = (fRec8[0] * fRec7[0]);
2019 fVec4[0] = fTemp14;
2020 fRec6[0] = ((fConst54 * (fVec4[0] + fVec4[1])) + (fConst6 * fRec6[1]));
2021 fRec30[0] = ((fConst63 * (fRec5[1] + fRec5[2])) + (fConst62 * fRec30[1]));
2022 fRec5[0] = (Ftube(TUBE_TABLE_6C16_250k, ((fRec30[0] + fRec6[0]) - 2.097743)) - 110.15046666666666);
2023 fRec4[0] = ((fConst59 * ((fConst37 * fRec5[1]) + (fConst1 * fRec5[0]))) + (fConst3 * fRec4[1]));
2024 double fTemp15 = (fRec7[0] * fRec4[0]);
2025 fVec5[0] = fTemp15;
2026 fRec3[0] = ((fConst54 * (fVec5[0] + fVec5[1])) + (fConst6 * fRec3[1]));
2027 fRec31[0] = ((fConst67 * (fRec2[1] + fRec2[2])) + (fConst66 * fRec31[1]));
2028 fRec2[0] = (Ftube(TUBE_TABLE_6C16_250k, ((fRec31[0] + fRec3[0]) - 1.378742)) - 81.86073170731709);
2029 fRec1[0] = ((fConst59 * ((fConst37 * fRec2[1]) + (fConst1 * fRec2[0]))) + (fConst3 * fRec1[1]));
2030 output0[i] = (float)(fRec1[0] * fRec0[0]);
2031 double fTemp16 = (fConst9 * fRec41[1]);
2032 double fTemp17 = (double)input1[i];
2033 fRec47[0] = ((fTemp17 * fRec18[0]) - (fConst36 * ((fConst34 * fRec47[2]) + (fConst32 * fRec47[1]))));
2034 double fTemp18 = (fRec47[2] + (fRec47[0] + (2 * fRec47[1])));
2035 fVec6[0] = fTemp18;
2036 fRec46[0] = ((fConst38 * ((fConst37 * fVec6[1]) + (fConst1 * fVec6[0]))) + (fConst3 * fRec46[1]));
2037 fRec45[0] = ((fConst39 * (fRec46[0] + fRec46[1])) + (fConst30 * fRec45[1]));
2038 fRec44[0] = (fRec45[0] - (fConst28 * ((fConst26 * fRec44[2]) + (fConst24 * fRec44[1]))));
2039 double fTemp19 = (fRec44[2] + (fRec44[0] + (2 * fRec44[1])));
2040 fVec7[0] = fTemp19;
2041 fRec43[0] = ((fConst41 * ((fConst40 * fVec7[1]) + (fConst16 * fVec7[0]))) + (fConst21 * fRec43[1]));
2042 fRec42[0] = (fRec43[0] - (fConst19 * ((fConst17 * fRec42[2]) + (fConst15 * fRec42[1]))));
2043 fRec41[0] = ((fConst19 * (((fConst14 * fRec42[0]) + (fConst42 * fRec42[1])) + (fConst14 * fRec42[2]))) - (fConst12 * ((fConst11 * fRec41[2]) + fTemp16)));
2044 double fTemp20 = max(-1, min(1, (fSlow4 * (fRec41[2] + (fConst12 * (fTemp16 + (fConst11 * fRec41[0])))))));
2045 fRec51[0] = ((fConst41 * (fVec7[0] + fVec7[1])) + (fConst21 * fRec51[1]));
2046 fRec50[0] = (fRec51[0] - (fConst19 * ((fConst17 * fRec50[2]) + (fConst15 * fRec50[1]))));
2047 double fTemp21 = (fRec50[2] + (fRec50[0] + (2 * fRec50[1])));
2048 fVec8[0] = fTemp21;
2049 fRec49[0] = ((fConst48 * ((fConst47 * fVec8[1]) + (fConst10 * fVec8[0]))) + (fConst46 * fRec49[1]));
2050 fRec48[0] = (fRec49[0] - (fConst44 * ((fConst43 * fRec48[2]) + (fConst9 * fRec48[1]))));
2051 double fTemp22 = max(-1, min(1, (fSlow5 * (((fConst8 * fRec48[0]) + (fConst49 * fRec48[1])) + (fConst8 * fRec48[2])))));
2052 double fTemp23 = (fConst9 * fRec52[1]);
2053 double fTemp24 = (fConst15 * fRec53[1]);
2054 fRec55[0] = ((fConst39 * ((fConst52 * fRec46[1]) + (fConst25 * fRec46[0]))) + (fConst30 * fRec55[1]));
2055 fRec54[0] = (fRec55[0] - (fConst28 * ((fConst26 * fRec54[2]) + (fConst24 * fRec54[1]))));
2056 fRec53[0] = ((fConst28 * (((fConst23 * fRec54[0]) + (fConst53 * fRec54[1])) + (fConst23 * fRec54[2]))) - (fConst51 * ((fConst50 * fRec53[2]) + fTemp24)));
2057 fRec52[0] = ((fRec53[2] + (fConst51 * (fTemp24 + (fConst50 * fRec53[0])))) - (fConst12 * ((fConst11 * fRec52[2]) + fTemp23)));
2058 double fTemp25 = max(-1, min(1, (fSlow6 * (fRec52[2] + (fConst12 * (fTemp23 + (fConst11 * fRec52[0])))))));
2059 fRec57[0] = ((fConst48 * (fVec8[0] + fVec8[1])) + (fConst46 * fRec57[1]));
2060 fRec56[0] = (fRec57[0] - (fConst44 * ((fConst43 * fRec56[2]) + (fConst9 * fRec56[1]))));
2061 double fTemp26 = max(-1, min(1, (fSlow7 * (fRec56[2] + (fRec56[0] + (2 * fRec56[1]))))));
2062 double fTemp27 = ((1.2589412 * (fTemp26 * (1 - (0.3333333333333333 * faustpower<2>(fTemp26))))) + (1.584893192 * ((fTemp25 * (1 - (0.3333333333333333 * faustpower<2>(fTemp25)))) + ((fTemp22 * (1 - (0.3333333333333333 * faustpower<2>(fTemp22)))) + (0.8413951417869425 * (fTemp20 * (1 - (0.3333333333333333 * faustpower<2>(fTemp20)))))))));
2063 fVec9[0] = fTemp27;
2064 fRec40[0] = ((fConst54 * (fVec9[0] + fVec9[1])) + (fConst6 * fRec40[1]));
2065 fRec58[0] = ((fConst58 * (fRec39[1] + fRec39[2])) + (fConst57 * fRec58[1]));
2066 fRec39[0] = (Ftube(TUBE_TABLE_6C16_68k, (((fTemp17 * (fTemp13 + (fTemp12 * (1 + (fSlow10 * ((4 - (4 * fabs((fTemp17 * fTemp12)))) - 1)))))) + (fRec58[0] + (fSlow9 * fRec40[0]))) - 2.921806)) - 141.78496296296294);
2067 fRec38[0] = ((fConst59 * ((fConst37 * fRec39[1]) + (fConst1 * fRec39[0]))) + (fConst3 * fRec38[1]));
2068 double fTemp28 = (fRec7[0] * fRec38[0]);
2069 fVec10[0] = fTemp28;
2070 fRec37[0] = ((fConst54 * (fVec10[0] + fVec10[1])) + (fConst6 * fRec37[1]));
2071 fRec59[0] = ((fConst63 * (fRec36[1] + fRec36[2])) + (fConst62 * fRec59[1]));
2072 fRec36[0] = (Ftube(TUBE_TABLE_6C16_250k, ((fRec59[0] + fRec37[0]) - 2.097743)) - 110.15046666666666);
2073 fRec35[0] = ((fConst59 * ((fConst37 * fRec36[1]) + (fConst1 * fRec36[0]))) + (fConst3 * fRec35[1]));
2074 double fTemp29 = (fRec7[0] * fRec35[0]);
2075 fVec11[0] = fTemp29;
2076 fRec34[0] = ((fConst54 * (fVec11[0] + fVec11[1])) + (fConst6 * fRec34[1]));
2077 fRec60[0] = ((fConst67 * (fRec33[1] + fRec33[2])) + (fConst66 * fRec60[1]));
2078 fRec33[0] = (Ftube(TUBE_TABLE_6C16_250k, ((fRec60[0] + fRec34[0]) - 1.378742)) - 81.86073170731709);
2079 fRec32[0] = ((fConst59 * ((fConst37 * fRec33[1]) + (fConst1 * fRec33[0]))) + (fConst3 * fRec32[1]));
2080 output1[i] = (float)(fRec0[0] * fRec32[0]);
2081 // post processing
2082 fRec32[1] = fRec32[0];
2083 fRec33[2] = fRec33[1];
2084 fRec33[1] = fRec33[0];
2085 fRec60[1] = fRec60[0];
2086 fRec34[1] = fRec34[0];
2087 fVec11[1] = fVec11[0];
2088 fRec35[1] = fRec35[0];
2089 fRec36[2] = fRec36[1];
2090 fRec36[1] = fRec36[0];
2091 fRec59[1] = fRec59[0];
2092 fRec37[1] = fRec37[0];
2093 fVec10[1] = fVec10[0];
2094 fRec38[1] = fRec38[0];
2095 fRec39[2] = fRec39[1];
2096 fRec39[1] = fRec39[0];
2097 fRec58[1] = fRec58[0];
2098 fRec40[1] = fRec40[0];
2099 fVec9[1] = fVec9[0];
2100 fRec56[2] = fRec56[1];
2101 fRec56[1] = fRec56[0];
2102 fRec57[1] = fRec57[0];
2103 fRec52[2] = fRec52[1];
2104 fRec52[1] = fRec52[0];
2105 fRec53[2] = fRec53[1];
2106 fRec53[1] = fRec53[0];
2107 fRec54[2] = fRec54[1];
2108 fRec54[1] = fRec54[0];
2109 fRec55[1] = fRec55[0];
2110 fRec48[2] = fRec48[1];
2111 fRec48[1] = fRec48[0];
2112 fRec49[1] = fRec49[0];
2113 fVec8[1] = fVec8[0];
2114 fRec50[2] = fRec50[1];
2115 fRec50[1] = fRec50[0];
2116 fRec51[1] = fRec51[0];
2117 fRec41[2] = fRec41[1];
2118 fRec41[1] = fRec41[0];
2119 fRec42[2] = fRec42[1];
2120 fRec42[1] = fRec42[0];
2121 fRec43[1] = fRec43[0];
2122 fVec7[1] = fVec7[0];
2123 fRec44[2] = fRec44[1];
2124 fRec44[1] = fRec44[0];
2125 fRec45[1] = fRec45[0];
2126 fRec46[1] = fRec46[0];
2127 fVec6[1] = fVec6[0];
2128 fRec47[2] = fRec47[1];
2129 fRec47[1] = fRec47[0];
2130 fRec1[1] = fRec1[0];
2131 fRec2[2] = fRec2[1];
2132 fRec2[1] = fRec2[0];
2133 fRec31[1] = fRec31[0];
2134 fRec3[1] = fRec3[0];
2135 fVec5[1] = fVec5[0];
2136 fRec4[1] = fRec4[0];
2137 fRec5[2] = fRec5[1];
2138 fRec5[1] = fRec5[0];
2139 fRec30[1] = fRec30[0];
2140 fRec6[1] = fRec6[0];
2141 fVec4[1] = fVec4[0];
2142 fRec8[1] = fRec8[0];
2143 fRec9[2] = fRec9[1];
2144 fRec9[1] = fRec9[0];
2145 fRec29[1] = fRec29[0];
2146 fRec10[1] = fRec10[0];
2147 fVec3[1] = fVec3[0];
2148 fRec27[2] = fRec27[1];
2149 fRec27[1] = fRec27[0];
2150 fRec28[1] = fRec28[0];
2151 fRec23[2] = fRec23[1];
2152 fRec23[1] = fRec23[0];
2153 fRec24[2] = fRec24[1];
2154 fRec24[1] = fRec24[0];
2155 fRec25[2] = fRec25[1];
2156 fRec25[1] = fRec25[0];
2157 fRec26[1] = fRec26[0];
2158 fRec19[2] = fRec19[1];
2159 fRec19[1] = fRec19[0];
2160 fRec20[1] = fRec20[0];
2161 fVec2[1] = fVec2[0];
2162 fRec21[2] = fRec21[1];
2163 fRec21[1] = fRec21[0];
2164 fRec22[1] = fRec22[0];
2165 fRec11[2] = fRec11[1];
2166 fRec11[1] = fRec11[0];
2167 fRec12[2] = fRec12[1];
2168 fRec12[1] = fRec12[0];
2169 fRec13[1] = fRec13[0];
2170 fVec1[1] = fVec1[0];
2171 fRec14[2] = fRec14[1];
2172 fRec14[1] = fRec14[0];
2173 fRec15[1] = fRec15[0];
2174 fRec16[1] = fRec16[0];
2175 fVec0[1] = fVec0[0];
2176 fRec17[2] = fRec17[1];
2177 fRec17[1] = fRec17[0];
2178 fRec18[1] = fRec18[0];
2179 fRec7[1] = fRec7[0];
2180 fRec0[1] = fRec0[0];
2181 }
2182 }
2183
2184
2185 // static wrappers
2186 void GxAmpStereo::init_static(uint32_t samplingFreq, GxAmpStereo *p)
2187 {
2188 p->init(samplingFreq);
2189 }
2190
2191 void GxAmpStereo::connect_static(uint32_t port,void* data, GxAmpStereo *p)
2192 {
2193 p->connect(port, data);
2194 }
2195
2196
2197 void GxAmpStereo::run_static(uint32_t n_samples, float* input, float* input1, float* output, float* output1, GxAmpStereo *p)
2198 {
2199 (p->*_as_ptr)(n_samples, input, input1, output, output1);
2200 }
2201
0 /*
1 * Copyright (C) 2012 Hermann Meyer, Andreas Degert, Pete Shorthose
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 * --------------------------------------------------------------------------
17 */
18
19 #pragma once
20
21 #ifndef SRC_HEADERS_GX_AMP_H_
22 #define SRC_HEADERS_GX_AMP_H_
23
24 #include "valve.h"
25
26 // plugin class
27 class GxAmpMono
28 {
29 private:
30 int32_t fSamplingFreq;
31 float fslider0;
32 float *fslider0_;
33 double fRec0[2];
34 int32_t iConst0;
35 double fConst1;
36 double fConst2;
37 double fConst3;
38 double fConst4;
39 double fConst5;
40 double fConst6;
41 float fslider1;
42 float *fslider1_;
43 double fRec7[2];
44 double fConst7;
45 double fConst8;
46 double fConst9;
47 double fConst10;
48 double fConst11;
49 double fConst12;
50 double fConst13;
51 double fConst14;
52 double fConst15;
53 double fConst16;
54 double fConst17;
55 double fConst18;
56 double fConst19;
57 double fConst20;
58 double fConst21;
59 double fConst22;
60 double fConst23;
61 double fConst24;
62 double fConst25;
63 double fConst26;
64 double fConst27;
65 double fConst28;
66 double fConst29;
67 double fConst30;
68 double fConst31;
69 double fConst32;
70 double fConst33;
71 double fConst34;
72 double fConst35;
73 double fConst36;
74 float fslider2;
75 float *fslider2_;
76 double fRec18[2];
77 double fRec17[3];
78 double fVec0[2];
79 double fConst37;
80 double fConst38;
81 double fRec16[2];
82 double fConst39;
83 double fRec15[2];
84 double fRec14[3];
85 double fVec1[2];
86 double fConst40;
87 double fConst41;
88 double fRec13[2];
89 double fRec12[3];
90 double fConst42;
91 double fRec11[3];
92 float fslider3;
93 float *fslider3_;
94 double fConst43;
95 double fConst44;
96 double fConst45;
97 double fConst46;
98 double fRec22[2];
99 double fRec21[3];
100 double fVec2[2];
101 double fConst47;
102 double fConst48;
103 double fRec20[2];
104 double fRec19[3];
105 double fConst49;
106 double fConst50;
107 double fConst51;
108 double fConst52;
109 double fRec26[2];
110 double fRec25[3];
111 double fConst53;
112 double fRec24[3];
113 double fRec23[3];
114 double fRec28[2];
115 double fRec27[3];
116 double fVec3[2];
117 double fConst54;
118 double fRec10[2];
119 double fConst55;
120 double fConst56;
121 double fConst57;
122 double fConst58;
123 double fRec29[2];
124 double fRec9[3];
125 double fConst59;
126 double fRec8[2];
127 double fVec4[2];
128 double fRec6[2];
129 double fConst60;
130 double fConst61;
131 double fConst62;
132 double fConst63;
133 double fRec30[2];
134 double fRec5[3];
135 double fRec4[2];
136 double fVec5[2];
137 double fRec3[2];
138 double fConst64;
139 double fConst65;
140 double fConst66;
141 double fConst67;
142 double fRec31[2];
143 double fRec2[3];
144 double fRec1[2];
145 void clear_state_f();
146 void init(uint32_t samplingFreq);
147 void connect(uint32_t port,void* data);
148
149 public:
150 void run_6V6(uint32_t n_samples,float* input, float* output);
151 void run_6C16(uint32_t n_samples, float* input, float* output);
152 void run_12AT7(uint32_t n_samples, float* input, float* output);
153 void run_12ax7(uint32_t n_samples, float* input, float* output);
154 void run_6DJ8(uint32_t n_samples, float* input, float* output);
155 static void init_static(uint32_t samplingFreq, GxAmpMono *p);
156 static void connect_static(uint32_t port,void* data, GxAmpMono *p);
157 static void run_static(uint32_t n_samples, float* input, float* output, GxAmpMono *p);
158 GxAmpMono() {};
159 ~GxAmpMono() {};
160 };
161 // define run pointer typs
162 typedef void (GxAmpMono::*run_this)
163 (uint32_t count,float* input, float* output);
164
165 run_this _a_ptr;
166
167
168 class GxAmpStereo
169 {
170 private:
171 int32_t fSamplingFreq;
172 float fslider0;
173 float *fslider0_;
174 double fRec0[2];
175 int32_t iConst0;
176 double fConst1;
177 double fConst2;
178 double fConst3;
179 double fConst4;
180 double fConst5;
181 double fConst6;
182 float fslider1;
183 float *fslider1_;
184 double fRec7[2];
185 double fConst7;
186 double fConst8;
187 double fConst9;
188 double fConst10;
189 double fConst11;
190 double fConst12;
191 double fConst13;
192 double fConst14;
193 double fConst15;
194 double fConst16;
195 double fConst17;
196 double fConst18;
197 double fConst19;
198 double fConst20;
199 double fConst21;
200 double fConst22;
201 double fConst23;
202 double fConst24;
203 double fConst25;
204 double fConst26;
205 double fConst27;
206 double fConst28;
207 double fConst29;
208 double fConst30;
209 double fConst31;
210 double fConst32;
211 double fConst33;
212 double fConst34;
213 double fConst35;
214 double fConst36;
215 float fslider2;
216 float *fslider2_;
217 double fRec18[2];
218 double fRec17[3];
219 double fVec0[2];
220 double fConst37;
221 double fConst38;
222 double fRec16[2];
223 double fConst39;
224 double fRec15[2];
225 double fRec14[3];
226 double fVec1[2];
227 double fConst40;
228 double fConst41;
229 double fRec13[2];
230 double fRec12[3];
231 double fConst42;
232 double fRec11[3];
233 float fslider3;
234 float *fslider3_;
235 double fConst43;
236 double fConst44;
237 double fConst45;
238 double fConst46;
239 double fRec22[2];
240 double fRec21[3];
241 double fVec2[2];
242 double fConst47;
243 double fConst48;
244 double fRec20[2];
245 double fRec19[3];
246 double fConst49;
247 double fConst50;
248 double fConst51;
249 double fConst52;
250 double fRec26[2];
251 double fRec25[3];
252 double fConst53;
253 double fRec24[3];
254 double fRec23[3];
255 double fRec28[2];
256 double fRec27[3];
257 double fVec3[2];
258 double fConst54;
259 double fRec10[2];
260 double fConst55;
261 double fConst56;
262 double fConst57;
263 double fConst58;
264 double fRec29[2];
265 double fRec9[3];
266 double fConst59;
267 double fRec8[2];
268 double fVec4[2];
269 double fRec6[2];
270 double fConst60;
271 double fConst61;
272 double fConst62;
273 double fConst63;
274 double fRec30[2];
275 double fRec5[3];
276 double fRec4[2];
277 double fVec5[2];
278 double fRec3[2];
279 double fConst64;
280 double fConst65;
281 double fConst66;
282 double fConst67;
283 double fRec31[2];
284 double fRec2[3];
285 double fRec1[2];
286 double fRec47[3];
287 double fVec6[2];
288 double fRec46[2];
289 double fRec45[2];
290 double fRec44[3];
291 double fVec7[2];
292 double fRec43[2];
293 double fRec42[3];
294 double fRec41[3];
295 double fRec51[2];
296 double fRec50[3];
297 double fVec8[2];
298 double fRec49[2];
299 double fRec48[3];
300 double fRec55[2];
301 double fRec54[3];
302 double fRec53[3];
303 double fRec52[3];
304 double fRec57[2];
305 double fRec56[3];
306 double fVec9[2];
307 double fRec40[2];
308 double fRec58[2];
309 double fRec39[3];
310 double fRec38[2];
311 double fVec10[2];
312 double fRec37[2];
313 double fRec59[2];
314 double fRec36[3];
315 double fRec35[2];
316 double fVec11[2];
317 double fRec34[2];
318 double fRec60[2];
319 double fRec33[3];
320 double fRec32[2];
321 void clear_state_f();
322 void init(uint32_t samplingFreq);
323 void connect(uint32_t port,void* data);
324
325
326 public:
327 void run_6V6(uint32_t n_samples,float* input,float* input1, float* output, float* output1);
328 void run_6C16(uint32_t n_samples, float* input,float* input1, float* output, float* output1);
329 void run_12AT7(uint32_t n_samples, float* input,float* input1, float* output, float* output1);
330 void run_12ax7(uint32_t n_samples, float* input,float* input1, float* output, float* output1);
331 void run_6DJ8(uint32_t n_samples, float* input,float* input1, float* output, float* output1);
332 static void init_static(uint32_t samplingFreq, GxAmpStereo *p);
333 static void connect_static(uint32_t port,void* data, GxAmpStereo *p);
334 static void run_static(uint32_t n_samples, float* input,float* input1, float* output, float* output1, GxAmpStereo *p);
335 GxAmpStereo() {};
336 ~GxAmpStereo() {};
337 };
338
339 // define run pointer typs
340 typedef void (GxAmpStereo::*run_stereo)
341 (uint32_t count,float* input, float* input1, float* output, float* output1);
342
343 run_stereo _as_ptr;
344
345
346 #endif //SRC_HEADERS_GX_AMP_H_
0 /*
1 * Copyright (C) 2012 Hermann Meyer, Andreas Degert, Pete Shorthose
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 * --------------------------------------------------------------------------
17 */
18
19 #include "gx_convolver.h"
20 #include <string.h>
21 /****************************************************************
22 ** some pieces in this file are copied from jconvolver
23 */
24
25 #define max(x, y) (((x) > (y)) ? (x) : (y))
26 /****************************************************************
27 ** GxConvolverBase
28 */
29
30 GxConvolverBase::~GxConvolverBase()
31 {
32 if (is_runnable())
33 {
34 stop_process();
35 }
36 }
37
38 void GxConvolverBase::adjust_values(
39 uint32_t audio_size, uint32_t& count, uint32_t& offset,
40 uint32_t& delay, uint32_t& ldelay, uint32_t& length,
41 uint32_t& size, uint32_t& bufsize)
42 {
43
44 if (bufsize < count)
45 {
46 bufsize = count;
47 }
48 if (bufsize < Convproc::MINPART)
49 {
50 bufsize = Convproc::MINPART;
51 }
52 if (offset > audio_size)
53 {
54 offset = audio_size;
55 }
56 if (!size)
57 {
58 if (offset + length > audio_size)
59 {
60
61 length = audio_size - offset;
62 }
63 if (!length)
64 {
65 length = audio_size - offset;
66 }
67 size = max(delay, ldelay) + offset + length;
68 }
69 else
70 {
71 if (delay > size)
72 {
73 delay = size;
74 }
75 if (ldelay > size)
76 {
77 ldelay = size;
78 }
79 if (offset > size - max(delay, ldelay))
80 {
81 offset = size - max(delay, ldelay);
82 }
83 if (length > size - max(delay, ldelay) - offset)
84 {
85 length = size - max(delay, ldelay) - offset;
86
87 }
88 if (!length)
89 {
90 length = size - max(delay, ldelay) - offset;
91 }
92 }
93 }
94
95 bool GxConvolverBase::start(int32_t policy, int32_t priority)
96 {
97 int32_t rc = start_process(priority, policy);
98 if (rc != 0)
99 {
100
101 return false;
102 }
103 ready = true;
104 return true;
105 }
106
107 bool GxConvolverBase::checkstate()
108 {
109 if (state() == Convproc::ST_WAIT)
110 {
111 if (check_stop())
112 {
113 ready = false;
114 }
115 else
116 {
117 return false;
118 }
119 }
120 else if (state() == ST_STOP)
121 {
122 ready = false;
123 }
124 return true;
125 }
126
127 /****************************************************************
128 ** GxSimpleConvolver
129 */
130
131 class CheckResample
132 {
133 private:
134 float *vec;
135 gx_resample::BufferResampler& resamp;
136 public:
137 CheckResample(gx_resample::BufferResampler& resamp_): vec(0), resamp(resamp_) {}
138 float *resample(int32_t *count, float *impresp, uint32_t imprate, uint32_t samplerate)
139 {
140 if (imprate != samplerate)
141 {
142 vec = resamp.process(imprate, *count, impresp, samplerate, count);
143 if (!vec)
144 {
145 if (samplerate)
146 {
147 }
148 else
149 {
150 }
151 return 0;
152 }
153 return vec;
154 }
155 return impresp;
156 }
157 ~CheckResample()
158 {
159 if (vec)
160 {
161 delete vec;
162 }
163 }
164 };
165
166 bool GxSimpleConvolver::configure(int32_t count, float *impresp, uint32_t imprate)
167 {
168 //printf("try configure()\n");
169 CheckResample r(resamp);
170 impresp = r.resample(&count, impresp, imprate, samplerate);
171 if (!impresp)
172 {
173 printf("no impresp\n");
174 return false;
175 }
176 cleanup();
177 uint32_t bufsize = buffersize;
178 if (bufsize < Convproc::MINPART)
179 {
180 bufsize = Convproc::MINPART;
181 }
182 if (Convproc::configure(1, 1, count, buffersize,
183 bufsize, Convproc::MAXPART))
184 {
185 printf("no configure\n");
186 return false;
187 }
188 if (impdata_create(0, 0, 1, impresp, 0, count))
189 {
190 printf("no impdata_create()\n");
191 return false;
192 }
193 //printf("configure()\n");
194
195 return true;
196 }
197
198 bool GxSimpleConvolver::update(int32_t count, float *impresp, uint32_t imprate)
199 {
200 CheckResample r(resamp);
201 impresp = r.resample(&count, impresp, imprate, samplerate);
202 if (!impresp)
203 {
204 return false;
205 }
206 if (impdata_update(0, 0, 1, impresp, 0, count))
207 {
208 return false;
209 }
210 return true;
211 }
212
213 bool GxSimpleConvolver::compute(int32_t count, float* input, float *output)
214 {
215 // printf("try run\n");
216 if (state() != Convproc::ST_PROC)
217 {
218 //printf("state() != ST_PROC\n");
219 if (input != output)
220 {
221 memcpy(output, input, count * sizeof(float));
222 }
223 if (state() == Convproc::ST_WAIT)
224 {
225 //printf("state() == ST_WAIT\n");
226 check_stop();
227 }
228 if (state() == ST_STOP)
229 {
230 //printf("state() == ST_STOP\n");
231 ready = false;
232 }
233 return true;
234 }
235 memcpy(inpdata(0), input, count * sizeof(float));
236
237 int32_t flags = process(sync);
238
239 memcpy(output, outdata(0), count * sizeof(float));
240 //printf("run\n");
241 return flags == 0;
242 }
243
244 void GxSimpleConvolver::run_static(uint32_t n_samples, GxSimpleConvolver *p, float *output)
245 {
246 if (!p->compute((int32_t)n_samples, output, output))
247 printf("convolver didn't run\n");
248 }
249
250 //////////////stero/////////////////
251
252 bool GxSimpleConvolver::configure_stereo(int32_t count, float *impresp, uint32_t imprate)
253 {
254 //printf("try configure()\n");
255 CheckResample r(resamp);
256 impresp = r.resample(&count, impresp, imprate, samplerate);
257 if (!impresp)
258 {
259 printf("no impresp\n");
260 return false;
261 }
262 cleanup();
263 uint32_t bufsize = buffersize;
264 if (bufsize < Convproc::MINPART)
265 {
266 bufsize = Convproc::MINPART;
267 }
268 if (Convproc::configure(2, 2, count, buffersize,
269 bufsize, Convproc::MAXPART))
270 {
271 printf("no configure\n");
272 return false;
273 }
274 if (impdata_create(0, 0, 1, impresp, 0, count) & impdata_create(1, 1, 1, impresp, 0, count))
275 {
276 printf("no impdata_create()\n");
277 return false;
278 }
279 //printf("configure()\n");
280
281 return true;
282 }
283
284 bool GxSimpleConvolver::update_stereo(int32_t count, float *impresp, uint32_t imprate)
285 {
286 CheckResample r(resamp);
287 impresp = r.resample(&count, impresp, imprate, samplerate);
288 if (!impresp)
289 {
290 return false;
291 }
292 if (impdata_update(0, 0, 1, impresp, 0, count) & impdata_update(1, 1, 1, impresp, 0, count))
293 {
294 return false;
295 }
296 return true;
297 }
298
299 bool GxSimpleConvolver::compute_stereo(int32_t count, float* input, float* input1, float *output, float *output1)
300 {
301 // printf("try run\n");
302 if (state() != Convproc::ST_PROC)
303 {
304 //printf("state() != ST_PROC\n");
305 if (input != output)
306 {
307 memcpy(output, input, count * sizeof(float));
308 memcpy(output1, input1, count * sizeof(float));
309 }
310 if (state() == Convproc::ST_WAIT)
311 {
312 //printf("state() == ST_WAIT\n");
313 check_stop();
314 }
315 if (state() == ST_STOP)
316 {
317 //printf("state() == ST_STOP\n");
318 ready = false;
319 }
320 return true;
321 }
322 memcpy(inpdata(0), input, count * sizeof(float));
323 memcpy(inpdata(1), input1, count * sizeof(float));
324 int32_t flags = process(sync);
325
326 memcpy(output, outdata(0), count * sizeof(float));
327 memcpy(output1, outdata(1), count * sizeof(float));
328 //printf("run\n");
329 return flags == 0;
330 }
331
332 void GxSimpleConvolver::run_static_stereo(uint32_t n_samples, GxSimpleConvolver *p, float *output, float *output1)
333 {
334 if (!p->compute_stereo((int32_t)n_samples, output, output1, output, output1))
335 printf("convolver didn't run\n");
336 }
0 /*
1 * Copyright (C) 2012 Hermann Meyer, Andreas Degert, Pete Shorthose
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 * --------------------------------------------------------------------------
17 */
18
19
20 #pragma once
21
22 #ifndef SRC_HEADERS_GX_CONVOLVER_H_
23 #define SRC_HEADERS_GX_CONVOLVER_H_
24
25 #include <zita-convolver.h>
26 #include <stdint.h>
27 #include "gx_resampler.h"
28 /* GxConvolver */
29
30
31 class GxConvolverBase: protected Convproc
32 {
33 protected:
34 volatile bool ready;
35 bool sync;
36 void adjust_values(uint32_t audio_size, uint32_t& count, uint32_t& offset,
37 uint32_t& delay, uint32_t& ldelay, uint32_t& length,
38 uint32_t& size, uint32_t& bufsize);
39 uint32_t buffersize;
40 uint32_t samplerate;
41 GxConvolverBase(): ready(false), sync(false), buffersize(), samplerate() {}
42 ~GxConvolverBase();
43 public:
44 inline void set_buffersize(uint32_t sz)
45 {
46 buffersize = sz;
47 }
48 inline uint32_t get_buffersize()
49 {
50 return buffersize;
51 }
52 inline void set_samplerate(uint32_t sr)
53 {
54 samplerate = sr;
55 }
56 inline uint32_t get_samplerate()
57 {
58 return samplerate;
59 }
60 bool checkstate();
61 using Convproc::state;
62 inline void set_not_runnable()
63 {
64 ready = false;
65 }
66 inline bool is_runnable()
67 {
68 return ready;
69 }
70 bool start(int32_t policy, int32_t priority);
71 using Convproc::stop_process;
72 inline void set_sync(bool val)
73 {
74 sync = val;
75 }
76 };
77
78
79 class GxSimpleConvolver: public GxConvolverBase
80 {
81 private:
82 gx_resample::BufferResampler& resamp;
83 public:
84 int32_t cab_count;
85 uint32_t cab_sr;
86 float *cab_data;
87 float *cab_data_new;
88 GxSimpleConvolver(gx_resample::BufferResampler& resamp_)
89 : GxConvolverBase(), resamp(resamp_), cab_count(0), cab_sr(0),
90 cab_data(NULL), cab_data_new(NULL) {}
91 bool configure(int32_t count, float *impresp, uint32_t imprate);
92 bool update(int32_t count, float *impresp, uint32_t imprate);
93 bool compute(int32_t count, float* input, float *output);
94 bool compute(int32_t count, float* buffer)
95 {
96 return is_runnable() ? compute_stereo(count, buffer, buffer) : true;
97 }
98
99 bool configure_stereo(int32_t count, float *impresp, uint32_t imprate);
100 bool update_stereo(int32_t count, float *impresp, uint32_t imprate);
101 bool compute_stereo(int32_t count, float* input, float* input1, float *output, float *output1);
102 bool compute_stereo(int32_t count, float* buffer, float* buffer1)
103 {
104 return is_runnable() ? compute_stereo(count, buffer, buffer, buffer1, buffer1) : true;
105 }
106 static void run_static(uint32_t n_samples, GxSimpleConvolver*, float *output);
107 static void run_static_stereo(uint32_t n_samples, GxSimpleConvolver*, float *output, float *output1);
108 };
109
110
111 #endif // SRC_HEADERS_GX_CONVOLVER_H_
0 /*
1 * Copyright (C) 2012 Hermann Meyer, Andreas Degert, Pete Shorthose
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 * --------------------------------------------------------------------------
17 */
18
19 #include "gx_resampler.h"
20
21 namespace gx_resample
22 {
23
24 // copyed gcd from (zita) resampler.cc to get ratio_a and ratio_b for
25 // calculate the correct buffer size resulting from resample
26 static uint32_t gcd (uint32_t a, uint32_t b)
27 {
28 if (a == 0) return b;
29 if (b == 0) return a;
30 while (1)
31 {
32 if (a > b)
33 {
34 a = a % b;
35 if (a == 0) return b;
36 if (a == 1) return 1;
37 }
38 else
39 {
40 b = b % a;
41 if (b == 0) return a;
42 if (b == 1) return 1;
43 }
44 }
45 return 1;
46 }
47
48 void SimpleResampler::setup(int32_t sampleRate, uint32_t fact)
49 {
50 assert(fact <= MAX_UPSAMPLE);
51 m_fact = fact;
52 const int32_t qual = 16; // resulting in a total delay of 2*qual (0.7ms @44100)
53 // upsampler
54 r_up.setup(sampleRate, sampleRate*fact, 1, qual);
55 // k == inpsize() == 2 * qual
56 // pre-fill with k-1 zeros
57 r_up.inp_count = r_up.inpsize() - 1;
58 r_up.out_count = 1;
59 r_up.inp_data = r_up.out_data = 0;
60 r_up.process();
61 // downsampler
62 r_down.setup(sampleRate*fact, sampleRate, 1, qual);
63 // k == inpsize() == 2 * qual * fact
64 // pre-fill with k-1 zeros
65 r_down.inp_count = r_down.inpsize() - 1;
66 r_down.out_count = 1;
67 r_down.inp_data = r_down.out_data = 0;
68 r_down.process();
69 }
70
71 void SimpleResampler::up(int32_t count, float *input, float *output)
72 {
73 r_up.inp_count = count;
74 r_up.inp_data = input;
75 r_up.out_count = count * m_fact;
76 r_up.out_data = output;
77 r_up.process();
78 assert(r_up.inp_count == 0);
79 assert(r_up.out_count == 0);
80 }
81
82 void SimpleResampler::down(int32_t count, float *input, float *output)
83 {
84 r_down.inp_count = count * m_fact;
85 r_down.inp_data = input;
86 r_down.out_count = count+1; // +1 == trick to drain input
87 r_down.out_data = output;
88 r_down.process();
89 assert(r_down.inp_count == 0);
90 assert(r_down.out_count == 1);
91 }
92
93 float *BufferResampler::process(int32_t fs_inp, int32_t ilen, float *input, int32_t fs_outp, int32_t *olen)
94 {
95 int32_t d = gcd(fs_inp, fs_outp);
96 int32_t ratio_a = fs_inp / d;
97 int32_t ratio_b = fs_outp / d;
98
99 const int32_t qual = 32;
100 if (setup(fs_inp, fs_outp, 1, qual) != 0)
101 {
102 return 0;
103 }
104 // pre-fill with k/2-1 zeros
105 int32_t k = inpsize();
106 inp_count = k/2-1;
107 inp_data = 0;
108 out_count = 1; // must be at least 1 to get going
109 out_data = 0;
110 if (Resampler::process() != 0)
111 {
112 return 0;
113 }
114 inp_count = ilen;
115 int32_t nout = out_count = (ilen * ratio_b + ratio_a - 1) / ratio_a;
116 inp_data = input;
117 float *p = out_data = new float[out_count];
118 if (Resampler::process() != 0)
119 {
120 delete p;
121 return 0;
122 }
123 inp_data = 0;
124 inp_count = k/2;
125 if (Resampler::process() != 0)
126 {
127 delete p;
128 return 0;
129 }
130 assert(inp_count == 0);
131 assert(out_count <= 1);
132 *olen = nout - out_count;
133 //printf("resampled from %i to: %i\n",fs_inp, fs_outp );
134 return p;
135 }
136
137 bool StreamingResampler::setup(int32_t srcRate, int32_t dstRate, int32_t nchan)
138 {
139 int32_t d = gcd(srcRate, dstRate);
140 ratio_a = srcRate / d;
141 ratio_b = dstRate / d;
142
143 const int32_t qual = 32;
144 if (Resampler::setup(srcRate, dstRate, nchan, qual) != 0)
145 {
146 return false;
147 }
148 inp_count = inpsize()/2-1;
149 inp_data = 0;
150 out_count = 1; // must be at least 1 to get going
151 out_data = 0;
152 if (Resampler::process() != 0)
153 {
154 return false;
155 }
156 assert(inp_count == 0);
157 assert(out_count == 1);
158 return true;
159 }
160
161 int32_t StreamingResampler::process(int32_t count, float *input, float *output)
162 {
163 inp_count = count;
164 int32_t olen = out_count = get_max_out_size(count);
165 inp_data = input;
166 out_data = output;
167 if (Resampler::process() != 0)
168 {
169 return 0;
170 }
171 assert(inp_count == 0);
172 return olen - out_count;
173 }
174
175 int32_t StreamingResampler::flush(float *output)
176 {
177 // maximum data written to output:
178 // srcRate > dstRate: ~ 2 * qual
179 // srcRate < dstRate: ~ 2 * qual * dstRate/srcRate
180 inp_data = 0;
181 inp_count = inpsize()/2;
182 out_data = output;
183 int32_t olen = out_count = get_max_out_size(inp_count);
184 if (Resampler::process() != 0)
185 {
186 return 0;
187 }
188 assert(inp_count == 0);
189 return olen - out_count;
190 }
191
192 } // namespace gx_resample
0 /*
1 * Copyright (C) 2012 Hermann Meyer, Andreas Degert, Pete Shorthose
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 * --------------------------------------------------------------------------
17 */
18
19
20 #pragma once
21
22 #ifndef SRC_HEADERS_GX_RESAMPLER_H_
23 #define SRC_HEADERS_GX_RESAMPLER_H_
24
25 #include <zita-resampler/resampler.h>
26 #include <stdint.h>
27 #include <assert.h>
28
29 namespace gx_resample
30 {
31
32 #define MAX_UPSAMPLE 8
33
34 class SimpleResampler
35 {
36 private:
37 Resampler r_up, r_down;
38 int32_t m_fact;
39 public:
40 SimpleResampler(): r_up(), r_down(), m_fact() {}
41 void setup(int32_t sampleRate, uint32_t fact);
42 void up(int32_t count, float *input, float *output);
43 void down(int32_t count, float *input, float *output);
44 };
45
46 class BufferResampler: Resampler
47 {
48 public:
49 float *process(int32_t fs_inp, int32_t ilen, float *input, int32_t fs_outp, int32_t* olen);
50 };
51
52 class StreamingResampler: Resampler
53 {
54 private:
55 int32_t ratio_a;
56 int32_t ratio_b;
57 public:
58 bool setup(int32_t srcRate, int32_t dstRate, int32_t nchan);
59 int32_t get_max_out_size(int32_t i_size)
60 {
61 return (i_size * ratio_b) / ratio_a + 1;
62 }
63 int32_t process(int32_t count, float *input, float *output);
64 int32_t flush(float *output); // check source for max. output size
65 };
66
67 }
68 #endif // SRC_HEADERS_GX_RESAMPLER_H_
0 /*
1 * Copyright (C) 2012 Hermann Meyer, Andreas Degert, Pete Shorthose
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 * --------------------------------------------------------------------------
17 */
18
19
20
21 inline void TonestackMono::clear_state_f()
22 {
23 for (int32_t i=0; i<4; i++) fRec0[i] = 0;
24 }
25
26 inline void TonestackMono::init(uint32_t samplingFreq)
27 {
28
29 fSamplingFreq = samplingFreq;
30 fConst0 = (2 * double(min(192000, max(1, fSamplingFreq))));
31 fConst1 = faustpower<2>(fConst0);
32 fConst2 = (3 * fConst0);
33 clear_state_f();
34 }
35
36 void TonestackMono::connect(uint32_t port,void* data)
37 {
38 switch ((PortIndex)port)
39 {
40 case AMP_MASTERGAIN:
41 break;
42 case AMP_PREGAIN:
43 break;
44 case AMP_WET_DRY:
45 break;
46 case AMP_DRIVE:
47 break;
48 case MID:
49 fslider0_ = (float*)data;
50 break;
51 case BASS:
52 fslider1_ = (float*)data;
53 break;
54 case TREBLE:
55 fslider2_ = (float*)data;
56 break;
57 case CLevel:
58 break;
59 case ALevel:
60 break;
61 case AMP_CONTROL:
62 break;
63 case AMP_NOTIFY:
64 break;
65 case AMP_OUTPUT:
66 break;
67 case AMP_INPUT:
68 break;
69 case AMP_OUTPUT1:
70 break;
71 case AMP_INPUT1:
72 break;
73 }
74 }
75
76 inline void TonestackMono::run(uint32_t n_samples, float *output) //sovtek
77 {
78 float fslider0 = *fslider0_;
79 float fslider1 = *fslider1_;
80 float fslider2 = *fslider2_;
81 double fSlow0 = fslider0;
82 double fSlow1 = (4.9434000000000004e-08 * fSlow0);
83 double fSlow2 = exp((3.4 * (fslider1 - 1)));
84 double fSlow3 = (7.748796000000001e-07 + ((2.8889960000000004e-05 * fSlow2) + (fSlow0 * (((4.943400000000001e-06 * fSlow2) - 1.2634599999999999e-07) - fSlow1))));
85 double fSlow4 = ((1.2443156000000004e-09 * fSlow2) - (1.2443156000000002e-11 * fSlow0));
86 double fSlow5 = (5.345780000000001e-09 * fSlow2);
87 double fSlow6 = (5.345780000000001e-11 + (fSlow5 + (fSlow0 * (fSlow4 - 4.101464400000001e-11))));
88 double fSlow7 = (fConst0 * fSlow6);
89 double fSlow8 = (0.00022 * fSlow0);
90 double fSlow9 = (0.022470000000000004 * fSlow2);
91 double fSlow10 = (fConst0 * (0.0025277 + (fSlow9 + fSlow8)));
92 double fSlow11 = ((fSlow10 + (fConst1 * (fSlow7 - fSlow3))) - 1);
93 double fSlow12 = (fConst2 * fSlow6);
94 double fSlow13 = ((fConst1 * (fSlow3 + fSlow12)) - (3 + fSlow10));
95 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
96 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
97 double fSlow16 = fslider2;
98 double fSlow17 = ((fSlow0 * (1.2443156000000002e-11 + fSlow4)) + (fSlow16 * (fSlow5 + (5.345780000000001e-11 - (5.345780000000001e-11 * fSlow0)))));
99 double fSlow18 = (fConst2 * fSlow17);
100 double fSlow19 = (6.141960000000001e-08 + (((4.859800000000001e-07 * fSlow16) + (fSlow0 * (1.0113400000000001e-07 - fSlow1))) + (fSlow2 * (6.141960000000001e-06 + (4.943400000000001e-06 * fSlow0)))));
101 double fSlow20 = (0.00022470000000000001 + (fSlow9 + (fSlow8 + (0.00023500000000000002 * fSlow16))));
102 double fSlow21 = (fConst0 * fSlow20);
103 double fSlow22 = (fSlow21 + (fConst1 * (fSlow19 - fSlow18)));
104 double fSlow23 = (fConst0 * fSlow17);
105 double fSlow24 = (fSlow21 + (fConst1 * (fSlow23 - fSlow19)));
106 double fSlow25 = (fConst0 * (0 - fSlow20));
107 double fSlow26 = (fSlow25 + (fConst1 * (fSlow19 + fSlow18)));
108 double fSlow27 = (fSlow25 - (fConst1 * (fSlow19 + fSlow23)));
109 for (uint32_t i=0; i<n_samples; i++)
110 {
111 fRec0[0] = ((double)output[i] - (fSlow15 * (((fSlow14 * fRec0[2]) + (fSlow13 * fRec0[1])) + (fSlow11 * fRec0[3]))));
112 output[i] = (float)(fSlow15 * ((fSlow27 * fRec0[0]) + ((fSlow26 * fRec0[1]) + ((fSlow24 * fRec0[3]) + (fSlow22 * fRec0[2])))));
113 // post processing
114 for (int32_t i=3; i>0; i--) fRec0[i] = fRec0[i-1];
115 }
116 }
117
118
119 inline void TonestackMono::run_soldano(uint32_t n_samples, float *output) //soldano
120 {
121 float fslider0 = *fslider0_;
122 float fslider1 = *fslider1_;
123 float fslider2 = *fslider2_;
124 double fSlow0 = fslider0;
125 double fSlow1 = (2.5587500000000006e-07 * fSlow0);
126 double fSlow2 = exp((3.4 * (fslider1 - 1)));
127 double fSlow3 = (7.717400000000001e-07 + ((2.2033600000000005e-05 * fSlow2) + (fSlow0 * (((1.0235000000000001e-05 * fSlow2) - 1.5537499999999997e-07) - fSlow1))));
128 double fSlow4 = ((1.3959000000000001e-09 * fSlow2) - (3.48975e-11 * fSlow0));
129 double fSlow5 = (2.2090000000000005e-09 * fSlow2);
130 double fSlow6 = (5.522500000000001e-11 + (fSlow5 + (fSlow0 * (fSlow4 - 2.0327500000000007e-11))));
131 double fSlow7 = (fConst0 * fSlow6);
132 double fSlow8 = (0.0005 * fSlow0);
133 double fSlow9 = (0.020470000000000002 * fSlow2);
134 double fSlow10 = (fConst0 * (0.0025092499999999998 + (fSlow9 + fSlow8)));
135 double fSlow11 = ((fSlow10 + (fConst1 * (fSlow7 - fSlow3))) - 1);
136 double fSlow12 = (fConst2 * fSlow6);
137 double fSlow13 = ((fConst1 * (fSlow3 + fSlow12)) - (3 + fSlow10));
138 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
139 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
140 double fSlow16 = fslider2;
141 double fSlow17 = ((fSlow0 * (3.48975e-11 + fSlow4)) + (fSlow16 * (fSlow5 + (5.522500000000001e-11 - (5.522500000000001e-11 * fSlow0)))));
142 double fSlow18 = (fConst2 * fSlow17);
143 double fSlow19 = (8.084000000000001e-08 + (((2.2090000000000003e-07 * fSlow16) + (fSlow0 * (3.146250000000001e-07 - fSlow1))) + (fSlow2 * (3.2336000000000007e-06 + (1.0235000000000001e-05 * fSlow0)))));
144 double fSlow20 = (0.00051175 + (fSlow9 + (fSlow8 + (0.00011750000000000001 * fSlow16))));
145 double fSlow21 = (fConst0 * fSlow20);
146 double fSlow22 = (fSlow21 + (fConst1 * (fSlow19 - fSlow18)));
147 double fSlow23 = (fConst0 * fSlow17);
148 double fSlow24 = (fSlow21 + (fConst1 * (fSlow23 - fSlow19)));
149 double fSlow25 = (fConst0 * (0 - fSlow20));
150 double fSlow26 = (fSlow25 + (fConst1 * (fSlow19 + fSlow18)));
151 double fSlow27 = (fSlow25 - (fConst1 * (fSlow19 + fSlow23)));
152 for (uint32_t i=0; i<n_samples; i++)
153 {
154 fRec0[0] = ((double)output[i] - (fSlow15 * (((fSlow14 * fRec0[2]) + (fSlow13 * fRec0[1])) + (fSlow11 * fRec0[3]))));
155 output[i] = (float)(fSlow15 * ((fSlow27 * fRec0[0]) + ((fSlow26 * fRec0[1]) + ((fSlow24 * fRec0[3]) + (fSlow22 * fRec0[2])))));
156 // post processing
157 for (int32_t i=3; i>0; i--) fRec0[i] = fRec0[i-1];
158 }
159 }
160
161 inline void TonestackMono::run_bassman(uint32_t n_samples, float *output) //bassman
162 {
163 float fslider0 = *fslider0_;
164 float fslider1 = *fslider1_;
165 float fslider2 = *fslider2_;
166 double fSlow0 = fslider0;
167 double fSlow1 = (2.5312500000000006e-07 * fSlow0);
168 double fSlow2 = exp((3.4 * (fslider1 - 1)));
169 double fSlow3 = (7.4525e-07 + ((2.4210000000000004e-05 * fSlow2) + (fSlow0 * (((1.0125e-05 * fSlow2) - 2.75625e-07) - fSlow1))));
170 double fSlow4 = ((7.650000000000002e-10 * fSlow2) - (1.9125000000000002e-11 * fSlow0));
171 double fSlow5 = (1.4000000000000001e-09 * fSlow2);
172 double fSlow6 = (3.500000000000001e-11 + (fSlow5 + (fSlow0 * (fSlow4 - 1.5875000000000007e-11))));
173 double fSlow7 = (fConst0 * fSlow6);
174 double fSlow8 = (0.0005 * fSlow0);
175 double fSlow9 = (0.02025 * fSlow2);
176 double fSlow10 = (fConst0 * (0.0028087500000000005 + (fSlow9 + fSlow8)));
177 double fSlow11 = ((fSlow10 + (fConst1 * (fSlow7 - fSlow3))) - 1);
178 double fSlow12 = (fConst2 * fSlow6);
179 double fSlow13 = ((fConst1 * (fSlow3 + fSlow12)) - (3 + fSlow10));
180 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
181 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
182 double fSlow16 = fslider2;
183 double fSlow17 = ((fSlow0 * (1.9125000000000002e-11 + fSlow4)) + (fSlow16 * (fSlow5 + (3.500000000000001e-11 - (3.500000000000001e-11 * fSlow0)))));
184 double fSlow18 = (fConst2 * fSlow17);
185 double fSlow19 = (4.525e-08 + (((1.4e-07 * fSlow16) + (fSlow0 * (2.8437500000000003e-07 - fSlow1))) + (fSlow2 * (1.8100000000000002e-06 + (1.0125e-05 * fSlow0)))));
186 double fSlow20 = (0.00050625 + (fSlow9 + (fSlow8 + (6.25e-05 * fSlow16))));
187 double fSlow21 = (fConst0 * fSlow20);
188 double fSlow22 = (fSlow21 + (fConst1 * (fSlow19 - fSlow18)));
189 double fSlow23 = (fConst0 * fSlow17);
190 double fSlow24 = (fSlow21 + (fConst1 * (fSlow23 - fSlow19)));
191 double fSlow25 = (fConst0 * (0 - fSlow20));
192 double fSlow26 = (fSlow25 + (fConst1 * (fSlow19 + fSlow18)));
193 double fSlow27 = (fSlow25 - (fConst1 * (fSlow19 + fSlow23)));
194 for (uint32_t i=0; i<n_samples; i++)
195 {
196 fRec0[0] = ((double)output[i] - (fSlow15 * (((fSlow14 * fRec0[2]) + (fSlow13 * fRec0[1])) + (fSlow11 * fRec0[3]))));
197 output[i] = (float)(fSlow15 * ((fSlow27 * fRec0[0]) + ((fSlow26 * fRec0[1]) + ((fSlow24 * fRec0[3]) + (fSlow22 * fRec0[2])))));
198 // post processing
199 for (int32_t i=3; i>0; i--) fRec0[i] = fRec0[i-1];
200 }
201
202 }
203
204
205 inline void TonestackMono::run_ampeg(uint32_t n_samples, float *output) //ampeg
206 {
207 float fslider0 = *fslider0_;
208 float fslider1 = *fslider1_;
209 float fslider2 = *fslider2_;
210 double fSlow0 = fslider0;
211 double fSlow1 = (3.0896250000000005e-07 * fSlow0);
212 double fSlow2 = exp((3.4 * (fslider1 - 1)));
213 double fSlow3 = (6.338090000000001e-07 + ((1.8734760000000003e-05 * fSlow2) + (fSlow0 * (((1.2358500000000002e-05 * fSlow2) - 1.361249999999999e-08) - fSlow1))));
214 double fSlow4 = ((1.6037340000000005e-09 * fSlow2) - (4.0093350000000015e-11 * fSlow0));
215 double fSlow5 = (1.8198400000000004e-09 * fSlow2);
216 double fSlow6 = (4.5496000000000015e-11 + (fSlow5 + (fSlow0 * (fSlow4 - 5.40265e-12))));
217 double fSlow7 = (fConst0 * fSlow6);
218 double fSlow8 = (0.00055 * fSlow0);
219 double fSlow9 = (0.022470000000000004 * fSlow2);
220 double fSlow10 = (fConst0 * (0.00208725 + (fSlow9 + fSlow8)));
221 double fSlow11 = ((fSlow10 + (fConst1 * (fSlow7 - fSlow3))) - 1);
222 double fSlow12 = (fConst2 * fSlow6);
223 double fSlow13 = ((fConst1 * (fSlow3 + fSlow12)) - (3 + fSlow10));
224 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
225 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
226 double fSlow16 = fslider2;
227 double fSlow17 = ((fSlow0 * (4.0093350000000015e-11 + fSlow4)) + (fSlow16 * (fSlow5 + (4.5496000000000015e-11 - (4.5496000000000015e-11 * fSlow0)))));
228 double fSlow18 = (fConst2 * fSlow17);
229 double fSlow19 = (8.1169e-08 + (((1.6544000000000003e-07 * fSlow16) + (fSlow0 * (3.735875000000001e-07 - fSlow1))) + (fSlow2 * (3.24676e-06 + (1.2358500000000002e-05 * fSlow0)))));
230 double fSlow20 = (0.0005617500000000001 + (fSlow9 + (fSlow8 + (0.00011750000000000001 * fSlow16))));
231 double fSlow21 = (fConst0 * fSlow20);
232 double fSlow22 = (fSlow21 + (fConst1 * (fSlow19 - fSlow18)));
233 double fSlow23 = (fConst0 * fSlow17);
234 double fSlow24 = (fSlow21 + (fConst1 * (fSlow23 - fSlow19)));
235 double fSlow25 = (fConst0 * (0 - fSlow20));
236 double fSlow26 = (fSlow25 + (fConst1 * (fSlow19 + fSlow18)));
237 double fSlow27 = (fSlow25 - (fConst1 * (fSlow19 + fSlow23)));
238 for (uint32_t i=0; i<n_samples; i++)
239 {
240 fRec0[0] = ((double)output[i] - (fSlow15 * (((fSlow14 * fRec0[2]) + (fSlow13 * fRec0[1])) + (fSlow11 * fRec0[3]))));
241 output[i] = (float)(fSlow15 * ((fSlow27 * fRec0[0]) + ((fSlow26 * fRec0[1]) + ((fSlow24 * fRec0[3]) + (fSlow22 * fRec0[2])))));
242 // post processing
243 for (int32_t i=3; i>0; i--) fRec0[i] = fRec0[i-1];
244 }
245 }
246
247
248 void TonestackMono::init_static(uint32_t samplingFreq, TonestackMono *p)
249 {
250 p->init(samplingFreq);
251 }
252
253 void TonestackMono::connect_static(uint32_t port,void* data, TonestackMono *p)
254 {
255 p->connect(port, data);
256 }
257
258 void TonestackMono::run_static(uint32_t n_samples, TonestackMono *p, float *output)
259 {
260 (p->*_t_ptr)(n_samples, output);
261 }
262
263 ////////////////////////////// STEREO //////////////////////////////////
264
265
266 inline void TonestackStereo::clear_state_f()
267 {
268 for (int32_t i=0; i<4; i++) fRec0[i] = 0;
269 for (int32_t i=0; i<4; i++) fRec1[i] = 0;
270 }
271
272
273 inline void TonestackStereo::init(uint32_t samplingFreq)
274 {
275 fSamplingFreq = samplingFreq;
276 fConst0 = (2 * double(min(192000, max(1, fSamplingFreq))));
277 fConst1 = faustpower<2>(fConst0);
278 fConst2 = (3 * fConst0);
279 clear_state_f();
280 }
281
282
283 void TonestackStereo::connect(uint32_t port,void* data)
284 {
285 switch ((PortIndex)port)
286 {
287 case AMP_MASTERGAIN:
288 break;
289 case AMP_PREGAIN:
290 break;
291 case AMP_WET_DRY:
292 break;
293 case AMP_DRIVE:
294 break;
295 case MID:
296 fslider0_ = (float*)data;
297 break;
298 case BASS:
299 fslider1_ = (float*)data;
300 break;
301 case TREBLE:
302 fslider2_ = (float*)data;
303 break;
304 case CLevel:
305 break;
306 case ALevel:
307 break;
308 case AMP_OUTPUT:
309 break;
310 case AMP_INPUT:
311 break;
312 case AMP_OUTPUT1:
313 break;
314 case AMP_INPUT1:
315 break;
316 case AMP_CONTROL:
317 break;
318 case AMP_NOTIFY:
319 break;
320 }
321 }
322
323 inline void TonestackStereo::run(uint32_t count, float *output0, float *output1)
324 {
325 float fslider0 = *fslider0_;
326 float fslider1 = *fslider1_;
327 float fslider2 = *fslider2_;
328 double fSlow0 = fslider0;
329 double fSlow1 = (4.9434000000000004e-08 * fSlow0);
330 double fSlow2 = exp((3.4 * (fslider1 - 1)));
331 double fSlow3 = (7.748796000000001e-07 + ((2.8889960000000004e-05 * fSlow2) + (fSlow0 * (((4.943400000000001e-06 * fSlow2) - 1.2634599999999999e-07) - fSlow1))));
332 double fSlow4 = ((1.2443156000000004e-09 * fSlow2) - (1.2443156000000002e-11 * fSlow0));
333 double fSlow5 = (5.345780000000001e-09 * fSlow2);
334 double fSlow6 = (5.345780000000001e-11 + (fSlow5 + (fSlow0 * (fSlow4 - 4.101464400000001e-11))));
335 double fSlow7 = (fConst0 * fSlow6);
336 double fSlow8 = (0.00022 * fSlow0);
337 double fSlow9 = (0.022470000000000004 * fSlow2);
338 double fSlow10 = (fConst0 * (0.0025277 + (fSlow9 + fSlow8)));
339 double fSlow11 = ((fSlow10 + (fConst1 * (fSlow7 - fSlow3))) - 1);
340 double fSlow12 = (fConst2 * fSlow6);
341 double fSlow13 = ((fConst1 * (fSlow3 + fSlow12)) - (3 + fSlow10));
342 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
343 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
344 double fSlow16 = fslider2;
345 double fSlow17 = ((fSlow0 * (1.2443156000000002e-11 + fSlow4)) + (fSlow16 * (fSlow5 + (5.345780000000001e-11 - (5.345780000000001e-11 * fSlow0)))));
346 double fSlow18 = (fConst2 * fSlow17);
347 double fSlow19 = (6.141960000000001e-08 + (((4.859800000000001e-07 * fSlow16) + (fSlow0 * (1.0113400000000001e-07 - fSlow1))) + (fSlow2 * (6.141960000000001e-06 + (4.943400000000001e-06 * fSlow0)))));
348 double fSlow20 = (0.00022470000000000001 + (fSlow9 + (fSlow8 + (0.00023500000000000002 * fSlow16))));
349 double fSlow21 = (fConst0 * fSlow20);
350 double fSlow22 = (fSlow21 + (fConst1 * (fSlow19 - fSlow18)));
351 double fSlow23 = (fConst0 * fSlow17);
352 double fSlow24 = (fSlow21 + (fConst1 * (fSlow23 - fSlow19)));
353 double fSlow25 = (fConst0 * (0 - fSlow20));
354 double fSlow26 = (fSlow25 + (fConst1 * (fSlow19 + fSlow18)));
355 double fSlow27 = (fSlow25 - (fConst1 * (fSlow19 + fSlow23)));
356 for (uint32_t i=0; i<count; i++)
357 {
358 fRec0[0] = ((double)output0[i] - (fSlow15 * (((fSlow14 * fRec0[2]) + (fSlow13 * fRec0[1])) + (fSlow11 * fRec0[3]))));
359 output0[i] = (float)(fSlow15 * ((fSlow27 * fRec0[0]) + ((fSlow26 * fRec0[1]) + ((fSlow24 * fRec0[3]) + (fSlow22 * fRec0[2])))));
360 fRec1[0] = ((double)output1[i] - (fSlow15 * (((fSlow14 * fRec1[2]) + (fSlow13 * fRec1[1])) + (fSlow11 * fRec1[3]))));
361 output1[i] = (float)(fSlow15 * ((fSlow27 * fRec1[0]) + ((fSlow26 * fRec1[1]) + ((fSlow24 * fRec1[3]) + (fSlow22 * fRec1[2])))));
362 // post processing
363 for (int32_t i=3; i>0; i--) fRec1[i] = fRec1[i-1];
364 for (int32_t i=3; i>0; i--) fRec0[i] = fRec0[i-1];
365 }
366 }
367
368
369 inline void TonestackStereo::run_soldano(uint32_t count, float *output0, float *output1) //soldano
370 {
371 float fslider0 = *fslider0_;
372 float fslider1 = *fslider1_;
373 float fslider2 = *fslider2_;
374 double fSlow0 = fslider0;
375 double fSlow1 = (2.5587500000000006e-07 * fSlow0);
376 double fSlow2 = exp((3.4 * (fslider1 - 1)));
377 double fSlow3 = (7.717400000000001e-07 + ((2.2033600000000005e-05 * fSlow2) + (fSlow0 * (((1.0235000000000001e-05 * fSlow2) - 1.5537499999999997e-07) - fSlow1))));
378 double fSlow4 = ((1.3959000000000001e-09 * fSlow2) - (3.48975e-11 * fSlow0));
379 double fSlow5 = (2.2090000000000005e-09 * fSlow2);
380 double fSlow6 = (5.522500000000001e-11 + (fSlow5 + (fSlow0 * (fSlow4 - 2.0327500000000007e-11))));
381 double fSlow7 = (fConst0 * fSlow6);
382 double fSlow8 = (0.0005 * fSlow0);
383 double fSlow9 = (0.020470000000000002 * fSlow2);
384 double fSlow10 = (fConst0 * (0.0025092499999999998 + (fSlow9 + fSlow8)));
385 double fSlow11 = ((fSlow10 + (fConst1 * (fSlow7 - fSlow3))) - 1);
386 double fSlow12 = (fConst2 * fSlow6);
387 double fSlow13 = ((fConst1 * (fSlow3 + fSlow12)) - (3 + fSlow10));
388 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
389 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
390 double fSlow16 = fslider2;
391 double fSlow17 = ((fSlow0 * (3.48975e-11 + fSlow4)) + (fSlow16 * (fSlow5 + (5.522500000000001e-11 - (5.522500000000001e-11 * fSlow0)))));
392 double fSlow18 = (fConst2 * fSlow17);
393 double fSlow19 = (8.084000000000001e-08 + (((2.2090000000000003e-07 * fSlow16) + (fSlow0 * (3.146250000000001e-07 - fSlow1))) + (fSlow2 * (3.2336000000000007e-06 + (1.0235000000000001e-05 * fSlow0)))));
394 double fSlow20 = (0.00051175 + (fSlow9 + (fSlow8 + (0.00011750000000000001 * fSlow16))));
395 double fSlow21 = (fConst0 * fSlow20);
396 double fSlow22 = (fSlow21 + (fConst1 * (fSlow19 - fSlow18)));
397 double fSlow23 = (fConst0 * fSlow17);
398 double fSlow24 = (fSlow21 + (fConst1 * (fSlow23 - fSlow19)));
399 double fSlow25 = (fConst0 * (0 - fSlow20));
400 double fSlow26 = (fSlow25 + (fConst1 * (fSlow19 + fSlow18)));
401 double fSlow27 = (fSlow25 - (fConst1 * (fSlow19 + fSlow23)));
402 for (uint32_t i=0; i<count; i++)
403 {
404 fRec0[0] = ((double)output0[i] - (fSlow15 * (((fSlow14 * fRec0[2]) + (fSlow13 * fRec0[1])) + (fSlow11 * fRec0[3]))));
405 output0[i] = (float)(fSlow15 * ((fSlow27 * fRec0[0]) + ((fSlow26 * fRec0[1]) + ((fSlow24 * fRec0[3]) + (fSlow22 * fRec0[2])))));
406 fRec1[0] = ((double)output1[i] - (fSlow15 * (((fSlow14 * fRec1[2]) + (fSlow13 * fRec1[1])) + (fSlow11 * fRec1[3]))));
407 output1[i] = (float)(fSlow15 * ((fSlow27 * fRec1[0]) + ((fSlow26 * fRec1[1]) + ((fSlow24 * fRec1[3]) + (fSlow22 * fRec1[2])))));
408 // post processing
409 for (int32_t i=3; i>0; i--) fRec1[i] = fRec1[i-1];
410 for (int32_t i=3; i>0; i--) fRec0[i] = fRec0[i-1];
411 }
412 }
413
414 inline void TonestackStereo::run_bassman(uint32_t count, float *output0, float *output1) // bassman
415 {
416 float fslider0 = *fslider0_;
417 float fslider1 = *fslider1_;
418 float fslider2 = *fslider2_;
419 double fSlow0 = fslider0;
420 double fSlow1 = (2.5312500000000006e-07 * fSlow0);
421 double fSlow2 = exp((3.4 * (fslider1 - 1)));
422 double fSlow3 = (7.4525e-07 + ((2.4210000000000004e-05 * fSlow2) + (fSlow0 * (((1.0125e-05 * fSlow2) - 2.75625e-07) - fSlow1))));
423 double fSlow4 = ((7.650000000000002e-10 * fSlow2) - (1.9125000000000002e-11 * fSlow0));
424 double fSlow5 = (1.4000000000000001e-09 * fSlow2);
425 double fSlow6 = (3.500000000000001e-11 + (fSlow5 + (fSlow0 * (fSlow4 - 1.5875000000000007e-11))));
426 double fSlow7 = (fConst0 * fSlow6);
427 double fSlow8 = (0.0005 * fSlow0);
428 double fSlow9 = (0.02025 * fSlow2);
429 double fSlow10 = (fConst0 * (0.0028087500000000005 + (fSlow9 + fSlow8)));
430 double fSlow11 = ((fSlow10 + (fConst1 * (fSlow7 - fSlow3))) - 1);
431 double fSlow12 = (fConst2 * fSlow6);
432 double fSlow13 = ((fConst1 * (fSlow3 + fSlow12)) - (3 + fSlow10));
433 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
434 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
435 double fSlow16 = fslider2;
436 double fSlow17 = ((fSlow0 * (1.9125000000000002e-11 + fSlow4)) + (fSlow16 * (fSlow5 + (3.500000000000001e-11 - (3.500000000000001e-11 * fSlow0)))));
437 double fSlow18 = (fConst2 * fSlow17);
438 double fSlow19 = (4.525e-08 + (((1.4e-07 * fSlow16) + (fSlow0 * (2.8437500000000003e-07 - fSlow1))) + (fSlow2 * (1.8100000000000002e-06 + (1.0125e-05 * fSlow0)))));
439 double fSlow20 = (0.00050625 + (fSlow9 + (fSlow8 + (6.25e-05 * fSlow16))));
440 double fSlow21 = (fConst0 * fSlow20);
441 double fSlow22 = (fSlow21 + (fConst1 * (fSlow19 - fSlow18)));
442 double fSlow23 = (fConst0 * fSlow17);
443 double fSlow24 = (fSlow21 + (fConst1 * (fSlow23 - fSlow19)));
444 double fSlow25 = (fConst0 * (0 - fSlow20));
445 double fSlow26 = (fSlow25 + (fConst1 * (fSlow19 + fSlow18)));
446 double fSlow27 = (fSlow25 - (fConst1 * (fSlow19 + fSlow23)));
447 for (uint32_t i=0; i<count; i++)
448 {
449 fRec0[0] = ((double)output0[i] - (fSlow15 * (((fSlow14 * fRec0[2]) + (fSlow13 * fRec0[1])) + (fSlow11 * fRec0[3]))));
450 output0[i] = (float)(fSlow15 * ((fSlow27 * fRec0[0]) + ((fSlow26 * fRec0[1]) + ((fSlow24 * fRec0[3]) + (fSlow22 * fRec0[2])))));
451 fRec1[0] = ((double)output1[i] - (fSlow15 * (((fSlow14 * fRec1[2]) + (fSlow13 * fRec1[1])) + (fSlow11 * fRec1[3]))));
452 output1[i] = (float)(fSlow15 * ((fSlow27 * fRec1[0]) + ((fSlow26 * fRec1[1]) + ((fSlow24 * fRec1[3]) + (fSlow22 * fRec1[2])))));
453 // post processing
454 for (int32_t i=3; i>0; i--) fRec1[i] = fRec1[i-1];
455 for (int32_t i=3; i>0; i--) fRec0[i] = fRec0[i-1];
456 }
457 }
458
459 inline void TonestackStereo::run_ampeg(uint32_t count, float *output0, float *output1) //ampeg
460 {
461 float fslider0 = *fslider0_;
462 float fslider1 = *fslider1_;
463 float fslider2 = *fslider2_;
464 double fSlow0 = fslider0;
465 double fSlow1 = (3.0896250000000005e-07 * fSlow0);
466 double fSlow2 = exp((3.4 * (fslider1 - 1)));
467 double fSlow3 = (6.338090000000001e-07 + ((1.8734760000000003e-05 * fSlow2) + (fSlow0 * (((1.2358500000000002e-05 * fSlow2) - 1.361249999999999e-08) - fSlow1))));
468 double fSlow4 = ((1.6037340000000005e-09 * fSlow2) - (4.0093350000000015e-11 * fSlow0));
469 double fSlow5 = (1.8198400000000004e-09 * fSlow2);
470 double fSlow6 = (4.5496000000000015e-11 + (fSlow5 + (fSlow0 * (fSlow4 - 5.40265e-12))));
471 double fSlow7 = (fConst0 * fSlow6);
472 double fSlow8 = (0.00055 * fSlow0);
473 double fSlow9 = (0.022470000000000004 * fSlow2);
474 double fSlow10 = (fConst0 * (0.00208725 + (fSlow9 + fSlow8)));
475 double fSlow11 = ((fSlow10 + (fConst1 * (fSlow7 - fSlow3))) - 1);
476 double fSlow12 = (fConst2 * fSlow6);
477 double fSlow13 = ((fConst1 * (fSlow3 + fSlow12)) - (3 + fSlow10));
478 double fSlow14 = ((fSlow10 + (fConst1 * (fSlow3 - fSlow12))) - 3);
479 double fSlow15 = (1.0 / (0 - (1 + (fSlow10 + (fConst1 * (fSlow3 + fSlow7))))));
480 double fSlow16 = fslider2;
481 double fSlow17 = ((fSlow0 * (4.0093350000000015e-11 + fSlow4)) + (fSlow16 * (fSlow5 + (4.5496000000000015e-11 - (4.5496000000000015e-11 * fSlow0)))));
482 double fSlow18 = (fConst2 * fSlow17);
483 double fSlow19 = (8.1169e-08 + (((1.6544000000000003e-07 * fSlow16) + (fSlow0 * (3.735875000000001e-07 - fSlow1))) + (fSlow2 * (3.24676e-06 + (1.2358500000000002e-05 * fSlow0)))));
484 double fSlow20 = (0.0005617500000000001 + (fSlow9 + (fSlow8 + (0.00011750000000000001 * fSlow16))));
485 double fSlow21 = (fConst0 * fSlow20);
486 double fSlow22 = (fSlow21 + (fConst1 * (fSlow19 - fSlow18)));
487 double fSlow23 = (fConst0 * fSlow17);
488 double fSlow24 = (fSlow21 + (fConst1 * (fSlow23 - fSlow19)));
489 double fSlow25 = (fConst0 * (0 - fSlow20));
490 double fSlow26 = (fSlow25 + (fConst1 * (fSlow19 + fSlow18)));
491 double fSlow27 = (fSlow25 - (fConst1 * (fSlow19 + fSlow23)));
492 for (uint32_t i=0; i<count; i++)
493 {
494 fRec0[0] = ((double)output0[i] - (fSlow15 * (((fSlow14 * fRec0[2]) + (fSlow13 * fRec0[1])) + (fSlow11 * fRec0[3]))));
495 output0[i] = (float)(fSlow15 * ((fSlow27 * fRec0[0]) + ((fSlow26 * fRec0[1]) + ((fSlow24 * fRec0[3]) + (fSlow22 * fRec0[2])))));
496 fRec1[0] = ((double)output1[i] - (fSlow15 * (((fSlow14 * fRec1[2]) + (fSlow13 * fRec1[1])) + (fSlow11 * fRec1[3]))));
497 output1[i] = (float)(fSlow15 * ((fSlow27 * fRec1[0]) + ((fSlow26 * fRec1[1]) + ((fSlow24 * fRec1[3]) + (fSlow22 * fRec1[2])))));
498 // post processing
499 for (int32_t i=3; i>0; i--) fRec1[i] = fRec1[i-1];
500 for (int32_t i=3; i>0; i--) fRec0[i] = fRec0[i-1];
501 }
502 }
503
504
505 void TonestackStereo::init_static(uint32_t samplingFreq, TonestackStereo *p)
506 {
507 p->init(samplingFreq);
508 }
509
510 void TonestackStereo::connect_static(uint32_t port,void* data, TonestackStereo *p)
511 {
512 p->connect(port, data);
513 }
514
515 void TonestackStereo::run_static(uint32_t n_samples, TonestackStereo *p, float *output, float *output1)
516 {
517 (p->*_ts_ptr)(n_samples, output, output1);
518 }
0 /*
1 * Copyright (C) 2012 Hermann Meyer, Andreas Degert, Pete Shorthose
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 * --------------------------------------------------------------------------
17 */
18
19 #pragma once
20
21 #ifndef SRC_HEADERS_GX_TONESTACK_H_
22 #define SRC_HEADERS_GX_TONESTACK_H_
23
24 class TonestackMono
25 {
26 private:
27 int32_t fSamplingFreq;
28 float fslider0;
29 float *fslider0_;
30 float fslider1;
31 float *fslider1_;
32 double fConst0;
33 double fConst1;
34 double fConst2;
35 double fRec0[4];
36 float fslider2;
37 float *fslider2_;
38 void clear_state_f();
39 void init(uint32_t samplingFreq);
40 void connect(uint32_t port,void* data);
41
42
43 public:
44 void run_bassman(uint32_t n_samples, float *output);
45 void run(uint32_t n_samples, float *output);
46 void run_soldano(uint32_t n_samples, float *output);
47 void run_ampeg(uint32_t n_samples, float *output);
48 static void init_static(uint32_t samplingFreq, TonestackMono *p);
49 static void connect_static(uint32_t port,void* data, TonestackMono *p);
50 static void run_static(uint32_t n_samples, TonestackMono*, float *output);
51
52 TonestackMono() {};
53 ~TonestackMono() {};
54 };
55
56 // define run pointer typs
57 typedef void (TonestackMono::*run_tonestack_mono)
58 (uint32_t count, float *output);
59
60 run_tonestack_mono _t_ptr;
61
62
63 class TonestackStereo
64 {
65 private:
66 int32_t fSamplingFreq;
67 float fslider0;
68 float *fslider0_;
69 float fslider1;
70 float *fslider1_;
71 double fConst0;
72 double fConst1;
73 double fConst2;
74 double fRec0[4];
75 double fRec1[4];
76 float fslider2;
77 float *fslider2_;
78 void clear_state_f();
79 void init(uint32_t samplingFreq);
80 void connect(uint32_t port,void* data);
81 public:
82
83 void run_bassman(uint32_t n_samples, float *output, float *output1);
84 void run(uint32_t n_samples, float *output, float *output1);
85 void run_soldano(uint32_t n_samples, float *output, float *output1);
86 void run_ampeg(uint32_t n_samples, float *output, float *output1);
87 static void init_static(uint32_t samplingFreq, TonestackStereo *p);
88 static void connect_static(uint32_t port,void* data, TonestackStereo *p);
89 static void run_static(uint32_t n_samples, TonestackStereo*, float *output, float *output1);
90 TonestackStereo() {};
91 ~TonestackStereo() {};
92 };
93
94 // define run pointer typs
95 typedef void (TonestackStereo::*run_tonestack_stereo)
96 (uint32_t count, float *output, float *output1);
97
98 run_tonestack_stereo _ts_ptr;
99
100
101 #endif //SRC_HEADERS_GX_TONESTACK_H_
102
0 /*
1 * Copyright (C) 2012 Hermann Meyer, Andreas Degert, Pete Shorthose
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 * --------------------------------------------------------------------------
17 */
18
19 Impf::Impf()
20 {
21 }
22
23 Impf::~Impf()
24 {
25 }
26
27 inline void Impf::init(uint32_t samplingFreq)
28 {
29 fSamplingFreq = samplingFreq;
30 }
31
32 inline void Impf::compute(int32_t count, float *input0, float *output0, float value)
33 {
34 double fSlow0 = value* value * 0.01;
35 //double fSlow1 = (fSlow0 * pow(10,(0 - (0.1 * fSlow0))));
36 for (int32_t i=0; i<count; i++)
37 {
38 output0[i] = fSlow0 * input0[i];
39 }
40 }
41
42 void Impf::connect(uint32_t port,void* data)
43 {
44 switch ((PortIndex)port)
45 {
46 case AMP_MASTERGAIN:
47 break;
48 case AMP_PREGAIN:
49 break;
50 case AMP_WET_DRY:
51 break;
52 case AMP_DRIVE:
53 break;
54 case MID:
55 break;
56 case BASS:
57 break;
58 case TREBLE:
59 break;
60 case CLevel:
61 break;
62 case ALevel:
63 break;
64 case AMP_CONTROL:
65 break;
66 case AMP_NOTIFY:
67 break;
68 case AMP_OUTPUT:
69 break;
70 case AMP_INPUT:
71 break;
72 case AMP_OUTPUT1:
73 break;
74 case AMP_INPUT1:
75 break;
76 }
77 }
78
79 void Impf::connect_static(uint32_t port,void* data, Impf *p)
80 {
81 static_cast<Impf*>(p)->connect(port, data);
82 }
83
84 void Impf::init_static(uint32_t samplingFreq, Impf *p)
85 {
86 static_cast<Impf*>(p)->init(samplingFreq);
87 }
88
0 /*
1 * Copyright (C) 2012 Hermann Meyer, Andreas Degert, Pete Shorthose
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 * --------------------------------------------------------------------------
17 */
18
19
20 class Impf
21 {
22 private:
23 int32_t fSamplingFreq;
24 void init(uint32_t samplingFreq);
25 void connect(uint32_t port,void* data);
26
27 public:
28 void compute(int32_t count, float *input0, float *output0, float value);
29 static void connect_static(uint32_t port,void* data, Impf *p);
30 static void init_static(uint32_t samplingFreq, Impf *p);
31 Impf();
32 ~Impf();
33 };
34
0 /*
1 * Copyright (C) 2012 Hermann Meyer, Andreas Degert, Pete Shorthose
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 * --------------------------------------------------------------------------
17 */
18
19
20 #pragma once
21
22 #ifndef SRC_HEADERS_VALVE_H_
23 #define SRC_HEADERS_VALVE_H_
24
25 /****************************************************************
26 * 1-dimensional function tables for linear interpolation
27 *
28 * table1d and table1d_imp<size> must only differ in the last
29 * element, so that the typecast for tubetab below will work.
30 * Can't use inheritance because then C initializers will not
31 * work and initialization will be more awkward or less efficient.
32 */
33
34 struct table1d // 1-dimensional function table
35 {
36 float low;
37 float high;
38 float istep;
39 int32_t size;
40 float data[];
41 };
42
43 template <int32_t tab_size>
44 struct table1d_imp
45 {
46 float low;
47 float high;
48 float istep;
49 int32_t size;
50 float data[tab_size];
51 operator table1d&() const
52 {
53 return *(table1d*)this;
54 }
55 };
56
57 /*
58 * data tables generated by tools/tube_transfer.py
59 */
60 #include "12ax7.cc"
61 #include "12AT7.cc"
62 #include "6C16.cc"
63 #include "6V6.cc"
64 #include "6DJ8.cc"
65
66 enum
67 {
68 TUBE_TABLE_12AX7_68k,
69 TUBE_TABLE_12AX7_250k,
70 TUBE_TABLE_12AT7_68k,
71 TUBE_TABLE_12AT7_250k,
72 TUBE_TABLE_6C16_68k,
73 TUBE_TABLE_6C16_250k,
74 TUBE_TABLE_6V6_68k,
75 TUBE_TABLE_6V6_250k,
76 TUBE_TABLE_6DJ8_68k,
77 TUBE_TABLE_6DJ8_250k,
78 TUBE_TABLE_SIZE
79 };
80
81 table1d *tubetab[TUBE_TABLE_SIZE] =
82 {
83 &static_cast<table1d&>(tubetable_12AX7[0]),
84 &static_cast<table1d&>(tubetable_12AX7[1]),
85 &static_cast<table1d&>(tubetable_12AT7[0]),
86 &static_cast<table1d&>(tubetable_12AT7[1]),
87 &static_cast<table1d&>(tubetable_6C16[0]),
88 &static_cast<table1d&>(tubetable_6C16[1]),
89 &static_cast<table1d&>(tubetable_6V6[0]),
90 &static_cast<table1d&>(tubetable_6V6[1]),
91 &static_cast<table1d&>(tubetable_6DJ8[0]),
92 &static_cast<table1d&>(tubetable_6DJ8[1]),
93 };
94
95 /*
96 * definitions for ffunction(float Ftube(int32_t,float), "valve.h", "");
97 * in gx_amp.dsp - gx_ampmodul.dsp
98 */
99
100 static inline double Ftube(int32_t table, double Vgk)
101 {
102 const table1d& tab = *tubetab[table];
103 double f = (Vgk - tab.low) * tab.istep;
104 int32_t i = static_cast<int32_t>(f);
105 if (i < 0)
106 return tab.data[0];
107 if (i >= tab.size-1)
108 return tab.data[tab.size-1];
109 f -= i;
110 return tab.data[i]*(1-f) + tab.data[i+1]*f;
111 }
112
113 #endif
0
1 amp21.png is created by Richard Dalton,
2
3 he gives us permission to distribute it under the terms of the
4 GNU General Public License either version 2 of the License,
5 or (at your option) any later version.
6
7 see: http://www.Ampskindesigns.com
8 for more information
9
10 You should have received a copy of the GNU General Public License
11 If not, see <http://www.gnu.org/licenses/>.
0 /*
1 * Copyright (C) 2012 Hermann Meyer, Andreas Degert, Pete Shorthose
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 * --------------------------------------------------------------------------
17 */
18
19 #include <cstdlib>
20 #include <cmath>
21 #include <iostream>
22 #include <cstring>
23 #include <glibmm.h>
24 #include <unistd.h>
25
26 #ifdef __SSE__
27 /* On Intel set FZ (Flush to Zero) and DAZ (Denormals Are Zero)
28 flags to avoid costly denormals */
29 #ifdef __SSE3__
30 #include <pmmintrin.h>
31 inline void AVOIDDENORMALS()
32 {
33 _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON);
34 _MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_ON);
35 }
36 #else
37 #include <xmmintrin.h>
38 inline void AVOIDDENORMALS()
39 {
40 _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON);
41 }
42 #endif //__SSE3__
43
44 #else
45 inline void AVOIDDENORMALS() {}
46 #endif //__SSE__
47
48 // faust support
49 #define FAUSTFLOAT float
50 #ifndef N_
51 #define N_(String) (String)
52 #endif
53 #define max(x, y) (((x) > (y)) ? (x) : (y))
54 #define min(x, y) (((x) < (y)) ? (x) : (y))
55 template <int32_t N> inline float faustpower(float x)
56 {
57 return powf(x, N);
58 }
59 template <int32_t N> inline double faustpower(double x)
60 {
61 return pow(x, N);
62 }
63 template <int32_t N> inline int32_t faustpower(int32_t x)
64 {
65 return faustpower<N/2>(x) * faustpower<N-N/2>(x);
66 }
67 template <> inline int32_t faustpower<0>(int32_t x)
68 {
69 return 1;
70 }
71 template <> inline int32_t faustpower<1>(int32_t x)
72 {
73 return x;
74 }
75
76 /****************************************************************
77 ** "atomic" value access
78 */
79
80 inline void atomic_set(volatile int32_t* p, int32_t v)
81 {
82 g_atomic_int_set(p, v);
83 }
84
85 inline int32_t atomic_get(volatile int32_t& p)
86 {
87 return g_atomic_int_get(&p);
88 }
89
90 inline bool atomic_compare_and_exchange(volatile int32_t *p, int32_t oldv, int32_t newv)
91 {
92 return g_atomic_int_compare_and_exchange(p, oldv, newv);
93 }
94
95 template <class T>
96 inline void atomic_set(T **p, T *v)
97 {
98 g_atomic_pointer_set(p, v);
99 }
100
101 template <class T>
102 inline void atomic_set_0(T **p)
103 {
104 g_atomic_pointer_set(p, 0);
105 }
106
107 template <class T>
108 inline T *atomic_get(T*& p)
109 {
110 return static_cast<T*>(g_atomic_pointer_get(&p));
111 }
112
113 template <class T>
114 inline bool atomic_compare_and_exchange(T **p, T *oldv, T *newv)
115 {
116 return g_atomic_pointer_compare_and_exchange(reinterpret_cast<void* volatile*>(p), oldv, newv);
117 }
118
119
120 #include "gxamp.h"
121 #include "gx_resampler.h"
122 #include "gx_convolver.h"
123 #include "gx_tonestack.h"
124 #include "gx_amp.h"
125 #include "impulse_former.h"
126 #include "ampulse_former.h"
127
128 //////////////////////////// STEREO ////////////////////////////////////
129
130 class GxPluginStereo
131 {
132 private:
133 // internal stuff
134 float* output;
135 float* input;
136 float* output1;
137 float* input1;
138 uint32_t tubesel;
139 int32_t prio;
140 TonestackStereo ts;
141 GxAmpStereo amplifier;
142 gx_resample::BufferResampler resamp;
143 GxSimpleConvolver cabconv;
144 Impf impf;
145 gx_resample::BufferResampler resamp1;
146 GxSimpleConvolver ampconv;
147 Ampf ampf;
148 uint32_t bufsize;
149 LV2_Atom_Sequence* c_notice;
150 LV2_Atom_Sequence* n_notice;
151 float *clevel;
152 float clevel_;
153 float cab;
154 bool cab_changed()
155 {
156 return abs(cab - clevel_) > 0.1;
157 }
158 void update_cab()
159 {
160 cab = clevel_;
161 }
162 float *alevel;
163 float alevel_;
164 float pre;
165 bool pre_changed()
166 {
167 return abs(pre - alevel_) > 0.1;
168 }
169 void update_pre()
170 {
171 pre = alevel_;
172 }
173 float val;
174 bool val_changed()
175 {
176 return abs(val - (*alevel) -(*clevel)) > 0.1;
177 }
178 void update_val()
179 {
180 val = (alevel_ + clevel_);
181 }
182 bool doit;
183 volatile int32_t schedule_wait;
184
185
186 public:
187 // LV2 stuff
188 LV2_URID_Map* map;
189 LV2_Worker_Schedule* schedule;
190
191 void set_tubesel_stereo(const LV2_Descriptor* descriptor);
192 inline void run_dsp_stereo(uint32_t n_samples);
193 void connect_stereo(uint32_t port,void* data);
194 inline void init_dsp_stereo(uint32_t rate, uint32_t bufsize_);
195 inline void do_work_stereo();
196 inline void connect_all_stereo_ports(uint32_t port, void* data);
197
198 GxPluginStereo() :
199 output(NULL),
200 input(NULL),
201 output1(NULL),
202 input1(NULL),
203 tubesel(0),
204 prio(0),
205 ts(TonestackStereo()),
206 amplifier(GxAmpStereo()),
207 cabconv(GxSimpleConvolver(resamp)),
208 impf(Impf()),
209 ampconv(GxSimpleConvolver(resamp1)),
210 ampf(Ampf()),
211 bufsize(0),
212 clevel(NULL),
213 clevel_(0),
214 cab(0),
215 alevel(NULL),
216 alevel_(0),
217 pre(0),
218 val(0)
219 {
220 atomic_set(&schedule_wait,0);
221 };
222
223 ~GxPluginStereo()
224 {
225 cabconv.stop_process();
226 ampconv.stop_process();
227 };
228 };
229
230
231 #include "cab_data.cc"
232 #include "gx_tonestack.cc"
233 #include "gx_amp.cc"
234 #include "impulse_former.cc"
235 #include "ampulse_former.cc"
236
237
238 // plugin stuff
239
240 void GxPluginStereo::do_work_stereo()
241 {
242 if (cab_changed())
243 {
244 if (cabconv.is_runnable())
245 {
246 cabconv.set_not_runnable();
247 cabconv.stop_process();
248 }
249 float cab_irdata_c[cabconv.cab_count];
250 impf.compute(cabconv.cab_count, cabconv.cab_data, cab_irdata_c, clevel_);
251 cabconv.cab_data_new = cab_irdata_c;
252 while (!cabconv.checkstate());
253 if (!cabconv.update_stereo(cabconv.cab_count, cabconv.cab_data_new, cabconv.cab_sr))
254 printf("cabconv.update fail.\n");
255 if(!cabconv.start(prio, SCHED_FIFO))
256 printf("cabinet convolver disabled\n");
257 update_cab();
258 //printf("cabinet convolver updated\n");
259 }
260 if (pre_changed())
261 {
262 if (ampconv.is_runnable())
263 {
264 ampconv.set_not_runnable();
265 ampconv.stop_process();
266 }
267 float pre_irdata_c[contrast_ir_desc.ir_count];
268 ampf.compute(contrast_ir_desc.ir_count,contrast_ir_desc.ir_data, pre_irdata_c, alevel_);
269 while (!ampconv.checkstate());
270 if (!ampconv.update_stereo(contrast_ir_desc.ir_count, pre_irdata_c, contrast_ir_desc.ir_sr))
271 printf("ampconv.update fail.\n");
272 if(!ampconv.start(prio, SCHED_FIFO))
273 printf("presence convolver disabled\n");
274 update_pre();
275 //printf("presence convolver updated\n");
276 }
277 update_val();
278 atomic_set(&schedule_wait,0);
279 }
280
281 void GxPluginStereo::set_tubesel_stereo(const LV2_Descriptor* descriptor)
282 {
283 if (strcmp("http://guitarix.sourceforge.net/plugins/gxamp#12ax7_stereo",descriptor->URI)== 0)
284 {
285 printf("12ax7_stereo\n");
286 _as_ptr = &GxAmpStereo::run_12ax7;
287 _ts_ptr = &TonestackStereo::run;
288 cabconv.cab_count = cab_data_4x12.ir_count;
289 cabconv.cab_sr = cab_data_4x12.ir_sr;
290 cabconv.cab_data = cab_data_4x12.ir_data;
291 tubesel = 1;
292 }
293 else if (strcmp("http://guitarix.sourceforge.net/plugins/gxamp#12AT7_stereo",descriptor->URI)== 0)
294 {
295 printf("12AT7_stereo\n");
296 _as_ptr = &GxAmpStereo::run_12AT7;
297 _ts_ptr = &TonestackStereo::run_soldano;
298 cabconv.cab_count = cab_data_AC30.ir_count;
299 cabconv.cab_sr = cab_data_AC30.ir_sr;
300 cabconv.cab_data = cab_data_AC30.ir_data;
301 tubesel = 2;
302 }
303 else if (strcmp("http://guitarix.sourceforge.net/plugins/gxamp#6C16_stereo",descriptor->URI)== 0)
304 {
305 printf("6C16_stereo\n");
306 _as_ptr = &GxAmpStereo::run_6C16;
307 _ts_ptr = &TonestackStereo::run_bassman;
308 cabconv.cab_count = cab_data_1x15.ir_count;
309 cabconv.cab_sr = cab_data_1x15.ir_sr;
310 cabconv.cab_data = cab_data_1x15.ir_data;
311 tubesel = 3;
312 }
313 else if (strcmp("http://guitarix.sourceforge.net/plugins/gxamp#6V6_stereo",descriptor->URI)== 0)
314 {
315 printf("6V6_stereo\n");
316 _as_ptr = &GxAmpStereo::run_6V6;
317 _ts_ptr = &TonestackStereo::run_soldano;
318 cabconv.cab_count = cab_data_mesa.ir_count;
319 cabconv.cab_sr = cab_data_mesa.ir_sr;
320 cabconv.cab_data = cab_data_mesa.ir_data;
321 tubesel = 4;
322 }
323 else if (strcmp("http://guitarix.sourceforge.net/plugins/gxamp#6DJ8_stereo",descriptor->URI)== 0)
324 {
325 printf("6DJ8_stereo\n");
326 _as_ptr = &GxAmpStereo::run_6DJ8;
327 _ts_ptr = &TonestackStereo::run_ampeg;
328 cabconv.cab_count = cab_data_HighGain.ir_count;
329 cabconv.cab_sr = cab_data_HighGain.ir_sr;
330 cabconv.cab_data = cab_data_HighGain.ir_data;
331 tubesel = 5;
332 }
333 else
334 {
335 _as_ptr = &GxAmpStereo::run_12ax7;
336 _ts_ptr = &TonestackStereo::run;
337 cabconv.cab_count = cab_data_4x12.ir_count;
338 cabconv.cab_sr = cab_data_4x12.ir_sr;
339 cabconv.cab_data = cab_data_4x12.ir_data;
340 tubesel = 0;
341 }
342 }
343
344 void GxPluginStereo::init_dsp_stereo(uint32_t rate, uint32_t bufsize_)
345 {
346 AVOIDDENORMALS();
347
348 bufsize = bufsize_;
349 amplifier.init_static(rate, &amplifier);
350 ts.init_static(rate, &ts);
351 //impf.init_static(rate, &impf);
352 //ampf.init_static(rate, &ampf);
353
354 if (bufsize )
355 {
356 #ifdef _POSIX_PRIORITY_SCHEDULING
357 int priomax = sched_get_priority_max(SCHED_FIFO);
358 if ((priomax/2) > 0) prio = priomax/2;
359 #endif
360 cabconv.set_samplerate(rate);
361 cabconv.set_buffersize(bufsize);
362 cabconv.configure_stereo(cabconv.cab_count, cabconv.cab_data, cabconv.cab_sr);
363 if(!cabconv.start(prio, SCHED_FIFO))
364 printf("cabinet convolver disabled\n");
365
366 ampconv.set_samplerate(rate);
367 ampconv.set_buffersize(bufsize);
368 ampconv.configure_stereo(contrast_ir_desc.ir_count, contrast_ir_desc.ir_data, contrast_ir_desc.ir_sr);
369 if(!ampconv.start(prio, SCHED_FIFO))
370 printf("presence convolver disabled\n");
371 }
372 else
373 {
374 printf("convolver disabled\n");
375 }
376 }
377
378
379 void GxPluginStereo::connect_stereo(uint32_t port,void* data)
380 {
381 switch ((PortIndex)port)
382 {
383 case AMP_MASTERGAIN:
384 break;
385 case AMP_PREGAIN:
386 break;
387 case AMP_WET_DRY:
388 break;
389 case AMP_DRIVE:
390 break;
391 case MID:
392 break;
393 case BASS:
394 break;
395 case TREBLE:
396 break;
397 case CLevel:
398 clevel = static_cast<float*>(data);
399 break;
400 case ALevel:
401 alevel = static_cast<float*>(data);
402 break;
403 case AMP_CONTROL:
404 c_notice = (LV2_Atom_Sequence*)data;
405 break;
406 case AMP_NOTIFY:
407 n_notice = (LV2_Atom_Sequence*)data;
408 break;
409 case AMP_OUTPUT:
410 output = static_cast<float*>(data);
411 break;
412 case AMP_INPUT:
413 input = static_cast<float*>(data);
414 break;
415 case AMP_OUTPUT1:
416 output1 = static_cast<float*>(data);
417 break;
418 case AMP_INPUT1:
419 input1 = static_cast<float*>(data);
420 break;
421 }
422 }
423
424 void GxPluginStereo::run_dsp_stereo(uint32_t n_samples)
425 {
426 // run dsp
427 amplifier.run_static(n_samples, input, input1, output, output1, &amplifier);
428 ampconv.run_static_stereo(n_samples, &ampconv, output, output1);
429 ts.run_static(n_samples, &ts, output, output1);
430 cabconv.run_static_stereo(n_samples, &cabconv, output, output1);
431 // work ?
432 if (!atomic_get(schedule_wait) && val_changed())
433 {
434 clevel_ = (*clevel);
435 alevel_ = (*alevel);
436 atomic_set(&schedule_wait,1);
437 schedule->schedule_work(schedule->handle, sizeof(bool), &doit);
438 }
439 }
440
441 void GxPluginStereo::connect_all_stereo_ports(uint32_t port, void* data)
442 {
443 connect_stereo(port,data);
444 amplifier.connect_static(port,data, &amplifier);
445 ts.connect_static(port,data, &ts);
446 //impf.connect_static(port,data, &impf);
447 //ampf.connect_static(port,data, &ampf);
448 }
449
450 ///////////////////////////// LV2 defines //////////////////////////////
451
452 static LV2_Worker_Status
453 work(LV2_Handle instance,
454 LV2_Worker_Respond_Function respond,
455 LV2_Worker_Respond_Handle handle,
456 uint32_t size,
457 const void* data)
458 {
459 GxPluginStereo* self = (GxPluginStereo*)instance;
460 self->do_work_stereo();
461 return LV2_WORKER_SUCCESS;
462 }
463
464 static LV2_Worker_Status
465 work_response(LV2_Handle instance,
466 uint32_t size,
467 const void* data)
468 {
469 printf("worker respose.\n");
470 return LV2_WORKER_SUCCESS;
471 }
472
473
474 static LV2_Handle
475 instantiate(const LV2_Descriptor* descriptor,
476 double rate,
477 const char* bundle_path,
478 const LV2_Feature* const* features)
479 {
480 GxPluginStereo *self = new GxPluginStereo();
481
482 if (!self)
483 {
484 return NULL;
485 }
486
487 const LV2_Options_Option* options = NULL;
488 uint32_t bufsize = 0;
489 //printf(" %s\n",descriptor->URI);
490
491 for (int32_t i = 0; features[i]; ++i)
492 {
493 if (!strcmp(features[i]->URI, LV2_URID__map))
494 {
495 self->map = (LV2_URID_Map*)features[i]->data;
496 }
497 else if (!strcmp(features[i]->URI, LV2_WORKER__schedule))
498 {
499 self->schedule = (LV2_Worker_Schedule*)features[i]->data;
500 }
501 else if (!strcmp(features[i]->URI, LV2_OPTIONS__options))
502 {
503 options = (const LV2_Options_Option*)features[i]->data;
504 }
505 }
506 if (!self->schedule)
507 {
508 fprintf(stderr, "Missing feature work:schedule.\n");
509 delete self;
510 return NULL;
511 }
512 if (!self->map)
513 {
514 fprintf(stderr, "Missing feature uri:map.\n");
515 }
516 else if (!options)
517 {
518 fprintf(stderr, "Missing feature options.\n");
519 }
520 else
521 {
522 LV2_URID bufsz_max = self->map->map(self->map->handle, LV2_BUF_SIZE__maxBlockLength);
523 LV2_URID atom_Int = self->map->map(self->map->handle, LV2_ATOM__Int);
524
525 for (const LV2_Options_Option* o = options; o->key; ++o)
526 {
527 if (o->context == LV2_OPTIONS_INSTANCE &&
528 o->key == bufsz_max &&
529 o->type == atom_Int)
530 {
531 bufsize = *(const int32_t*)o->value;
532 }
533 }
534
535 if (bufsize == 0)
536 {
537 fprintf(stderr, "No maximum buffer size given.\n");
538 }
539 printf("using block size: %d\n", bufsize);
540 }
541 self->set_tubesel_stereo( descriptor);
542 self->init_dsp_stereo((uint32_t)rate, bufsize);
543
544 return (LV2_Handle)self;
545 }
546
547 static void
548 connect_port(LV2_Handle instance,
549 uint32_t port,
550 void* data)
551 {
552 GxPluginStereo* self = (GxPluginStereo*)instance;
553 self->connect_all_stereo_ports(port, data);
554
555 }
556
557 static void
558 activate(LV2_Handle instance)
559 {
560
561 }
562
563 static void
564 run(LV2_Handle instance, uint32_t n_samples)
565 {
566 GxPluginStereo* self = (GxPluginStereo*)instance;
567 self->run_dsp_stereo(n_samples);
568 }
569
570 static void
571 deactivate(LV2_Handle instance)
572 {
573
574 }
575
576 static void
577 cleanup(LV2_Handle instance)
578 {
579 GxPluginStereo* self = (GxPluginStereo*)instance;
580 delete self;
581 }
582
583 //////////////////////////////////////////////////////////////////
584
585 const void*
586 extension_data(const char* uri)
587 {
588 static const LV2_Worker_Interface worker = { work, work_response, NULL };
589 if (!strcmp(uri, LV2_WORKER__interface))
590 {
591 return &worker;
592 }
593 return NULL;
594 }
595
596 static const LV2_Descriptor descriptor5 =
597 {
598 GXPLUGIN_URI "#12ax7_stereo",
599 instantiate,
600 connect_port,
601 activate,
602 run,
603 deactivate,
604 cleanup,
605 extension_data
606 };
607 static const LV2_Descriptor descriptor6 =
608 {
609 GXPLUGIN_URI "#12AT7_stereo",
610 instantiate,
611 connect_port,
612 activate,
613 run,
614 deactivate,
615 cleanup,
616 extension_data
617 };
618 static const LV2_Descriptor descriptor7 =
619 {
620 GXPLUGIN_URI "#6C16_stereo",
621 instantiate,
622 connect_port,
623 activate,
624 run,
625 deactivate,
626 cleanup,
627 extension_data
628 };
629 static const LV2_Descriptor descriptor8 =
630 {
631 GXPLUGIN_URI "#6V6_stereo",
632 instantiate,
633 connect_port,
634 activate,
635 run,
636 deactivate,
637 cleanup,
638 extension_data
639 };
640 static const LV2_Descriptor descriptor9 =
641 {
642 GXPLUGIN_URI "#6DJ8_stereo",
643 instantiate,
644 connect_port,
645 activate,
646 run,
647 deactivate,
648 cleanup,
649 extension_data
650 };
651
652 extern "C"
653 LV2_SYMBOL_EXPORT
654 const LV2_Descriptor*
655 lv2_descriptor(uint32_t index)
656 {
657 switch (index)
658 {
659 case 0:
660 return &descriptor5;
661 case 1:
662 return &descriptor6;
663 case 2:
664 return &descriptor7;
665 case 3:
666 return &descriptor8;
667 case 4:
668 return &descriptor9;
669 default:
670 return NULL;
671 }
672 }
0 #
1 # Copyright (C) 2012 Hermann Meyer, Andreas Degert, Pete Shorthose
2 #
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 2 of the License, or
6 # (at your option) any later version.
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License for more details.
12 #
13 # You should have received a copy of the GNU General Public License
14 # along with this program; if not, write to the Free Software
15 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 # --------------------------------------------------------------------------
17 #
18
19
20 @prefix doap: <http://usefulinc.com/ns/doap#> .
21 @prefix foaf: <http://xmlns.com/foaf/0.1/> .
22 @prefix lv2: <http://lv2plug.in/ns/lv2core#> .
23 @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
24 @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
25 @prefix bufsz: <http://lv2plug.in/ns/ext/buf-size#> .
26 @prefix atom: <http://lv2plug.in/ns/ext/atom#> .
27 @prefix urid: <http://lv2plug.in/ns/ext/urid#> .
28 @prefix opt: <http://lv2plug.in/ns/ext/options#> .
29 @prefix guiext: <http://lv2plug.in/ns/extensions/ui#>.
30 @prefix work: <http://lv2plug.in/ns/ext/worker#> .
31
32 <http://guitarix.sourceforge.net#me>
33 a foaf:Person ;
34 foaf:name "Hermann Meyer" ;
35 foaf:mbox <mailto:brummer@web.de> ;
36 rdfs:seeAlso <http://guitarix.sourceforge.net> .
37
38 <http://guitarix.sourceforge.net/plugins/gxamp>
39 a doap:Project ;
40 doap:maintainer <http://guitarix.sourceforge.net#me> ;
41 doap:name "GxAmplifier" .
42
43 <http://guitarix.sourceforge.net/plugins/gxamp#12ax7_stereo>
44 a lv2:Plugin ,
45 lv2:AmplifierPlugin ;
46 doap:maintainer <http://guitarix.sourceforge.net#me> ;
47 doap:name "GxAmplifier stereo";
48 doap:license <http://opensource.org/licenses/isc> ;
49 lv2:project <http://guitarix.sourceforge.net/plugins/gxamp> ;
50 lv2:optionalFeature lv2:hardRTCapable ;
51 lv2:requiredFeature urid:map ,
52 bufsz:boundedBlockLength ,
53 work:schedule ;
54 bufsz:minBlockLength 64 ;
55 bufsz:maxBlockLength 8192 ;
56 lv2:extensionData work:interface ;
57
58 guiext:ui <http://guitarix.sourceforge.net/plugins/gxamp#gui>;
59
60 lv2:port [
61 a lv2:InputPort ,
62 lv2:ControlPort ;
63 lv2:index 0 ;
64 lv2:symbol "fslider0_" ;
65 lv2:name "MasterGain";
66 lv2:default -15.0 ;
67 lv2:minimum -20.0 ;
68 lv2:maximum 20.0 ;
69 ] , [
70 a lv2:InputPort ,
71 lv2:ControlPort ;
72 lv2:index 1 ;
73 lv2:symbol "fslider1_" ;
74 lv2:name "PreGain";
75 lv2:default -15.0 ;
76 lv2:minimum -20.0 ;
77 lv2:maximum 20.0 ;
78 ] , [
79 a lv2:InputPort ,
80 lv2:ControlPort ;
81 lv2:index 2 ;
82 lv2:symbol "fslider2_" ;
83 lv2:name "Distortion";
84 lv2:default 20.0 ;
85 lv2:minimum 1.0 ;
86 lv2:maximum 100.0 ;
87 ] , [
88 a lv2:InputPort ,
89 lv2:ControlPort ;
90 lv2:index 3 ;
91 lv2:symbol "fslider3_" ;
92 lv2:name "Drive";
93 lv2:default 0.25 ;
94 lv2:minimum 0.01 ;
95 lv2:maximum 1.0 ;
96 ] ,[
97 a lv2:InputPort ,
98 lv2:ControlPort ;
99 lv2:index 4 ;
100 lv2:symbol "fslider0_" ;
101 lv2:name "Middle";
102 lv2:default 0.5 ;
103 lv2:minimum 0.0 ;
104 lv2:maximum 1.0 ;
105 ] , [
106 a lv2:InputPort ,
107 lv2:ControlPort ;
108 lv2:index 5 ;
109 lv2:symbol "fslider1_" ;
110 lv2:name "Bass";
111 lv2:default 0.5 ;
112 lv2:minimum 0.0 ;
113 lv2:maximum 1.0 ;
114 ] , [
115 a lv2:InputPort ,
116 lv2:ControlPort ;
117 lv2:index 6 ;
118 lv2:symbol "fslider2_" ;
119 lv2:name "Treble";
120 lv2:default 0.5 ;
121 lv2:minimum 0.0 ;
122 lv2:maximum 1.0 ;
123 ] , [
124 a lv2:InputPort ,
125 lv2:ControlPort ;
126 lv2:index 7 ;
127 lv2:symbol "fslider0_" ;
128 lv2:name "Cabinet";
129 lv2:default 10.0 ;
130 lv2:minimum 1.0 ;
131 lv2:maximum 20.0 ;
132 ] , [
133 a lv2:InputPort ,
134 lv2:ControlPort ;
135 lv2:index 8 ;
136 lv2:symbol "fslider0_" ;
137 lv2:name "Presence";
138 lv2:default 10.0 ;
139 lv2:minimum 1.0 ;
140 lv2:maximum 20.0 ;
141 ] , [
142 a lv2:InputPort ,
143 atom:AtomPort ;
144 atom:bufferType atom:Sequence ;
145 atom:supports <http://lv2plug.in/ns/ext/patch#Message> ;
146 lv2:index 9 ;
147 lv2:symbol "control" ;
148 lv2:name "Control"
149 ] , [
150 a lv2:OutputPort ,
151 atom:AtomPort ;
152 atom:bufferType atom:Sequence ;
153 atom:supports <http://lv2plug.in/ns/ext/patch#Message> ;
154 lv2:index 10 ;
155 lv2:symbol "notify" ;
156 lv2:name "Notify"
157 ] , [
158 a lv2:AudioPort ,
159 lv2:OutputPort ;
160 lv2:index 11 ;
161 lv2:symbol "out" ;
162 lv2:name "Out"
163 ] , [
164 a lv2:AudioPort ,
165 lv2:InputPort ;
166 lv2:index 12 ;
167 lv2:symbol "in" ;
168 lv2:name "in"
169 ] , [
170 a lv2:AudioPort ,
171 lv2:OutputPort ;
172 lv2:index 13 ;
173 lv2:symbol "out1" ;
174 lv2:name "Out1"
175 ] , [
176 a lv2:AudioPort ,
177 lv2:InputPort ;
178 lv2:index 14 ;
179 lv2:symbol "in1" ;
180 lv2:name "in1"
181 ] .
182
183 <http://guitarix.sourceforge.net/plugins/gxamp#12AT7_stereo>
184 a lv2:Plugin ,
185 lv2:AmplifierPlugin ;
186 doap:maintainer <http://guitarix.sourceforge.net#me> ;
187 doap:name "GxAmplifier-II stereo";
188 doap:license <http://opensource.org/licenses/isc> ;
189 lv2:project <http://guitarix.sourceforge.net/plugins/gxamp> ;
190 lv2:optionalFeature lv2:hardRTCapable ;
191 lv2:requiredFeature urid:map ,
192 bufsz:boundedBlockLength ,
193 work:schedule ;
194 bufsz:minBlockLength 64 ;
195 bufsz:maxBlockLength 8192 ;
196 lv2:extensionData work:interface ;
197
198 guiext:ui <http://guitarix.sourceforge.net/plugins/gxamp#gui>;
199
200 lv2:port [
201 a lv2:InputPort ,
202 lv2:ControlPort ;
203 lv2:index 0 ;
204 lv2:symbol "fslider0_" ;
205 lv2:name "MasterGain";
206 lv2:default -15.0 ;
207 lv2:minimum -20.0 ;
208 lv2:maximum 20.0 ;
209 ] , [
210 a lv2:InputPort ,
211 lv2:ControlPort ;
212 lv2:index 1 ;
213 lv2:symbol "fslider1_" ;
214 lv2:name "PreGain";
215 lv2:default -15.0 ;
216 lv2:minimum -20.0 ;
217 lv2:maximum 20.0 ;
218 ] , [
219 a lv2:InputPort ,
220 lv2:ControlPort ;
221 lv2:index 2 ;
222 lv2:symbol "fslider2_" ;
223 lv2:name "Distortion";
224 lv2:default 20.0 ;
225 lv2:minimum 1.0 ;
226 lv2:maximum 100.0 ;
227 ] , [
228 a lv2:InputPort ,
229 lv2:ControlPort ;
230 lv2:index 3 ;
231 lv2:symbol "fslider3_" ;
232 lv2:name "Drive";
233 lv2:default 0.25 ;
234 lv2:minimum 0.01 ;
235 lv2:maximum 1.0 ;
236 ] ,[
237 a lv2:InputPort ,
238 lv2:ControlPort ;
239 lv2:index 4 ;
240 lv2:symbol "fslider0_" ;
241 lv2:name "Middle";
242 lv2:default 0.5 ;
243 lv2:minimum 0.0 ;
244 lv2:maximum 1.0 ;
245 ] , [
246 a lv2:InputPort ,
247 lv2:ControlPort ;
248 lv2:index 5 ;
249 lv2:symbol "fslider1_" ;
250 lv2:name "Bass";
251 lv2:default 0.5 ;
252 lv2:minimum 0.0 ;
253 lv2:maximum 1.0 ;
254 ] , [
255 a lv2:InputPort ,
256 lv2:ControlPort ;
257 lv2:index 6 ;
258 lv2:symbol "fslider2_" ;
259 lv2:name "Treble";
260 lv2:default 0.5 ;
261 lv2:minimum 0.0 ;
262 lv2:maximum 1.0 ;
263 ] , [
264 a lv2:InputPort ,
265 lv2:ControlPort ;
266 lv2:index 7 ;
267 lv2:symbol "fslider0_" ;
268 lv2:name "Cabinet";
269 lv2:default 10.0 ;
270 lv2:minimum 1.0 ;
271 lv2:maximum 20.0 ;
272 ] , [
273 a lv2:InputPort ,
274 lv2:ControlPort ;
275 lv2:index 8 ;
276 lv2:symbol "fslider0_" ;
277 lv2:name "Presence";
278 lv2:default 10.0 ;
279 lv2:minimum 1.0 ;
280 lv2:maximum 20.0 ;
281 ] , [
282 a lv2:InputPort ,
283 atom:AtomPort ;
284 atom:bufferType atom:Sequence ;
285 atom:supports <http://lv2plug.in/ns/ext/patch#Message> ;
286 lv2:index 9 ;
287 lv2:symbol "control" ;
288 lv2:name "Control"
289 ] , [
290 a lv2:OutputPort ,
291 atom:AtomPort ;
292 atom:bufferType atom:Sequence ;
293 atom:supports <http://lv2plug.in/ns/ext/patch#Message> ;
294 lv2:index 10 ;
295 lv2:symbol "notify" ;
296 lv2:name "Notify"
297 ] , [
298 a lv2:AudioPort ,
299 lv2:OutputPort ;
300 lv2:index 11 ;
301 lv2:symbol "out" ;
302 lv2:name "Out"
303 ] , [
304 a lv2:AudioPort ,
305 lv2:InputPort ;
306 lv2:index 12 ;
307 lv2:symbol "in" ;
308 lv2:name "in"
309 ] , [
310 a lv2:AudioPort ,
311 lv2:OutputPort ;
312 lv2:index 13 ;
313 lv2:symbol "out1" ;
314 lv2:name "Out1"
315 ] , [
316 a lv2:AudioPort ,
317 lv2:InputPort ;
318 lv2:index 14 ;
319 lv2:symbol "in1" ;
320 lv2:name "in1"
321 ] .
322
323 <http://guitarix.sourceforge.net/plugins/gxamp#6C16_stereo>
324 a lv2:Plugin ,
325 lv2:AmplifierPlugin ;
326 doap:maintainer <http://guitarix.sourceforge.net#me> ;
327 doap:name "GxAmplifier-III stereo";
328 doap:license <http://opensource.org/licenses/isc> ;
329 lv2:project <http://guitarix.sourceforge.net/plugins/gxamp> ;
330 lv2:optionalFeature lv2:hardRTCapable ;
331 lv2:requiredFeature urid:map ,
332 bufsz:boundedBlockLength ,
333 work:schedule ;
334 bufsz:minBlockLength 64 ;
335 bufsz:maxBlockLength 8192 ;
336 lv2:extensionData work:interface ;
337
338 guiext:ui <http://guitarix.sourceforge.net/plugins/gxamp#gui>;
339
340 lv2:port [
341 a lv2:InputPort ,
342 lv2:ControlPort ;
343 lv2:index 0 ;
344 lv2:symbol "fslider0_" ;
345 lv2:name "MasterGain";
346 lv2:default -15.0 ;
347 lv2:minimum -20.0 ;
348 lv2:maximum 20.0 ;
349 ] , [
350 a lv2:InputPort ,
351 lv2:ControlPort ;
352 lv2:index 1 ;
353 lv2:symbol "fslider1_" ;
354 lv2:name "PreGain";
355 lv2:default -15.0 ;
356 lv2:minimum -20.0 ;
357 lv2:maximum 20.0 ;
358 ] , [
359 a lv2:InputPort ,
360 lv2:ControlPort ;
361 lv2:index 2 ;
362 lv2:symbol "fslider2_" ;
363 lv2:name "Distortion";
364 lv2:default 20.0 ;
365 lv2:minimum 1.0 ;
366 lv2:maximum 100.0 ;
367 ] , [
368 a lv2:InputPort ,
369 lv2:ControlPort ;
370 lv2:index 3 ;
371 lv2:symbol "fslider3_" ;
372 lv2:name "Drive";
373 lv2:default 0.25 ;
374 lv2:minimum 0.01 ;
375 lv2:maximum 1.0 ;
376 ] ,[
377 a lv2:InputPort ,
378 lv2:ControlPort ;
379 lv2:index 4 ;
380 lv2:symbol "fslider0_" ;
381 lv2:name "Middle";
382 lv2:default 0.5 ;
383 lv2:minimum 0.0 ;
384 lv2:maximum 1.0 ;
385 ] , [
386 a lv2:InputPort ,
387 lv2:ControlPort ;
388 lv2:index 5 ;
389 lv2:symbol "fslider1_" ;
390 lv2:name "Bass";
391 lv2:default 0.5 ;
392 lv2:minimum 0.0 ;
393 lv2:maximum 1.0 ;
394 ] , [
395 a lv2:InputPort ,
396 lv2:ControlPort ;
397 lv2:index 6 ;
398 lv2:symbol "fslider2_" ;
399 lv2:name "Treble";
400 lv2:default 0.5 ;
401 lv2:minimum 0.0 ;
402 lv2:maximum 1.0 ;
403 ] , [
404 a lv2:InputPort ,
405 lv2:ControlPort ;
406 lv2:index 7 ;
407 lv2:symbol "fslider0_" ;
408 lv2:name "Cabinet";
409 lv2:default 10.0 ;
410 lv2:minimum 1.0 ;
411 lv2:maximum 20.0 ;
412 ] , [
413 a lv2:InputPort ,
414 lv2:ControlPort ;
415 lv2:index 8 ;
416 lv2:symbol "fslider0_" ;
417 lv2:name "Presence";
418 lv2:default 10.0 ;
419 lv2:minimum 1.0 ;
420 lv2:maximum 20.0 ;
421 ] , [
422 a lv2:InputPort ,
423 atom:AtomPort ;
424 atom:bufferType atom:Sequence ;
425 atom:supports <http://lv2plug.in/ns/ext/patch#Message> ;
426 lv2:index 9 ;
427 lv2:symbol "control" ;
428 lv2:name "Control"
429 ] , [
430 a lv2:OutputPort ,
431 atom:AtomPort ;
432 atom:bufferType atom:Sequence ;
433 atom:supports <http://lv2plug.in/ns/ext/patch#Message> ;
434 lv2:index 10 ;
435 lv2:symbol "notify" ;
436 lv2:name "Notify"
437 ] , [
438 a lv2:AudioPort ,
439 lv2:OutputPort ;
440 lv2:index 11 ;
441 lv2:symbol "out" ;
442 lv2:name "Out"
443 ] , [
444 a lv2:AudioPort ,
445 lv2:InputPort ;
446 lv2:index 12 ;
447 lv2:symbol "in" ;
448 lv2:name "in"
449 ] , [
450 a lv2:AudioPort ,
451 lv2:OutputPort ;
452 lv2:index 13 ;
453 lv2:symbol "out1" ;
454 lv2:name "Out1"
455 ] , [
456 a lv2:AudioPort ,
457 lv2:InputPort ;
458 lv2:index 14 ;
459 lv2:symbol "in1" ;
460 lv2:name "in1"
461 ] .
462
463 <http://guitarix.sourceforge.net/plugins/gxamp#6V6_stereo>
464 a lv2:Plugin ,
465 lv2:AmplifierPlugin ;
466 doap:maintainer <http://guitarix.sourceforge.net#me> ;
467 doap:name "GxAmplifier-IV stereo";
468 doap:license <http://opensource.org/licenses/isc> ;
469 lv2:project <http://guitarix.sourceforge.net/plugins/gxamp> ;
470 lv2:optionalFeature lv2:hardRTCapable ;
471 lv2:requiredFeature urid:map ,
472 bufsz:boundedBlockLength ,
473 work:schedule ;
474 bufsz:minBlockLength 64 ;
475 bufsz:maxBlockLength 8192 ;
476 lv2:extensionData work:interface ;
477
478 guiext:ui <http://guitarix.sourceforge.net/plugins/gxamp#gui>;
479
480 lv2:port [
481 a lv2:InputPort ,
482 lv2:ControlPort ;
483 lv2:index 0 ;
484 lv2:symbol "fslider0_" ;
485 lv2:name "MasterGain";
486 lv2:default -15.0 ;
487 lv2:minimum -20.0 ;
488 lv2:maximum 20.0 ;
489 ] , [
490 a lv2:InputPort ,
491 lv2:ControlPort ;
492 lv2:index 1 ;
493 lv2:symbol "fslider1_" ;
494 lv2:name "PreGain";
495 lv2:default -15.0 ;
496 lv2:minimum -20.0 ;
497 lv2:maximum 20.0 ;
498 ] , [
499 a lv2:InputPort ,
500 lv2:ControlPort ;
501 lv2:index 2 ;
502 lv2:symbol "fslider2_" ;
503 lv2:name "Distortion";
504 lv2:default 20.0 ;
505 lv2:minimum 1.0 ;
506 lv2:maximum 100.0 ;
507 ] , [
508 a lv2:InputPort ,
509 lv2:ControlPort ;
510 lv2:index 3 ;
511 lv2:symbol "fslider3_" ;
512 lv2:name "Drive";
513 lv2:default 0.25 ;
514 lv2:minimum 0.01 ;
515 lv2:maximum 1.0 ;
516 ] ,[
517 a lv2:InputPort ,
518 lv2:ControlPort ;
519 lv2:index 4 ;
520 lv2:symbol "fslider0_" ;
521 lv2:name "Middle";
522 lv2:default 0.5 ;
523 lv2:minimum 0.0 ;
524 lv2:maximum 1.0 ;
525 ] , [
526 a lv2:InputPort ,
527 lv2:ControlPort ;
528 lv2:index 5 ;
529 lv2:symbol "fslider1_" ;
530 lv2:name "Bass";
531 lv2:default 0.5 ;
532 lv2:minimum 0.0 ;
533 lv2:maximum 1.0 ;
534 ] , [
535 a lv2:InputPort ,
536 lv2:ControlPort ;
537 lv2:index 6 ;
538 lv2:symbol "fslider2_" ;
539 lv2:name "Treble";
540 lv2:default 0.5 ;
541 lv2:minimum 0.0 ;
542 lv2:maximum 1.0 ;
543 ] , [
544 a lv2:InputPort ,
545 lv2:ControlPort ;
546 lv2:index 7 ;
547 lv2:symbol "fslider0_" ;
548 lv2:name "Cabinet";
549 lv2:default 10.0 ;
550 lv2:minimum 1.0 ;
551 lv2:maximum 20.0 ;
552 ] , [
553 a lv2:InputPort ,
554 lv2:ControlPort ;
555 lv2:index 8 ;
556 lv2:symbol "fslider0_" ;
557 lv2:name "Presence";
558 lv2:default 10.0 ;
559 lv2:minimum 1.0 ;
560 lv2:maximum 20.0 ;
561 ] , [
562 a lv2:InputPort ,
563 atom:AtomPort ;
564 atom:bufferType atom:Sequence ;
565 atom:supports <http://lv2plug.in/ns/ext/patch#Message> ;
566 lv2:index 9 ;
567 lv2:symbol "control" ;
568 lv2:name "Control"
569 ] , [
570 a lv2:OutputPort ,
571 atom:AtomPort ;
572 atom:bufferType atom:Sequence ;
573 atom:supports <http://lv2plug.in/ns/ext/patch#Message> ;
574 lv2:index 10 ;
575 lv2:symbol "notify" ;
576 lv2:name "Notify"
577 ] , [
578 a lv2:AudioPort ,
579 lv2:OutputPort ;
580 lv2:index 11 ;
581 lv2:symbol "out" ;
582 lv2:name "Out"
583 ] , [
584 a lv2:AudioPort ,
585 lv2:InputPort ;
586 lv2:index 12 ;
587 lv2:symbol "in" ;
588 lv2:name "in"
589 ] , [
590 a lv2:AudioPort ,
591 lv2:OutputPort ;
592 lv2:index 13 ;
593 lv2:symbol "out1" ;
594 lv2:name "Out1"
595 ] , [
596 a lv2:AudioPort ,
597 lv2:InputPort ;
598 lv2:index 14 ;
599 lv2:symbol "in1" ;
600 lv2:name "in1"
601 ] .
602
603 <http://guitarix.sourceforge.net/plugins/gxamp#6DJ8_stereo>
604 a lv2:Plugin ,
605 lv2:AmplifierPlugin ;
606 doap:maintainer <http://guitarix.sourceforge.net#me> ;
607 doap:name "GxAmplifier-V stereo";
608 doap:license <http://opensource.org/licenses/isc> ;
609 lv2:project <http://guitarix.sourceforge.net/plugins/gxamp> ;
610 lv2:optionalFeature lv2:hardRTCapable ;
611 lv2:requiredFeature urid:map ,
612 bufsz:boundedBlockLength ,
613 work:schedule ;
614 bufsz:minBlockLength 64 ;
615 bufsz:maxBlockLength 8192 ;
616 lv2:extensionData work:interface ;
617
618 guiext:ui <http://guitarix.sourceforge.net/plugins/gxamp#gui>;
619
620 lv2:port [
621 a lv2:InputPort ,
622 lv2:ControlPort ;
623 lv2:index 0 ;
624 lv2:symbol "fslider0_" ;
625 lv2:name "MasterGain";
626 lv2:default -15.0 ;
627 lv2:minimum -20.0 ;
628 lv2:maximum 20.0 ;
629 ] , [
630 a lv2:InputPort ,
631 lv2:ControlPort ;
632 lv2:index 1 ;
633 lv2:symbol "fslider1_" ;
634 lv2:name "PreGain";
635 lv2:default -15.0 ;
636 lv2:minimum -20.0 ;
637 lv2:maximum 20.0 ;
638 ] , [
639 a lv2:InputPort ,
640 lv2:ControlPort ;
641 lv2:index 2 ;
642 lv2:symbol "fslider2_" ;
643 lv2:name "Distortion";
644 lv2:default 20.0 ;
645 lv2:minimum 1.0 ;
646 lv2:maximum 100.0 ;
647 ] , [
648 a lv2:InputPort ,
649 lv2:ControlPort ;
650 lv2:index 3 ;
651 lv2:symbol "fslider3_" ;
652 lv2:name "Drive";
653 lv2:default 0.25 ;
654 lv2:minimum 0.01 ;
655 lv2:maximum 1.0 ;
656 ] ,[
657 a lv2:InputPort ,
658 lv2:ControlPort ;
659 lv2:index 4 ;
660 lv2:symbol "fslider0_" ;
661 lv2:name "Middle";
662 lv2:default 0.5 ;
663 lv2:minimum 0.0 ;
664 lv2:maximum 1.0 ;
665 ] , [
666 a lv2:InputPort ,
667 lv2:ControlPort ;
668 lv2:index 5 ;
669 lv2:symbol "fslider1_" ;
670 lv2:name "Bass";
671 lv2:default 0.5 ;
672 lv2:minimum 0.0 ;
673 lv2:maximum 1.0 ;
674 ] , [
675 a lv2:InputPort ,
676 lv2:ControlPort ;
677 lv2:index 6 ;
678 lv2:symbol "fslider2_" ;
679 lv2:name "Treble";
680 lv2:default 0.5 ;
681 lv2:minimum 0.0 ;
682 lv2:maximum 1.0 ;
683 ] , [
684 a lv2:InputPort ,
685 lv2:ControlPort ;
686 lv2:index 7 ;
687 lv2:symbol "fslider0_" ;
688 lv2:name "Cabinet";
689 lv2:default 10.0 ;
690 lv2:minimum 1.0 ;
691 lv2:maximum 20.0 ;
692 ] , [
693 a lv2:InputPort ,
694 lv2:ControlPort ;
695 lv2:index 8 ;
696 lv2:symbol "fslider0_" ;
697 lv2:name "Presence";
698 lv2:default 10.0 ;
699 lv2:minimum 1.0 ;
700 lv2:maximum 20.0 ;
701 ] , [
702 a lv2:InputPort ,
703 atom:AtomPort ;
704 atom:bufferType atom:Sequence ;
705 atom:supports <http://lv2plug.in/ns/ext/patch#Message> ;
706 lv2:index 9 ;
707 lv2:symbol "control" ;
708 lv2:name "Control"
709 ] , [
710 a lv2:OutputPort ,
711 atom:AtomPort ;
712 atom:bufferType atom:Sequence ;
713 atom:supports <http://lv2plug.in/ns/ext/patch#Message> ;
714 lv2:index 10 ;
715 lv2:symbol "notify" ;
716 lv2:name "Notify"
717 ] , [
718 a lv2:AudioPort ,
719 lv2:OutputPort ;
720 lv2:index 11 ;
721 lv2:symbol "out" ;
722 lv2:name "Out"
723 ] , [
724 a lv2:AudioPort ,
725 lv2:InputPort ;
726 lv2:index 12 ;
727 lv2:symbol "in" ;
728 lv2:name "in"
729 ] , [
730 a lv2:AudioPort ,
731 lv2:OutputPort ;
732 lv2:index 13 ;
733 lv2:symbol "out1" ;
734 lv2:name "Out1"
735 ] , [
736 a lv2:AudioPort ,
737 lv2:InputPort ;
738 lv2:index 14 ;
739 lv2:symbol "in1" ;
740 lv2:name "in1"
741 ] .
742
743 <http://guitarix.sourceforge.net/plugins/gxamp#gui>
744 a guiext:GtkUI;
745 guiext:binary <gxamp_gui_stereo.so>;
746 guiext:requiredFeature guiext:makeResident;
747 lv2:extensionData work:interface ;
748 guiext:portNotification [
749 guiext:plugin <http://guitarix.sourceforge.net/plugins/gxamp#12ax7>;
750 lv2:symbol "notify" ;
751 guiext:notifyType atom:Blank
752 ] , [
753 guiext:plugin <http://guitarix.sourceforge.net/plugins/gxamp#12AT7>;
754 lv2:symbol "notify" ;
755 guiext:notifyType atom:Blank
756 ] , [
757 guiext:plugin <http://guitarix.sourceforge.net/plugins/gxamp#6C16>;
758 lv2:symbol "notify" ;
759 guiext:notifyType atom:Blank
760 ] , [
761 guiext:plugin <http://guitarix.sourceforge.net/plugins/gxamp#6V6>;
762 lv2:symbol "notify" ;
763 guiext:notifyType atom:Blank
764 ] .
0 #
1 # Copyright (C) 2012 Hermann Meyer, Andreas Degert, Pete Shorthose
2 #
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 2 of the License, or
6 # (at your option) any later version.
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License for more details.
12 #
13 # You should have received a copy of the GNU General Public License
14 # along with this program; if not, write to the Free Software
15 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 # --------------------------------------------------------------------------
17 #
18
19 @prefix lv2: <http://lv2plug.in/ns/lv2core#> .
20 @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
21
22 <http://guitarix.sourceforge.net/plugins/gxamp#12ax7_stereo>
23 a lv2:Plugin ;
24 lv2:binary <gxamp_stereo@LIB_EXT@> ;
25 rdfs:seeAlso <gxamp_stereo.ttl> .
26
27 <http://guitarix.sourceforge.net/plugins/gxamp#12AT7_stereo>
28 a lv2:Plugin ;
29 lv2:binary <gxamp_stereo@LIB_EXT@> ;
30 rdfs:seeAlso <gxamp_stereo.ttl> .
31
32 <http://guitarix.sourceforge.net/plugins/gxamp#6C16_stereo>
33 a lv2:Plugin ;
34 lv2:binary <gxamp_stereo@LIB_EXT@> ;
35 rdfs:seeAlso <gxamp_stereo.ttl> .
36
37 <http://guitarix.sourceforge.net/plugins/gxamp#6V6_stereo>
38 a lv2:Plugin ;
39 lv2:binary <gxamp_stereo@LIB_EXT@> ;
40 rdfs:seeAlso <gxamp_stereo.ttl> .
41
42 <http://guitarix.sourceforge.net/plugins/gxamp#6DJ8_stereo>
43 a lv2:Plugin ;
44 lv2:binary <gxamp_stereo@LIB_EXT@> ;
45 rdfs:seeAlso <gxamp_stereo.ttl> .
46
0 #!/usr/bin/env python
1 # encoding: utf-8
2
3 import sys, os, TaskGen, ctypes
4
5 def configure(conf):
6 pass
7
8 def build(bld):
9 bundle2 = 'gxamp_stereo.lv2'
10
11 src2 = ['gxamp_stereo.cpp',
12 '../DSP/gx_resampler.cc',
13 '../DSP/gx_convolver.cc'
14 ]
15 incl2 = ['../../','./','../', '../DSP']
16 lib2 = []
17 if sys.platform.startswith("linux"):
18 lib2.append('dl')
19 uselib2 = ['LV2CORE','GLIBMM']
20 if bld.env['ZITA_CONVOLVER']:
21 uselib2.append('ZITA_CONVOLVER')
22 else:
23 src2.append('../../../zita-convolver/zita-convolver.cc')
24 incl2.append('../../../zita-convolver');
25 uselib2.append('FFTW3')
26 if bld.env['ZITA_RESAMPLER']:
27 uselib2.append('ZITA_RESAMPLER')
28 else:
29 src2.append('../../../zita-resampler-1.1.0/resampler.cc')
30 src2.append('../../../zita-resampler-1.1.0/resampler-table.cc')
31 incl2.append('../../../zita-resampler-1.1.0')
32 cxxflag1 =[]
33 if not bld.env['OPT']:
34 cxxflag2 = [ "-msse2", "-mfpmath=sse"]
35 lv2_plugin_stereo = bld(
36 features='cxx cshlib ',
37 includes = incl2,
38 lib = lib2,
39 uselib = uselib2,
40 obj_ext = '_3.o',
41 cxxflags = cxxflag2,
42 defines = ["LV2_SO"],
43 target = 'gxamp_stereo',
44 source = src2,
45 install_path = '${LV2DIR}/%s' % bundle2,
46 chmod = 0o755,
47 )
48 lv2_plugin_stereo.env['shlib_PATTERN'] = '%s.so'
49
50 uselib_local3 = []
51 libpath3 = []
52 lib3 = []
53 incl3 = ['../../../../libgxwmm','../../../../libgxw','../']
54 if sys.platform.startswith("linux"):
55 lib3.append('dl')
56 if bld.env["GX_LIB_SHARED"]:
57 lib3 += ['gxwmm','gxw']
58 libpath3 += [bld.path.find_dir("../../../../libgxw/gxw").bldpath(bld.env),
59 bld.path.find_dir("../../../../libgxwmm/gxwmm").bldpath(bld.env)]
60 else:
61 uselib_local3 += ['gxwmm','gxw']
62
63 lv2_plugin_gui_stereo = bld(
64 features='cxx cshlib ',
65 includes = incl3,
66 lib = lib3,
67 uselib = 'LV2CORE GTKMM',
68 libpath = libpath3,
69 obj_ext = '_3.o',
70 uselib_local = uselib_local3,
71 linkflags = '-Wl,-z,nodelete',
72 defines = ["LV2_GUI"],
73 target = 'gxamp_gui_stereo',
74 source = '../widget.cpp ../gxamp_gui.cpp',
75 install_path = '${LV2DIR}/%s' % bundle2,
76 chmod = 0o755,
77 )
78 lv2_plugin_gui_stereo.env['shlib_PATTERN'] = '%s.so'
79
80
81 install_path = '${LV2DIR}/%s' % bundle2,
82 bld.install_files('${LV2DIR}/gxamp_stereo.lv2', 'manifest.ttl')
83 bld.install_files('${LV2DIR}/gxamp_stereo.lv2', 'gxamp_stereo.ttl')
84
0 /*
1 * Copyright (C) 2012 Hermann Meyer, Andreas Degert, Pete Shorthose
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 * --------------------------------------------------------------------------
17 */
18
19 #include <cstdlib>
20 #include <cmath>
21 #include <iostream>
22 #include <cstring>
23 #include <glibmm.h>
24 #include <unistd.h>
25
26 #ifdef __SSE__
27 /* On Intel set FZ (Flush to Zero) and DAZ (Denormals Are Zero)
28 flags to avoid costly denormals */
29 #ifdef __SSE3__
30 #include <pmmintrin.h>
31 inline void AVOIDDENORMALS()
32 {
33 _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON);
34 _MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_ON);
35 }
36 #else
37 #include <xmmintrin.h>
38 inline void AVOIDDENORMALS()
39 {
40 _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON);
41 }
42 #endif //__SSE3__
43
44 #else
45 inline void AVOIDDENORMALS() {}
46 #endif //__SSE__
47
48 // faust support
49 #define FAUSTFLOAT float
50 #ifndef N_
51 #define N_(String) (String)
52 #endif
53 #define max(x, y) (((x) > (y)) ? (x) : (y))
54 #define min(x, y) (((x) < (y)) ? (x) : (y))
55 template <int32_t N> inline float faustpower(float x)
56 {
57 return powf(x, N);
58 }
59 template <int32_t N> inline double faustpower(double x)
60 {
61 return pow(x, N);
62 }
63 template <int32_t N> inline int32_t faustpower(int32_t x)
64 {
65 return faustpower<N/2>(x) * faustpower<N-N/2>(x);
66 }
67 template <> inline int32_t faustpower<0>(int32_t x)
68 {
69 return 1;
70 }
71 template <> inline int32_t faustpower<1>(int32_t x)
72 {
73 return x;
74 }
75
76 /****************************************************************
77 ** "atomic" value access
78 */
79
80 inline void atomic_set(volatile int32_t* p, int32_t v)
81 {
82 g_atomic_int_set(p, v);
83 }
84
85 inline int32_t atomic_get(volatile int32_t& p)
86 {
87 return g_atomic_int_get(&p);
88 }
89
90 inline bool atomic_compare_and_exchange(volatile int32_t *p, int32_t oldv, int32_t newv)
91 {
92 return g_atomic_int_compare_and_exchange(p, oldv, newv);
93 }
94
95 template <class T>
96 inline void atomic_set(T **p, T *v)
97 {
98 g_atomic_pointer_set(p, v);
99 }
100
101 template <class T>
102 inline void atomic_set_0(T **p)
103 {
104 g_atomic_pointer_set(p, 0);
105 }
106
107 template <class T>
108 inline T *atomic_get(T*& p)
109 {
110 return static_cast<T*>(g_atomic_pointer_get(&p));
111 }
112
113 template <class T>
114 inline bool atomic_compare_and_exchange(T **p, T *oldv, T *newv)
115 {
116 return g_atomic_pointer_compare_and_exchange(reinterpret_cast<void* volatile*>(p), oldv, newv);
117 }
118
119
120 #include "gxamp.h"
121 #include "gx_resampler.h"
122 #include "gx_convolver.h"
123 #include "gx_tonestack.h"
124 #include "gx_amp.h"
125 #include "impulse_former.h"
126 #include "ampulse_former.h"
127
128 ////////////////////////////// MONO ////////////////////////////////////
129
130 class GxPluginMono
131 {
132 private:
133 // internal stuff
134 float* output;
135 float* input;
136 uint32_t tubesel;
137 int32_t prio;
138 TonestackMono ts;
139 GxAmpMono amplifier;
140 gx_resample::BufferResampler resamp;
141 GxSimpleConvolver cabconv;
142 Impf impf;
143 gx_resample::BufferResampler resamp1;
144 GxSimpleConvolver ampconv;
145 Ampf ampf;
146 uint32_t bufsize;
147 LV2_Atom_Sequence* c_notice;
148 LV2_Atom_Sequence* n_notice;
149 float *clevel;
150 float clevel_;
151 float cab;
152 bool cab_changed()
153 {
154 return abs(cab - clevel_) > 0.1;
155 }
156 void update_cab()
157 {
158 cab = (clevel_);
159 }
160 float *alevel;
161 float alevel_;
162 float pre;
163 bool pre_changed()
164 {
165 return abs(pre - alevel_) > 0.1;
166 }
167 void update_pre()
168 {
169 pre = (alevel_);
170 }
171 float val;
172 bool val_changed()
173 {
174 return abs(val - (*alevel) -(*clevel)) > 0.1;
175 }
176 void update_val()
177 {
178 val = (alevel_) + (clevel_);
179 }
180 bool doit;
181 volatile int32_t schedule_wait;
182
183 public:
184 // LV2 stuff
185 LV2_URID_Map* map;
186 LV2_Worker_Schedule* schedule;
187
188 void set_tubesel_mono(const LV2_Descriptor* descriptor);
189 inline void run_dsp_mono(uint32_t n_samples);
190 void connect_mono(uint32_t port,void* data);
191 inline void init_dsp_mono(uint32_t rate, uint32_t bufsize_);
192 inline void do_work_mono();
193 inline void connect_all_mono_ports(uint32_t port, void* data);
194 // constructor
195 GxPluginMono() :
196 output(NULL),
197 input(NULL),
198 tubesel(0),
199 prio(0),
200 ts(TonestackMono()),
201 amplifier(GxAmpMono()),
202 cabconv(GxSimpleConvolver(resamp)),
203 impf(Impf()),
204 ampconv(GxSimpleConvolver(resamp1)),
205 ampf(Ampf()),
206 bufsize(0),
207 clevel(NULL),
208 clevel_(0),
209 cab(0),
210 alevel(NULL),
211 alevel_(0),
212 pre(0),
213 val(0)
214 {
215 atomic_set(&schedule_wait,0);
216 };
217 // destructor
218 ~GxPluginMono()
219 {
220 cabconv.stop_process();
221 ampconv.stop_process();
222 };
223 };
224
225 #include "cab_data.cc"
226 #include "gx_tonestack.cc"
227 #include "gx_amp.cc"
228 #include "impulse_former.cc"
229 #include "ampulse_former.cc"
230
231 // plugin stuff
232
233 void GxPluginMono::do_work_mono()
234 {
235 if (cab_changed())
236 {
237 if (cabconv.is_runnable())
238 {
239 cabconv.set_not_runnable();
240 cabconv.stop_process();
241 }
242 float cab_irdata_c[cabconv.cab_count];
243 impf.compute(cabconv.cab_count, cabconv.cab_data, cab_irdata_c, clevel_);
244 cabconv.cab_data_new = cab_irdata_c;
245 while (!cabconv.checkstate());
246 if (!cabconv.update(cabconv.cab_count, cabconv.cab_data_new, cabconv.cab_sr))
247 printf("cabconv.update fail.\n");
248 if(!cabconv.start(prio, SCHED_FIFO))
249 printf("cabinet convolver disabled\n");
250 update_cab();
251 //printf("cabinet convolver updated\n");
252 }
253 if (pre_changed())
254 {
255 if (ampconv.is_runnable())
256 {
257 ampconv.set_not_runnable();
258 ampconv.stop_process();
259 }
260 float pre_irdata_c[contrast_ir_desc.ir_count];
261 ampf.compute(contrast_ir_desc.ir_count,contrast_ir_desc.ir_data, pre_irdata_c, alevel_);
262 while (!ampconv.checkstate());
263 if (!ampconv.update(contrast_ir_desc.ir_count, pre_irdata_c, contrast_ir_desc.ir_sr))
264 printf("ampconv.update fail.\n");
265 if(!ampconv.start(prio, SCHED_FIFO))
266 printf("presence convolver disabled\n");
267 update_pre();
268 //printf("presence convolver updated\n");
269 }
270 update_val();
271 atomic_set(&schedule_wait,0);
272 }
273
274 void GxPluginMono::set_tubesel_mono(const LV2_Descriptor* descriptor)
275 {
276 if (strcmp("http://guitarix.sourceforge.net/plugins/gxamp#12ax7",descriptor->URI)== 0)
277 {
278 printf("12ax7\n");
279 _a_ptr = &GxAmpMono::run_12ax7;
280 _t_ptr = &TonestackMono::run;
281 cabconv.cab_count = cab_data_4x12.ir_count;
282 cabconv.cab_sr = cab_data_4x12.ir_sr;
283 cabconv.cab_data = cab_data_4x12.ir_data;
284 tubesel = 1;
285 }
286 else if (strcmp("http://guitarix.sourceforge.net/plugins/gxamp#12AT7",descriptor->URI)== 0)
287 {
288 printf("12AT7\n");
289 _a_ptr = &GxAmpMono::run_12AT7;
290 _t_ptr = &TonestackMono::run_soldano;
291 cabconv.cab_count = cab_data_AC30.ir_count;
292 cabconv.cab_sr = cab_data_AC30.ir_sr;
293 cabconv.cab_data = cab_data_AC30.ir_data;
294 tubesel = 2;
295 }
296 else if (strcmp("http://guitarix.sourceforge.net/plugins/gxamp#6C16",descriptor->URI)== 0)
297 {
298 printf("6C16\n");
299 _a_ptr = &GxAmpMono::run_6C16;
300 _t_ptr = &TonestackMono::run_bassman;
301 cabconv.cab_count = cab_data_1x15.ir_count;
302 cabconv.cab_sr = cab_data_1x15.ir_sr;
303 cabconv.cab_data = cab_data_1x15.ir_data;
304 tubesel = 3;
305 }
306 else if (strcmp("http://guitarix.sourceforge.net/plugins/gxamp#6V6",descriptor->URI)== 0)
307 {
308 printf("6V6\n");
309 _a_ptr = &GxAmpMono::run_6V6;
310 _t_ptr = &TonestackMono::run_soldano;
311 cabconv.cab_count = cab_data_mesa.ir_count;
312 cabconv.cab_sr = cab_data_mesa.ir_sr;
313 cabconv.cab_data = cab_data_mesa.ir_data;
314 tubesel = 4;
315 }
316 else if (strcmp("http://guitarix.sourceforge.net/plugins/gxamp#6DJ8",descriptor->URI)== 0)
317 {
318 printf("6DJ8\n");
319 _a_ptr = &GxAmpMono::run_6DJ8;
320 _t_ptr = &TonestackMono::run_ampeg;
321 cabconv.cab_count = cab_data_HighGain.ir_count;
322 cabconv.cab_sr = cab_data_HighGain.ir_sr;
323 cabconv.cab_data = cab_data_HighGain.ir_data;
324 tubesel = 5;
325 }
326 else
327 {
328 _a_ptr = &GxAmpMono::run_12ax7;
329 _t_ptr = &TonestackMono::run;
330 cabconv.cab_count = cab_data_4x12.ir_count;
331 cabconv.cab_sr = cab_data_4x12.ir_sr;
332 cabconv.cab_data = cab_data_4x12.ir_data;
333 tubesel = 0;
334 }
335 }
336
337 void GxPluginMono::init_dsp_mono(uint32_t rate, uint32_t bufsize_)
338 {
339 AVOIDDENORMALS();
340
341 bufsize = bufsize_;
342 amplifier.init_static(rate, &amplifier);
343 ts.init_static(rate, &ts);
344 //impf.init_static(rate, &impf);
345 //ampf.init_static(rate, &ampf);
346
347 if (bufsize )
348 {
349 #ifdef _POSIX_PRIORITY_SCHEDULING
350 int priomax = sched_get_priority_max(SCHED_FIFO);
351 if ((priomax/2) > 0) prio = priomax/2;
352 #endif
353 cabconv.set_samplerate(rate);
354 cabconv.set_buffersize(bufsize);
355 cabconv.configure(cabconv.cab_count, cabconv.cab_data, cabconv.cab_sr);
356 if(!cabconv.start(prio, SCHED_FIFO))
357 printf("cabinet convolver disabled\n");
358
359 ampconv.set_samplerate(rate);
360 ampconv.set_buffersize(bufsize);
361 ampconv.configure(contrast_ir_desc.ir_count, contrast_ir_desc.ir_data, contrast_ir_desc.ir_sr);
362 if(!ampconv.start(prio, SCHED_FIFO))
363 printf("presence convolver disabled\n");
364 }
365 else
366 {
367 printf("convolver disabled\n");
368 }
369 }
370
371
372 void GxPluginMono::connect_mono(uint32_t port,void* data)
373 {
374 switch ((PortIndex)port)
375 {
376 case AMP_MASTERGAIN:
377 break;
378 case AMP_PREGAIN:
379 break;
380 case AMP_WET_DRY:
381 break;
382 case AMP_DRIVE:
383 break;
384 case MID:
385 break;
386 case BASS:
387 break;
388 case TREBLE:
389 break;
390 case CLevel:
391 clevel = static_cast<float*>(data);
392 break;
393 case ALevel:
394 alevel = static_cast<float*>(data);
395 break;
396 case AMP_CONTROL:
397 c_notice = (LV2_Atom_Sequence*)data;
398 break;
399 case AMP_NOTIFY:
400 n_notice = (LV2_Atom_Sequence*)data;
401 break;
402 case AMP_OUTPUT:
403 output = static_cast<float*>(data);
404 break;
405 case AMP_INPUT:
406 input = static_cast<float*>(data);
407 break;
408 case AMP_OUTPUT1:
409 break;
410 case AMP_INPUT1:
411 break;
412 }
413 }
414
415 void GxPluginMono::run_dsp_mono(uint32_t n_samples)
416 {
417 // run dsp
418 amplifier.run_static(n_samples, input, output, &amplifier);
419 ampconv.run_static(n_samples, &ampconv, output);
420 ts.run_static(n_samples, &ts, output);
421 cabconv.run_static(n_samples, &cabconv, output);
422 // work ?
423 if (!atomic_get(schedule_wait) && val_changed())
424 {
425 clevel_ = (*clevel);
426 alevel_ = (*alevel);
427 atomic_set(&schedule_wait,1);
428 schedule->schedule_work(schedule->handle, sizeof(bool), &doit);
429 }
430 }
431
432 void GxPluginMono::connect_all_mono_ports(uint32_t port, void* data)
433 {
434 connect_mono(port,data);
435 amplifier.connect_static(port,data, &amplifier);
436 ts.connect_static(port,data, &ts);
437 //impf.connect_static(port,data, &impf);
438 //ampf.connect_static(port,data, &ampf);
439 }
440
441 ///////////////////////////// LV2 defines //////////////////////////////
442
443 static LV2_Worker_Status
444 work(LV2_Handle instance,
445 LV2_Worker_Respond_Function respond,
446 LV2_Worker_Respond_Handle handle,
447 uint32_t size,
448 const void* data)
449 {
450 GxPluginMono* self = (GxPluginMono*)instance;
451 self->do_work_mono();
452 return LV2_WORKER_SUCCESS;
453 }
454
455 static LV2_Worker_Status
456 work_response(LV2_Handle instance,
457 uint32_t size,
458 const void* data)
459 {
460 printf("worker respose.\n");
461 return LV2_WORKER_SUCCESS;
462 }
463
464
465 static LV2_Handle
466 instantiate(const LV2_Descriptor* descriptor,
467 double rate,
468 const char* bundle_path,
469 const LV2_Feature* const* features)
470 {
471
472 GxPluginMono *self = new GxPluginMono();
473 if (!self)
474 {
475 return NULL;
476 }
477
478 const LV2_Options_Option* options = NULL;
479 uint32_t bufsize = 0;
480 //printf(" %s\n",descriptor->URI);
481
482 for (int32_t i = 0; features[i]; ++i)
483 {
484 if (!strcmp(features[i]->URI, LV2_URID__map))
485 {
486 self->map = (LV2_URID_Map*)features[i]->data;
487 }
488 else if (!strcmp(features[i]->URI, LV2_WORKER__schedule))
489 {
490 self->schedule = (LV2_Worker_Schedule*)features[i]->data;
491 }
492 else if (!strcmp(features[i]->URI, LV2_OPTIONS__options))
493 {
494 options = (const LV2_Options_Option*)features[i]->data;
495 }
496 }
497 if (!self->schedule)
498 {
499 fprintf(stderr, "Missing feature work:schedule.\n");
500 delete self;
501 return NULL;
502 }
503 if (!self->map)
504 {
505 fprintf(stderr, "Missing feature uri:map.\n");
506 }
507 else if (!options)
508 {
509 fprintf(stderr, "Missing feature options.\n");
510 }
511 else
512 {
513 LV2_URID bufsz_max = self->map->map(self->map->handle, LV2_BUF_SIZE__maxBlockLength);
514 LV2_URID atom_Int = self->map->map(self->map->handle, LV2_ATOM__Int);
515
516 for (const LV2_Options_Option* o = options; o->key; ++o)
517 {
518 if (o->context == LV2_OPTIONS_INSTANCE &&
519 o->key == bufsz_max &&
520 o->type == atom_Int)
521 {
522 bufsize = *(const int32_t*)o->value;
523 }
524 }
525
526 if (bufsize == 0)
527 {
528 fprintf(stderr, "No maximum buffer size given.\n");
529 }
530 printf("using block size: %d\n", bufsize);
531 }
532 self->set_tubesel_mono( descriptor);
533 self->init_dsp_mono((uint32_t)rate, bufsize);
534
535 return (LV2_Handle)self;
536 }
537
538 static void
539 connect_port(LV2_Handle instance,
540 uint32_t port,
541 void* data)
542 {
543 GxPluginMono* self = (GxPluginMono*)instance;
544 self->connect_all_mono_ports(port, data);
545 }
546
547 static void
548 activate(LV2_Handle instance)
549 {
550
551 }
552
553 static void
554 run(LV2_Handle instance, uint32_t n_samples)
555 {
556 GxPluginMono* self = (GxPluginMono*)instance;
557 self->run_dsp_mono(n_samples);
558 }
559
560 static void
561 deactivate(LV2_Handle instance)
562 {
563
564 }
565
566 static void
567 cleanup(LV2_Handle instance)
568 {
569 GxPluginMono* self = (GxPluginMono*)instance;
570 delete self;
571 }
572
573 //////////////////////////////////////////////////////////////////
574
575 const void*
576 extension_data(const char* uri)
577 {
578 static const LV2_Worker_Interface worker = { work, work_response, NULL };
579 if (!strcmp(uri, LV2_WORKER__interface))
580 {
581 return &worker;
582 }
583 return NULL;
584 }
585
586 static const LV2_Descriptor descriptor =
587 {
588 GXPLUGIN_URI "#12ax7",
589 instantiate,
590 connect_port,
591 activate,
592 run,
593 deactivate,
594 cleanup,
595 extension_data
596 };
597
598 static const LV2_Descriptor descriptor1 =
599 {
600 GXPLUGIN_URI "#12AT7",
601 instantiate,
602 connect_port,
603 activate,
604 run,
605 deactivate,
606 cleanup,
607 extension_data
608 };
609 static const LV2_Descriptor descriptor2 =
610 {
611 GXPLUGIN_URI "#6C16",
612 instantiate,
613 connect_port,
614 activate,
615 run,
616 deactivate,
617 cleanup,
618 extension_data
619 };
620 static const LV2_Descriptor descriptor3 =
621 {
622 GXPLUGIN_URI "#6V6",
623 instantiate,
624 connect_port,
625 activate,
626 run,
627 deactivate,
628 cleanup,
629 extension_data
630 };
631 static const LV2_Descriptor descriptor4 =
632 {
633 GXPLUGIN_URI "#6DJ8",
634 instantiate,
635 connect_port,
636 activate,
637 run,
638 deactivate,
639 cleanup,
640 extension_data
641 };
642
643 extern "C"
644 LV2_SYMBOL_EXPORT
645 const LV2_Descriptor*
646 lv2_descriptor(uint32_t index)
647 {
648 switch (index)
649 {
650 case 0:
651 return &descriptor;
652 case 1:
653 return &descriptor1;
654 case 2:
655 return &descriptor2;
656 case 3:
657 return &descriptor3;
658 case 4:
659 return &descriptor4;
660 default:
661 return NULL;
662 }
663 }
0 /*
1 * Copyright (C) 2012 Hermann Meyer, Andreas Degert, Pete Shorthose
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 * --------------------------------------------------------------------------
17 */
18
19 #pragma once
20
21 #ifndef SRC_HEADERS_GXAMP_H_
22 #define SRC_HEADERS_GXAMP_H_
23
24 #include <lv2.h>
25 #include <lv2/lv2plug.in/ns/ext/buf-size/buf-size.h>
26 #include <lv2/lv2plug.in/ns/ext/options/options.h>
27 #include <lv2/lv2plug.in/ns/ext/atom/atom.h>
28 #include <lv2/lv2plug.in/ns/ext/log/log.h>
29 #include <lv2/lv2plug.in/ns/ext/worker/worker.h>
30 #include <lv2/lv2plug.in/ns/ext/urid/urid.h>
31
32 #define GXPLUGIN_URI "http://guitarix.sourceforge.net/plugins/gxamp"
33 #define GXPLUGIN_UI_URI "http://guitarix.sourceforge.net/plugins/gxamp#gui"
34
35
36 typedef enum
37 {
38 AMP_MASTERGAIN = 0,
39 AMP_PREGAIN,
40 AMP_WET_DRY,
41 AMP_DRIVE,
42 MID,
43 BASS,
44 TREBLE,
45 CLevel,
46 ALevel,
47 AMP_CONTROL,
48 AMP_NOTIFY,
49 AMP_OUTPUT,
50 AMP_INPUT,
51 AMP_OUTPUT1,
52 AMP_INPUT1,
53 } PortIndex;
54
55 #endif //SRC_HEADERS_GXAMP_H_
0 #
1 # Copyright (C) 2012 Hermann Meyer, Andreas Degert, Pete Shorthose
2 #
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 2 of the License, or
6 # (at your option) any later version.
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License for more details.
12 #
13 # You should have received a copy of the GNU General Public License
14 # along with this program; if not, write to the Free Software
15 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 # --------------------------------------------------------------------------
17 #
18
19
20 @prefix doap: <http://usefulinc.com/ns/doap#> .
21 @prefix foaf: <http://xmlns.com/foaf/0.1/> .
22 @prefix lv2: <http://lv2plug.in/ns/lv2core#> .
23 @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
24 @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
25 @prefix bufsz: <http://lv2plug.in/ns/ext/buf-size#> .
26 @prefix atom: <http://lv2plug.in/ns/ext/atom#> .
27 @prefix urid: <http://lv2plug.in/ns/ext/urid#> .
28 @prefix opt: <http://lv2plug.in/ns/ext/options#> .
29 @prefix guiext: <http://lv2plug.in/ns/extensions/ui#>.
30 @prefix work: <http://lv2plug.in/ns/ext/worker#> .
31
32 <http://guitarix.sourceforge.net#me>
33 a foaf:Person ;
34 foaf:name "Hermann Meyer" ;
35 foaf:mbox <mailto:brummer@web.de> ;
36 rdfs:seeAlso <http://guitarix.sourceforge.net> .
37
38 <http://guitarix.sourceforge.net/plugins/gxamp>
39 a doap:Project ;
40 doap:maintainer <http://guitarix.sourceforge.net#me> ;
41 doap:name "GxAmplifier" .
42
43 <http://guitarix.sourceforge.net/plugins/gxamp#12ax7>
44 a lv2:Plugin ,
45 lv2:AmplifierPlugin ;
46 doap:maintainer <http://guitarix.sourceforge.net#me> ;
47 doap:name "GxAmplifier";
48 doap:license <http://opensource.org/licenses/isc> ;
49 lv2:project <http://guitarix.sourceforge.net/plugins/gxamp> ;
50 lv2:optionalFeature lv2:hardRTCapable ;
51 lv2:requiredFeature urid:map ,
52 bufsz:boundedBlockLength ,
53 work:schedule ;
54 bufsz:minBlockLength 64 ;
55 bufsz:maxBlockLength 8192 ;
56 lv2:extensionData work:interface ;
57
58 guiext:ui <http://guitarix.sourceforge.net/plugins/gxamp#gui>;
59
60 lv2:port [
61 a lv2:InputPort ,
62 lv2:ControlPort ;
63 lv2:index 0 ;
64 lv2:symbol "fslider0_" ;
65 lv2:name "MasterGain";
66 lv2:default -15.0 ;
67 lv2:minimum -20.0 ;
68 lv2:maximum 20.0 ;
69 ] , [
70 a lv2:InputPort ,
71 lv2:ControlPort ;
72 lv2:index 1 ;
73 lv2:symbol "fslider1_" ;
74 lv2:name "PreGain";
75 lv2:default -15.0 ;
76 lv2:minimum -20.0 ;
77 lv2:maximum 20.0 ;
78 ] , [
79 a lv2:InputPort ,
80 lv2:ControlPort ;
81 lv2:index 2 ;
82 lv2:symbol "fslider2_" ;
83 lv2:name "Distortion";
84 lv2:default 20.0 ;
85 lv2:minimum 1.0 ;
86 lv2:maximum 100.0 ;
87 ] , [
88 a lv2:InputPort ,
89 lv2:ControlPort ;
90 lv2:index 3 ;
91 lv2:symbol "fslider3_" ;
92 lv2:name "Drive";
93 lv2:default 0.25 ;
94 lv2:minimum 0.01 ;
95 lv2:maximum 1.0 ;
96 ] ,[
97 a lv2:InputPort ,
98 lv2:ControlPort ;
99 lv2:index 4 ;
100 lv2:symbol "fslider0_" ;
101 lv2:name "Middle";
102 lv2:default 0.5 ;
103 lv2:minimum 0.0 ;
104 lv2:maximum 1.0 ;
105 ] , [
106 a lv2:InputPort ,
107 lv2:ControlPort ;
108 lv2:index 5 ;
109 lv2:symbol "fslider1_" ;
110 lv2:name "Bass";
111 lv2:default 0.5 ;
112 lv2:minimum 0.0 ;
113 lv2:maximum 1.0 ;
114 ] , [
115 a lv2:InputPort ,
116 lv2:ControlPort ;
117 lv2:index 6 ;
118 lv2:symbol "fslider2_" ;
119 lv2:name "Treble";
120 lv2:default 0.5 ;
121 lv2:minimum 0.0 ;
122 lv2:maximum 1.0 ;
123 ] , [
124 a lv2:InputPort ,
125 lv2:ControlPort ;
126 lv2:index 7 ;
127 lv2:symbol "fslider0_" ;
128 lv2:name "Cabinet";
129 lv2:default 10.0 ;
130 lv2:minimum 1.0 ;
131 lv2:maximum 20.0 ;
132 ] , [
133 a lv2:InputPort ,
134 lv2:ControlPort ;
135 lv2:index 8 ;
136 lv2:symbol "fslider0_" ;
137 lv2:name "Presence";
138 lv2:default 10.0 ;
139 lv2:minimum 1.0 ;
140 lv2:maximum 20.0 ;
141 ] , [
142 a lv2:InputPort ,
143 atom:AtomPort ;
144 atom:bufferType atom:Sequence ;
145 atom:supports <http://lv2plug.in/ns/ext/patch#Message> ;
146 lv2:index 9 ;
147 lv2:symbol "control" ;
148 lv2:name "Control"
149 ] , [
150 a lv2:OutputPort ,
151 atom:AtomPort ;
152 atom:bufferType atom:Sequence ;
153 atom:supports <http://lv2plug.in/ns/ext/patch#Message> ;
154 lv2:index 10 ;
155 lv2:symbol "notify" ;
156 lv2:name "Notify"
157 ] , [
158 a lv2:AudioPort ,
159 lv2:OutputPort ;
160 lv2:index 11 ;
161 lv2:symbol "out" ;
162 lv2:name "Out"
163 ] , [
164 a lv2:AudioPort ,
165 lv2:InputPort ;
166 lv2:index 12 ;
167 lv2:symbol "in" ;
168 lv2:name "in"
169 ].
170
171 <http://guitarix.sourceforge.net/plugins/gxamp#12AT7>
172 a lv2:Plugin ,
173 lv2:AmplifierPlugin ;
174 doap:maintainer <http://guitarix.sourceforge.net#me> ;
175 doap:name "GxAmplifier-II";
176 doap:license <http://opensource.org/licenses/isc> ;
177 lv2:project <http://guitarix.sourceforge.net/plugins/gxamp> ;
178 lv2:optionalFeature lv2:hardRTCapable ;
179 lv2:requiredFeature urid:map ,
180 bufsz:boundedBlockLength ,
181 work:schedule ;
182 bufsz:minBlockLength 64 ;
183 bufsz:maxBlockLength 8192 ;
184 lv2:extensionData work:interface ;
185
186 guiext:ui <http://guitarix.sourceforge.net/plugins/gxamp#gui>;
187
188 lv2:port [
189 a lv2:InputPort ,
190 lv2:ControlPort ;
191 lv2:index 0 ;
192 lv2:symbol "fslider0_" ;
193 lv2:name "MasterGain";
194 lv2:default -15.0 ;
195 lv2:minimum -20.0 ;
196 lv2:maximum 20.0 ;
197 ] , [
198 a lv2:InputPort ,
199 lv2:ControlPort ;
200 lv2:index 1 ;
201 lv2:symbol "fslider1_" ;
202 lv2:name "PreGain";
203 lv2:default -15.0 ;
204 lv2:minimum -20.0 ;
205 lv2:maximum 20.0 ;
206 ] , [
207 a lv2:InputPort ,
208 lv2:ControlPort ;
209 lv2:index 2 ;
210 lv2:symbol "fslider2_" ;
211 lv2:name "Distortion";
212 lv2:default 20.0 ;
213 lv2:minimum 1.0 ;
214 lv2:maximum 100.0 ;
215 ] , [
216 a lv2:InputPort ,
217 lv2:ControlPort ;
218 lv2:index 3 ;
219 lv2:symbol "fslider3_" ;
220 lv2:name "Drive";
221 lv2:default 0.25 ;
222 lv2:minimum 0.01 ;
223 lv2:maximum 1.0 ;
224 ] ,[
225 a lv2:InputPort ,
226 lv2:ControlPort ;
227 lv2:index 4 ;
228 lv2:symbol "fslider0_" ;
229 lv2:name "Middle";
230 lv2:default 0.5 ;
231 lv2:minimum 0.0 ;
232 lv2:maximum 1.0 ;
233 ] , [
234 a lv2:InputPort ,
235 lv2:ControlPort ;
236 lv2:index 5 ;
237 lv2:symbol "fslider1_" ;
238 lv2:name "Bass";
239 lv2:default 0.5 ;
240 lv2:minimum 0.0 ;
241 lv2:maximum 1.0 ;
242 ] , [
243 a lv2:InputPort ,
244 lv2:ControlPort ;
245 lv2:index 6 ;
246 lv2:symbol "fslider2_" ;
247 lv2:name "Treble";
248 lv2:default 0.5 ;
249 lv2:minimum 0.0 ;
250 lv2:maximum 1.0 ;
251 ] , [
252 a lv2:InputPort ,
253 lv2:ControlPort ;
254 lv2:index 7 ;
255 lv2:symbol "fslider0_" ;
256 lv2:name "Cabinet";
257 lv2:default 10.0 ;
258 lv2:minimum 1.0 ;
259 lv2:maximum 20.0 ;
260 ] , [
261 a lv2:InputPort ,
262 lv2:ControlPort ;
263 lv2:index 8 ;
264 lv2:symbol "fslider0_" ;
265 lv2:name "Presence";
266 lv2:default 10.0 ;
267 lv2:minimum 1.0 ;
268 lv2:maximum 20.0 ;
269 ] , [
270 a lv2:InputPort ,
271 atom:AtomPort ;
272 atom:bufferType atom:Sequence ;
273 atom:supports <http://lv2plug.in/ns/ext/patch#Message> ;
274 lv2:index 9 ;
275 lv2:symbol "control" ;
276 lv2:name "Control"
277 ] , [
278 a lv2:OutputPort ,
279 atom:AtomPort ;
280 atom:bufferType atom:Sequence ;
281 atom:supports <http://lv2plug.in/ns/ext/patch#Message> ;
282 lv2:index 10 ;
283 lv2:symbol "notify" ;
284 lv2:name "Notify"
285 ] , [
286 a lv2:AudioPort ,
287 lv2:OutputPort ;
288 lv2:index 11 ;
289 lv2:symbol "out" ;
290 lv2:name "Out"
291 ] , [
292 a lv2:AudioPort ,
293 lv2:InputPort ;
294 lv2:index 12 ;
295 lv2:symbol "in" ;
296 lv2:name "in"
297 ].
298
299 <http://guitarix.sourceforge.net/plugins/gxamp#6C16>
300 a lv2:Plugin ,
301 lv2:AmplifierPlugin ;
302 doap:maintainer <http://guitarix.sourceforge.net#me> ;
303 doap:name "GxAmplifier-III";
304 doap:license <http://opensource.org/licenses/isc> ;
305 lv2:project <http://guitarix.sourceforge.net/plugins/gxamp> ;
306 lv2:optionalFeature lv2:hardRTCapable ;
307 lv2:requiredFeature urid:map ,
308 bufsz:boundedBlockLength ,
309 work:schedule ;
310 bufsz:minBlockLength 64 ;
311 bufsz:maxBlockLength 8192 ;
312 lv2:extensionData work:interface ;
313
314 guiext:ui <http://guitarix.sourceforge.net/plugins/gxamp#gui>;
315
316 lv2:port [
317 a lv2:InputPort ,
318 lv2:ControlPort ;
319 lv2:index 0 ;
320 lv2:symbol "fslider0_" ;
321 lv2:name "MasterGain";
322 lv2:default -15.0 ;
323 lv2:minimum -20.0 ;
324 lv2:maximum 20.0 ;
325 ] , [
326 a lv2:InputPort ,
327 lv2:ControlPort ;
328 lv2:index 1 ;
329 lv2:symbol "fslider1_" ;
330 lv2:name "PreGain";
331 lv2:default -15.0 ;
332 lv2:minimum -20.0 ;
333 lv2:maximum 20.0 ;
334 ] , [
335 a lv2:InputPort ,
336 lv2:ControlPort ;
337 lv2:index 2 ;
338 lv2:symbol "fslider2_" ;
339 lv2:name "Distortion";
340 lv2:default 20.0 ;
341 lv2:minimum 1.0 ;
342 lv2:maximum 100.0 ;
343 ] , [
344 a lv2:InputPort ,
345 lv2:ControlPort ;
346 lv2:index 3 ;
347 lv2:symbol "fslider3_" ;
348 lv2:name "Drive";
349 lv2:default 0.25 ;
350 lv2:minimum 0.01 ;
351 lv2:maximum 1.0 ;
352 ] ,[
353 a lv2:InputPort ,
354 lv2:ControlPort ;
355 lv2:index 4 ;
356 lv2:symbol "fslider0_" ;
357 lv2:name "Middle";
358 lv2:default 0.5 ;
359 lv2:minimum 0.0 ;
360 lv2:maximum 1.0 ;
361 ] , [
362 a lv2:InputPort ,
363 lv2:ControlPort ;
364 lv2:index 5 ;
365 lv2:symbol "fslider1_" ;
366 lv2:name "Bass";
367 lv2:default 0.5 ;
368 lv2:minimum 0.0 ;
369 lv2:maximum 1.0 ;
370 ] , [
371 a lv2:InputPort ,
372 lv2:ControlPort ;
373 lv2:index 6 ;
374 lv2:symbol "fslider2_" ;
375 lv2:name "Treble";
376 lv2:default 0.5 ;
377 lv2:minimum 0.0 ;
378 lv2:maximum 1.0 ;
379 ] , [
380 a lv2:InputPort ,
381 lv2:ControlPort ;
382 lv2:index 7 ;
383 lv2:symbol "fslider0_" ;
384 lv2:name "Cabinet";
385 lv2:default 10.0 ;
386 lv2:minimum 1.0 ;
387 lv2:maximum 20.0 ;
388 ] , [
389 a lv2:InputPort ,
390 lv2:ControlPort ;
391 lv2:index 8 ;
392 lv2:symbol "fslider0_" ;
393 lv2:name "Presence";
394 lv2:default 10.0 ;
395 lv2:minimum 1.0 ;
396 lv2:maximum 20.0 ;
397 ] , [
398 a lv2:InputPort ,
399 atom:AtomPort ;
400 atom:bufferType atom:Sequence ;
401 atom:supports <http://lv2plug.in/ns/ext/patch#Message> ;
402 lv2:index 9 ;
403 lv2:symbol "control" ;
404 lv2:name "Control"
405 ] , [
406 a lv2:OutputPort ,
407 atom:AtomPort ;
408 atom:bufferType atom:Sequence ;
409 atom:supports <http://lv2plug.in/ns/ext/patch#Message> ;
410 lv2:index 10 ;
411 lv2:symbol "notify" ;
412 lv2:name "Notify"
413 ] , [
414 a lv2:AudioPort ,
415 lv2:OutputPort ;
416 lv2:index 11 ;
417 lv2:symbol "out" ;
418 lv2:name "Out"
419 ] , [
420 a lv2:AudioPort ,
421 lv2:InputPort ;
422 lv2:index 12 ;
423 lv2:symbol "in" ;
424 lv2:name "in"
425 ].
426
427 <http://guitarix.sourceforge.net/plugins/gxamp#6V6>
428 a lv2:Plugin ,
429 lv2:AmplifierPlugin ;
430 doap:maintainer <http://guitarix.sourceforge.net#me> ;
431 doap:name "GxAmplifier-IV";
432 doap:license <http://opensource.org/licenses/isc> ;
433 lv2:project <http://guitarix.sourceforge.net/plugins/gxamp> ;
434 lv2:optionalFeature lv2:hardRTCapable ;
435 lv2:requiredFeature urid:map ,
436 bufsz:boundedBlockLength ,
437 work:schedule ;
438 bufsz:minBlockLength 64 ;
439 bufsz:maxBlockLength 8192 ;
440 lv2:extensionData work:interface ;
441
442 guiext:ui <http://guitarix.sourceforge.net/plugins/gxamp#gui>;
443
444 lv2:port [
445 a lv2:InputPort ,
446 lv2:ControlPort ;
447 lv2:index 0 ;
448 lv2:symbol "fslider0_" ;
449 lv2:name "MasterGain";
450 lv2:default -15.0 ;
451 lv2:minimum -20.0 ;
452 lv2:maximum 20.0 ;
453 ] , [
454 a lv2:InputPort ,
455 lv2:ControlPort ;
456 lv2:index 1 ;
457 lv2:symbol "fslider1_" ;
458 lv2:name "PreGain";
459 lv2:default -15.0 ;
460 lv2:minimum -20.0 ;
461 lv2:maximum 20.0 ;
462 ] , [
463 a lv2:InputPort ,
464 lv2:ControlPort ;
465 lv2:index 2 ;
466 lv2:symbol "fslider2_" ;
467 lv2:name "Distortion";
468 lv2:default 20.0 ;
469 lv2:minimum 1.0 ;
470 lv2:maximum 100.0 ;
471 ] , [
472 a lv2:InputPort ,
473 lv2:ControlPort ;
474 lv2:index 3 ;
475 lv2:symbol "fslider3_" ;
476 lv2:name "Drive";
477 lv2:default 0.25 ;
478 lv2:minimum 0.01 ;
479 lv2:maximum 1.0 ;
480 ] ,[
481 a lv2:InputPort ,
482 lv2:ControlPort ;
483 lv2:index 4 ;
484 lv2:symbol "fslider0_" ;
485 lv2:name "Middle";
486 lv2:default 0.5 ;
487 lv2:minimum 0.0 ;
488 lv2:maximum 1.0 ;
489 ] , [
490 a lv2:InputPort ,
491 lv2:ControlPort ;
492 lv2:index 5 ;
493 lv2:symbol "fslider1_" ;
494 lv2:name "Bass";
495 lv2:default 0.5 ;
496 lv2:minimum 0.0 ;
497 lv2:maximum 1.0 ;
498 ] , [
499 a lv2:InputPort ,
500 lv2:ControlPort ;
501 lv2:index 6 ;
502 lv2:symbol "fslider2_" ;
503 lv2:name "Treble";
504 lv2:default 0.5 ;
505 lv2:minimum 0.0 ;
506 lv2:maximum 1.0 ;
507 ] , [
508 a lv2:InputPort ,
509 lv2:ControlPort ;
510 lv2:index 7 ;
511 lv2:symbol "fslider0_" ;
512 lv2:name "Cabinet";
513 lv2:default 10.0 ;
514 lv2:minimum 1.0 ;
515 lv2:maximum 20.0 ;
516 ] , [
517 a lv2:InputPort ,
518 lv2:ControlPort ;
519 lv2:index 8 ;
520 lv2:symbol "fslider0_" ;
521 lv2:name "Presence";
522 lv2:default 10.0 ;
523 lv2:minimum 1.0 ;
524 lv2:maximum 20.0 ;
525 ] , [
526 a lv2:InputPort ,
527 atom:AtomPort ;
528 atom:bufferType atom:Sequence ;
529 atom:supports <http://lv2plug.in/ns/ext/patch#Message> ;
530 lv2:index 9 ;
531 lv2:symbol "control" ;
532 lv2:name "Control"
533 ] , [
534 a lv2:OutputPort ,
535 atom:AtomPort ;
536 atom:bufferType atom:Sequence ;
537 atom:supports <http://lv2plug.in/ns/ext/patch#Message> ;
538 lv2:index 10 ;
539 lv2:symbol "notify" ;
540 lv2:name "Notify"
541 ] , [
542 a lv2:AudioPort ,
543 lv2:OutputPort ;
544 lv2:index 11 ;
545 lv2:symbol "out" ;
546 lv2:name "Out"
547 ] , [
548 a lv2:AudioPort ,
549 lv2:InputPort ;
550 lv2:index 12 ;
551 lv2:symbol "in" ;
552 lv2:name "in"
553 ].
554
555 <http://guitarix.sourceforge.net/plugins/gxamp#6DJ8>
556 a lv2:Plugin ,
557 lv2:AmplifierPlugin ;
558 doap:maintainer <http://guitarix.sourceforge.net#me> ;
559 doap:name "GxAmplifier-V";
560 doap:license <http://opensource.org/licenses/isc> ;
561 lv2:project <http://guitarix.sourceforge.net/plugins/gxamp> ;
562 lv2:optionalFeature lv2:hardRTCapable ;
563 lv2:requiredFeature urid:map ,
564 bufsz:boundedBlockLength ,
565 work:schedule ;
566 bufsz:minBlockLength 64 ;
567 bufsz:maxBlockLength 8192 ;
568 lv2:extensionData work:interface ;
569
570 guiext:ui <http://guitarix.sourceforge.net/plugins/gxamp#gui>;
571
572 lv2:port [
573 a lv2:InputPort ,
574 lv2:ControlPort ;
575 lv2:index 0 ;
576 lv2:symbol "fslider0_" ;
577 lv2:name "MasterGain";
578 lv2:default -15.0 ;
579 lv2:minimum -20.0 ;
580 lv2:maximum 20.0 ;
581 ] , [
582 a lv2:InputPort ,
583 lv2:ControlPort ;
584 lv2:index 1 ;
585 lv2:symbol "fslider1_" ;
586 lv2:name "PreGain";
587 lv2:default -15.0 ;
588 lv2:minimum -20.0 ;
589 lv2:maximum 20.0 ;
590 ] , [
591 a lv2:InputPort ,
592 lv2:ControlPort ;
593 lv2:index 2 ;
594 lv2:symbol "fslider2_" ;
595 lv2:name "Distortion";
596 lv2:default 20.0 ;
597 lv2:minimum 1.0 ;
598 lv2:maximum 100.0 ;
599 ] , [
600 a lv2:InputPort ,
601 lv2:ControlPort ;
602 lv2:index 3 ;
603 lv2:symbol "fslider3_" ;
604 lv2:name "Drive";
605 lv2:default 0.25 ;
606 lv2:minimum 0.01 ;
607 lv2:maximum 1.0 ;
608 ] ,[
609 a lv2:InputPort ,
610 lv2:ControlPort ;
611 lv2:index 4 ;
612 lv2:symbol "fslider0_" ;
613 lv2:name "Middle";
614 lv2:default 0.5 ;
615 lv2:minimum 0.0 ;
616 lv2:maximum 1.0 ;
617 ] , [
618 a lv2:InputPort ,
619 lv2:ControlPort ;
620 lv2:index 5 ;
621 lv2:symbol "fslider1_" ;
622 lv2:name "Bass";
623 lv2:default 0.5 ;
624 lv2:minimum 0.0 ;
625 lv2:maximum 1.0 ;
626 ] , [
627 a lv2:InputPort ,
628 lv2:ControlPort ;
629 lv2:index 6 ;
630 lv2:symbol "fslider2_" ;
631 lv2:name "Treble";
632 lv2:default 0.5 ;
633 lv2:minimum 0.0 ;
634 lv2:maximum 1.0 ;
635 ] , [
636 a lv2:InputPort ,
637 lv2:ControlPort ;
638 lv2:index 7 ;
639 lv2:symbol "fslider0_" ;
640 lv2:name "Cabinet";
641 lv2:default 10.0 ;
642 lv2:minimum 1.0 ;
643 lv2:maximum 20.0 ;
644 ] , [
645 a lv2:InputPort ,
646 lv2:ControlPort ;
647 lv2:index 8 ;
648 lv2:symbol "fslider0_" ;
649 lv2:name "Presence";
650 lv2:default 10.0 ;
651 lv2:minimum 1.0 ;
652 lv2:maximum 20.0 ;
653 ] , [
654 a lv2:InputPort ,
655 atom:AtomPort ;
656 atom:bufferType atom:Sequence ;
657 atom:supports <http://lv2plug.in/ns/ext/patch#Message> ;
658 lv2:index 9 ;
659 lv2:symbol "control" ;
660 lv2:name "Control"
661 ] , [
662 a lv2:OutputPort ,
663 atom:AtomPort ;
664 atom:bufferType atom:Sequence ;
665 atom:supports <http://lv2plug.in/ns/ext/patch#Message> ;
666 lv2:index 10 ;
667 lv2:symbol "notify" ;
668 lv2:name "Notify"
669 ] , [
670 a lv2:AudioPort ,
671 lv2:OutputPort ;
672 lv2:index 11 ;
673 lv2:symbol "out" ;
674 lv2:name "Out"
675 ] , [
676 a lv2:AudioPort ,
677 lv2:InputPort ;
678 lv2:index 12 ;
679 lv2:symbol "in" ;
680 lv2:name "in"
681 ].
682
683 <http://guitarix.sourceforge.net/plugins/gxamp#gui>
684 a guiext:GtkUI;
685 guiext:binary <gxamp_gui.so>;
686 guiext:requiredFeature guiext:makeResident;
687 lv2:extensionData work:interface ;
688 guiext:portNotification [
689 guiext:plugin <http://guitarix.sourceforge.net/plugins/gxamp#12ax7>;
690 lv2:symbol "notify" ;
691 guiext:notifyType atom:Blank
692 ] , [
693 guiext:plugin <http://guitarix.sourceforge.net/plugins/gxamp#12AT7>;
694 lv2:symbol "notify" ;
695 guiext:notifyType atom:Blank
696 ] , [
697 guiext:plugin <http://guitarix.sourceforge.net/plugins/gxamp#6C16>;
698 lv2:symbol "notify" ;
699 guiext:notifyType atom:Blank
700 ] , [
701 guiext:plugin <http://guitarix.sourceforge.net/plugins/gxamp#6V6>;
702 lv2:symbol "notify" ;
703 guiext:notifyType atom:Blank
704 ] , [
705 guiext:plugin <http://guitarix.sourceforge.net/plugins/gxamp#6DJ8>;
706 lv2:symbol "notify" ;
707 guiext:notifyType atom:Blank
708 ] .
0 /*
1 * Copyright (C) 2012 Hermann Meyer, Andreas Degert, Pete Shorthose
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 * --------------------------------------------------------------------------
17 */
18
19
20 #include <string>
21 #include <iostream>
22
23 #include <gtkmm.h>
24 #include "gxamp.h"
25 #include "widget.h"
26
27
28 #include <lv2.h>
29 #include <lv2/lv2plug.in/ns/extensions/ui/ui.h>
30
31 using namespace std;
32
33 class GXPluginGUI
34 {
35 private:
36 Glib::ustring plugskin;
37 Glib::ustring addKnob;
38 Glib::ustring plug_name;
39 void set_knob(Glib::ustring knob);
40 void set_skin();
41 void set_plug_name(const char * plugin_uri);
42 GtkWidget* make_gui();
43 public:
44
45 Widget* widget;
46 static void set_plug_name_static(GXPluginGUI *self, const char * plugin_uri)
47 {
48 self->set_plug_name(plugin_uri);
49 }
50 static GtkWidget* make_gui_static(GXPluginGUI *self)
51 {
52 return self->make_gui();
53 }
54
55 GXPluginGUI () {};
56 ~GXPluginGUI () {};
57 } ;
58
59 void GXPluginGUI::set_knob( Glib::ustring knob)
60 {
61 addKnob = " style 'gx_";
62 addKnob += plug_name;
63 addKnob += "_dark_skin_icons'\n"
64 " { \n"
65 " stock['bigknob'] = {{'";
66 addKnob += knob;
67 addKnob += ".png'}}\n"
68 " stock['smallknob'] = {{'";
69 addKnob += knob;
70 addKnob += "-small.png'}}\n"
71 " stock['smallknobr'] = {{'";
72 addKnob += knob;
73 addKnob += "-middle.png'}}\n"
74 " }\n"
75 "widget '*.";
76 addKnob += plug_name;
77 addKnob += "' style 'gx_";
78 addKnob += plug_name;
79 addKnob += "_dark_skin_icons' ";
80 }
81
82 void GXPluginGUI::set_skin()
83 {
84 Glib::ustring toparse = "pixmap_path ";
85 toparse += " '";
86 toparse += GX_STYLE_DIR;
87 toparse += "/'\n";
88 toparse += "style \"gx_";
89 toparse += plug_name;
90 toparse += "_dark-paintbox\"\n"
91 " { \n"
92 " GxPaintBox::icon-set =9\n"
93 " stock['amp_skin'] = {{'";
94 toparse += plugskin;
95 toparse += "'}}\n"
96 " }\n"
97 "\n"
98 "style 'gx_head_black_box' \n"
99 " { \n"
100 " fg[NORMAL] = '#afafaf' \n"
101 " }\n";
102 toparse += addKnob;
103
104 toparse += " widget '*.amplabel' style:highest 'gx_head_black_box'\n"
105 "widget '*.";
106 toparse += plug_name;
107 toparse += "' style 'gx_";
108 toparse += plug_name;
109 toparse += "_dark-paintbox' ";
110
111 gtk_rc_parse_string (toparse.c_str());
112 }
113
114 void GXPluginGUI::set_plug_name( const char * plugin_uri)
115 {
116 addKnob = "";
117
118 if (strcmp("http://guitarix.sourceforge.net/plugins/gxamp#12ax7", plugin_uri) == 0)
119 {
120 plugskin = "amp21.png";
121 plug_name = "12ax7";
122 }
123 else if (strcmp("http://guitarix.sourceforge.net/plugins/gxamp#12AT7", plugin_uri) == 0)
124 {
125 plugskin = "amp22.png";
126 plug_name = "12AT7";
127 set_knob("metalic1-knob");
128 }
129 else if (strcmp("http://guitarix.sourceforge.net/plugins/gxamp#6C16", plugin_uri) == 0)
130 {
131 plugskin = "amp23.png";
132 plug_name = "6C16";
133 }
134 else if (strcmp("http://guitarix.sourceforge.net/plugins/gxamp#6V6", plugin_uri) == 0)
135 {
136 plugskin = "amp24.png";
137 plug_name = "6V6";
138 set_knob("knob");
139 }
140 else if (strcmp("http://guitarix.sourceforge.net/plugins/gxamp#6DJ8", plugin_uri) == 0)
141 {
142 plugskin = "amp25.png";
143 plug_name = "6DJ8";
144 set_knob("black-knob");
145 }
146 else if (strcmp("http://guitarix.sourceforge.net/plugins/gxamp#12ax7_stereo", plugin_uri) == 0)
147 {
148 plugskin = "amp21.png";
149 plug_name = "12ax7_stereo";
150 }
151 else if (strcmp("http://guitarix.sourceforge.net/plugins/gxamp#12AT7_stereo", plugin_uri) == 0)
152 {
153 plugskin = "amp22.png";
154 plug_name = "12AT7_stereo";
155 set_knob("metalic1-knob");
156 }
157 else if (strcmp("http://guitarix.sourceforge.net/plugins/gxamp#6C16_stereo", plugin_uri) == 0)
158 {
159 plugskin = "amp23.png";
160 plug_name = "6C16_stereo";
161 }
162 else if (strcmp("http://guitarix.sourceforge.net/plugins/gxamp#6V6_stereo", plugin_uri) == 0)
163 {
164 plugskin = "amp24.png";
165 plug_name = "6V6_stereo";
166 set_knob("knob");
167 }
168 else if (strcmp("http://guitarix.sourceforge.net/plugins/gxamp#6DJ8_stereo", plugin_uri) == 0)
169 {
170 plugskin = "amp25.png";
171 plug_name = "6DJ8_stereo";
172 set_knob("black-knob");
173 }
174 else
175 {
176 plugskin = "amp21.png";
177 plug_name = "12ax7";
178 }
179 }
180
181 GtkWidget* GXPluginGUI::make_gui()
182 {
183 // init the gxwmm library
184 Gxw::init();
185 set_skin();
186 GtkWidget* container = gtk_vbox_new(FALSE, 2);
187 widget = new Widget(plug_name);
188 GtkWidget* cWidget = (GtkWidget*)widget->gobj();
189 gtk_container_add( (GtkContainer*)container, cWidget );
190
191 return container;
192 }
193
194
195 static LV2UI_Handle instantiate(const struct _LV2UI_Descriptor * descriptor,
196 const char * plugin_uri,
197 const char * bundle_path,
198 LV2UI_Write_Function write_function,
199 LV2UI_Controller controller,
200 LV2UI_Widget * widget,
201 const LV2_Feature * const * features)
202 {
203 GXPluginGUI* self = new GXPluginGUI();
204 if (self == NULL) return NULL;
205 self->set_plug_name_static(self, plugin_uri);
206 *widget = (LV2UI_Widget)self->make_gui_static(self);
207 self->widget->controller = controller;
208 self->widget->write_function = write_function;
209 return (LV2UI_Handle)self;
210 }
211
212 static void cleanup(LV2UI_Handle ui)
213 {
214 GXPluginGUI *pluginGui = (GXPluginGUI *) ui;
215 delete pluginGui->widget;
216 delete pluginGui;
217 }
218
219 static void port_event(LV2UI_Handle ui,
220 uint32_t port_index,
221 uint32_t buffer_size,
222 uint32_t format,
223 const void * buffer)
224 {
225 GXPluginGUI *self = (GXPluginGUI *) ui;
226 self->widget->set_value_static( port_index, buffer_size, format, buffer, self->widget);
227 return;
228 }
229
230 static LV2UI_Descriptor descriptors[] =
231 {
232 {GXPLUGIN_UI_URI, instantiate, cleanup, port_event, NULL}
233 };
234
235 const LV2UI_Descriptor * lv2ui_descriptor(uint32_t index)
236 {
237 //printf("lv2ui_descriptor(%u) called\n", (uint32_t)index);
238 if (index >= sizeof(descriptors) / sizeof(descriptors[0]))
239 {
240 return NULL;
241 }
242 return descriptors + index;
243 }
244
0 #
1 # Copyright (C) 2012 Hermann Meyer, Andreas Degert, Pete Shorthose
2 #
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 2 of the License, or
6 # (at your option) any later version.
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License for more details.
12 #
13 # You should have received a copy of the GNU General Public License
14 # along with this program; if not, write to the Free Software
15 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 # --------------------------------------------------------------------------
17 #
18
19 @prefix lv2: <http://lv2plug.in/ns/lv2core#> .
20 @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
21
22 <http://guitarix.sourceforge.net/plugins/gxamp#12ax7>
23 a lv2:Plugin ;
24 lv2:binary <gxamp@LIB_EXT@> ;
25 rdfs:seeAlso <gxamp.ttl> .
26
27 <http://guitarix.sourceforge.net/plugins/gxamp#12AT7>
28 a lv2:Plugin ;
29 lv2:binary <gxamp@LIB_EXT@> ;
30 rdfs:seeAlso <gxamp.ttl> .
31
32 <http://guitarix.sourceforge.net/plugins/gxamp#6C16>
33 a lv2:Plugin ;
34 lv2:binary <gxamp@LIB_EXT@> ;
35 rdfs:seeAlso <gxamp.ttl> .
36
37 <http://guitarix.sourceforge.net/plugins/gxamp#6V6>
38 a lv2:Plugin ;
39 lv2:binary <gxamp@LIB_EXT@> ;
40 rdfs:seeAlso <gxamp.ttl> .
41
42 <http://guitarix.sourceforge.net/plugins/gxamp#6DJ8>
43 a lv2:Plugin ;
44 lv2:binary <gxamp@LIB_EXT@> ;
45 rdfs:seeAlso <gxamp.ttl> .
0 /*
1 * Copyright (C) 2012 Hermann Meyer, Andreas Degert, Pete Shorthose
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 * --------------------------------------------------------------------------
17 */
18
19
20 #include "widget.h"
21
22 #include <iostream>
23
24 Widget::Widget(Glib::ustring plug_name)
25 {
26 // init values set by host
27 /*mastergain = -15.0;
28 pregain = -15.0;
29 wet_dry = 20.0;
30 drive = 0.25;
31 mid = 0.5;
32 bass = 0.5;
33 treble = 0.5;
34 clevel = 1.0;
35 alevel = 1.0;*/
36
37
38
39 // set propertys for the main paintbox holding the skin
40 m_paintbox.set_border_width(30);
41 m_paintbox.set_spacing(12);
42 m_paintbox.set_homogeneous(false);
43 m_paintbox.set_name(plug_name);
44 m_paintbox.property_paint_func() = "amp_skin_expose";
45 add(m_paintbox);
46 // box for the controllers
47 m_hbox_.set_spacing(12);
48 m_hbox_.set_homogeneous(false);
49 // this box set space for the upper part of the skin
50 m_hbox1_.set_spacing(12);
51 m_hbox1_.set_border_width(65);
52 // set a vertical box in the paintbox
53 m_paintbox.pack_start(m_vbox_);
54 // and put space box on top
55 m_vbox_.pack_start(m_hbox1_, Gtk::PACK_EXPAND_PADDING);
56 // and controller box on bottem
57 m_vbox_.pack_start(m_hbox_,Gtk::PACK_SHRINK);
58
59 // create all controllers
60 make_controller_box(&m_vbox, &m_bigknob, "mastergain", -20, 20, 0.1, mastergain, plug_name);
61 m_bigknob.signal_value_changed().connect(sigc::mem_fun(*this,
62 &Widget::on_knob_value_changed));
63
64 make_controller_box(&m_vbox1, &m_bigknob1, "pregain", -20, 20, 0.1, pregain, plug_name);
65 m_bigknob1.signal_value_changed().connect(sigc::mem_fun(*this,
66 &Widget::on_knob1_value_changed));
67
68 make_controller_box(&m_vbox2, &m_bigknob2, "distortion", 1, 100, 1, wet_dry, plug_name);
69 m_bigknob2.signal_value_changed().connect(sigc::mem_fun(*this,
70 &Widget::on_knob2_value_changed));
71
72 make_controller_box(&m_vbox3, &m_bigknob3, "drive", 0.01, 1, 0.01, drive, plug_name);
73 m_bigknob3.signal_value_changed().connect(sigc::mem_fun(*this,
74 &Widget::on_knob3_value_changed));
75
76 make_controller_box(&m_vbox4, &m_smallknob1, "mid", 0, 1, 0.01, mid, plug_name);
77 m_smallknob1.signal_value_changed().connect(sigc::mem_fun(*this,
78 &Widget::on_knob4_value_changed));
79
80 make_controller_box(&m_vbox5, &m_smallknob2, "bass", 0, 1, 0.01, bass, plug_name);
81 m_smallknob2.signal_value_changed().connect(sigc::mem_fun(*this,
82 &Widget::on_knob5_value_changed));
83
84 make_controller_box(&m_vbox6, &m_smallknob3, "treble", 0, 1, 0.01, treble, plug_name);
85 m_smallknob3.signal_value_changed().connect(sigc::mem_fun(*this,
86 &Widget::on_knob6_value_changed));
87
88 make_controller_box(&m_vbox7, &m_smallknob4, "cabinet", 1, 20, 1, clevel, plug_name);
89 m_smallknob4.signal_value_changed().connect(sigc::mem_fun(*this,
90 &Widget::on_knob7_value_changed));
91
92 make_controller_box(&m_vbox8, &m_smallknob5, "presence", 1, 20, 1, alevel, plug_name);
93 m_smallknob5.signal_value_changed().connect(sigc::mem_fun(*this,
94 &Widget::on_knob8_value_changed));
95
96 // put boxed controllers into controller box
97 m_hbox_.pack_start(m_vboxhh);
98 m_hbox_.pack_start(m_vbox1);
99 m_hbox_.pack_start(m_vbox2);
100 m_hbox_.pack_start(m_vbox3);
101 m_hbox_.pack_start(m_vbox7);
102 m_hbox_.pack_start(m_vbox8);
103 m_hbox_.pack_start(m_vbox);
104 // etxra box for the boxed tonestack controllers
105 m_hbox.set_border_width(8);
106 m_hbox.pack_start(m_vbox5);
107 m_hbox.pack_start(m_vbox4);
108 m_hbox.pack_start(m_vbox6);
109 m_hbox.pack_start(m_vboxii);
110 m_hbox.set_spacing(5);
111 // add tonestack controller box to main controller box
112 m_hbox_.pack_start(m_hbox);
113
114 // connect expose handler as resize handler
115 m_paintbox.signal_expose_event().connect(
116 sigc::mem_fun(this, &Widget::_expose_event), true);
117
118 show_all();
119 }
120
121 Widget::~Widget()
122 {
123
124 }
125 // create stackboxes with controllers from gxw
126 void Widget::make_controller_box(Gtk::VBox *box,
127 Gxw::Regler *regler,
128 Glib::ustring label,
129 float min, float max,
130 float digits, float value,
131 Glib::ustring plug_name)
132 {
133 //Gtk::Label* pr = new Gtk::Label(label, 0);
134 //pr->set_name("amplabel");
135 Glib::ustring label_image = GX_STYLE_DIR;
136 label_image += "/";
137 label_image += label;
138 label_image += "-label.png";
139 Gtk::Image *pr = new Gtk::Image(label_image);
140
141 Gtk::VBox* b1 = new Gtk::VBox();
142 box->pack_start( *Gtk::manage(b1), Gtk::PACK_EXPAND_PADDING);
143 box->pack_start( *Gtk::manage(pr),Gtk::PACK_SHRINK);
144 regler->cp_configure("KNOB", label, min, max, digits);
145 regler->set_show_value(false);
146 regler->cp_set_value(value);
147 regler->set_name(plug_name);
148 box->pack_start(*regler,Gtk::PACK_SHRINK);
149 Gtk::VBox* b2 = new Gtk::VBox();
150 box->pack_start( *Gtk::manage(b2), Gtk::PACK_EXPAND_PADDING);
151 }
152 // set borderwith for paintbox when widget resize
153 // to hold controllers in place
154 bool Widget::_expose_event(GdkEventExpose *event)
155 {
156 int x, y, width, height, depth;
157 m_paintbox.get_window()->get_geometry(x, y, width, height, depth);
158 //double_t height = m_paintbox.get_window()->get_height();
159 m_paintbox.set_border_width(height/10);
160 return false;
161 }
162 // receive controller value changes from host
163 void Widget::set_value(uint32_t port_index,
164 uint32_t format,
165 const void * buffer)
166 {
167 if ( format == 0 )
168 {
169 float value = *(float *)buffer;
170 switch ((PortIndex)port_index )
171 {
172 case AMP_MASTERGAIN:
173 mastergain = value;
174 m_bigknob.cp_set_value(mastergain);
175 break;
176 case AMP_PREGAIN:
177 pregain = value;
178 m_bigknob1.cp_set_value(pregain);
179 break;
180 case AMP_WET_DRY:
181 wet_dry = value;
182 m_bigknob2.cp_set_value(wet_dry);
183 break;
184 case AMP_DRIVE:
185 drive = value;
186 m_bigknob3.cp_set_value(drive);
187 break;
188 case MID:
189 mid = value;
190 m_smallknob1.cp_set_value(mid);
191 break;
192 case BASS:
193 bass = value;
194 m_smallknob2.cp_set_value(bass);
195 break;
196 case TREBLE:
197 treble = value;
198 m_smallknob3.cp_set_value(treble);
199 break;
200 case CLevel:
201 clevel = value;
202 m_smallknob4.cp_set_value(clevel);
203 break;
204 case ALevel:
205 alevel = value;
206 m_smallknob5.cp_set_value(alevel);
207 break;
208 case AMP_CONTROL:
209 break;
210 case AMP_NOTIFY:
211 break;
212 case AMP_OUTPUT:
213 break;
214 case AMP_INPUT:
215 break;
216 case AMP_OUTPUT1:
217 break;
218 case AMP_INPUT1:
219 break;
220 }
221 }
222 }
223 // write value changes to the host->engine
224 void Widget::on_knob_value_changed()
225 {
226 mastergain = m_bigknob.get_value();
227 //std::cout << "mastergain = " << mastergain << std::endl;
228 write_function( controller, 0, sizeof(float), 0, (const void*)&mastergain);
229 }
230
231 void Widget::on_knob1_value_changed()
232 {
233 pregain = m_bigknob1.get_value();
234 //std::cout << "pregain = " << pregain << std::endl;
235 write_function( controller, 1, sizeof(float), 0, (const void*)&pregain);
236 }
237
238 void Widget::on_knob2_value_changed()
239 {
240 wet_dry = m_bigknob2.get_value();
241 //std::cout << "wet_dry = " << wet_dry << std::endl;
242 write_function( controller, 2, sizeof(float), 0, (const void*)&wet_dry);
243 }
244
245 void Widget::on_knob3_value_changed()
246 {
247 drive = m_bigknob3.get_value();
248 //std::cout << "drive = " << drive << std::endl;
249 write_function( controller, 3, sizeof(float), 0, (const void*)&drive);
250 }
251
252 void Widget::on_knob4_value_changed()
253 {
254 mid = m_smallknob1.get_value();
255 //std::cout << "mid = " << mid << std::endl;
256 write_function( controller, 4, sizeof(float), 0, (const void*)&mid);
257 }
258
259 void Widget::on_knob5_value_changed()
260 {
261 bass = m_smallknob2.get_value();
262 //std::cout << "bass = " << bass << std::endl;
263 write_function( controller, 5, sizeof(float), 0, (const void*)&bass);
264 }
265
266 void Widget::on_knob6_value_changed()
267 {
268 treble = m_smallknob3.get_value();
269 //std::cout << "treble = " << treble << std::endl;
270 write_function( controller, 6, sizeof(float), 0, (const void*)&treble);
271 }
272
273 void Widget::on_knob7_value_changed()
274 {
275 clevel = m_smallknob4.get_value();
276 //std::cout << "treble = " << clevel << std::endl;
277 write_function( controller, 7, sizeof(float), 0, (const void*)&clevel);
278 }
279
280 void Widget::on_knob8_value_changed()
281 {
282 alevel = m_smallknob5.get_value();
283 //std::cout << "treble = " << alevel << std::endl;
284 write_function( controller, 8, sizeof(float), 0, (const void*)&alevel);
285 }
0 /*
1 * Copyright (C) 2012 Hermann Meyer, Andreas Degert, Pete Shorthose
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 * --------------------------------------------------------------------------
17 */
18
19 #pragma once
20
21 #ifndef SRC_HEADERS_WIDGET_H_
22 #define SRC_HEADERS_WIDGET_H_
23
24 #include <gtkmm.h>
25 #include <gxwmm.h>
26 #include "gxamp.h"
27 #include "../config.h" // for GX_STYLE_DIR
28 // LV2UI stuff
29 #include "lv2/lv2plug.in/ns/extensions/ui/ui.h"
30
31 class Widget : public Gtk::HBox
32 {
33 private:
34 void make_controller_box(Gtk::VBox *box,
35 Gxw::Regler *regler,
36 Glib::ustring label,
37 float min, float max,
38 float digits, float value,
39 Glib::ustring plug_name);
40 bool _expose_event(GdkEventExpose *event);
41 void set_value(uint32_t port_index,
42 uint32_t format,
43 const void * buffer);
44 public:
45
46 // public Lv2 communication stuff
47 LV2UI_Controller controller;
48 LV2UI_Write_Function write_function;
49 static void set_value_static(uint32_t port_index,
50 uint32_t buffer_size,
51 uint32_t format,
52 const void * buffer, Widget *self)
53 {
54 self->set_value(port_index,format,buffer);
55 }
56
57 Widget(Glib::ustring plug_name);
58 ~Widget();
59
60 protected:
61 Gtk::VBox m_vbox_;
62 Gtk::HBox m_hbox_;
63 Gtk::HBox m_hbox1_;
64 Gtk::VBox m_vbox;
65 Gtk::VBox m_vbox1;
66 Gtk::VBox m_vbox2;
67 Gtk::VBox m_vbox3;
68 Gtk::VBox m_vbox4;
69 Gtk::VBox m_vbox5;
70 Gtk::VBox m_vbox6;
71 Gtk::VBox m_vbox7;
72 Gtk::VBox m_vbox8;
73 Gtk::VBox m_vboxhh;
74 Gtk::VBox m_vboxii;
75
76 Gxw::PaintBox m_paintbox;
77 Gtk::HBox m_hbox;
78 Gxw::BigKnob m_bigknob;
79 Gxw::BigKnob m_bigknob1;
80 Gxw::BigKnob m_bigknob2;
81 Gxw::BigKnob m_bigknob3;
82 Gxw::SmallKnob m_smallknob1;
83 Gxw::SmallKnob m_smallknob2;
84 Gxw::SmallKnob m_smallknob3;
85 Gxw::SmallKnobR m_smallknob4;
86 Gxw::SmallKnobR m_smallknob5;
87 void on_knob_value_changed();
88 void on_knob1_value_changed();
89 void on_knob2_value_changed();
90 void on_knob3_value_changed();
91 void on_knob4_value_changed();
92 void on_knob5_value_changed();
93 void on_knob6_value_changed();
94 void on_knob7_value_changed();
95 void on_knob8_value_changed();
96 // stores port values we're currently at.
97 float mastergain;
98 float pregain;
99 float wet_dry;
100 float drive;
101 float mid;
102 float bass;
103 float treble;
104 float clevel;
105 float alevel;
106 };
107
108 #endif //SRC_HEADERS_WIDGET_H_
0 #!/usr/bin/env python
1 # encoding: utf-8
2
3 import sys, os, TaskGen, ctypes
4
5 def configure(conf):
6 pass
7
8 def build(bld):
9 bundle = 'gxamp.lv2'
10
11 src = ['gxamp.cpp',
12 'DSP/gx_resampler.cc',
13 'DSP/gx_convolver.cc'
14 ]
15 incl = ['../../','./', './DSP']
16 lib = []
17 if sys.platform.startswith("linux"):
18 lib.append('dl')
19 uselib = ['LV2CORE','GLIBMM']
20 if bld.env['ZITA_CONVOLVER']:
21 uselib.append('ZITA_CONVOLVER')
22 else:
23 src.append('../../zita-convolver/zita-convolver.cc')
24 incl.append('../../zita-convolver');
25 uselib.append('FFTW3')
26 if bld.env['ZITA_RESAMPLER']:
27 uselib.append('ZITA_RESAMPLER')
28 else:
29 src.append('../../zita-resampler-1.1.0/resampler.cc')
30 src.append('../../zita-resampler-1.1.0/resampler-table.cc')
31 incl.append('../../zita-resampler-1.1.0')
32 cxxflag =[]
33 if not bld.env['OPT']:
34 cxxflag = [ "-msse2", "-mfpmath=sse"]
35 lv2_plugin = bld(
36 features='cxx cshlib ',
37 includes = incl,
38 lib = lib,
39 uselib = uselib,
40 obj_ext = '_2.o',
41 cxxflags = cxxflag,
42 defines = ["LV2_SO"],
43 target = 'gxamp',
44 source = src,
45 install_path = '${LV2DIR}/%s' % bundle,
46 chmod = 0o755,
47 )
48 lv2_plugin.env['shlib_PATTERN'] = '%s.so'
49
50 uselib_local1 = []
51 libpath1 = []
52 lib1 = []
53 incl = ['../../../libgxwmm','../../../libgxw']
54 if sys.platform.startswith("linux"):
55 lib1.append('dl')
56 if bld.env["GX_LIB_SHARED"]:
57 lib1 += ['gxwmm','gxw']
58 libpath1 += [bld.path.find_dir("../../../libgxw/gxw").bldpath(bld.env),
59 bld.path.find_dir("../../../libgxwmm/gxwmm").bldpath(bld.env)]
60 else:
61 uselib_local1 += ['gxwmm','gxw']
62
63 lv2_plugin_gui = bld(
64 features='cxx cshlib ',
65 includes = incl,
66 lib = lib1,
67 uselib = 'LV2CORE GTKMM',
68 libpath = libpath1,
69 uselib_local = uselib_local1,
70 linkflags = '-Wl,-z,nodelete',
71 defines = ["LV2_GUI"],
72 target = 'gxamp_gui',
73 source = 'widget.cpp gxamp_gui.cpp',
74 install_path = '${LV2DIR}/%s' % bundle,
75 chmod = 0o755,
76 )
77 lv2_plugin_gui.env['shlib_PATTERN'] = '%s.so'
78
79
80 install_path = '${LV2DIR}/%s' % bundle,
81 bld.install_files('${LV2DIR}/gxamp.lv2', 'manifest.ttl')
82 bld.install_files('${LV2DIR}/gxamp.lv2', 'gxamp.ttl')
83
84 gxlv2style_files = [
85 'GUI/amp21.png',
86 'GUI/amp22.png',
87 'GUI/amp23.png',
88 'GUI/amp24.png',
89 'GUI/amp25.png',
90 'GUI/mastergain-label.png',
91 'GUI/pregain-label.png',
92 'GUI/drive-label.png',
93 'GUI/distortion-label.png',
94 'GUI/cabinet-label.png',
95 'GUI/presence-label.png',
96 'GUI/presence-label.png',
97 'GUI/bass-label.png',
98 'GUI/treble-label.png',
99 'GUI/mid-label.png',
100 'GUI/knob.png',
101 'GUI/knob-middle.png',
102 'GUI/knob-small.png',
103 'GUI/metalic1-knob.png',
104 'GUI/metalic1-knob-middle.png',
105 'GUI/metalic1-knob-small.png',
106 'GUI/black-knob.png',
107 'GUI/black-knob-middle.png',
108 'GUI/black-knob-small.png',]
109
110 bld.install_files(bld.env['GX_STYLE_DIR'], gxlv2style_files, chmod=0o644)
111
241241 <property name="visible">True</property>
242242 <property name="can_focus">False</property>
243243 <property name="yscale">0</property>
244 <property name="left_padding">17</property>
244 <property name="left_padding">16</property>
245245 <child>
246246 <object class="GtkVBox" id="vbox10">
247247 <property name="visible">True</property>
457457 <property name="can_focus">False</property>
458458 <property name="top_padding">14</property>
459459 <property name="bottom_padding">14</property>
460 <property name="right_padding">14</property>
460 <property name="right_padding">20</property>
461461 <child>
462462 <object class="GxPaintBox" id="gxpaintbox5">
463463 <property name="width_request">47</property>
799799 return conv_start();
800800 }
801801
802 bool CabinetConvolver::do_only_update() {
803 CabDesc& cab = *getCabEntry(cabinet).data;
804 float cab_irdata_c[cab.ir_count];
805 impf.compute(cab.ir_count,cab.ir_data,cab_irdata_c);
806
807 if (!conv.update(cab.ir_count, cab_irdata_c, cab.ir_sr)) {
808 return false;
809 }
810 update_sum();
811 return true;
812 }
813
802814 bool CabinetConvolver::start(bool force) {
803815 if (force) {
804816 current_cab = -1;
817829 void CabinetConvolver::check_update() {
818830 if (cabinet_changed() || sum_changed()) {
819831 do_update();
820 }
832 }
821833 }
822834
823835 void CabinetConvolver::run_cab_conf(int count, float *input0, float *output0, PluginDef *p) {
941953 return conv_start();
942954 }
943955
956 bool PreampConvolver::do_only_update() {
957 PreDesc& pre = *getPreEntry(preamp).data;
958 float pre_irdata_c[pre.ir_count];
959 impf.compute(pre.ir_count,pre.ir_data,pre_irdata_c);
960 if (!conv.update(pre.ir_count, pre_irdata_c, pre.ir_sr)) {
961 return false;
962 }
963 update_sum();
964 return true;
965 }
966
944967 bool PreampConvolver::start(bool force) {
945968 if (force) {
946969 current_pre = -1;
10261049 return conv_start();
10271050 }
10281051
1052 bool ContrastConvolver::do_only_update() {
1053 float contrast_irdata_c[contrast_ir_desc.ir_count];
1054 presl.compute(contrast_ir_desc.ir_count,contrast_ir_desc.ir_data,contrast_irdata_c);
1055
1056 if (!conv.update(contrast_ir_desc.ir_count, contrast_irdata_c, contrast_ir_desc.ir_sr)) {
1057 return false;
1058 }
1059 update_sum();
1060 return true;
1061 }
1062
10291063 bool ContrastConvolver::start(bool force) {
10301064 if (force) {
10311065 sum = no_sum;
539539 (boost::format(_("invalid style '%1%' on command line"))
540540 % rcset).str());
541541 }
542 if (jack_outputs.size() >= 2) {
542 if (jack_outputs.size() > 2) {
543543 gx_print_warning(
544544 _("main"),
545545 _("Warning --> provided more than 2 output ports, ignoring extra ports"));
504504 sigc::bind(
505505 sigc::ptr_fun(MyPaintBox::create_from_builder),
506506 background_adj));
507
508 Glib::RefPtr<Gdk::Pixbuf> pb = Gdk::Pixbuf::create_from_file(
509 options.get_style_filepath("bypass.svg"), 300, 150);
510 bypass_image->set(pb);
511 pb = Gdk::Pixbuf::create_from_file(
512 options.get_style_filepath("mute.svg"), 300, 150);
513 mute_image->set(pb);
507 Glib::RefPtr<Gdk::Pixbuf> pb;
508 try {
509 pb = Gdk::Pixbuf::create_from_file(
510 options.get_style_filepath("bypass.svg"), 300, 150);
511 bypass_image->set(pb);
512 } catch (const Glib::FileError& ex) {
513 gx_system::gx_print_error("liveplay", ex.what());
514 } catch (const Gdk::PixbufError& ex) {
515 gx_system::gx_print_error("liveplay", ex.what());
516 } catch(...) {
517 gx_system::gx_print_error("liveplay", "failed to load pixmap bypass.svg");
518 }
519 try {
520 pb = Gdk::Pixbuf::create_from_file(
521 options.get_style_filepath("mute.svg"), 300, 150);
522 mute_image->set(pb);
523 } catch (const Glib::FileError& ex) {
524 gx_system::gx_print_error("liveplay", ex.what());
525 } catch (const Gdk::PixbufError& ex) {
526 gx_system::gx_print_error("liveplay", ex.what());
527 } catch(...) {
528 gx_system::gx_print_error("liveplay", "failed to load pixmap mute.svg");
529 }
514530 use_composite = window->get_display()->supports_composite();
515531 if (use_composite) {
516532 brightness_adj->signal_value_changed().connect(sigc::mem_fun(this, &Liveplay::on_brightness_changed));
449449 static void run_cab_conf(int count, float *input, float *output, PluginDef*);
450450 static int register_cab(const ParamReg& reg);
451451 bool do_update();
452 bool do_only_update();
452453 virtual void check_update();
453454 virtual bool start(bool force = false);
454455 bool cabinet_changed() { return current_cab != cabinet; }
480481 static void run_pre_conf(int count, float *input, float *output, PluginDef*);
481482 static int register_pre(const ParamReg& reg);
482483 bool do_update();
484 bool do_only_update();
483485 virtual void check_update();
484486 virtual bool start(bool force = false);
485487 bool preamp_changed() { return current_pre != preamp; }
507509 inline void update_sum() { sum = level; }
508510 virtual void check_update();
509511 bool do_update();
512 bool do_only_update();
510513 inline bool sum_changed() { return abs(sum - level) > 0.01; }
511514 virtual bool start(bool force = false);
512515 public:
2323 use_2to3 = True
2424
2525 # used by waf dist and waf build
26 VERSION='0.24.3'
26 VERSION='0.25.1'
2727 APPNAME='guitarix'
2828
2929 good_faust_versions = ['0.9.43','0.9.46']
119119 default=False,
120120 const=True,
121121 help=("don't build with new ladspa plugins"))
122
123 comp.add_option('--build-lv2',
124 action='store_const',
125 default=False,
126 const=True,
127 help=("build with new lv2 plugins"))
122128
123129 faust = opt.add_option_group("Faust-Compiler")
124130
316322 ################################################################
317323 # configuration helper functions
318324 #
325 def sub_file(src_fname, dst_fname, lst):
326
327 f = open(src_fname, 'rU')
328 txt = f.read()
329 f.close()
330
331 for (key, val) in lst:
332 re_pat = re.compile(key, re.M)
333 txt = re_pat.sub(val, txt)
334
335 f = open(dst_fname, 'w')
336 f.write(txt)
337 f.close()
319338
320339 def check_faust(conf):
321340 if Options.options.no_faust:
513532 conf.check_cfg(package='giomm-2.4', atleast_version='2.24', args='--cflags --libs', uselib_store='GIOMM', mandatory=1)
514533 conf.check_cfg(package='fftw3f', atleast_version='3.1.2', args='--cflags --libs', uselib_store='FFTW3', mandatory=1)
515534 conf.check_cfg(package='lrdf', args='--cflags --libs', uselib_store='LRDF', mandatory=1)
535 if opt.build_lv2:
536 conf.check_cfg(package='lv2', atleast_version='1.2.0',args='--cflags --libs', uselib_store='LV2CORE', mandatory=1)
516537 if not opt.no_ladspa:
517538 conf.check(header_name='ladspa.h', mandatory=1)
518539
533554 conf.define('GX_ICON_DIR', os.path.normpath(os.path.join(conf.env['SHAREDIR'], 'guitarix','icons')))
534555 conf.define('GX_PIXMAPS_DIR', os.path.normpath(os.path.join(conf.env['SHAREDIR'], 'pixmaps')))
535556 conf.define('GX_VERSION', VERSION)
536
557
537558 if conf.env.DEST_CPU=='x86_64':
538559 conf.define('OS_64_BIT', 1)
539560 else:
545566 conf.define('BINDIR', os.path.normpath(os.path.join(conf.env['PREFIX'], 'bin')))
546567 conf.define('DESKAPPS_DIR', os.path.normpath(os.path.join(conf.env['SHAREDIR'], 'applications')))
547568 conf.define('BIN_NAME', APPNAME)
569
570 conf.env['LV2'] = opt.build_lv2
571 if opt.build_lv2:
572 conf.define('LV2DIR', os.path.normpath(os.path.join(conf.env['LIBDIR'], 'lv2')) )
573
548574
549575 conf.env['NEW_LADSPA'] = not opt.no_ladspa and not opt.no_new_ladspa
550576 conf.env['LADSPA'] = not opt.no_ladspa
563589 cxxflags += opt.cxxflags_release.split()
564590 cpu_model = None
565591 if opt.optimization:
592 conf.env['OPT'] = False
566593 cpu_model = append_optimization_flags(cxxflags)
567594 conf.env['CXXFLAGS'] += cxxflags
568595
571598 conf.check_tool('python')
572599 conf.check_cfg(package='pygobject-2.0', args='--cflags --libs', uselib_store='PYGOBJECT', mandatory=True)
573600 conf.cfg_get_variable(package='pygobject-2.0', variable='codegendir')
574
575 # config subdirs
576 conf.sub_config('pygxw');
577 conf.sub_config('glade-gxw');
578 conf.sub_config('libgxwmm');
579 conf.sub_config('libgxw/gxw');
580601
581602 conf.sub_config('src/gx_head');
582603 if conf.env['FAUST']:
584605 conf.sub_config('src/plugins');
585606 if conf.env["LADSPA"]:
586607 conf.sub_config('ladspa');
608 if conf.env["LV2"]:
609 opt.shared_lib = True;
610 conf.sub_config('src/LV2/gxamp.lv2');
611 pa = '.so'
612 sub_file('./src/LV2/gxamp.lv2/manifest.ttl.in', './src/LV2/gxamp.lv2/manifest.ttl', (('@LIB_EXT@', '%s' % pa), ))
613 conf.sub_config('src/LV2/gxamp.lv2/StereoAmp');
614 sub_file('./src/LV2/gxamp.lv2/StereoAmp/manifest_stereo.ttl.in', './src/LV2/gxamp.lv2/StereoAmp/manifest.ttl', (('@LIB_EXT@', '%s' % pa), ))
615
616 # config subdirs
617 conf.sub_config('pygxw');
618 conf.sub_config('glade-gxw');
619 conf.sub_config('libgxwmm');
620 conf.sub_config('libgxw/gxw');
621
587622 conf.sub_config('rcstyles');
623 if conf.env["GX_LIB_DEV"]:
624 pa = conf.env['PREFIX']
625 sub_file('./libgxw/gxw.pc.in', './libgxw/gxw.pc', (('prefix=/path', 'prefix=%s' % pa), ))
626 sub_file('./libgxwmm/gxwmm.pc.in', './libgxwmm/gxwmm.pc', (('prefix=/path', 'prefix=%s' % pa), ))
627
588628
589629 # some output
590630 print("")
611651
612652
613653 display_feature("build ladspa plugins", conf.env['LADSPA'])
654 display_feature("build lv2 plugins", conf.env['LV2'])
614655 display_feature("skip Python Library Wrapper", not conf.env['GX_PYTHON_WRAPPER'])
615656 display_feature("use prebuild C++ Library Wrapper", conf.env['USE_GENERATED_CPP'])
616657 display_feature("skip building shared lib", not conf.env['GX_LIB_SHARED'])
658 display_feature("skip install lib-dev", not conf.env['GX_LIB_DEV'])
617659 display_feature("Localization (intltool)", conf.env['ENABLE_NLS'])
618660 display_feature("skip glade support", not conf.env['GX_GLADE_SUPPORT'])
619661 if conf.env['GX_GLADE_SUPPORT']:
624666
625667 if not opt.no_ladspa:
626668 display_msg("Install ladspa", conf.env['LADSPADIR'], 'CYAN')
669 if opt.build_lv2:
670 display_msg("Install lv2", conf.env['LV2DIR'], 'CYAN')
627671 display_msg("Guitarix shared files directory", gxsharedir, 'CYAN')
628672 display_msg("Guitarix pixmaps directory", conf.env['GX_PIXMAPS_DIR'], 'CYAN')
629673 if conf.env['g++']:
656700 bld.add_subdirs('pygxw')
657701 bld.add_subdirs('src/faust')
658702 bld.add_subdirs('src/plugins')
659
660703 bld.add_subdirs('rcstyles')
661704 bld.add_subdirs('pixmaps')
662
663 pa = bld.env['GX_SOUND_DIR']
664705 bld.add_subdirs('src/gx_head')
665706 if bld.env["NEW_LADSPA"]:
666707 bld.add_subdirs('src/ladspa')
708 if bld.env["LV2"]:
709 bld.add_subdirs('src/LV2/gxamp.lv2')
710 bld.add_subdirs('src/LV2/gxamp.lv2/StereoAmp')
711
667712 bld.install_files(bld.env['DESKAPPS_DIR'], 'guitarix.desktop', chmod=0o644)
668713 bld.install_files(bld.env['GX_FACTORY_DIR'], 'factorysettings/dirlist.js', chmod=0o664)
669714 bld.install_files(bld.env['GX_FACTORY_DIR'], 'factorysettings/funkmuscle.gx', chmod=0o664)
705750
706751 if bld.env["GX_LIB_SHARED"]:
707752 bld.add_post_fun(post)
708
753 if bld.env["GX_LIB_DEV"]:
754 bld.install_files('${PREFIX}/include/gxw','libgxw/gxw/*.h')
755 bld.install_files('${PREFIX}/include','libgxw/gxw.h')
756 bld.install_files('${PREFIX}/lib/pkgconfig', './libgxw/gxw.pc')
757 bld.install_files('${PREFIX}/include/gxwmm','libgxwmm/gxwmm-generated/*.h')
758 bld.install_files('${PREFIX}/include/gxwmm','libgxwmm/gxwmm/*.h')
759 bld.install_files('${PREFIX}/include','libgxwmm/gxwmm.h')
760 bld.install_files('${PREFIX}/lib/pkgconfig', './libgxwmm/gxwmm.pc')
709761
710762 ################################################################
711763 # other commands