Noise Fashion Tips




Wed 11 Aug 2021 04:32:03 PM CEST

- well, almost a month since the last post - I was putting off making of the tape echo for quite some time, because drilling the marantz tape player seemed like such a chore... And it was... - tape echo is done, I moved the ADC to the next phase, so now: planning time ~~~ Tape echo ~~~ - I did finally finish this project, and it was quite the pain. - There are still some problems: * pots sometimes don't work properly, and I'm not sure the problem is entirely mechanical (one pot (when wired in circuit) doesn't have 0 ohms between viper and ground when turned fully counterclockwise, other pot does seem to latch in one of two positions, but it helps when I short the viper with either side? I have to look at it with scope) * needs external highpass resonant filter for the full effect * it needs to be powered via batter compartment, because that's where the mixer PCB gets its power from (and power jack has diode as not to charge batteries, so no juice to the PCB) - There are also some lessons to be learned from this project: * I shouldn't care so much about how the project looks like. Some problems are directly cause by me wanting it to be housed in the tape player box (it took much longer than it should (to dremmel and drill everything), I didn't include the highpass filter because there wasn't enough space etc.) * Maybe I shouldn't do PCBs for everything. Instead of designing the PCB I could have had made a perfboard the day I breadboarded it and then chuck it in a box and be done with it. - TODO: record more samples Note the comically large potentiometer: ~~~ ADC readings ~~~ TODO: . lgt8f: try the original board support package

Wed 14 Jul 2021 09:21:29 PM CEST

- the endless acid banger is done: ENDLESS ACID BANGER - video and post to reddit also done

Wed 14 Jul 2021 11:12:09 AM CEST

~~~ Acid Banger sequencer ~~~ - I sat down yesterday and written the acid banger sequencer from scratch but for Arduino. It's finished, only thing remaining is to write comments, tutorial on how to connect the MIDI out and publish it.

Mon 12 Jul 2021 11:03:40 PM CEST

~~~ Acid Banger sequencer ~~~ - one track (with Murhaaya) - another demo track (with Murhaaya) - setup: ~~~ Tape echo ~~~ - made gerbers, sent them for manufacturing: ~~~ This web ~~~ - As I kid I imagined internet as a one big disk drive that you browse with something like Norton Commander, descend down the directories, read READMEs, etc. And I think for exploration that's probably a bit better interface than having to fish for clues inside text paragraphs. People that use github to publish things know this.

Mon 12 Jul 2021 01:10:03 PM CEST

~~~ Acid Banger sequencer ~~~ - I was on holiday so not much was done. - I was thinking about this and more than being something revolutionary, this is an excersise in reaching out to other people - I'm not looking forward to rewriting the code for Arduino, but with a bit of planning it could be done relatively painlessly. Unit tests are required if I don't want to be constantly re-testing the system while writing. How to do it: * take Arduino Nano, breadboard it with 10 buttons (pat1, pat2, notes, drums, play, mem1-mem5) * code to read buttons (struct holding pin num + state) * demo button -> serial out * main loop that checks `millis()` and eventually executes `run_tick()` * MIDI clock start stop * implement patterns, instruments, instrument handlers (ie. how to send noteout for volca drum that receives drum volume via separate cc message etc.) struct Pattern { uint16_t accent, glide; uint8_t note[16]; } struct Instrument { byte midi_channel; byte is_drum, drum_note; void (*noteon_handler)(byte chan, byte note, byte vel); void (*noteoff_handler)(byte chan, byte note); /* state */ byte current_note; } * copy over the infinite acid banger generator * implement UI (buttons) * fix pseudo-random melody generation * add Arduino MIDI library * demo: Nano driving a synth * convert all tables to defines on top of the file * documentation / create a github (?) repo with schematic * create a youtube video (?) * post to reddit ~~~ Autolooping sequencer ~~~ - I moved this to the future because the main purpose was to *release* something and this is being accomplished by the infinite acid banger seq. ~~~ Tape echo ~~~ TODO: * revisit the PCB and try to think again about the wire pad placement . list of things that are to be decided: . where to get power supply when inside the case . how to internally connect echomatic board to the tape player . what connectors to use for connecting tape echo to the signal chain . whether to order additional belts

Thu 08 Jul 2021 08:58:32 PM CEST

~~~ Acid Banger sequencer ~~~ - All the demos I've recorded so far are a bit bland. Maybe I'll record something better next week with Murhaaya. - As far as I'm concerned the code is done. Now I need to port it to Arduino and make a nice web page for it (and post it to reddit). ~~~ This log ~~~ - I've changed then name of this blog to "Noise Fashion Tips". I used to have a blog with the same name and 0 pageviews a few years ago. ~~~ Clock for B. ~~~ - This is officially finished, I even uploaded this project to hackaday (just to try it out): https://hackaday.io/project/180699-bubble-led-clock. Sources included.

Fri 02 Jul 2021 07:22:52 PM CEST

- this entry will be brief and without photos, because I'm really exhausted but still want to write things down before I forget ~~~ Clock for B. ~~~ - Done. - There has been a little set-back, because I did what I really shouldn't have done: I changed the pinout without testing and sent the board to get manufactured anyway. It worked out in the end, but for example - I used pins A6 and A7 on the LGT8F328P and thought they will be in PORTC, bits 6 and 7, which they were not. They are in the PORTE! ~~~ ECHO-MATIC ~~~ - I dropped the filters and designed the PCB. I'll get send it to get manufactured next week. ~~~ Acid Banger sequencer ~~~ - I implemented this and it's really great. I need to record some demos. But I think I burned something in my filterbox while testing it. I hope it was MCP6002 (because they were the shit aliexpress kind anyway) and not the LM13700 (because then I'll have no excuse and I will have to revisit the design). - So far it is written as an alternative sequencer implementation in minty, but I'm thinking about make it for vanilla Arduino (just serial + few buttons) and publishing it (and posting to reddit).

Sun 27 Jun 2021 07:52:40 PM CEST

~~~ Clock for B. ~~~ - I finished the PCB, send it to manufacturing. I've thought it gonna be two sided, but I managed to fit it just on one side. ~~~ ECHO-MATIC ~~~ - I have some issues with the PCB. It's hard to fit it on narrow strip so I would be able to put it into the battery compartment. Also, it is too complicated for my taste, while also not sounding as good as the version with MS-20 filter in feedback. One reason might be that I haven't put it into proper enclosure, so the knobs make weird sounds when touched and sometimes their wires get disconnected. So let's just wait. ~~~ Minty synth ~~~ - I added sort of Note-Off events to the Minty sequencer: the MIDI tracks reuse the "Envelope Time" parameter as a "Gate Time", so now the notes have duration, but it's the same duration for all notes - I also did some experiment with using multiple channels for just one Volca Keys In general... - In general I have been a bit dissatisfied with this whole effort to finish all my projects. I did quit IRC to have a few days of quiet time. I need to sit and think.

Sat 26 Jun 2021 09:11:12 AM CEST

~~~ ECHO-MATIC ~~~ - I checked the second set of belts and they are too big as well. I probably misunderstood what the inner diameter means - that it is an inner diameter of a belt that forms a circle. In my case: belt length 165mm has inner diameter of 165 / 3.14 = 52.5 mm, not 165 / 2 = 82.5 m So now I have two useless sets of belts. If I had paid for the (expensive) PMD221 belt set on ebay in the first place, I would have paid less. - I played a bit with the Echo-Matic circuit on a breadboard and found out that if I add a highpass filter, I get nicer repeats that do not accumulate so much bass and that can resonate for longer without exploding. Some samples here: Audio: Tape Echo Experiment 1 Audio: Tape Echo Experiment 2 Audio: Tape Echo Experiment 3 So I added simple stereo-pot-controlled Sallen-Key lowpass and highpass filter on the input from tape playback. This complicated the design a bit, but I think it is worth it. - Next: Do a PCB. ~~~ Clock for B. ~~~ - the DS1307 chip I used for the clock has terrible precision (it has error of 5 minutes a day), and I'm not sure why that is (maybe crystal with wrong capacitance?) - I bought DS3231-MZ chip instead, which comes in SO-8 package and has MEMS oscillator, and that works without a problem - Next: Make a PCB. ~~~ This log ~~~ - I still haven't found a name for this log, and I'm not backing it up or having it in a version control system - I'm not sure who it is for, or what I'm going to do with it (I'm not promoting it anywhere...). The form is easy to write, but not really all that readable (maybe I should separate it per-project, or instead make it into separate articles, ...?) ~~~ Minty synth ~~~ - The sequencer has a problem: it doesn't record note duration. This is OK for minty and Volca Sample (because they are one-shot), but doesn't work for sequencing generic synths. And I would like to have this feature just to play with and I think I will need it for the infinite-acid-banger project. - The current sequencer is simple - and that has the advantage of being maleable. I had written complicated sequencers and most of them died because all new ideas were hard to implement.

Fri 25 Jun 2021 08:30:47 AM CEST

~~~ ECHO-MATIC ~~~ - new belts arrived, gonna change them in the evening [later] - the belts are too big

Wed 16 Jun 2021 10:23:52 PM CEST

~~~ ECHO-MATIC ~~~ - I ordered the belts, but it seems that the width of the main belt was wrong (it's actually 2mm, not 4mm) and that I ordered belts that had inner diameter 160mm, but I actually wanted *length* 160mm (which is inner diameter 80mm). - Anyway, I need to order another set. This time like this (PMD 221): Main 153T254010 82.5mm (inner dia) x 0.6mm x 2mm (flat) Drive 242T26412R 66mm (inner dia) x 1mm x 1mm (square) Counter 153T264020 84mm (inner dia) x 1mm x 1mm (quare) - But at least I did manage to get the tape recorder working again (return the belt back on the main flywheel) so I can test my echo circuit changes and then: make schematic, make pcb and get it manufactured.

Sun 13 Jun 2021 10:22:22 AM CEST

- I didn't feel like writing the whole last week. Let's remedy this by going through the projects and look at some pictures ~~~ MS-20 filter PCB ~~~ - No error in the PCB, but soldering was a bit of a pain because the through holes weren't plated, so some components had to be soldered on both sides (hard on the cheap IC sockets, but easy on the precision ones; also had to push up some caps so that I would get a metal bit on the other side). - It has highpass/lowpass mechanical DPDT switch - The filter works reasonably well, but there's not enough headroom for both the self-oscillation and input signal (if it's loud) and it emits unpleasant muffled crackle - I'm really glad I finished it and it works, because MS-20 filter epitomizes for me "analog synths". I've done it, now I can build anything. Even a polysynth. ~~~ Filter box ~~~ - The filterbox is envelope + LFO + the MS-20 filter + 7805 voltage regulator. It took quite a lot of time to drill and to assemble because: - I didn't have drill bits large enough for the buttons, so I had to file down the last few mm - the LEDs needed support perfboard which is held in place by the screw pegs - there is generally a lot of wires going everywhere - The PCBs are stacked on top of each other with the PCB on the bottom providing power through the pin headers. There are no signals going through the pin headers as of now, but I was thinking of making a poly-synth with voices running from voice cards up to mixer through the pinheaders. I could then get PCBs manufactured by JLCPCB - they have minimum order of 5 pieces so I would make a 5 voice polysynth. - The format is: - Patching pegs (1K output impedance, 100K input impedance) with aligator clips. The 1K output impedance means you can do 50%-50% signal mixing without having to use mixer. - Control voltage is 0..5V - Audio voltage 0..5V (with "ground" at 2.5), but I'm thinking switching to 1.25..3.75 V to get more headroom. Still not sure. - Attenuators on signal inputs ~~~ Clock for B. ~~~ - I was obsessed with bubble-led displays and I ordered one only for it to arrive just after the obsession had passed, so I decided to use it for a clock for my wife. - The first run-in I had was with I2C and clock chip (DS1307): I have my own I2C library, that has timeout for operations to finish. But the I2C transactions were failing mysteriously from time to time (from top the bottom, SDA, SCL and timer interrupt): The problem was in handling the time: there is a global uint32_t millisecond counter that is being updated in interrupt, but it wasn't read atomically, so if the interrupt fired when the i2c transaction was reading time "02_ff", it could read "03_ff" instead of "03_00", and terminate the i2c transaction prematurely. So that took me half of the evening to figure out. And this is what happens when the I2C pullups are not strong enough: - @ruemohr suggested to use a software i2c library by Peter Fleury (i2cmaster.zip) which takes _less_ code to bitbang i2c that my implementation takes to service the hardware i2c master. Unfortunately it doesn't handle timeouts and I don't feel like adding support for them, so... - The russian bubble LED display I use (ALC318A? supposed clone of HP5082-7441) consumes quite a lot power (5mA) for how little light it emits. - The LED driving circuit (74HC595) and encoder input were cobbled together quickly. So the prototype looks now like this (scroll down). The next steps are: - replace the atmega with lgt8e328p which I want to get rid of - use 100R resistors on segment inputs to make "1" and "8" the same brightness - design PCB (need to juggle the pins a bit) ~~~ 3d printed bracket ~~~ - I have two E-mus: e6400 Classic and E4XT Ultra. The Ultra has SCSI2SD, the Classic has just floppy. I wanted to have some decent storage for both, so I ordered small IDE-CF adapter because the Ultra has IDE bus. - I wanted a slot for CF cards on the front instead of floppy. There are some very nice options to be had, but I decided I would try to 3d print my own. So I drawn it on paper, then downloaded OpenSCAD a essentialy rewrote it as a bit of code. - One good soul printed it for me. - Unfortunately a pair of screw columns were too short (I didn't take into account the thickness of the base), but nothing stack of washers wouldn't solve. - The kicker: the E-mu isn't compatible with this IDE-CF converter. I should've maybe check this earlier. ~~~ ECHO-MATIC ~~~ - So I've bought a Marantz PMD 221 to build an Echo-Matic tape delay. I've probably paid for it more than I should, but such is the world of tape echos. - Originally I was planning to make the feedback path with Mackie mix, but the mix is too bulky and I like the idea of the Echo-Matic being built into the tape recorder itself. Eurorack Echo-Matic: AI016. - The Echo-Matic circuit works fine but it needs a low-pass filter on the tape input (or on the tape output), because the Marantz tends to produce a high-frequency squeal when output is fed back. Note: Tape line output impedance is 650 mV / 2KΩ - The Marantz had increasingly more trouble winding the tape, so I've thought maybe the belts had gone bad and I opened it and sure enough, they are loose, so before I proceed I need to replace them. Instructional video. - The belts needed are: Main 153T254010 165mm x 0.6mm x 3.8mm (flat) Drive 242T26412R 132mm x 1mm x 1mm (square) Counter 153T264020 168mm x 1mm x 1mm (quare) - I dremled-off the battery compartment, so I can fit pots and echo-matic pcb there. - Steps after that: test lowpass filter on the input-from-tape-output, make narrow PCB for PMD 221 battery compartment ~~~ Acid Banger sequencer ~~~ - The basic idea is to take this: https://github.com/vitling/acid-banger/blob/main/src/pattern.ts and turn it into a MIDI sequencer. - The Acid Banger sequencer has some hardcoded tables and probabilities, very much like this [comments mine]: // [semitone offset classes, each pattern is generate from one of them] const offsetChoices = [ [0,0,12,24,27], [0,0,0,12,10,19,26,27], [0,1,7,10,12,13], [0], [0,0,0,12], [0,0,12,14,15,19], [0,0,0,0,12,13,16,19,22,24,25], [0,0,0,7,12,15,17,20,24], ]; // [note probability where `i` is 16th note index] const chance = density * (i % 4 === 0 ? 0.6 : (i % 3 === 0 ? 0.5 : (i % 2 === 0 ? 0.3 : 0.1))); // [snare pattern generator] for (let i = 0; i < 16; i++) { if (i % 8 === 3 || i % 8 === 6) { sdPattern[i] = 0.6 + Math.random() * 0.4; } else if (i % 2 === 0 && Math.random() < 0.2) { sdPattern[i] = 0.4 + Math.random() * 0.2; } else if (Math.random() < 0.1) { sdPattern[i] = 0.2 + Math.random() * 0.2; } } - The idea is first to implement this, then maybe take it a little bit further: for example, generating the semitone classes from user-recorded pattern, computing the rhythm probabilities from user patterns, etc...