How to smoothe out Arrays ?
@jameslo said:
@Bangflip Can you please post your noisy data so I can try a different smoothing algorithm on it? I'm porting something from the Arduino world for fun.
Yes, I deleted already my old data, but recorded this curve today, that you can use it. It's an strange curve.
I got this curve by send the pitchbend Data from Pure Data to Cubase and record as automation. All values linear via Mackie Mode. Then I switched Cubase to "Houston" Mode and recorded the the output of cubase with pd into the array. The result is always the same. I thought it has maybe to do with the 20 years old algorithm for my houston hardware. Because if I send the midi data via mackie mode to pd, it's much smoother, without these artefacts.

The curve you can see here is also a little bit different in what I described after starting this thread, because the artefacts are in the opposite direction. But it's clear to see with the eyes, how the curve should be. Would be cool, if you could also post, what you came up with. I am interested in the result. 
How to smoothe out Arrays ?
@Bangflip I would start by making a patch that takes a lower and upper index such that curve[lower] < curve[upper]. That patch would perform the interpolation you described to substitute for the negative portions of the raw curve, and if the indexes are adjacent then it would just output the adjacent curve values. You can test that patch until you are convinced it's working. Then your problem is mostly reduced to finding all the lower and upper index pairs, with one special case if the largest curve value isn't at the end of the input table.
The (lower, upper) pairs for your example are (0,1) (1,4) (4,5) (5,6) (6,8) (8,9) and (9,10)
I tried using [lop~] but the problem is that its beginning state is always 0, which may or may not be what you want. Also, lop~ may allow some negative slope to pass through, which I'm gathering you don't want.
[lincurve] based on SuperCollider's lincurve mapping
Here's a Pd-vanilla version of a linear-to-curved range mapping formula from SuperCollider. Published at https://github.com/jamshark70/hjh-abs . There's a message-rate and signal-rate version.

(Helpfile typo has been fixed but I won't bother to upload a new screenshot.)
This is, of course, close to cyclone's [scale]. It's close -- the symmetry is different (help file says "better" but actually that's a matter of taste, or situational need). For reciprocal values of [scale]'s "exponential" factor, the respective curves seem to be a reflection around the diagonal (x <--> y); for negated values of [lincurve]'s curve factor, one curve is a 180-degree rotation of the other (x --> -x and y --> -y). Compare -7 vs +7 lincurve against 0.2 vs 5.0 scale:
-7 curve, ~0.2 exp:

+7 curve, ~5.0 exp (lincurve and scale are very very close here!):

hjh
curve factor values (-1 to 1) to exponent?
@avpd The maths is written at the beginning of the source file for [curve~]....... curve~.txt
Also take a look at this (for vanilla)....... https://forum.pdpatchrepo.info/topic/12145/curvegen-curved-ramp-generator-for-pd-vanilla .....
Download the patches from the link and they should furnish some clues for your patch if the mmb original external used the same factor values as cyclone.
David.
Does using inlet~ create latency?
@jameslo I didn't actually go through the code but just in the simple tests I did if you create the entirety of the graph with the [receive~] (including the [receive~]) before the graph with the [send~] (including the [send~]) then it appears to be in the right sort-order.
however when I deleted the [send~] and [receive~] afterwards I couldn't get it back in the right order when I recreated them no matter the order.. maybe something to do with [send~] being at the bottom of a graph and [receive~] being at the top of one or something.
might have a look through the source later and try to figure it out for real.
I would think that this is dependent on the implementation and not guaranteed to stay the same if the implementation changes significantly tho..
Ideally all [send~] graphs would be sorted before their corresponding [receive~] graphs..
Does using inlet~ create latency?
@jameslo i haven't tested it but it might be the case that if you make sure to create [receive~] after [send~] that there will be no latency, (unless the [receive~] is in part of the graph that leads to [send~]). You might have to create the entire graph the [recieve~] is part of after creating the entire graph the [send~] is part of, I'm not sure..
edit: after testing I was not able to get that to work 
edit2: after further testing it seems like if I create the graph with the [receive~] first it gets sorted last, but not if I delete the [receive~] and recreate it afterwards
so there isn't always latency, it depends on how the dsp graph is sorted. If the [recieve~] is sorted earlier in the graph before the [send~], as in the case of feedback, then there will be a block delay since [recieve~] will process the shared buffer's samples before [send~] has had a chance to write to the shared buffer. (so [recieve~] will only get the samples written in the current block by [send~] in the next block, creating a block delay.)
Top 3 cay nuoc nong lanh Karofi ban chay nhat nam 2020
Bạn đã biết về top 3 cây nóng lạnh Karofi tốt nhất tại dienmay Sakura chưa? Nếu chưa biết đến 3 sản phẩm này bạn có thể tham khảo bài viết dưới đây để tìm hiểu thêm thông tin về những sản phẩm cây nóng lạnh bán chạy nhất năm 2020.
Cây nước nóng lạnh Karofi HC 15 tiết kiệm điện - mẫu úp bình hiện đại
Các thông số kỹ thuật của máy
● Kích thước máy: 285 x 336 x 1004 (đơn vị: mm)
● Mức điện áp: 220V/50Hz
● Công suất máy nóng lạnh: 500W/ 85W
● Trọng lượng máy: 13.5 kg
● Nhiệt độ làm nóng nước: Từ 85 đến 95 độ C
● Nhiệt độ nước lạnh: Từ 5 đến 10 độ C
● Màu sắc: Màu trắng
● Dung tích của bình nước nóng lạnh: 1.1 / 2.8 lít
● Khóa an toàn của vòi nước nóng: Có
● Khoang chứa đồ: Có
Ưu điểm nổi bật của mẫu cây nóng lạnh HC15
● Có hệ thống làm nóng và lạnh nước uống tự động. Đây là ưu điểm vô cùng tiện lợi và đơn giản cho người dùng trong bất cứ hoàn cảnh nào. Khi nào bạn cần sử dụng chỉ cần mở vòi và lấy nước là được.
● Trang bị khóa an toàn cho trẻ nhỏ đối với vòi nước nóng. Đây là một ưu điểm được đánh giá cao và cực kỳ phù hợp với những gia đình có trẻ nhỏ.
● Sử dụng công tắc nóng và lạnh riêng biệt. Người dùng có thể linh hoạt trong việc bật hoặc tắt bất cứ khi nào có nhu cầu sử dụng. Nhờ có điều này mà người dùng có thể tiết kiệm điện năng.
● Dễ dàng hơn trong việc quan sát để có thể chủ động thay bình mới khi hết nước.
● Có khoang chứa đồ vô cùng tiện lợi nằm ngay bên dưới cây nước. Vị trí được thiết kế thích hợp để đặt cốc nước, cà phê hoặc những gói đồ uống khác, …
● Hệ thống hai vòng nóng lạnh riêng biệt với hai màu sắc khác nhau giúp người dùng dễ dàng hơn trong việc phân biệt.
● Thiết kế hiện đại, trang nhã, phù hợp với không gian hiện đại lẫn truyền thống.
Máy nước nóng lạnh Karofi tốt nhất - HC18 mẫu hút bình khác biệt
Thông số kỹ thuật mẫu HC18
● Kích thước cây nóng lạnh: 300 x 330 x 1010 (đơn vị mm)
● Trọng lượng của máy: 13.9 kg
● Mức điện áp: 220V/ 50Hz
● Công suất làm nước nóng / lạnh: 500W /90W
● Nhiệt độ làm nước nóng: 85oC - 95oC
● Nhiệt độ làm nước lạnh: 5 đến 10 độ C
● Màu sắc: Trắng đi cùng với tấm ốp mặt màu đen
● Dung tích tổng thể của cây nóng/ lạnh: 1.1 lít/ 3.2 lít
● Khóa an toàn của vòi nước nóng: Có
● Khoang chứa đồ: Không có
Ưu điểm của cây nóng lạnh mẫu HC18
● Thiết kế bắt mắt, trang nhã và tinh tế. Dễ dàng trở thành điểm nhấn trong không gian nhà ở hoặc chốn văn phòng làm việc.
● Hệ thống làm nóng hoặc lạnh tự động nguồn nước uống đầu vào. Đơn giản, dễ dàng sử dụng và cực kỳ tiện lợi cho người dùng. Khi người sử dụng có nhu cầu, chỉ cần mở vòi và lấy nước dùng.
● Khóa an toàn cho trẻ nhỏ ở vòi nước nóng hỗ trợ các gia đình có em nhỏ an toàn hơn trong trường hợp bất cẩn.
● Thiết kế hai công tắc nóng và lạnh với hai màu sắc dễ dàng phân biệt. Dễ dàng hơn cho người sử dụng dùng độc lập tùy theo nhu cầu sử dụng của từng đối tượng. Đồng thời với thiết kế riêng biệt như vậy giúp cho người dùng tiết kiệm được nhiều điện năng hơn.
● Sử dụng công nghệ hút bình mới: Thao tác thay bình nước mới sẽ dễ dàng hơn, đồng thời nâng cao tính thẩm mỹ của sản phẩm. Thiết kế nhỏ gọn không chiếm nhiều không gian diện tích
● Có ba vòi lấy nước với từng chế độ riêng biệt: Nóng - lạnh và chế độ nước ở nhiệt độ thường cho người dùng thoải mái lựa chọn.
Review cây nước nóng lạnh Karofi HC300-RO tốt nhất - không cần thay thế bình nước
Thông số kỹ thuật máy nóng lạnh Karofi HC300-RO
● Trọng lượng của máy: 14 kg
● Kích thước máy: 300 x 395 x 1110 (đơn vị: mm)
● Mức điện áp: 220V / 50Hz
● Công suất làm nước nóng/ lạnh: 500W/ 85W
● Nhiệt độ nước nóng: từ 85oC đến 95oC
● Nhiệt độ của nước lạnh: từ 5oC đến 10oC
● Màu sắc: Trắng trang nhã
● Dung tích tổng của cây nước nóng/ lạnh: 1.1 lít / 3.2 lít
● Khóa an toàn của vòi nước nóng: Có
● Khoang chứa đồ: Không có.
Ưu điểm nổi trội của sản phẩm
● Hệ thống tự làm nóng và lạnh nguồn nước uống đầu vào: Tiện lợi hơn cho người dùng trong mọi trường hợp cần có nhu cầu sử dụng.
● Khóa an toàn ở vòi nước nóng: Đảm bảo sự an toàn cho những gia đình có trẻ nhỏ trong những trường hợp bất cẩn.
● Thiết kế công tắc hai vòi nóng và lạnh riêng biệt với hai màu sắc khác nhau: Giúp người dùng có những sự lựa chọn độc lập đồng thời hỗ trợ tiết kiệm điện năng.
● Tích hợp với hệ thống lọc nước RO hiện đại: Nguồn nước đầu vào trong hệ thống máy nóng lạnh được lấy ra từ hệ thống lọc RO để đảm bảo được nguồn nước sạch và hợp vệ sinh. Thiết kế tiện dụng, người dùng không cần phải thay thế bình nước trong quá trình sử dụng sản phẩm. Đồng thời cũng sẽ chủ động kiểm soát được nguồn nước một cách đảm bảo chất lượng nhất.
● Không cần thay thế bình nước mà sử dụng trực tiếp nước từ nguồn nối.
● Có 3 vòi nước nóng, lạnh và thường tùy nhu cầu sử dụng.
Hệ thống lọc RO hiện đại tích hợp trong máy làm nóng/ lạnh nguồn nước
● Lõi lọc PP 5 micron
● Lõi lọc OCB
● Lõi lọc PP 1 micron
● Màng lọc RO 100GPD Hàn
● Lọc lọc T33
● Lõi lọc Nano Silver diệt hơn 99% vi khuẩn ở trong nước
Nguồn: https://dienmaysakura.vn/top-3-cay-nong-lanh-karofi-ban-chay-nhat-nam-2020.html
Vanilla programable curve, advice welcomed.
Pretty much [line~] with curve per segment added in. The number range for curves is stupid, it assumes you are smarter than it is, and at their extremes the curves can go fast enough to click when used for amplitude mod, but it fills my needs and its issues are easy enough to work around, fixing them would remove some of its ability as well. Perhaps I will pollish it off sometime down the road. curve.zip
Edit; I no longer think the number range for the curve is stupid, it is intuitive, easy to type and plays well with sliders set to log.


A-weighting Fletcher-Munson equal-loudness curve?
@lacuna It is only "measured" in the sense that it is what a healthy human perceives as equal loudness, and it has been improved upon over the years.
You can hand draw your curve into a Hann window to use with a regular Fir filter, but you should be able to program (expr) the curve for the Hann window from the A weight formula.
It has to be easier than building an Eq to match an A weight curve.
http://www.katjaas.nl/minimumphase/minimumphase.html ........ the [pd spectfilter~] part.
But if you are using this with external components like a microphone and speakers then you need to compensate for their foibles and you could use 07.adaptive_equalisation from the adaptive library to make an overlay for the Hann A-weight curve.
I.e. multiply by the A weight Hann window and multiply again by the inverted curve from adaptive.
I don't think phase will be a concern, but that depends what you want to do with it.
You might be stuck with a download of Pd-extended to use adaptive without too much fuss..
David.
16 parameters for 1 voice, continued...
@whale-av I love it how the post is named "16 parameters for one voice" and ended up in the extreme...hahah, 1_vod_12_2560 is pretty neat, sounds a lot like an organ, and yes the end is pretty interesting, hearing the different patterns of the sine waves. it would be nice to play with their intensities while there are no curves left, to see how different timbres are formed, i dont think exclusion is the way but rather integrating everything, a time for curves then those curves could sit still, the glissandi, then microtonal, its the best.
but what do you mean a curve for each sine? that would be a lot of curves, wouldnt it be better for one curve to control all their intensities? like the way you had done: each sine with a graph and only one curve controlling their position on the graph(maybe a graph generator to generate for each sine a graph, or for example: 2000 graphs to be followed by all the sine waves). or like the way we did way back when forming a list to pass through combinations of the sine´s volumes.
BtW, vod_13_20480 and vod_14_50960 didnt work, i just heard sometimes like glitchy noise, like a "popping".



