Links to the previous parts
Radio Magic is a strange kind of project: it includes hardware hacking, analog circuitry, and – after about half a century time-jump – modern microcontroller technology and embedded Linux. The project included, at least for me, a considerable amount of experimentations finding the right (= cheaper and simpler) way to meet these two electronics era in a single musical project. Possibly with something original. The idea in a few words can be expressed in a single sentence: Making Music.
I should say that this project includes a considerable part of improvisation; hacking hardware with an idea in mind sometimes it is difficult to make a definite plan, you are not always sure of what you can find after opening the box. In addition to these first considerations, there are some other fixed points I assumed before starting:
- Using analog components (maybe adopting easy solutions)
- Hacking an AM-FM-LW mid-60s transistor radio as part of the sound machine (this is upcycling too)
- Tracking a border between vintage and modern technology and possibly smoothly join the two worlds.
In most of the case, I blog the project detail and description as a sort of project conclusion, including issues and mistakes but the documentation is written a posteriori. in this case, instead, I decided to write down a sort of diary. I am curious – and like to share with the E14 community members – where this project will go.
The illustration above shows the schematic setup I expect at the end. There are two aspects that addressed me to this solution design; the first is the needing for a cable connection between the sound sources to grant the best audio quality. The second is the possibility to connect the Raspberry Pi (the digital endpoint) to the analog panel most of whose behaviors are controlled digitally without too much wiring.
Adopted and Discarded Solutions
The Raspberry Pi endpoint I adopted is a Raspberry Pi 3B+ as his software for audio libraries and components is more stable at the actual date, than the most recent Pi 4B. Then I chose a high quality USB audio card including mono microphonic input and RCA stereo output, suitable to be connected to any external audio appliance for playing and recording. Initially, I thought that a simple LCD display was sufficient but then I opted for the 7 inches touch screen. I decided to make a more comfortable touch interface to control all the features I discovered possible playing with the analog circuits.
The role of the Raspberry Pi is to be able to sample the sounds and – eventually – play them directly, as well as sampling them and creating automatically new instrument banks that can be played by an external MIDI connection or through my USB MIDI keyboard. The external MIDI input is not yet 100% defined at the moment.
The above image shows the first test setup to verify the feasibility of the idea. I have used the Bush FM radio (not yet hacked inside, only cleaned and restored to full working) as the audio input.
MIDI Control and Audio Sampling
To control the MIDI input (no matter the source, keyboard, or an external connection) not only for playing a digital instrument but also to interact with the sampling of new sounds I realized I need software. As a starting point, I have used some of the solutions adopted by the project Sampler Box, for the Raspberry Pi. Regardless of the project name, this is just a MIDI player, nothing to do with sound sampling at all; the software for this project – still under development – requires a lot of modifications to reach the goal but it is really a good starting point.
I have a discrete knowledge of Pure Data and at a first glance, I thought it can be the right solution to manage the sampling process integrated to the MIDI playing. After investigating in-depth of the patch to modify (for those still available on the Internet) and the required development from scratch I searched for an alternative. As a matter of fact, the input sound signal becomes interesting in a playable environment if it is possible to apply some kind of filters and modifications to the samples before generating the MIDI sound banks. Instead of Pure Data then I decided to move on the popular Open Source Audacity application, I already use for stand-alone recorded sound processing. The interesting pro of Audacity is the possibility to fully run from terminal command, including its own scripting language. This capability makes it possible to create specific scripts and completely exclude the use of Pure Data, as well as using the Python program only for the core features and hardware control. The role of the Raspberry Pi is not limited to sample the sounds but also applying pre-defined filters based on touch commands – if needed – to create synth sounds for the MIDI playing.
In addition, the Raspberry Pi also includes a 120 Gb SSD for data storage.
Analog Synth Experiments
Another preliminary investigation I have done is on how to make a simple analog synthesizer. I have tried to find an easy solution and at last, I focused the choice on using the old-school NE555 as the main oscillator. To be honest, I have also another alternative, using a series of CEM IC I own with more sound generation capabilities. The problem is that CEMs are analogic synthesis ICs that need a control voltage in the range -12 - +12 V so I kept them for another project I have in mind. It is true that a single NE555 oscillator is poor stuff to make music but if we make a module with two oscillators that interact, one in astable configuration and the other acting as a PWM on the waveform generated by the first the game changes a bit. Further sophistication can be added using different capacitors to change the range of the audible frequencies generated depending on their value. Then, instead of using a single module, I will replicate the same circuit to three different waveforms that can be generated at the same time with the parameters regulated independently all going to a single output signal. I got inspirations joining together information and knowledge (also from some of my past lives when the NE555 was popular in any DIY circuit) making a very primitive prototype to experiment the possibilities.
To complete the vintage design I have used a 5V old-style voltage regulator based on LM7805. As shown in the above image, the first result was really depressing. Both output signals of the module was producing always the same waveform. Not only identical on both the oscillator and PWM output of the second NE555 but always identical, I mean. No matter what changes on the controls like in the two screenshots below. The biggest delusion is that I got no sound on the output.
First I tried to see if my living bible jancumps was having some idea; we tried to see if the values of the discrete components were wrong, maybe the potentiometers, etc., always with the same result, no sound, just changing the shave of the two, always identical, waveform. Then, after another night chatting with a friend in Italy studying the datasheet (I never experienced a so stupid and blocking issue with this IC) and making changes I finally discovered that in my original design I totally forgot to connect the trigger pin 2 of the NE555 to the pin 6 (trigger). Added two wires the board worked like a charm.
The two screenshot above show the kind of waveform I was expecting when the two oscillators interact together.
Above: the two-NE555 module assembled on a breadboard for testing.
The fourth module that will be mixed to the three groups of oscillators is the FM radio then the generated sounds (including random sampling) are sent to the Raspberry Pi for the effects and eventually sampling. But before doing this, also the radio should be "prepared" to be part of the setup.