This is a follow-up to my previous lecture video (youtu.be/2_P7MVQnmZk) where I started making the patch. It includes lots of details about sound design, sequencing and various abstractions that I used in the patch. A recording of the finished patch is here: youtu.be/aLIqXrJqPqo
0:00 introduction 1:04 cat meow 1:49 harmonic series just intonation scale description 3:22 harmonic_analysis.m Octave script 5:08 arp1 section 7:06 pulse width modulation-like effect with a sigmoid waveshaper 7:42 arp2 section 8:25 envelope and control data smoothing 9:43 digital modulation generation and smoothing in hardware synthesizers 13:03 arp3 section 14:16 comments on waveshaping 16:05 3 phase panning 16:41 signal routing in the arp1/2/3 subpatch 17:00 earlyref~ abstraction used as a multitap delay 17:47 ssb~ frequency shifter abstraction 19:27 grain delay subpatch 20:08 reverb727~ reverb abstraction 20:36 pad subpatch 21:32 pwmbl and pwmbl~ pulse width modulation abstractions (use with pwmblt abstraction) 23:09 chorus330~ chorus abstraction (emulation of Roland VP-330, RS-505 and RS-09 chorus circuits) 23:58 bass subpatch introduction 24:17 Casio CTK-1000 overview 26:21 CTK-1000 sound examples 27:57 cat 29:02 CTK-1000 patents (US5164530, US5103711, US5340938, US5319151) 32:52 ixa~ abstraction based on patent US5164530 34:05 ixa~ abstraction compared to phase modulation 35:50 bass subpatch 38:36 drum subpatch 39:04 bass drum 41:50 comments on drum sequencing 43:32 bass drum sequencer 44:39 hi-hat and tabgen8 randomized table abstraction 46:09 metallic noise generation for drum sounds 48:06 comments on aliasing and sample rate 48:59 snare drum 50:28 drum sequencer counter variations 52:41 chord subpatch, sawbl~ sawtooth oscillator abstraction (use with pwmblt abstraction) 54:45 inharmonic comb filter resonator, phase16a~ phase shifter and fctofb~ coefficient generation abstractions 57:33 earlyref~ abstraction used as a early reflections 58:06 automation subpatch introduction 58:41 qenv2~ envelope generator abstraction and comments on envelope curves 59:51 automation subpatch 1:00:25 comments on downbeats and rhythmic ambiguity 1:01:07 automation subpatch 1:02:01 preventing timing jitter with the blkbpm abstraction 1:06:56 comments on time delay issues with send~, receive~, throw~ and catch~ 1:07:52 playrec, player~ and recorder~ abstractions for playing and recording 1:08:42 comments on recording and interactivity 1:09:26 final comments
This is a follow-up to my previous lecture video (youtu.be/2_P7MVQnmZk) where I started making the patch. It includes lots of details about sound design, sequencing and various abstractions that I used in the patch. A recording of the finished patch is here: youtu.be/aLIqXrJqPqo
0:00 introduction 1:04 cat meow 1:49 harmonic series just intonation scale description 3:22 harmonic_analysis.m Octave script 5:08 arp1 section 7:06 pulse width modulation-like effect with a sigmoid waveshaper 7:42 arp2 section 8:25 envelope and control data smoothing 9:43 digital modulation generation and smoothing in hardware synthesizers 13:03 arp3 section 14:16 comments on waveshaping 16:05 3 phase panning 16:41 signal routing in the arp1/2/3 subpatch 17:00 earlyref~ abstraction used as a multitap delay 17:47 ssb~ frequency shifter abstraction 19:27 grain delay subpatch 20:08 reverb727~ reverb abstraction 20:36 pad subpatch 21:32 pwmbl and pwmbl~ pulse width modulation abstractions (use with pwmblt abstraction) 23:09 chorus330~ chorus abstraction (emulation of Roland VP-330, RS-505 and RS-09 chorus circuits) 23:58 bass subpatch introduction 24:17 Casio CTK-1000 overview 26:21 CTK-1000 sound examples 27:57 cat 29:02 CTK-1000 patents (US5164530, US5103711, US5340938, US5319151) 32:52 ixa~ abstraction based on patent US5164530 34:05 ixa~ abstraction compared to phase modulation 35:50 bass subpatch 38:36 drum subpatch 39:04 bass drum 41:50 comments on drum sequencing 43:32 bass drum sequencer 44:39 hi-hat and tabgen8 randomized table abstraction 46:09 metallic noise generation for drum sounds 48:06 comments on aliasing and sample rate 48:59 snare drum 50:28 drum sequencer counter variations 52:41 chord subpatch, sawbl~ sawtooth oscillator abstraction (use with pwmblt abstraction) 54:45 inharmonic comb filter resonator, phase16a~ phase shifter and fctofb~ coefficient generation abstractions 57:33 earlyref~ abstraction used as a early reflections 58:06 automation subpatch introduction 58:41 qenv2~ envelope generator abstraction and comments on envelope curves 59:51 automation subpatch 1:00:25 comments on downbeats and rhythmic ambiguity 1:01:07 automation subpatch 1:02:01 preventing timing jitter with the blkbpm abstraction 1:06:56 comments on time delay issues with send~, receive~, throw~ and catch~ 1:07:52 playrec, player~ and recorder~ abstractions for playing and recording 1:08:42 comments on recording and interactivity 1:09:26 final commentsmultitracked Casio CT-670acreil2021-03-03 | 18 tracks total, no effects. Recorded 2017/2021.
This class of Casio hardware is from about 1990 and can be identified by the "220 sound tone bank" or "110 sound tone bank" legend on the front panel. It's based around the µPD937 IC, which is very similar to the slightly earlier µPD938 IC used in the MT-540, CT-660 and many other models (these are from about 1988 and are marked "465 sound tone bank" or "210 sound tone bank"). The biggest difference between the two product lines is that the earlier ones permit layering two sounds, while the later ones have a simple "tone editor" synthesizer section with editable detune, delay, attack/decay and release parameters.
It's almost a mature rompler (32 note polyphony, multitimbral, very complex amplitude and pitch envelopes, linear interpolation and a high sample rate), but lacks velocity sensitivity (even over MIDI) and dynamic voice allocation. All models use a very small waveform ROM, even though the hardware supports a much larger one. All sounds consist of two layered voices, hard panned left and right.
The nicest models of this series are the CT-670, MT-750 (same thing but with mini keys), CT-680 (this adds a digital reverb but loses the rhythm volume control) and CT-X1 (rare, nicer effects than the CT-680). Lesser models have fewer sounds, fewer keys and fewer buttons in the tone editor section.Multitracked Korg 01/WFDacreil2021-03-03 | 10 tracks total, no PCM cards, factory presets or external effects. Recorded 2021. I used a just intonation scale, but it's not really that apparent here. In-depth hardware information will follow eventually.Casiotone CT-6000 multitracked with Alesis Midiverbacreil2021-02-10 | Written and recorded in one day, but it's not really my best composition. 9 tracks total. Recorded in Reaper with some mild EQ but no other processing.
The CT-6000 isn't analog or phase distortion as is sometimes reported; it's an enhanced version of the "consonant-vowel" synthesis from earlier Casio models, adding pitch bend, velocity and aftertouch, plus 3 oscillators per voice (up to 6 or 12 with the unison modes) and a stereo 3 BBD string ensemble chorus (similar to the one later used in the CZ-3000, CZ-5000 and CZ-1). The tone generator IC is the µPD932, which was apparently used only in the CT-6000, CPS-201 and CPS-2000. The drums are also digital, based around the the HD61701 IC (also unique to the CT-6000 and CPS-201). I plan to modify mine to unleash the digital filth lurking inside and make high quality samples of the drum sounds.
For reference, the CT-7000 and CT-8000 are similar to the Casio MT-65/MT-68/CT-405, based around the µPD930 and µPD931 ICs (consonant-vowel, 1 oscillator per voice). The CT-5500 and CT-6500 are phase distortion, basically preset versions of a CZ-3000 (µPD933 or µPD933AC) with auto-accompaniment and drums.Korg PSS-50 chord progression 2 with Alesis Midiverb (avant-prog/free improvisation edition)acreil2021-02-08 | You can make unusual time signatures by switching between patterns.
Chord progression: First part: F m7, B m6, D M7, G# 7, A# m9, E 6, G m6, C# 9 Second part: C# m7, C M7, E m7, G M7, G# m7, B M7, A# m7, F# M7, F m7, E M7, D# m7, A M7 Third part: F M7, A m7, A# M7, B m7, D M7, F# m7, D# M7, D m7, C# M7, C m7, G# M7, G m7finished Pure Data noise/ambient patch from lectureacreil2020-12-03 | Here's the finished noise/ambient patch from the Tulane lecture video: youtube.com/watch?v=2_P7MVQnmZk.
I'll post the patch with a walkthrough video later.finished Pure Data IDM patch from lectureacreil2020-10-30 | I finished the patch I made at the end of the previous video (youtube.com/watch?v=2_P7MVQnmZk).
A full description of the patch is here: youtu.be/Nhy1n8Bxm3M Download the patch here: dropbox.com/s/9ul0t5y2eobeaf4/lecture2.zip?dl=0Pure Data guest lecture for Tulane Universityacreil2020-10-28 | 0:00 background and context within electronic music history 9:52 workflow considerations for patch and abstraction development 11:45 random modulator abstraction (bmod and bmod~) 13:37 filter bank abstraction (fbank and fbank~) and lecture1.pd patch 22:11 control laws 25:40 pitch shifters 28:13 pitch shifter abstraction (pitchshift~) 30:55 another pitch shifter abstraction (pitchshift3~) 38:01 delay patch 40:18 lecture2.pd patch 46:35 summary
Thanks to Rick Snow for inviting me to do this. This covers some background information about what I think PD's advantages are and how it can be best used, tips for developing and using abstractions, and two example patches. I tried to throw in a lot of technical and historical information.
The filter banks at 17:58 are the Albiswerk 502/72 (top, for low and high frequencies) and 502/74 (bottom, for mid-range frequencies) The pitch shifter at 25:54 is the Publison DHM 89 B 2 Detailed information on the SalMar Construction can be found here: archive.org/details/hardwaredesignof677fran/mode/2up
The finished recording from the first patch is here: youtu.be/XjZbp8aQGwA The patch and description will come later.Korg PSS-50 Programmable Stupor Section chord progressionacreil2020-10-02 | This thing isn't as useless as I thought.
Chord progression: G 9, D# M7, C m9, F 7, F 6, G 9, D# M7, C m9, G# 9, B m9, G# 7, G M7, C 6, D# M7, F 9, B m9, G# 7, G M7, C 6, D# M7, F 9, B M7, F# M7, A# m7, C# M7, E 6, B M7, F# M7, A# m9, A 9, E m9, D m6, C# m9, F# m7, F 6, E m9, D m6, C# m9, F# m7, F 6
This is part of the patch I used for my last video. It works in both Purr Data and Pure Data Vanilla (although it crashed Vanilla on macOS when I tried it). Now you can make real simulated wood grain spectrograms too!
The audio quality here isn't great, and there are some clumsy edits where I re-ordered some of the parts. I don't really care.
Reference for weighted overlap add: https://ccrma.stanford.edu/~jos/sasp/Weighted_Overlap_Add.htmlpure data generative composition with frequency domain filteringacreil2020-01-06 | I made a PD patch based around a recording of a leaky toilet. It uses a just intonation scale consisting of harmonics 9 to 17 (the 16th harmonic is used as the root note). I used frequency domain filtering, and the result is one of the wildest spectrograms I've ever seen.
This track uses the Technics SX-AX7 with no external effects. 6 tracks total.Pure Data algorithmic IDMacreil2018-11-14 | This is a remix of my previous upload: youtube.com/watch?v=QfagniHgruU
Most of it is atonal, but the background chord part uses a just intonation scale based on harmonics 40, 45, 50, 55, 60, 63 and 70.
8 sawtooth oscillators glide from unison to multiples of +/- 600 cents at multiples of 1 cent per second. You can hear consonant intervals as the partials of different tones coincide, represented in the video as lines intersecting.Pure Data ambient/glitch album: sample item with diameter 32acreil2018-11-01 | available here: acreil.bandcamp.com/album/sample-item-with-diameter-32 and on Spotify: distrokid.com/hyperfollow/acreil/eubb
This is about 10 tracks, recorded dry, 2016. The album version is remixed with reverb from an Alesis Midiverb.Alesis Quadraverb Feedback 2acreil2017-10-17 | This is basically the same as the other one: just a Quadraverb in a feedback loop with nothing else. Recorded circa 2004.Alesis Quadraverb Feedback 1acreil2017-09-11 | This is actually very easy to do just by putting the Quadraverb in a feedback loop with a mono delay algorithm, then fiddling with the delay time and occasionally muting the output. Recorded circa 2004. I added the switches more recently. They hold the delay memory contents and corrupt the DSP instruction memory.eisegetic waiver (2017 re-release)acreil2017-09-05 | available here: acreil.bandcamp.com/album/eisegetic-waiver and on Spotify: distrokid.com/hyperfollow/acreil/dtlG
I used the auto-accompaniment for this. I think it's mostly useless in the PSS-280/290/380/390 since the patterns are cheesy and overdone. Reverb is Ibanez SDR-1000. 9 tracks total. The album version is remixed with additional overdubs.Technics SX-K450 multitracked demoacreil2017-07-23 | Full album here: acreil.bandcamp.com/album/panchromatic-window Streaming link: distrokid.com/hyperfollow/acreil/panchromatic-window
The Technics SX-K450 is the flagship home keyboard model from 1986. It's basically similar to an analog divide-down organ with crunchy sampled drums, an unusual sampled solo section and an excellent string ensemble chorus. I recorded it dry with about 7 tracks. The album version is remixed with reverb from an Alesis Midiverb.Pure Data ambient/glitch album: intangible pavilionsacreil2017-07-01 | Available here: acreil.bandcamp.com/album/intangible-pavilions and on Spotify: distrokid.com/hyperfollow/acreil/ceN1
Two tracks were previously released, but everything else is new.Pure Data algorithmic composition in 5 limit just intonationacreil2017-03-17 | Minor and sharp major eleventh chords in 5 limit just intonation modulate in a variety of ways. It doesn't stick to a fixed set of pitches, so it can modulate arbitrarily without intonation problems.
As usual it's all PD with no samples or VSTs or anything.
Basically, I'm constructing minor and sharp major eleventh chords from two chains of fifths (1/1, 3/2, 9/4) separated by a third (major or minor). The size of the major third can be set arbitrarily, and the minor third is derived from that. I can modulate to other chords in a number of ways:
-Transpose the base pitch by 3/2 or 4/3 (dominant/subdominant) -Transpose the base pitch up or down by the third and toggle between major/minor thirds (diatonic mediant/submediant) -Transpose the base pitch up or down by the third (chromatic mediant/submediant) -Toggle between major/minor (parallel transformation) -Transpose by the interval between the major/minor thirds and toggle between major/minor (slide transformation).
Sometimes several of these are combined (up to 4). This has to be done carefully to keep it from sounding too weird. I tried a couple other things besides that (hexatonic poles, etc.), but I thought they didn't work very well.
Originally the idea was to use some exotic interval for the major third, but I found that most of them sounded too dissonant. For major thirds larger than about 32/25 (427 cents), some of the resulting intervals get too small. And for major thirds smaller than 5/4 (386 cents), the major and minor intervals are too close together. So the useful range is pretty small, and a lot of the ones I wanted to try (9/7, 11/9) don't really work. I thought the only major third sizes that worked well were 14/11, 81/64 (Pythagorean) and 5/4. I went with 5/4. But I want to revisit this idea with more exotic intervals. I'll just have to construct the chord differently so that it works better.Pure Data based ambient album: agglomeration and homothetyacreil2017-03-01 | album available here: acreil.bandcamp.com/album/agglomeration-and-homothety and on Spotify: distrokid.com/hyperfollow/acreil/chm6
This was recorded with only the MK-100 and Roland SRV-2000 reverb. 5 tracks total. The MK-100 uses the same tone generator IC (iG10771 GE7) as the PSS-260 and PSS-450, but adds basic synthesizer functionality and the ability to reprogram the drum patterns and auto accompaniment bass. Contrary to what's sometimes reported, it's fully digital except for the chorus. Recorded 2017.Yamaha PS-55 multitracked demoacreil2016-05-20 | Full album here: acreil.bandcamp.com/album/panchromatic-window Streaming link: distrokid.com/hyperfollow/acreil/panchromatic-window
Yamaha PS-55 with Ibanez SDR-1000 reverb, 4 tracks total. The album version is remixed with additional overdubs.
The PS-55 (1983) and related models (PS-25, PS-35, PC-1000, CN-1000, MR-1) were part of the first line of fully digital Portasound keyboards, replacing the semi-analog PS-10, PS-20 and PS-30. I was actually surprised to find that it's completely digital (aside from the chorus), as I'd assumed the solo section used an analog VCF like the PS-30. It turns out that the filter-like effects (mainly on the Fantasy and Funny tones) are actually created by sophisticated wavetable crossfades.Seiko DS-250 multitracked demo with Rhythm Ace FR-2Lacreil2015-07-14 | Full album here: acreil.bandcamp.com/album/panchromatic-window Streaming link: distrokid.com/hyperfollow/acreil/panchromatic-window
All synth parts are Seiko DS-250 through a Yamaha REV5. The drum track is an Ace Tone Rhythm Ace FR-2L (sort of broken) through an Ibanez SDR-1000 and Tapco 4400 (also sort of broken). Recorded 2015.just intonation generative ambient in Pure Dataacreil2015-01-11 | Get the patch here: acreil.wordpress.com/2018/05/21/pd-patch-root%e2%80%8b-%e2%80%8bspindle-pinhole
This uses an 8 note just intonation scale. The frequencies are 300, 350, 400, 433.3, 475, 500, 550 and 575 Hz, or 36:42:48:52:57:60:66:69. The main idea was to test a distortion algorithm; I think distortion works much better on just intonation scales. The frequencies were entered more or less arbitrarily, with some minor fiddling, but I was surprised at how consonant it sounded. Primes are 3, 5, 7, 11, 13, 19 and 23.Pure Data algorithmic techno in just intonationacreil2014-05-03 | Now available here: acreil.bandcamp.com/album/acheiropoietic-ans-tze and on Spotify: distrokid.com/hyperfollow/acreil/ces1
Made from scratch in about 2 days using just Pure Data with no samples or plugins. The initial inspiration was some research I've been doing related to variants of FM synthesis. The bassline's scale is harmonics 8 to 16, with linear detuning.ambient with Yamaha VSS-200 and Evolveracreil2014-04-22 | Everything is multitracked Yamaha VSS-200 (sampling a Bontempi zither) and Dave Smith Instruments Evolver. Effects used (as far as I can remember): Alesis Quadraverb, Yamaha REX50, Digitech RDS 3.6, Tapco 4400, Boss PH-1. Recorded 2005-2006.KPR-77, CR-8000, TR-77, Evolver with Yamaha PS-55 and Roland VP-70acreil2014-04-01 | Second section starts at about 5:00. Album coming soon, when I can manage to finish a few more tracks.
Gear used: Korg KPR-77, Roland CR-8000, Roland TR-77, Dave Smith Instruments Evolver, Yamaha PS-55 (overdubs), BBE MaxCom compressor, Roland VP-70 (overdubs), Roland SRV-2000 (metallic reverb on second part), Yamaha FX900 (overdubs), Ibanez SDR-1000, Marantz PMD-221 tape echo (overdubs), Tapco 4400.
Recorded 2014.CR-8000, Evolver, Kurzweil K2VXacreil2014-02-12 | Dave Smith Instruments Evolver sequencer triggered by Roland CR-8000 (details on the trigger conditioning circuit here: http://acreil.wordpress.com/2014/01/15/syncing-drum-machines), all overdubs are Kurzweil K2VX (no external samples used). Effect processors used: Ibanez SDR-1000, Tapco 4400.3 synced drum machines (TR-77, KPR-77, CR-8000) with Evolver and Seiko DS-250acreil2014-01-15 | Seiko power supply info here: acreil.wordpress.com/2017/06/25/seiko-ds-series-power-supply
The Roland CR-8000 (hi-hat, handclap) is slaved to the Korg KPR-77 (bass, snare, hi-hat) via DIN sync. One KPR-77 trigger output clocks the TR-77 (miscellaneous patterns with spring reverb) in an irregular pattern, while the other is connected to the "register" input on the CR-8000 (switching between two different patterns). The CR-8000's accent trigger output clocks the Evolver (with Ibanez SDR-1000 reverb). I added two overdubs with the Seiko DS-250, processed by the SDR-1000 and Yamaha FX900. Recorded 2013.Roland TR-77 speedcore (3600 BPM)acreil2014-01-08 | The Roland TR-77 has internal trimpots to adjust the tempo range (low and high). The range is excessive to begin with, but adjusting these trimpots enables extremely fast rhythms. I estimate that this reaches about 3600 BPM. Even faster tempi are possible if the timing capacitors in the master oscillator are replaced with something smaller, but I think this is already sufficiently ridiculous. They should be replaced anyway; I've seen the tantalum capacitors fail, causing an unstable and wildly varying tempo. I replaced the 0.33 µF caps in mine with 0.47 µF film capacitors to get a more reasonable tempo range.
The original recording is mono. Overdubs (hard-panned left and right) are TR-77 with Marantz PMD-221 tape delay and Tapco 4400 spring reverb. Recorded 2013.Hammond Auto-Vari 64 with Seiko DS-250 and function generatorsacreil2013-12-03 | Seiko power supply info here: acreil.wordpress.com/2017/06/25/seiko-ds-series-power-supply
The drum track uses a Hammond Auto-Vari 64, Boss DS-2 and Garrard GEQ-330 equalizer. Synth overdubs are Seiko DS-250 with DS-310 programmer, Ibanez SDR-1000 reverb and Roland VP-70 (VP-70 only used on the chord part). Noise overdubs are Wavetek 145 and 188-S-1257 function generators with Marantz PMD221 tape echo. 8 tracks total. Recorded 2013.60 minute harmonic series composition in Pure Data: i4.30.2acreil2013-08-03 | available here: http://acreil.bandcamp.com/album/flutter-straight-on-the-nine-miles and on Spotify: distrokid.com/hyperfollow/acreil/dtA7
Composed 2011-2013, made in Pure Data using only self-developed algorithms. No plugins used. Mixed in Audacity.noise album with mixer feedback and ring modulator: airbust parcelacreil2013-07-22 | Recorded 2007 using Alesis 1622 mixer, Digitech RDS 3.6 delay, Tapco 4400 spring reverb, passive ring modulator, ruined turntable with obstacles.
The main bell-like tone plays a sustained chord through the entire recording. The looping pitch envelope very slowly speeds up over 8 minutes, producing a rapid arpeggio at the end. The other sounds are retriggered occasionally, but are mostly sustained.
This recording uses the Wersi MK1, but I used the EX20 for the photo because I haven't yet done a proper photo shoot for the MK1. The reverb is the Ibanez SDR-1000. Recorded 2009?
Check the (NiCd) memory backup battery if you own one of these. They can leak and cause damage. The RAM cartridges also contain NiCd batteries.Keytek CTS-2000 (Jeremy Soule - Menu [Secret of Evermore])acreil2013-04-29 | Multitracked and heavily processed Keytek CTS-2000 arrangement of the menu screen music from Secret of Evermore. The idea was to do an elaborate "dub mix" on each track individually. Recorded 2009?
All synths: Keytek CTS-2000
Drums: Yamaha RX5, Yamaha RY30
Processing: Tapco 4400, Digitech RDS 3.6, Ibanez SDR-1000, Roland VP-70, Alesis Quadraverb, Boss PH-1, Peavey T-Max, Dave Smith Instruments Evolver, Alesis 1622
The CTS-2000 has a very steep lowpass filter (about 7.3 kHz) on both output channels. This is located on the front panel PCB, near where the pitch and mod wheels connect. Removing 5 capacitors per channel (5.6 nF, 10 nF, 820 pF, 15 nF, 330 pF) and retuning the VCF trimpots for a higher cutoff frequency improves the sound considerably.Keytek CTS-2000 Cross Wave examplesacreil2013-04-29 | Here are several examples of single oscillator waveform crossfades. The Keytek CTS-2000 can crossfade between 3 waveforms per oscillator, with a 2 stage envelope (two times and an intermediate breakpoint) for each crossfade. The IC responsible for this is the SGS M114S, which was also used in the Cheetah MS800, Amstrad CKX100 and Solton K160, as well as the other Keytek models (CTS-1000G, CTS-400, CTS-5000) and some obscure pinball machines.