June 2021 archive

Book review: Guitar Looping – The Creative Guide by Kristof Neyens

creative_loopingFor completeness I include my review of Guitar Looping: The Creative Guide by Kristof Neyens. This is in the same series as Guitar Pedals by Rob Thorpe. These are both quite short books but I’ve found them useful.

A looper pedal is a simple recording device which is started and stopped using a footswitch. A loop can be built up by making successive recordings, or layers, one on top of another. Typically loops are only a few bars long at most but modern looper pedals can record for tens of minutes.

I bought a looper pedal a year or so ago (reviewed here) and, to be honest, it has languished a bit on my pedalboard. I think the problem is a lack of education in the right format. Also I probably should have started with the simplest looper available, the author uses a tc electronic ditto rather than a step up (my Boss RC-3).

In common with Guitar Pedals, Guitar Looping contains lots (117) of short examples annotated in normal musical notation and guitar tab notation with accompanying audio files downloadable from the website. There is a brief text introduction to each example. I find these nice exercises in ear training, it’s good to be able to follow along with the tune.

The author is quite fond of the volume swell as part of a loop, this has got me thinking I need a volume pedal – previously I couldn’t see the point of them. This presents a problem because I’ve run out of space on my pedalboard!

Aside from the technical skill of starting and stopping loops at the appropriate point, there is also the skill of controlling the volume of your play within a layer and also getting the volume of different layers right. The loops illustrated often contain a percussive layer made by playing with strings muted, a rhythm/bass layer and a melodic layer which may be single notes or simple chords. Neyens talks about providing both harmonic space and dynamic space in layers. That’s to say there is no point in recording a layer loud and filled with sound because there is nowhere to put additional layers. This means that individual layers can sound quite simple and sparse. To get harmonic space you might play low notes with an octave pedal, on the lower three strings and melodies on the higher three strings, further up the neck.

The other useful piece of information I picked up was how to make your guitar sound like a clarinet! You pick the string 12 frets from where you are fretting – so if you are holding down the low E string on the third fret you need to pluck it and see. Try it and see.

After reading this book I’m using my looper pedal a bit more, there’s a lot of ideas in here and perhaps the most important thing is a stimulus to play around a bit – it doesn’t cost anything!

Book review: Data Pipelines with Apache Airflow by Bas P Harenslak and Julian R De Ruiter

data-pipelinesMy next review is on Data Pipelines with Apache Airflow by Bas P Harenslak and Julian R De Ruiter. The book was published in 2021, and is compatible with Airflow 2.0 which was released at the end of 2020.

Airflow is all about orchestrating the movement of data from sources such as APIs and so forth into other places, it originated in Airbnb. It is designed for batch processing, rather than streaming data, and for pipelines that do not change much.

Data pipelines in Airflow are represented as “directed acyclic graphs” or DAGs which are defined in Python code using “Operators” which carry out tasks. A graph is a collection of nodes (tasks in this case) with “edges” between them. The “directed acyclic” bit means tasks have a definite order, the edges between them are “directed”, and the graph cannot have loops or cycles because that would imply having to finish a set of tasks before you could start them. Simple data pipelines would just be a linear set of tasks that always follow one from another, a more complicated pipeline might bring in data from several sources before combining them to produce a final data product.

The Operators are strung together using expressions of the form “operator 1 >> operator 2” or even “[operator 1, operator 2] >> operator 3”. 

Operators do not have to use Python, they can invoke code in other languages such as the BashOperator, or interact with other systems such as databases or storage systems such as S3. It is relatively easy to write your own operators. Alongside operators that do stuff there are branch operators which select one or other path in the DAG, and there are also sensors which detect changes in filesystems and trigger work and hooks which form connections with external services. Dummy operators can be used to simplify the appearance of DAGs.

As an orchestration system the intention of operators is that they should not contain a great deal of code to process data, that function should be off-loaded to libraries or systems elsehwhere.

The Airflow system is comprised of a web server which allows you to observe / trigger execution of DAGs, a scheduler which is responsible for the scheduled running of DAGs and workers which do the actual work of the DAG. The Airflow system loops over the tasks defined in a DAG, and tries to execute tasks which depends on the tasks upstream of the task in question, if they have been successfully completed then a task can execute.

A basic implementation runs DAGs locally using a simple queue to schedule work, and a sqlite database to store metadata. A production implementation would use something like Postgres or Amazon RDS as the metadata store, schedule work using Celery and run tasks in Docker containers marshalled using Kubernetes.

For some reason reading this I was reminded that big projects like Airflow are just other people’s code, and if you look too carefully you’ll find something nasty. This is both comforting and mildly scary. I think the issue was that Airflow uses jinja templating to inject parameters into code which feels wrong but is probably a pragmatic and safe why to do it, these shenanigans are not required for Python operators. Also discussed are issues with code dependencies, which the authors suggest are best eliminated by putting operators into Docker containers each of which contain their own code dependencies – allowing otherwise dependency incompatible libraries to work together. 

Alongside the material on Airflow there are moderate chunks on Python modules, testing, Docker and Kubernetes and logging so you get a well rounded view not only of Airflow but also of the ecosystem it sits in. The book finishes with deployment into various Cloud environments. I found these parts quite useful since the most complicated work I do in my role is trying to get things to work in AWS! The data science part is easy…

The book finishes with some short chapters on Cloud deployments, mentioning first fully managed services such as astronomer.io, Amazon MWAA and Google Cloud Composer before going on to talking about implementation of one of the demos in the book on AWS, Azure and Google cloud services. I considered skipping these chapters but they turned out be quite interesting in highlighting the differences between services and perhaps the preferences of the authors of both the book and of Airflow.

I found this a readable introduction to Airflow with some nice examples, and interesting additional material. Useful if you are thinking about using Airflow, or even if you are working on data pipelines without Airflow since it provides a good description of the moving parts required.

The code repository for the book is here: https://github.com/BasPH/data-pipelines-with-apache-airflow

Book review: Guitar Pedals by Rob Thorpe

guitar_pedalsAnother brief sojourn with a guitar related book, this time Guitar Pedals by Rob Thorpe. It has the lengthy subtitle "Discover How to Use Pedals and Chain Effects to Get The Ultimate Guitar Tone", and the front cover continues with a range of other promises as to content. This isn’t intended as a criticism, it just struck me as an usual stylistic effect.

For those not familiar with electric guitars, an guitar effect pedal is a little box of electronics, around the size of a cigarette packet but rather thicker, with a socket on one side to take input from a lead from your guitar and a socket on the other side to send the modified signal out to your amplifier. On the top face of the pedal is a switch to turn the effect on and off, and one or more knobs to configure it. Guitar pedals are usually grouped together on a pedalboard which will hold up to 10 or so of them, chaining their effects together. They introduce effects such as distortion, reverb, delay and so forth.

If you watch videos of live music you’ll most likely notice the guitarist and bass player with a pedalboard on the floor at their feet, occasionally poking it with a foot to change the sound of their guitar.

Guitar pedals are a cheap and easy way of changing the way your guitar, I have a couple of more expensive Boss pedals which cost about £100 and a couple of Donner pedals which were under £40.

Guitar Pedals runs through chapters describing a bunch of distinct effects, talking first about the background of the effect before going through some short examples of the effect in different contexts with different configurations (these appear as written guitar tabs, and accompanying downloadable audio files), and finishing with some examples in real music.

Since reading "The Birth of Loud" by Ian S. Port it struck me that much of the development of the electric guitar and its ecosystem has been the story of electrical equipment abused. Particularly so with distortion /overdrive pedals described in the first chapter – the original distortion pedal made by Gibson in 1962 (the Maestro FZ-1) attempted to replicate the effect Link Wray achieved in Rumble by stabbing his speakers with a screwdriver! Jimi Hendrix was a fan of the Arbiter Fuzz Face but quality control was so poor he would buy a bunch of them and pick the best (or even get his guitar tech to cobble together a pedal from the parts of multiple examples). Purple Haze is an example of Fuzz Face in action. Overdrive is what you get when you turn the volume of your amplifier right up – pedals can achieve the same effect without making a really loud noise.

Next up is a chapter on delay – essentially an echo effect which was originally implemented on tape. I’ve always thought of delay effects and reverb being related with reverb the more important of the two. Reverb and compressor effects each get their own chapter but Thorpe sees them as more production effects than pedal effects per se. Tracks like Beautiful Day by U2, King of Zion Dub by King Tubby and Country Boy by Albert Lee use delay.

The chapter on modulation effects covers phasor and flanger effects, where part of the signal is phase shifted and mixed with the original signal. Shine on you crazy diamonds by Pink Floyd is an example of a phaser in use, and Barracuda by Heart uses a flanger. Also included are chorus effects (where part of the signal is delayed) and tremolo (where the volume is modulated). The first chorus pedal, the Roland CE-1 started life in Roland’s Jazz-Chorus 120 Amplifier. A background in physics is quite handy here, vibrations and waves are at the heart of any physics degree, as are operational amplifiers – pedal effects are these things in action! Come as you are by Nirvana is a good example of the chorus effect, and How soon is now by The Smiths demonstrates the tremolo effect (for this performance the tremolo effect comes from the amplifier rather than a pedal).

My wah pedal is my favourite, and it gets a chapter largely of its own. Think Voodoo Child by Jimi Hendrix (watch his left foot at the start of this video) or the theme from Shaft by Isaac Hayes. A wah pedal is an adjustable band pass filter, in the same why that the tone knob on any manner of audio equipment is an adjustable low-pass filter. The wah pedal is unusual in that you adjust it during play – the position of the pedal controls where the band pass sits, other pedals have their configuration set before hand and are simply switched on and off. All I can say is it’s great fun to play with!

Next up are octave pedals and other pitch shifters and harmonisers, I’d assumed the point of an octave pedal (which plays a note one octave above or below the note you are playing) was to emulate a bass guitar, but it seems not.Jimi Hendrix’s Octavia pedal added a tone an octave above what he was playing, on tracks like Fire and Purple Haze. Jack White of The White Stripes uses octave effects to add notes both an octave above and below the played note to give a "thicker" tone – try tracks like Ball and a biscuit and Blue orchid.

Originally effect pedals contained simple analog electronic circuits (or even liquids) which did one job, now with digital processing a single pedal can emulate many different effects. I must admit I find multi-effects pedals a bit overwhelming – it’s no fun trying to navigate 50 or so effects, and their configuration on a one inch display with a couple of buttons.

The book finishes with a chapter on ordering of guitar pedals, and how this can change the sound made and finally there are some interviews with professional guitarists, and how they arrange their pedals. A point that both Thorpe and one of his interviewees makes is that tone, the sound of the guitar, depends a lot on the player and how they play. Chasing after a tone by buying the same pedals as your heroes is a losing game.

Guitar Pedals is a short book, it doesn’t have the high production values of the Rikky Rooksby but it carries much of the style – embedding the example riffs in the chapters works really well for this book. Online guitar courses tend not to cover effects pedals, this book fills the gap pretty well.