HN user

clumsycomputer

22 karma

https://clumsycomputer.com

Posts8
Comments31
View on HN

Thank you. I've opted to forego data editing in the app for now, but a path exists to make that a reality. My priority is to allow people to experiment and build on the foundations I've laid here however they see fit. One benefit of the current API is that any data source can easily be integrated.

ive ejected out of the next ecosystem and work in preact now. some of the optimizations being adopted across react and next had me worried about insurmountable lock-in! with that said vercel's github integration is a beautiful thing that i will continue to use. the automated preview deployments are just too clutch

love these type of optimizations... blurhash seems to be giving me more pleasant results that thumbhash on the few examples i ran through it! thumbhash seems to over emphasize/crystalize parts of the image and results in a thumbnail that diverges from the source in unexpected ways.

either way this is awesome, and thanks for sharing

unfortunately don’t have permission to download, but love the style very much! hopefully i’ll remember to try it out in the future when i get a chance

howdy hn,

laid out in the link above is a number of concepts dealing with the generation and analysis of discrete rhythms.

there is also a reference implementation of these concepts written in typescript

this has been a labor of love and curiosity, which started out with the goal of helping generate algorithmic art. along the way it has become an art in itself, and believe there are many applications outside of art where this can be applied. i most interested to hear from others how this might be used within cryptography and data encoding

if anyone has the the time to look through these concepts and chat, id be grateful

https://www.clumsycomputer.com/software/resume

https://github.com/clumsycomputer

  location: colorado
  remote: yes
  relocate: yes
i'm a balanced frontend developer who has worked on a variety of products across several companies

my free time is focused on developing, maintaining, and sharing open-source software that assists developers in their creative pursuits. you can checkout the packages i've released at https://www.clumsycomputer.com/software/packages

i'm happiest when collaborating with others, and really enjoy the process of iterating on a problem until an effective/understandable solution is realized

i would love to add this type of functionality to my own music collection over at https://www.clumsycomputer.com/curations/music

im not really sure how feasible that would be though since its essentially just a a bunch of links sourced from a variety of music services, the most prominent being youtube

perhaps it would be possible to extract the audio data from the video stream, compute the key in a web worker, and then queue up a transition

anyhow this is tight

bravo

howdy y'all,

was looking for a simple way to explore and play with signal generation, and think that creating wav files is the most straightforward and robust way to go about doing just that. in order to scratch that itch i've implemented a function that takes a sample rate and channels data (mono or stereo), and returns an ArrayBuffer of the corresponding structured wav file.

implementing this package was a quick and fun process, which gave me the opportunity to learn about packing bits in the browser. whenever time allows in the future (some amount of years, hopefully not decades), i look forward to implementing a similar function for png files

Euclidean rhythms 4 years ago

ive been fascinated by euclidean rhythms for the past 10 years or so, and while playing with the pattern ended up coming across a more general flexible abstraction built upon euclidean rhythms that can generate every rhythm, which ive laid out over at https://github.com/clumsycomputer/clumsy-math#recursive-eucl....

euclidean rhythms are also great for generating / selecting musical scales and chords among other things

its at least cubic, but the loop here is generalized farther where the sub circle can be phase. so i don't know???

linear search in angle i believe, though depending on the use case i hold onto the index of the last matched point making the next search O(1)

thanks for introducing me to the secant method. at the very least it will help me think about it differently

thank you for the pointers

i don't have much formal math training, but have used scipy a handful to times successfully for other problems. optimize is new to me, but ill throw some things into and see what comes out

hi gus

the animation is something i constructed in order to help facilitate discussion and get help :)

i've outlined the computations more detail in a reply below

by constant time i mean O(1)

computing the white dot currently requires me to sweep the already computed loop points which isn't a big deal in a lot of use cases, but with audio its a show stopper

the white dot is also the key to a much more complex computation that im using

i have an implementation that does something along those lines, which suffices for graphics but doesn't work well for audio applications. think 48 000 samples per second.

the computation i've outlined in the animation is also just a small but very important piece of a much more complex computation

this white dot is my bottle neck

i'll do my best

1. define the base circle (orange)

2. define the sub circle (pink)

3. compute the range of the intersection circle's radius (blue)

4. compute the loop points (yellow)

   4A. compute intersection circle along range defined in 3

   4B. compute the intersection angle between base and intersection circles relative to the center of the intersection/sub circle (law of cosines)

   4C. compute the intersection point with intersection angle (green on blue & orange)

   4D. compute sub point with intersection angle (green on pink)

   4E. compute the loop point with the x component from intersection point (4C) and the y component from sub point (4D)
5. compute the trace point at trace angle (white)
   5A. trace the already computed loop points searching for the the two points where the trace angle fits between

   5B. compute the intersection between the line composed of the two matching loop points and the trace line originating at the sub circle's center with an angle of the trace angle
its a generalization of the drawing by Fritz Hügelschäffer linked below

http://www.mathematische-basteleien.de/eggcurves.htm#:~:text....

your reply certainly gives me hope that its possible, though i fear i've stared at this diagram for too long and am having difficulty viewing it with a fresh perspective.

some additional context.

im constructing the loop (yellow) with the black dots, which im computing in constant time. the dynamic circle (blue) is being constructed from the two static circles (pink, orange). the white dot is currently being computed by sweeping the already computed loop points from the center of the small circle (pink).

are there any laws or key points that may help me along? are there any similar problems that are well documented that you are aware of?

thanks

haha fair question... i'm hoping to find someone who will donate their time as i am doing myself. its important that improvements to the current solution i have remain in the open and free to use. otherwise said help may be counterproductive and even destructive

howdy hn

for a couple years now ive had an itch to curate my favorite music outside of the major music platforms in order to facilitate sharing with my friends who are all devoted to different apps. finally i got to scratching last month and am pleased with the first iteration. its uncluttered, straightforward, and provides flexibility in how the music is organized/categorized

the app is built with nextjs and is currently frontend only. im not entirely sure what the next step for this project is. there is a good chance it will remain as is for the foreseeable future with the exception of adding more music. however depending on the feedback, i may continue iterating and possibly even split out into a dedicated service for others to take advantage in an easier fashion than forking

a link to the code below:

https://github.com/clumsycomputer/clumsy-website/tree/produc...