0xfe.blogspot.com
atom
mo.town blog
0xfe.blogspot.com
This blog has moved to MO.TOWN
atom gd openSearch thr
https://0xfe.blogspot.com/feeds/posts/default
- Last post
- Dec 22, 2023
- Posts in 24 h · 7 days · 30 days
- 0 · 0 · 0
- Our last check
- Answering
- Served from
- United States
- Format
- atom
- Features in the feed
- gd, openSearch, thr
Posts
What our queue read from this feed. Open one to read it here, or go to the site that published it.
- The Firewall Guy
Dec 22, 2023 · original
About 20 years ago, I worked as an independent consultant at a major telecom. I wrote a program that did some stuff, and couldn't get it to communicate on the network. Developers there didn't get root on a machine, and there was limited access to tooling, so I reached out to the sysadmin. A day later he came back to me and said, "everything here's good, check with the firewall guy." The firewall guy. It took me a day to track down the firewall guy. "Umm... Mr. Firewall guy, can you help me out with this problem?" Firewall guy was kinda grumpy. He begrudgingly collected some information, begrudgingly looked at stuff. "Firewall's fine. Talk to the network guy." Two days later, I found the network guy, who was nicer: "Network's good. Talk to the firewall guy." "I did a couple of days ago. Firewall guy says everything's fine." "Okay, then you're probably resolving to the wrong addresses. Tal - Generating Spectrograms with Neural Networks
Mar 2, 2020 · original
In a previous experiments, I used spectrograms instead of raw audio as inputs to neural networks, while training them to recognize pitches, intervals, and chords. I found that feeding the networks raw audio data got nowhere. Training was extremely slow, and losses seemed to be bounded at unacceptably high values. After switching to spectrograms, the networks started learning almost immediately -- it was quite remarkable! This post is about generating spectrograms with neural networks. These spectrograms were generated by a Neural Network On Spectrograms Spectrograms are 2-dimensional visual representations of slices of audio (or really, any signal.) On the x-axis of a spectrogram is time, and on the y-axis is frequency. A Violin playing A4 (440hz) Because the data is correlated well along both dimensions, spectrograms lend themselves well to both human analysis and convolutional neural n - Time Frequency Duality
Feb 28, 2020 · original
An particularly interesting characteristic of Fourier transforms is time-frequency duality. This duality exposes a beautiful deep symmetry between the time and frequency domains of a signal. For example, a sinusoid in the time domain is an impulse in the frequency domain, and vice versa . Here's what a 1-second 20hz sine wave looks like. If you play this on your audio device, you'll hear a 20hz tone. 20hz Sine Wave When you take the Fourier transform of the wave, and plot the frequency domain representation of the signal, you get an impulse in the bin representing the 20hz. (Ignore the tiny neighbours for now.) Frequency Domain of 20hz Sine Wave If you play this transformed representation out to your audio device, you'll hear a click, generated from the single impulse pushing the speaker's diaphragm. This is effectively an impulse signal. Okay, let's create an impulse signal by hand -- a - Pitch Detection with Convolutional Networks
Feb 23, 2020 · original
While working on Pitchy Ninja and Vexflow , I explored a variety of different techniques for pitch detection that would also work well in a browser. Although, I settled on a relatively well-known algorithm, the exploration took me down an interesting path -- I wondered if you could build neural networks to classify pitches, intervals, and chords in recorded audio. Turns out the answer is yes. To all of them. This post details some of the techniques I used to build a pitch-detection neural network. Although I focus on single-note pitch estimation, these methods seem to work well for multi-note chords too. On Pitch Estimation Pitch detection (also called fundamental frequency estimation ) is not an exact science. What your brain perceives as pitch is a function of lots of different variables, from the physical materials that generate the sounds to your body's physiological structure. One w - No Servers, Just Buckets: Hosting Static Websites on the Cloud
Feb 19, 2020 · original
For over two decades, I've hosted websites on managed servers. Starting with web hosting providers, going to dedicated machines, then dedicated VMs, then cloud VMs. Maintaining these servers tend to come at a high cognitive cost -- machine and network setup, OS patches, web server configuration, replication and high-availability, TLS and cert management, security... the list goes on. Last year, I moved [ almost ] [ all ] [ my ] [ websites ] to cloud buckets, and it has been amazing! Life just got simpler. With just a few commands I got: A HTTP(s) web-server hosting my content. Managed TLS certificates. Compression, Caching, and Content Delivery. Replication and High availability. IPv6! Fewer headaches, and more spending money. :-) If you don't need tight control over how your data is served, I would strongly recommend that you host your sites on Cloud Buckets. (Yes, of course, servers ar - New in VexFlow: ES6, Visual Regression Tests, and more!
Jul 12, 2016 · original
Lots of developments since the last time I posted about VexFlow. VexFlow is ES6 Thanks to the heroics of SilverWolf90 and AaronMars , and the help from many others, VexFlow's entire src/ tree has been migrated to ES6. This is a huge benefit to the project and to the health of the codebase. Some of the wins are: Real modules, which allows us to extract explicit dependency information and generate graphs like this . Const-correctness and predictable variable scoping with const and let . Classes, lambda functions, and lots of other structural enhancements that vastly improve the clarity and conciseness of the codebase. Part of the migration effort also involved making everything lint-clean, improving the overall style and consistency of the codebase -- see SilverWolf90 's brief document on how here . Visual Regression Tests VexFlow now has a visual regression test system, and all image-gene - New in VexFlow (May 2014)
May 2, 2014 · original
Lots of commits into the repository lately. Thanks to Cyril Silverman for may of these. Here are some of the highlights: Chord Symbols This includes subscript/superscript support in TextNote and support for common symbols (dim, half-dim, maj7, etc.) Stave Line Arrows This is typically used in instructional material. Slurs Finally, we have slurs. This uses a new VexFlow class called Curve . Slurs are highly configurable. Improved auto-positioning of Annotations and Articulations Annotations and Articulations now self-position based on note, stem, and beam configuration. Grace Notes VexFlow now has full support for Grace Notes. Grace Note groups can contain complex rhythmic elements, and are formatted using the same code as regular notes. Auto-Beam Imnprovements Lots more beaming options, including beaming over rests, stemlet rendering, and time-signature aware beaming. Tab-Stem Features Y - More K-Means Clustering Experiments on Images
Jan 2, 2012 · original
I spent a little more time experimenting with k-means clustering on images and realized that I could use these clusters to recolor the image in interesting ways. I wrote the function save_recolor to replace pixels from the given clusters ( replacements ) with new ones of equal intensity, as specified by the rgb_factors vector. For example, the following code will convert pixels of the first two clusters to greyscale. save_recolor("baby.jpeg", "baby_new.jpg", replacements=c(1,2), rgb_factors=c(1/3, 1/3, 1/3)) It's greyscale because the rgb_factors distributes the pixel intensity evenly among the channels. A factor of c(20/100, 60/100, 20/100) would make pixels from the cluster 60% more green. Let's get to some examples. Here's an unprocessed image, alongside its color clusters. I picked k=10 . You can set k by specifying the palette_size parameter to save_recolor . Here's what happens whe - K-Means Clustering and Art
Dec 31, 2011 · original
Cross posted from Google+ . My coworker at Google, Tony Rippy, has for a while been working on a fascinating problem. Take all the pixels of a photograph, and rearrange them so that the final image looks like an artist's palette -- something to which you can take a paintbrush and recreate the original image. He's got some really good looking solutions which he might post if you ask him nicely. :-) This turns out to be a tricky problem, and its hard to come up with an objective measure of the quality of any given solution. In fact, the quality is very subjective. Anyhow, while studying the K-means clustering algorithm from ml-class , it struck me that k-means could be used to help with extracting a small palette of colors from an image. For example, by using each of the RGB channels as features, and euclidian distance as the similarity metric, one could run stock k-means to generate clust - A Web Audio Spectrum Analyzer
Aug 21, 2011 · original
In my last post, I went over some of the basics of the Web Audio API and showed you how to generate sine waves of various frequencies and amplitudes. We were introduced to some key Web Audio classes , such as AudioContext , AudioNode , and JavaScriptAudioNode . This time, I'm going to go take things a little further and build a realtime spectrum analyzer with Web Audio and HTML5 Canvas. The final product plays a remote music file, and displays the frequency spectrum overlaid with a time domain graph. The demo is here: JavaScript Spectrum Analyzer . The code for the demo is in my GitHub repository. The New Classes In this post we introduce three new Web Audio classes: AudioBuffer , AudioBufferSourceNode , and RealtimeAnalyzerNode . An AudioBuffer represents an in-memory audio asset. It is usually used to store short audio clips and can contain multiple channels. An AudioBufferSourceNode i - Generating Tones with the Web Audio API
Aug 14, 2011 · original
The Web Audio API is a W3C draft standard interface for building in-browser audio applications. Although the draft is well specified, it is almost impossible to find useful documentation on building applications with it. In my quest to deeper understand HTML5 audio, I spent some time figuring out how the API works, and decided to write up this quick tutorial on doing useful things with it. We will build a sine wave tone-generator entirely in JavaScript. The final product looks like this: Web Audio Tone Generator . The full code is available in my GitHub repository: https://github.com/0xfe/experiments/tree/master/www/tone Caveats The Web Audio API is draft, is likely to change, and does not work on all browsers. Right now, only the latest versions of Chrome and Safari support it. Onwards We Go Getting started making sounds with the Web Audio API is straightforward so long as you take the - A Music Theory API
Mar 31, 2011 · original
Most of my work last week consisted of writing music theory code. VexFlow now has a neat little music theory API, that gives you answers to questions like the following: What note is a minor 3rd above a B? What are the scale tones of a Gb Harmonic Minor? What relation is the C# note to an A Major scale? (Major 3rd) What accidentals should be displayed for the perfect 4th note of a G Major scale? etc. The API is part of VexFlow, and can be used independently of the rendering API. Take a look at music.js in the VexFlow GitHub repository for the complete reference. There's also a handy key management library for building scores in keymanager.js . I'm currently working on updating the VexFlow Tutorial with a quickstart on the music theory API, but meanwhile, here are some teasers (pulled straight out of the tests ). // What does C note consist of? var parts = music.getNoteParts("c"); equals( - Prettier Tablature
Mar 27, 2011 · original
Spot the difference: Before After Still can't tell? Let me help you out. We have: Slightly greater spacing between the tablature stave lines. This makes it more consistent in appearance with printed tablature. Stave lines are cleared before fret numbers are rendered, vastly improving readability. Font sizes for fret numbers and annotations are bigger. Associated notation and tablature staves are connected with a vertical bar on the left. Micro-changes in spacing between fret numbers, effects, annotations, etc. All these changes have been incorporated into TabDiv , and pushed to GitHub . See more on the VexTab Tutorial page. Enjoy! - The VexFlow Tutorial (...and other goodies)
Mar 24, 2011 · original
Finally... finally... finally... we have the humble beginnings of what could be considered "documentation". I present to you The VexFlow Tutorial . Although still in its infancy, the tutorial covers everything you need to start using VexFlow in your own code. My plan for the next few weeks is to make this document as comprehensive as possible, and write up a separate API reference. I hope that this tutorial will help developers understand VexFlow better, and enable them to build new and interesting libraries, parsers, and applications. The entire tutorial is stored in the Git repo ; feel free to send me your corrections or other updates. About time, I know. In other news, we have had a few contributions to both VexFlow and VexTab. A big thanks to airfrog , wiseleyb , and adamf for getting these done. First, we have the ability to render dotted notes. Dotted Notes Then we have key signatu - Editing XML and HTML in Vim
Mar 23, 2011 · original
I just discovered the Vim xmledit plugin. With features like tag-completion, auto-wrapping and unwrapping, quick navigation, etc., it has, in a matter of minutes, measurably decreased my level of frustration while editing markup in Vim. Installation The quickest way to install the plugin is by downloading the latest . vba from the plugin site , and run the following commands: $ vim xmledit.vba :so % You also need to edit your .vimrc and add the following: filetype plugin on This installs the plugin into your .vim/ftplugin directory, and enables it for .xml files. To enable it for other file types, create a link to the file with the new extension name in the same directory. (Copying the file also works.) $ cd ~/.vim/ftplugin $ ln -s xml.vim html.vim $ ln -s xml.vim xhtml.vim Usage The plugin supports the various Vim modes in interesting ways. In insert mode, when you finish a tag (with th - On Twitter
Mar 20, 2011 · original
It turns out I'm on twitter. I have absolutely no idea what I'm going to do with it. Maybe I'll tweet every time time the compiler yells at me... or when my kernel panics... or when my browser frowns . Whatever it is, I'm on twitter: twitter.com/11111110b That's seven ones and a zero, followed by a bee. - Regex Substitution in Haskell
Sep 13, 2010 · original
I'm shocked and appalled at the fact that there is no generic regex substitution function in the GHC libraries. All I'm looking for is a simple function equivalent to perl's s/.../.../ expression. After digging around a bit, I found subRegex in regex-compat . While this works well, it does not use PCRE, and as far as I can tell, there's no support for ByteString s. Grrr. Anyhow, I took the subRegex implementation from regex-compat and mangled it slightly to work with Text.Regex.PCRE . I also added the (=~$) function which feels a bit more familiar to perl users. For example: Prelude PCRESub "me boo" =~$ ("(me) boo", "he \\1") "he me" The above is equivalent to perl's: $text = "me boo"; $text =~ s/(me) boo/he $1/; (~=$) is implemented with reSub (which is also exported by PCRESub ). reSub allows you to provide your own CompOption and ExecOption options. Here's the PCRESub module: -- PCRE- - VexFlow Google Group
Sep 12, 2010 · original
I've been out of touch for a while, and it took me way too long to set this up; but hey - better late than never. :-) After looking into various options for the VexFlow mailing list, I eventually decided to use Google Groups. It's super easy to setup and manage, and has all the features I'll ever need. If you're interested in hacking, discussing, or simply keeping up with VexFlow, sign up here: http://groups.google.com/group/vexflow Unfortunately, I haven't had the time lately to hack on VexFlow, but I assure you that it's only temporary. I have a bunch of partial changes in the works, along with some interesting ideas floating around. More later. - VexFlow is Open Source
Aug 3, 2010 · original
That's right folks! All the VexFlow code is now available in the VexFlow GitHub Repository . It's distributed under the OSI approved MIT License, so feel free to tinker, tweak, hack, fix, fork, and redistribute it. A lot of the core infrastructure (e.g., contexts, formatting, etc.) is ready and stable, and most of the work that needs to be done is adding support for various types of modifiers, effects, and annotations. I've worked on some of the trickier ones, like accidentals and beams, and have left the easier ones out so interested coders can learn by contributing. This said, algorithms-enthusiasts need not feel left out - there are some hard problems to solve as well :-) Here's where I would like help from the community: Dots (Easy) Trills (Easy) Grace Notes (Moderate) Slurs (Easy) Glyphs for time signatures (Easy) Key signature (Easy if you reuse the accidental placement code from a - More Durations and Better Beaming
Jul 21, 2010 · original
I finally got most of the duration and beaming support worked out last weekend, and I gotta say that the generated scores by VexFlow (and VexTab ) are starting to look pretty good. In VexTab notation, you can now set the duration of the subsequent notes using the colon ( : ) character. By default, note durations are set to eighth notes. Here's an example of a line that generates a half-note followed by two quarter-notes. Basic Duration Support Valid duration values (currently) are: w , h , q , 8 , 16 , and 32 . Support for dots and tuplets/triplets is not yet implemented. Durations can be specified inside slides, bends, and other types of ties by prefixing the fret with the duration value enclosed within colon characters. Durations within Ties Also, I spent time working on some of the tricker beam configurations, where notes with varying durations are beamed. Crazy Beaming In VexTab, you
Discovered by the rss-feed-index crawler, which checks each feed at most once a month.
Same record as JSON: https://api.agentalog.com/api/feeds/fd_0xfe_blogspot_com_5c1242e8a1b0bed4. More from this site: 0xfe.blogspot.com in the Feeds tab.