Тёмный
Lantertronics - Aaron Lanterman
Lantertronics - Aaron Lanterman
Lantertronics - Aaron Lanterman
Подписаться
Hi there! My name is Aaron Lanterman. I am a Professor of Electrical and Computer Engineering at Georgia Tech. When Tech switched to "distance learning" in March 2020, I decided to put the lecture videos I was creating for my classes here in the hopes that some folks outside of GT might find them useful. We'll see how things go from there.

The opinions expressed here are my own, and do not in any way represent official positions of the Georgia Institute of Technology or any group within it.
Комментарии
@256byteram
@256byteram 6 минут назад
C1 appears to be installed backwards on the schematic 🙂
@NinerFourWhiskey
@NinerFourWhiskey 31 минуту назад
Yes, it has been my experience that OC outputs tend to fail with a C->E short. In this case, they oddly paralleled 4 OC outputs, so probably 3 are working and one has a shorted C-E.
@theRiver_joan
@theRiver_joan Час назад
Couldn’t even make it a week without my mind being blown by this gem of a channel again. This program looks incredible and I get wait to install it and start getting into the tutorials. Thank you for making these and bringing us this info!
@mickfixesjunk
@mickfixesjunk 3 часа назад
Great video. I'm currently repairing one of these and I'm glad i was not the only to be thinking 'what is going on with this schematic'?
@therealjustincase
@therealjustincase 5 часов назад
Could there be a short to ground on/in the pcb? What would you see if you measure ttl output to ground resistance with no power applied?
@Lantertronics
@Lantertronics 3 часа назад
Good point -- we will check that next time we're in.
@alexanderoransky7601
@alexanderoransky7601 6 часов назад
Thank you for the intro to the synth! Too bad that it is not an open source.
@shipofthesun
@shipofthesun 7 часов назад
So. Many. Chips.
@SimoneProvencher
@SimoneProvencher 14 часов назад
Thanks a lot :) this is really sweet!
@slimyelow
@slimyelow 16 часов назад
Wow, there is a Behry Keystep?
@davesparrow1372
@davesparrow1372 19 часов назад
why to jjerrkk off to some lame piece of shiit ? because it give some sound ? COME ON
@gustinian
@gustinian День назад
Can this be adapted to utilise the Walsh Hadamard Transform (a sort of digital Fourier Transform with 1 and -1 instead of sine waves, no complex numbers, a sort of a bit stream approach)? Has anyone looked into that for synthesis?
@Lantertronics
@Lantertronics 22 часа назад
Maybe? It's not obvious to me how to adapt it. In general attempts I've seen to use Walsh functions have been kind of tricky, since the control of the coefficients winds up being really counterintuitive. Your first term is a square wave with lots of harmonics, and then you need to add terms to tame it.
@Alibaba-id4dw
@Alibaba-id4dw День назад
Languages that don't support goto aren't a good replacement for C.
@Lantertronics
@Lantertronics День назад
I suppose that’s true if you are using C as something of a portable assembler so the C itself is a target of compilation from some other language; you need something that translates directly to underlying assembly jump instructions. But I don’t think I’ve ever written a single goto in C or ever felt the urge to write one. I’d imagine gotos are not looked on fondly in most code reviews.
@fehix1196
@fehix1196 День назад
Some additive synths, but especially complex oscillators use dsf to make implementation more efficient than needing tons of individual oscillators to cover the harmonic series
@Buy_YouTube_Views_Gain_Fame301
I've officially added this to my 'Watch Every Month' list.
@superpie0000
@superpie0000 День назад
i still always prefer the flowcharts more. they are easyier to follow than a bunch of symbols. one example where i think this is useful is in mortiz klien's resonant lowpass tutorial. i find it disengenuous to call the first stage in his vid- a lowpass. i see it better as a highpass+ sum of op amp output. yes it has lowpass topology but it is being used backwards as a mixer+hpf.. ive done a few experiments to back up my findings. i think it was a linguistic barrerier of sorts. it looks like a lowpass at first glance but caps block 0 hz dc. while passing 99999 hz better.
@moselle409
@moselle409 День назад
8:33 correct: MIDI device availability is only checked at startup... one of literally 1000s of TODOs. I've got so many exciting things to do with performance, user interface, and more audio capability, that I'm not polishing things like this. (Or doing a DAW, or a Mac version, etc. etc.) Thanks for bearing with me. Small fonts: I'm awestruck that this even runs on the emulator. Early Win10 had a similar small window/big font issue but I think it doesn't after SP1. Win11 seems fine. Strange sounds: Excellent trouble-shooting! What you show is what we'd expect if you edited the INI file from 44.1 to 48 but the file wasn't written to disk, then Moselle restarted and read the old contents, only then the save took effect? So is there a few seconds' delay in your emulation before the PC side sees a file edit? And the subsequent restart did read the 48000 ini? I don't want to ask you to try to reproduce this as I don't think I will be able to fix the problem regardless. That said, kudos for finding that file to edit.
@moselle409
@moselle409 День назад
4:20 Dr. Lanterman, General1-4 are MIDI's official nicknames for controller number 16-19. General5-8 are controller number 80-83. Controller number 1 is ModWheel, number 2 is BreathCtrl, and so on, hence the ease of confusion. I'm editing the tutorial to make that clearer.
@moselle409
@moselle409 День назад
Hello Dr. Lanterman! Again many thanks for the comments and copious feedback. Some of the problems you've reported here may be fixed in my latest version while I'll make available for the usual free download this weekend.
@clausanders2886
@clausanders2886 День назад
Thanks for the pointing to this Synth. Just the things I'd like to play with. At the moment I'm busy with my NTS-3, but Moselle comes next. BTW: My Audio system is Scope by S|C (based on Pulsar) 30 years old (nearly).
@AnalogDude_
@AnalogDude_ День назад
You know what is quality : ) I have a RME digi96/8 in my G4 quicksilver power mac. Cool, software mangled waves and controls.
@Lantertronics
@Lantertronics День назад
RME is amazing. Fireface 800 is twenty years old, and RME is still keeping the drivers for it up to date! I'm using a Mac M1 with the latest OS and the Fireface is rock solid.
@AnalogDude_
@AnalogDude_ День назад
@@Lantertronics They have zero cpu load drivers. check their website who is using RME around the world, pretty stunning list even in places you wouldn't expect. It's publicly traded company. i often argued with friend to get RME and i was a RME fanboy.
@bob_mosavo
@bob_mosavo День назад
Thanks, Prof. Aaron 👍
@Lantertronics
@Lantertronics День назад
You are welcome!
@sonovoxx
@sonovoxx День назад
02:16 Lol! Not sure if your response to the Tom Sawyer sound was deliberately understated ...it's either that or you really aren't a Rush fan! 🤘😎 ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-OECgtx-LcOs.html
@Lantertronics
@Lantertronics День назад
Heh! Check out the intro to my lecture on State Variable Filters: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-jAokGV71MEw.html
@sonovoxx
@sonovoxx День назад
​@@LantertronicsLol! 🙈 I should have known! ...I wouldn't mind, but I had watched that video before! 😂👏👏👏
@p07a
@p07a 2 дня назад
I’m only 10 minutes in but I think the artifacts sound like the bit-depth is too low.
@DaveWhiting01
@DaveWhiting01 2 дня назад
The artifacts are caused by soundsc() defauting to 8 bits. Change the line to 'soundsc(xx,fs,16)' for 16 bit playback
@superpie0000
@superpie0000 2 дня назад
these vids are so high quality caught in 4k🔥
@eduardabramovich1216
@eduardabramovich1216 3 дня назад
Hello, will you continue your exploration of Odin?
@Lantertronics
@Lantertronics 3 дня назад
I'm hoping to get a student who wants to work on it this year. :)
@youliantroyanov2941
@youliantroyanov2941 3 дня назад
Awesome 👍
@MaciekRagus
@MaciekRagus 3 дня назад
My man this is awesome! I would really love to see it on store shelves!
@Lantertronics
@Lantertronics 3 дня назад
Thank you for your kind words!
@razvanrusan9319
@razvanrusan9319 3 дня назад
Hello! As a guy who makes electronic music, the sound at 10:18 is still really usable. In fact, a lot of electronic musicians use samplerate and bitrate reductions as musical effects to make harsh inharmonic tones. Or some people just mix in a bit of white noise to a square or saw wave. Or people who program additive synths intentionally make some of their partials inharmonic. So, honestly, I think I'm f_m=55 or 220*sqrt(2) sound really cool! Keep posting on this channel, we really need more university professors who are happy to make a quick 10 minute video to cover a fun topic!
@KellyRushTechSmith
@KellyRushTechSmith 3 дня назад
Hey Aaron, I chatted with our dev team, and if possible, they're wondering if it would be possible to get the audio file/project file to look at, in order to break down what might be happening. If you're interested, let me know and we can figure out how to get that. A workaround in the meantime is you can disable the Audio Normalization on a clip by clip basis. Just select to clip on the timeline and open the audio properties panel and disable it. You’d then likely want to reduce the level to match your other audio clips. The slider to modify the entire clip-level is conveniently located on the same property page.
@StefaanHimpe
@StefaanHimpe 3 дня назад
Could the aliasing be unavoidable because you're basically doing an infinite summation, meaning you will always add partials higher than half the sampling frequency, no matter what parameters you choose?
@Lantertronics
@Lantertronics 3 дня назад
Oh, yeah, technically speaking some of it is will always be unavoidable in the formulas I'm using, just like in regular Yamaha-style FM synthesis. You hope that the partials decay fast enough that the aliasing isn't objectionable. My suspicion here is there's also some numerical weirdness going on with the division that's making these effects sound more objectionable here... but I don't really know for sure.
@theRiver_joan
@theRiver_joan 3 дня назад
Im gonna have the coolest wavetables on the block when I learn how to get Octave going.
@Lantertronics
@Lantertronics 3 дня назад
I just subscribed to your channel -- great music!
@theRiver_joan
@theRiver_joan 3 дня назад
@@Lantertronics thank you so much! I’m so glad you liked the music!
@theRiver_joan
@theRiver_joan 3 дня назад
This is quickly becoming one of my favorite channels
@Lantertronics
@Lantertronics 3 дня назад
Thank you for your kind words!
@theRiver_joan
@theRiver_joan 4 дня назад
This blew my whole world wide open. Synthesis really is the Wild West.
@ironageamplification1791
@ironageamplification1791 4 дня назад
An overdrive pedal with 4 times as many components costs about 1/3 what some of these companies are charging for a Treble Booster circuit. It's crazy!
@danlindy9670
@danlindy9670 4 дня назад
Love this, except for the MatLab code. Even 15 years ago, scientists and engineers were dumping MatLab for Python (with SciPy, Pandas, MatPlotLib etc). Some people still use COBOL I suppose, but it’s not exactly helping to keep it in circulation.
@Lantertronics
@Lantertronics 4 дня назад
For large-scale programming projects, Python is a better choice; MATLAB evolved from an interactive wrapper for FORTRAN array routines and was never really properly designed as a language. But for things like this, I find MATLAB to be a much better fit (while also being accessible without paying silly $$$ because of Octave.) It has everything I want "out of the box" without having to think about installing and importing this library or that library, and more importantly, its syntax is tightly tied to the problem domain it targets. I could write this code much faster in MATLAB than in Python, and I think the resulting MATLAB is easier to read the the equivalent Python. To a certain extent, of course, this is a skill issue; the ratio of hours I've spent in MATLAB vs. the hours I've spent in Python approaches infinity. But being able to write a = [2 3 4; 5 6 7] is much more convenient than having to write np.array([[2, 3, 4], [5, 6,7]]), and I prefer writing A * B * C for matrix multiplication over something like np.matmul(np.matmul(A,B)),C) or even A @ B @ C. But then I seem to recall * is matrix multiplication for NumPy *matrices*, which are different than NumPy *arrays*, or something. So I can think about all of this, or I could just write MATLAB code and finish the video. ;) We've occasionally looked at switching our ECE2026: Introduction for Signal Processing course at Georgia Tech from MATLAB to Python and have always concluded that it's just much cleaner to express things in MATLAB. There's a new language called Julia that looks very interesting to me; it's kind of like what MATLAB could have been if it was thought through properly as a language from the get-go.
@operatorenabla8398
@operatorenabla8398 4 дня назад
Hello professor, hope you are doing well. I came here for a request: if it might be an interesting video idea for you, it would really be cool to see a circuit analysis of the Seymour Duncan Pickup Booster, more specifically version 2. I really don't grasp what happens in that pedal and can't find anyone online explaining it. The two things I understand are 1) the pickup resonance switch, which lowers down the resonant pick of the pickups by adding a condenser in parallel with ground and 2) the first pair of transistors is a differential pair. There are another three transistors of which I honestly don't understand the function at all, a pair of them seems to be some sort of push-pull configuration. I think there's a lot to go on about in that pedal, let me know if you think it's cool enough for a video!
@FahlmanCascade
@FahlmanCascade 4 дня назад
Wow, there's a bit of CCRMA history I never knew.
@erickmarin6147
@erickmarin6147 5 дней назад
Is it feasible to go from matlab->c++->HDL->xilinx for audio aplications? Like designing a synth
@Lantertronics
@Lantertronics 5 дней назад
Mathworks has all sorts of tools for going from MATLAB to FPGA, but really for real-time synthesis would want to code it very different than I've coded it (I've coded it all with bulk vector operations). You'd probably be better off coding for the Xilinx directly, or writing C++ directly for something like an STM32.
@sciencewithgranny5621
@sciencewithgranny5621 5 дней назад
defiantly going to set this up in max msp, do some funky modulation. Great vid!
@jsleep4664
@jsleep4664 5 дней назад
@au5music
@edballsmedia7969
@edballsmedia7969 5 дней назад
Nuclino is the cleanest UI by far. Some limitations like colors but all the rest have tonnes of clutter. Microsoft have ripped off notion and done their own version called loop Not used it properly yet but github wikis look alright
@Kyoz
@Kyoz 5 дней назад
🤍
@possible-realities
@possible-realities 5 дней назад
Nice video! I've been using discrete summation formulas in my soft synth since a number of years, they're pretty handy, especially since you can limit the range of summation. I think I derived the formula for sum[k=0 to N] exp(z + k*w) where z and w are complex numbers, which gives you a bit of extra freedom. As someone said, you can use it to get a band limited if you want somewhat low pass filtered pulse train, and integrate the result for a band limited sawtooth wave. I got an interesting harp-like multi-pluck sound by increasing N one step at a time at regular intervals. I also did some FM+ experiments where you replace the sin function in FM synthesis with one of these functions, and got some interesting results.
@possible-realities
@possible-realities 5 дней назад
I also think that if you do the double sided sideband summation using the complex version, not everything will cancel. I guess the same would hold if you did the summation using cosine terms instead, but I think the complex version is easier to deal with. Another nice thing about the complex version is that the imaginary part is the Hilbert transform of the real part (or possibly vice versa). I made a complex feedback comb filter once (the samples in the delay line were complex, as was the feedback coefficient). At least when fed with the output of the complex version of the summation formula, I could get the resonance peaks to move around along the frequency axis by changing the phase of the feedback coefficient.
@bobvines00
@bobvines00 3 дня назад
Toivo, can you share your derivation and perhaps some tips on using your formula?
@possible-realities
@possible-realities 2 дня назад
@@bobvines00 Sure: Ok, we're using the sum S = sum[k=0 to N] exp(z + k*w) = exp(z) * sum[k=0 to N] exp(w)^k First note that if z = ib, then exp(z) = exp(ib) = cos(b) + i*sin(b) so you can use the real part to get a cosine or the imaginary part to get a sine. Now, let w = c + id, then I can write the sum as S = sum[k=0 to N] exp(i(b + k*d)) * exp(c)^k Let's say that b = 2pi*ft, d = g(2pi*t + p), then S = sum[k=0 to N] exp(i(2pi*ft + k*g(2pi*t + p))) * exp(c)^k = sum[k=0 to N] exp(i(2pi*(f+kg)*t + kp)) * exp(c)^k so we get a sum of cosines/sines (depending on if we take the real or imaginary part) with frequency f+k*g, with exponentially decreasing amplitude if c < 0. The sum starts at frequency f and ends at f + N*g. The variable p can be used to add a phase offset from one sine to the next. I hope that explains the basic usage. Derivation: We exploit that it's a geometric sum. By multiplying by 1 - exp(w), the first term in the sum times -exp(w) cancels with the second term times 1, etc, which gives (1 - exp(w))*S = exp(z) * (1 - exp(w)^(N+1)) ==> S = exp(z) * (1 - exp(w)^(N+1)) / (1 - exp(w)) You can see that if N=0, you get back S = exp(z), as expected. If N goes to infinity and real(w) < 0, exp(w)^(N+1) goes to zero. But the case with finite N is really useful, you can choose N so that f + N*g is below the Nyquist frequency to avoid aliasing, but if f + (N+1)*g is above then you're not missing out on any audible frequencies. Hope that helps.
@johnsherfey3675
@johnsherfey3675 5 дней назад
The thing is with this function, is that a "Weierstrass function" is very spikey even for some nunbers less than 1. So those might be the "artifacts" you're hearing.
@madrigo
@madrigo 5 дней назад
Such a cool video!!! I love sound synthesis, and this video was a full meal. First, a paper from Moorer himself, the guy who started my interest in sound synthesis 4 years ago. Then I learn about a new synthesis method. Then I find out you can very simply simulate discrete synthesis methods on octave? Wow, I learned so much, I'll need the rest of the week to explore all this new ideas. Thanks for the content!!
@plemli
@plemli 5 дней назад
You tried a dissonant tritone with sqrt(2), but why not a natural consonant third (5/4), fourth (4/3) and fifth (3/2) ?
@The_Digital_Arts_World
@The_Digital_Arts_World 5 дней назад
‘Love Math’ + ‘New Synth Novice’ + ‘Dr. Aaron Lanterman’ = WOW‼️ I found this DSF video to be well thought out, perfected with demos along the way, and the testing of parameter changes to be excellent. Many of us are more comfortable with the “try it … you’ll like it” method of learning including myself … besides, I just love to tinker. Thanks, for the excellent RU-vid video on DSF, Dr. Lanterman !
@hrvstmusic
@hrvstmusic 5 дней назад
I bet these formulas can be entered into Serums wavetable editor…
@immeika
@immeika 5 дней назад
i love this