Playing with Phasing - Part 3 - An experimental SSB/CW Transmitter (WIP)
Since the phasing RX (part 2) functioned reasonably well, I decided to build a companion phasing TX using the same general concepts as before. Phasing TX's anecdotally have a less than stellar reputation - poor carrier and opposite sideband suppression. I wanted to see if replacing the usual op-amp based phase shifters (KK7B) with the Teensy4.0/SGTL5000 (ZL2CTM) combination would be practical. As in the RX build, filtering at RF frequencies is done using external LP and BP LC filters of conventional design. The TX concept is detailed, below:
The RX's switched quadrature LO is put to work in this build. (The RX has the capability to offset the TX frequency for CW operation and the built-in FST3253 DPDT switch makes the LO signal available externally in the transmit state.)
PTT circuitry was implemented using old-school, discreet component switching for simplicity's sake. The Teensy would be more than capable of accomplishing the same result. A photo of the TX "guts" as they currently stand, reveals that the same 50 ohm interface, modular approach used for the RX was also used, here.
A few brief tests (using a TinySA Ultra with 60db attenuation in front of it for "protection") showed 48db carrier suppression and opposite sideband suppression on the order of 37 - 40db (yes, I did correct for the attenuation). Not spectacular, but usable, at least at QRP levels. This performance could possibly be improved by careful adjustment of AF and LO levels at the 2 X DBM module. I just haven't got there, yet!
To do:
1. Optimize AF/LO levels at DBM's for best possible carrier and opposite sideband suppression.
2. Determine if more than 200 taps are practical for the Hilbert filters. Experiment with filter window type.
3. Make sure the TX amplifier chain has acceptable IMD performance. I'm bumping up on gain compression in the TIA and pre-driver. The SV1AFN driver amp seems pretty robust and doesn't gain compress much at 1 watt output. Not cheap, but a real beast!
4. Actually put this gear on the air and see if it sounds good to the outside world.
5. Decide if I want to add any software-based "features".
6. Remove the 10-turn pot and op-amp voltage source that were used to control various VCA's during initial development. Using small-signal VCA's in this application did not turn out well. Sometimes you have to learn the hard way....
_______________________________________________________________________________________________
The Teensy code (again, largely based on ZL2CTM's work) for this TX follows:
#include <_Teensy.h>
#include <Wire.h>
#include <Audio.h> // Teensy audio library
// Number of Filter Coefficients
#define NO_HILBERT_COEFFS 200
// Iowa Hills Hilbert transform filter coefficients
const short Hilbert_Plus_45_Coeffs[NO_HILBERT_COEFFS] = {
(short)(32768 * 0.00000187995362921356),
(short)(32768 * 0.00000101382681805262),
(short)(32768 * -0.00000041944920781134),
(short)(32768 * -0.00000206886261366890),
(short)(32768 * -0.00000328853616338165),
(short)(32768 * -0.00000322961068377481),
(short)(32768 * -0.00000104261721389776),
(short)(32768 * 0.00000383674523618538),
(short)(32768 * 0.00001138329298555618),
(short)(32768 * 0.00002075305565085728),
(short)(32768 * 0.00003022999953827821),
(short)(32768 * 0.00003742715125554241),
(short)(32768 * 0.00003976617153966799),
(short)(32768 * 0.00003518092489684932),
(short)(32768 * 0.00002290562406415120),
(short)(32768 * 0.00000414016449212795),
(short)(32768 * -0.00001763984073477332),
(short)(32768 * -0.00003692470636451617),
(short)(32768 * -0.00004705678293248639),
(short)(32768 * -0.00004169571548118256),
(short)(32768 * -0.00001661604801483918),
(short)(32768 * 0.00002856819992302917),
(short)(32768 * 0.00008924310532165691),
(short)(32768 * 0.00015566049842163920),
(short)(32768 * 0.00021412860951386392),
(short)(32768 * 0.00024954276159405708),
(short)(32768 * 0.00024891708744689822),
(short)(32768 * 0.00020523219427559525),
(short)(32768 * 0.00012067319039488211),
(short)(32768 * 0.00000828072279546177),
(short)(32768 * -0.00010876693704631180),
(short)(32768 * -0.00020058304653503001),
(short)(32768 * -0.00023643388703931123),
(short)(32768 * -0.00019207553123123944),
(short)(32768 * -0.00005703790884581394),
(short)(32768 * 0.00015996840375009924),
(short)(32768 * 0.00042924060835503042),
(short)(32768 * 0.00070302636595442891),
(short)(32768 * 0.00092342460993677378),
(short)(32768 * 0.00103426445275545120),
(short)(32768 * 0.00099482492078095675),
(short)(32768 * 0.00079241563798859715),
(short)(32768 * 0.00045058503746986389),
(short)(32768 * 0.00003020270378328860),
(short)(32768 * -0.00037809176137670875),
(short)(32768 * -0.00066977186361327767),
(short)(32768 * -0.00074829190270975232),
(short)(32768 * -0.00054877914953976870),
(short)(32768 * -0.00005827662607771344),
(short)(32768 * 0.00067276862682774663),
(short)(32768 * 0.00153185811359435320),
(short)(32768 * 0.00236034626141190529),
(short)(32768 * 0.00298246811144053936),
(short)(32768 * 0.00324279186315834522),
(short)(32768 * 0.00304473401047289371),
(short)(32768 * 0.00238144909963011742),
(short)(32768 * 0.00135089165996760130),
(short)(32768 * 0.00014931759505998343),
(short)(32768 * -0.00095839390996843576),
(short)(32768 * -0.00168814661446958780),
(short)(32768 * -0.00179734628181904554),
(short)(32768 * -0.00114480499178171158),
(short)(32768 * 0.00026374991284683347),
(short)(32768 * 0.00225671660155057907),
(short)(32768 * 0.00451200548559427261),
(short)(32768 * 0.00660791201516985893),
(short)(32768 * 0.00810285285115242004),
(short)(32768 * 0.00863009598106145859),
(short)(32768 * 0.00798853952437639236),
(short)(32768 * 0.00620909873396158218),
(short)(32768 * 0.00357905798591673374),
(short)(32768 * 0.00061377260135486722),
(short)(32768 * -0.00202476163394749165),
(short)(32768 * -0.00365150393918156624),
(short)(32768 * -0.00370277347974479198),
(short)(32768 * -0.00187310588080435991),
(short)(32768 * 0.00178553408477455378),
(short)(32768 * 0.00682784663513302803),
(short)(32768 * 0.01245793793350458145),
(short)(32768 * 0.01765142939984798431),
(short)(32768 * 0.02134133130311965942),
(short)(32768 * 0.02263728901743888855),
(short)(32768 * 0.02103775925934314728),
(short)(32768 * 0.01659170538187026978),
(short)(32768 * 0.00997202750295400620),
(short)(32768 * 0.00243640411645174026),
(short)(32768 * -0.00432921992614865303),
(short)(32768 * -0.00846713781356811523),
(short)(32768 * -0.00826646760106086731),
(short)(32768 * -0.00249097635969519615),
(short)(32768 * 0.00934264715760946274),
(short)(32768 * 0.02679026685655117035),
(short)(32768 * 0.04844862595200538635),
(short)(32768 * 0.07208253443241119385),
(short)(32768 * 0.09489956498146057129),
(short)(32768 * 0.11393431574106216431),
(short)(32768 * 0.12648330628871917725),
(short)(32768 * 0.13052044808864593506),
(short)(32768 * 0.12502384185791015625),
(short)(32768 * 0.11015775054693222046),
(short)(32768 * 0.08727697283029556274),
(short)(32768 * 0.05875028669834136963),
(short)(32768 * 0.02762975543737411499),
(short)(32768 * -0.00278118043206632137),
(short)(32768 * -0.02939149923622608185),
(short)(32768 * -0.04974408075213432312),
(short)(32768 * -0.06232902035117149353),
(short)(32768 * -0.06674224138259887695),
(short)(32768 * -0.06366980075836181641),
(short)(32768 * -0.05470800399780273438),
(short)(32768 * -0.04205619916319847107),
(short)(32768 * -0.02813878841698169708),
(short)(32768 * -0.01522193104028701782),
(short)(32768 * -0.00508764060214161873),
(short)(32768 * 0.00118558865506201982),
(short)(32768 * 0.00330774253234267235),
(short)(32768 * 0.00172494212165474892),
(short)(32768 * -0.00254931696690618992),
(short)(32768 * -0.00817991327494382858),
(short)(32768 * -0.01378324162214994431),
(short)(32768 * -0.01817758195102214813),
(short)(32768 * -0.02056903392076492310),
(short)(32768 * -0.02064667269587516785),
(short)(32768 * -0.01857941970229148865),
(short)(32768 * -0.01492566708475351334),
(short)(32768 * -0.01048160158097743988),
(short)(32768 * -0.00610282970592379570),
(short)(32768 * -0.00253540510311722755),
(short)(32768 * -0.00028686513542197645),
(short)(32768 * 0.00044281702139414847),
(short)(32768 * -0.00023613573284819722),
(short)(32768 * -0.00196024379692971706),
(short)(32768 * -0.00421178108081221581),
(short)(32768 * -0.00643614307045936584),
(short)(32768 * -0.00815287977457046509),
(short)(32768 * -0.00903960969299077988),
(short)(32768 * -0.00897559151053428650),
(short)(32768 * -0.00804105214774608612),
(short)(32768 * -0.00647746818140149117),
(short)(32768 * -0.00462108245119452477),
(short)(32768 * -0.00282579683698713779),
(short)(32768 * -0.00139185704756528139),
(short)(32768 * -0.00051368179265409708),
(short)(32768 * -0.00025485135847702622),
(short)(32768 * -0.00055192952277138829),
(short)(32768 * -0.00124285195488482714),
(short)(32768 * -0.00211122864857316017),
(short)(32768 * -0.00293577904812991619),
(short)(32768 * -0.00353441317565739155),
(short)(32768 * -0.00379485054872930050),
(short)(32768 * -0.00368738733232021332),
(short)(32768 * -0.00325958081521093845),
(short)(32768 * -0.00261628418229520321),
(short)(32768 * -0.00189098750706762075),
(short)(32768 * -0.00121538620442152023),
(short)(32768 * -0.00069354032166302204),
(short)(32768 * -0.00038519204827025533),
(short)(32768 * -0.00030032714130356908),
(short)(32768 * -0.00040448509389534593),
(short)(32768 * -0.00063220167066901922),
(short)(32768 * -0.00090467871632426977),
(short)(32768 * -0.00114747288171201944),
(short)(32768 * -0.00130460795480757952),
(short)(32768 * -0.00134678115136921406),
(short)(32768 * -0.00127289851661771536),
(short)(32768 * -0.00110566662624478340),
(short)(32768 * -0.00088308291742578149),
(short)(32768 * -0.00064822542481124401),
(short)(32768 * -0.00043971571722067893),
(short)(32768 * -0.00028470484539866447),
(short)(32768 * -0.00019540384528227150),
(short)(32768 * -0.00016927160322666168),
(short)(32768 * -0.00019218781380914152),
(short)(32768 * -0.00024342768301721662),
(short)(32768 * -0.00030108159990049899),
(short)(32768 * -0.00034670846071094275),
(short)(32768 * -0.00036839049425907433),
(short)(32768 * -0.00036184827331453562),
(short)(32768 * -0.00032975079375319183),
(short)(32768 * -0.00027971604140475392),
(short)(32768 * -0.00022168386203702539),
(short)(32768 * -0.00016534616588614881),
(short)(32768 * -0.00011817178165074438),
(short)(32768 * -0.00008432669710600749),
(short)(32768 * -0.00006453354581026360),
(short)(32768 * -0.00005669903839589097),
(short)(32768 * -0.00005700450492440723),
(short)(32768 * -0.00006111734546720982),
(short)(32768 * -0.00006522855983348563),
(short)(32768 * -0.00006672595918644220),
(short)(32768 * -0.00006443818710977212),
(short)(32768 * -0.00005849724766449071),
(short)(32768 * -0.00004994427581550553),
(short)(32768 * -0.00004023295696242712),
(short)(32768 * -0.00003077201108681038),
(short)(32768 * -0.00002260407563881017),
(short)(32768 * -0.00001626135053811595),
(short)(32768 * -0.00001178528145828750),
(short)(32768 * -0.00000886051384441089),
(short)(32768 * -0.00000699792735758820)
};
// Iowa Hills Hilbert transform filter coefficients
const short Hilbert_Minus_45_Coeffs[NO_HILBERT_COEFFS] = {
(short)(32768 * -0.00000699792735758820),
(short)(32768 * -0.00000886051384441089),
(short)(32768 * -0.00001178528145828750),
(short)(32768 * -0.00001626135053811595),
(short)(32768 * -0.00002260407563881017),
(short)(32768 * -0.00003077201108681038),
(short)(32768 * -0.00004023295696242712),
(short)(32768 * -0.00004994427581550553),
(short)(32768 * -0.00005849724766449071),
(short)(32768 * -0.00006443818710977212),
(short)(32768 * -0.00006672595918644220),
(short)(32768 * -0.00006522855983348563),
(short)(32768 * -0.00006111734546720982),
(short)(32768 * -0.00005700450492440723),
(short)(32768 * -0.00005669903839589097),
(short)(32768 * -0.00006453354581026360),
(short)(32768 * -0.00008432669710600749),
(short)(32768 * -0.00011817178165074438),
(short)(32768 * -0.00016534616588614881),
(short)(32768 * -0.00022168386203702539),
(short)(32768 * -0.00027971604140475392),
(short)(32768 * -0.00032975079375319183),
(short)(32768 * -0.00036184827331453562),
(short)(32768 * -0.00036839049425907433),
(short)(32768 * -0.00034670846071094275),
(short)(32768 * -0.00030108159990049899),
(short)(32768 * -0.00024342768301721662),
(short)(32768 * -0.00019218781380914152),
(short)(32768 * -0.00016927160322666168),
(short)(32768 * -0.00019540384528227150),
(short)(32768 * -0.00028470484539866447),
(short)(32768 * -0.00043971571722067893),
(short)(32768 * -0.00064822542481124401),
(short)(32768 * -0.00088308291742578149),
(short)(32768 * -0.00110566662624478340),
(short)(32768 * -0.00127289851661771536),
(short)(32768 * -0.00134678115136921406),
(short)(32768 * -0.00130460795480757952),
(short)(32768 * -0.00114747288171201944),
(short)(32768 * -0.00090467871632426977),
(short)(32768 * -0.00063220167066901922),
(short)(32768 * -0.00040448509389534593),
(short)(32768 * -0.00030032714130356908),
(short)(32768 * -0.00038519204827025533),
(short)(32768 * -0.00069354032166302204),
(short)(32768 * -0.00121538620442152023),
(short)(32768 * -0.00189098750706762075),
(short)(32768 * -0.00261628418229520321),
(short)(32768 * -0.00325958081521093845),
(short)(32768 * -0.00368738733232021332),
(short)(32768 * -0.00379485054872930050),
(short)(32768 * -0.00353441317565739155),
(short)(32768 * -0.00293577904812991619),
(short)(32768 * -0.00211122864857316017),
(short)(32768 * -0.00124285195488482714),
(short)(32768 * -0.00055192952277138829),
(short)(32768 * -0.00025485135847702622),
(short)(32768 * -0.00051368179265409708),
(short)(32768 * -0.00139185704756528139),
(short)(32768 * -0.00282579683698713779),
(short)(32768 * -0.00462108245119452477),
(short)(32768 * -0.00647746818140149117),
(short)(32768 * -0.00804105214774608612),
(short)(32768 * -0.00897559151053428650),
(short)(32768 * -0.00903960969299077988),
(short)(32768 * -0.00815287977457046509),
(short)(32768 * -0.00643614307045936584),
(short)(32768 * -0.00421178108081221581),
(short)(32768 * -0.00196024379692971706),
(short)(32768 * -0.00023613573284819722),
(short)(32768 * 0.00044281702139414847),
(short)(32768 * -0.00028686513542197645),
(short)(32768 * -0.00253540510311722755),
(short)(32768 * -0.00610282970592379570),
(short)(32768 * -0.01048160158097743988),
(short)(32768 * -0.01492566708475351334),
(short)(32768 * -0.01857941970229148865),
(short)(32768 * -0.02064667269587516785),
(short)(32768 * -0.02056903392076492310),
(short)(32768 * -0.01817758195102214813),
(short)(32768 * -0.01378324162214994431),
(short)(32768 * -0.00817991327494382858),
(short)(32768 * -0.00254931696690618992),
(short)(32768 * 0.00172494212165474892),
(short)(32768 * 0.00330774253234267235),
(short)(32768 * 0.00118558865506201982),
(short)(32768 * -0.00508764060214161873),
(short)(32768 * -0.01522193104028701782),
(short)(32768 * -0.02813878841698169708),
(short)(32768 * -0.04205619916319847107),
(short)(32768 * -0.05470800399780273438),
(short)(32768 * -0.06366980075836181641),
(short)(32768 * -0.06674224138259887695),
(short)(32768 * -0.06232902035117149353),
(short)(32768 * -0.04974408075213432312),
(short)(32768 * -0.02939149923622608185),
(short)(32768 * -0.00278118043206632137),
(short)(32768 * 0.02762975543737411499),
(short)(32768 * 0.05875028669834136963),
(short)(32768 * 0.08727697283029556274),
(short)(32768 * 0.11015775054693222046),
(short)(32768 * 0.12502384185791015625),
(short)(32768 * 0.13052044808864593506),
(short)(32768 * 0.12648330628871917725),
(short)(32768 * 0.11393431574106216431),
(short)(32768 * 0.09489956498146057129),
(short)(32768 * 0.07208253443241119385),
(short)(32768 * 0.04844862595200538635),
(short)(32768 * 0.02679026685655117035),
(short)(32768 * 0.00934264715760946274),
(short)(32768 * -0.00249097635969519615),
(short)(32768 * -0.00826646760106086731),
(short)(32768 * -0.00846713781356811523),
(short)(32768 * -0.00432921992614865303),
(short)(32768 * 0.00243640411645174026),
(short)(32768 * 0.00997202750295400620),
(short)(32768 * 0.01659170538187026978),
(short)(32768 * 0.02103775925934314728),
(short)(32768 * 0.02263728901743888855),
(short)(32768 * 0.02134133130311965942),
(short)(32768 * 0.01765142939984798431),
(short)(32768 * 0.01245793793350458145),
(short)(32768 * 0.00682784663513302803),
(short)(32768 * 0.00178553408477455378),
(short)(32768 * -0.00187310588080435991),
(short)(32768 * -0.00370277347974479198),
(short)(32768 * -0.00365150393918156624),
(short)(32768 * -0.00202476163394749165),
(short)(32768 * 0.00061377260135486722),
(short)(32768 * 0.00357905798591673374),
(short)(32768 * 0.00620909873396158218),
(short)(32768 * 0.00798853952437639236),
(short)(32768 * 0.00863009598106145859),
(short)(32768 * 0.00810285285115242004),
(short)(32768 * 0.00660791201516985893),
(short)(32768 * 0.00451200548559427261),
(short)(32768 * 0.00225671660155057907),
(short)(32768 * 0.00026374991284683347),
(short)(32768 * -0.00114480499178171158),
(short)(32768 * -0.00179734628181904554),
(short)(32768 * -0.00168814661446958780),
(short)(32768 * -0.00095839390996843576),
(short)(32768 * 0.00014931759505998343),
(short)(32768 * 0.00135089165996760130),
(short)(32768 * 0.00238144909963011742),
(short)(32768 * 0.00304473401047289371),
(short)(32768 * 0.00324279186315834522),
(short)(32768 * 0.00298246811144053936),
(short)(32768 * 0.00236034626141190529),
(short)(32768 * 0.00153185811359435320),
(short)(32768 * 0.00067276862682774663),
(short)(32768 * -0.00005827662607771344),
(short)(32768 * -0.00054877914953976870),
(short)(32768 * -0.00074829190270975232),
(short)(32768 * -0.00066977186361327767),
(short)(32768 * -0.00037809176137670875),
(short)(32768 * 0.00003020270378328860),
(short)(32768 * 0.00045058503746986389),
(short)(32768 * 0.00079241563798859715),
(short)(32768 * 0.00099482492078095675),
(short)(32768 * 0.00103426445275545120),
(short)(32768 * 0.00092342460993677378),
(short)(32768 * 0.00070302636595442891),
(short)(32768 * 0.00042924060835503042),
(short)(32768 * 0.00015996840375009924),
(short)(32768 * -0.00005703790884581394),
(short)(32768 * -0.00019207553123123944),
(short)(32768 * -0.00023643388703931123),
(short)(32768 * -0.00020058304653503001),
(short)(32768 * -0.00010876693704631180),
(short)(32768 * 0.00000828072279546177),
(short)(32768 * 0.00012067319039488211),
(short)(32768 * 0.00020523219427559525),
(short)(32768 * 0.00024891708744689822),
(short)(32768 * 0.00024954276159405708),
(short)(32768 * 0.00021412860951386392),
(short)(32768 * 0.00015566049842163920),
(short)(32768 * 0.00008924310532165691),
(short)(32768 * 0.00002856819992302917),
(short)(32768 * -0.00001661604801483918),
(short)(32768 * -0.00004169571548118256),
(short)(32768 * -0.00004705678293248639),
(short)(32768 * -0.00003692470636451617),
(short)(32768 * -0.00001763984073477332),
(short)(32768 * 0.00000414016449212795),
(short)(32768 * 0.00002290562406415120),
(short)(32768 * 0.00003518092489684932),
(short)(32768 * 0.00003976617153966799),
(short)(32768 * 0.00003742715125554241),
(short)(32768 * 0.00003022999953827821),
(short)(32768 * 0.00002075305565085728),
(short)(32768 * 0.00001138329298555618),
(short)(32768 * 0.00000383674523618538),
(short)(32768 * -0.00000104261721389776),
(short)(32768 * -0.00000322961068377481),
(short)(32768 * -0.00000328853616338165),
(short)(32768 * -0.00000206886261366890),
(short)(32768 * -0.00000041944920781134),
(short)(32768 * 0.00000101382681805262),
(short)(32768 * 0.00000187995362921356)
};
// Instantiate the Objects
AudioControlSGTL5000 audioShield; // Name for the Teensy audio CODEC on the audio shield
// Audio shield
AudioInputI2S audioInput; // Name for the input to the audio shield
AudioOutputI2S audioOutput; // Name for the output of the audio shield
AudioFilterFIR RX_Hilbert_Plus_45; // Name for the RX +45 Hilbert transform
AudioFilterFIR RX_Hilbert_Minus_45; // Name for the RX +45 Hilbert transform
AudioFilterBiquad biquad1;
AudioFilterBiquad biquad2;
AudioAmplifier amp1;
AudioAmplifier amp2;
// Audio connections
AudioConnection patchCord5(audioInput, 0, RX_Hilbert_Plus_45, 0);
AudioConnection patchCord10(audioInput, 0, RX_Hilbert_Minus_45, 0);
AudioConnection patchCord15(RX_Hilbert_Plus_45, 0, biquad1, 0);
AudioConnection patchCord20(RX_Hilbert_Minus_45, 0, biquad2, 0);
AudioConnection patchCord30(biquad1, 0, amp1, 0);
AudioConnection patchCord35(biquad2, 0, amp2, 0);
AudioConnection patchCord40(amp1, 0, audioOutput, 0);
AudioConnection patchCord45(amp2, 0, audioOutput, 1);
void setup() {
// Setup the audio shield
AudioNoInterrupts();
AudioMemory(16);
audioShield.enable();
audioShield.inputSelect(AUDIO_INPUT_MIC);
audioShield.volume(1.0);
audioShield.micGain(10);
audioShield.lineOutLevel(13, 13);
audioShield.audioPreProcessorEnable();
audioShield.autoVolumeControl(0, 1, 0, -20, 0.5, 2.5);
audioShield.autoVolumeEnable();
AudioInterrupts();
Turn_On_TX();
//pinMode(SSB_SWITCH, INPUT_PULLUP);
//pinMode(FILTER_SWITCH, INPUT_PULLUP);
// Serial.begin(9600);
}
void loop() {
}
void Turn_On_TX() {
AudioNoInterrupts();
audioShield.muteHeadphone(); // Default is 5
audioShield.unmuteLineout();
RX_Hilbert_Plus_45.begin(Hilbert_Plus_45_Coeffs, NO_HILBERT_COEFFS);
RX_Hilbert_Minus_45.begin(Hilbert_Minus_45_Coeffs, NO_HILBERT_COEFFS);
biquad1.setBandpass(0, 1000, 0.4);
biquad1.setBandpass(1, 1000, 0.4);
biquad1.setBandpass(2, 1000, 0.4);
biquad1.setBandpass(3, 1000, 0.4);
biquad2.setBandpass(0, 1000, 0.4);
biquad2.setBandpass(1, 1000, 0.4);
biquad2.setBandpass(2, 1000, 0.4);
biquad2.setBandpass(3, 1000, 0.4);
amp1.gain(2.0);
amp2.gain(2.0);
AudioInterrupts();
}
Comments
Post a Comment