Skip to main content

Web Guitar

I finally got around to porting some of my old code to use HTML5's Web Audio API. It's a guitar tab editor that uses web audio to playback your tabs. The sound is synthesized using the code in the textarea below the editor. By default, the code is a basic string pluck synthesis, but you can change it to produce whatever waveforms you'd like.

It's primitive. It hasn't been tested on anything other than chrome. The UI has no documentation. It's got some growing up to do, but it's still fun to play around with.

Here it is: Web Guitar Demo

Load the example "Moonlight sonata" and press play.


Hint: clicking above the strings in the editor will toggle between 4, 8, 16, 1, 2 which is the reciprocal of the duration of the note. Also, after clicking on a string, you can navigate the editor using the arrow keys.

Comments

Popular posts from this blog

Procedural music with PyAudio and NumPy

Combining two of my favorite pastimes, programming and music... This is the hacky "reduced to it's basic components" version of a library I've been working on for generating music and dealing with music theory.

Tweaking the harmonics by changing the shape of the harmonic components and ratios can produce some interesting sounds. This one only uses sine waveforms, but a square / saw generator is trivial with numpy.

It takes a second to generate, so don't turn your volume up too loud in anticipation (it may be loud).

import math
import numpy
import pyaudio
import itertools
from scipy import interpolate
from operator import itemgetter


class Note:

NOTES = ['c','c#','d','d#','e','f','f#','g','g#','a','a#','b']

def __init__(self, note, octave=4):
self.octave = octave
if isinstance(note, int):
self.index = note
self.note = Note.NOTES[note]
elif isinstance(note, st…

Build a Feed Reader in Python (Parts 7-9)

Part 07 Adding Jinja2 templates to a flask web application.

 Part 08 Adding static files so we can serve some CSS to style our app.

Part 09 Adding a background task to continuously update the articles while the application is running.

Write a Feed Reader in Python

I just started a new video tutorial series. This time it'll cover the entire process of writing an RSS feed reader in Python from start to finish using the feedparser module, flask, and SQLAlchemy. Expect to see about 3-4 new videos a week until this thing is finished!
Click to watch