Uploaded January 2023 | Updated September 2026, 2 weeks ago
In this video, we're learning about steganography: the art of hiding data inside other data.
=[ 🔗 Links 🔗 ]=
💌 Updates to your inbox: tinyletter.com/lowleveljavascript
🗣 Discord: discord.gg/FPWaVgk
⭐️ Patreon: patreon.com/lowleveljavascript
💻 Github Repo: github.com/lowbyteproductions/Hiding-Data-In-Sound
In this video, we're learning about steganography: the art of hiding data inside other data.
=[ 🔗 Links 🔗 ]=
💌 Updates to your inbox: tinyletter.com/lowleveljavascript
🗣 Discord: discord.gg/FPWaVgk
⭐️ Patreon: patreon.com/lowleveljavascript
💻 Github Repo: github.com/lowbyteproductions/Hiding-Data-In-Sound
![Unconditional Jumps and Running C code: RISC-V ep.6
=[ 🔗 Links 🔗 ]=
🎥 Series Playlist: https://www.youtube.com/watch?v=ER7h4ZTe19A&list=PLP29wDx6QmW4sXTvFYgbHrLygqH8_oNEH
💌 Updates to your inbox: https://tinyletter.com/lowleveljavascript
🗣 Discord: https://discord.gg/FPWaVgk
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💻 Github Repo (emulator): https://github.com/LowLevelJavaScript/RISC-V-Emulator Unconditional Jumps and Running C code: RISC-V ep.6](https://i.ytimg.com/vi/tjCF5R97pxk/mqdefault.jpg)
![The worlds most convoluted spirograph
In this video, were dipping our toes into the world of DSP, and learning about how to interpret the output of the worlds most important algorithm: The fast fourier transform.
By building an understanding of all the component parts, we can understand exactly how this mathematical tool can be used to create these wild drawings, based solely on circles of different sizes rotating around one another.
=[ 🔗 Links 🔗 ]=
🗣 Discord: https://discord.gg/FPWaVgk
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💻 Github Repo: https://github.com/lowbyteproductions/the-worlds-most-convoluted-spirograph The worlds most convoluted spirograph](https://i.ytimg.com/vi/tuC0qnyPrvM/mqdefault.jpg)
![How Do Regular Expressions Really Work?
In this video were going to build a basic regular expression engine from scratch, in order to illustrate the underlying mechanisms that make them tick. First with a naive attempt, and then implementing the nuanced backtracking feature.
00:00 - Intro
00:53 - Constraints
02:40 - Parsing
10:45 - Writing the regex engine
17:00 - Testing the engine
18:40 - Fundamental flaw
20:20 - Implementing backtracking
=[ 🔗 Links 🔗 ]=
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💌 Updates to your inbox: https://tinyletter.com/lowleveljavascript
🗣 Discord: https://discord.gg/FPWaVgk
💻 Github Repo: https://github.com/LowLevelJavaScript/Regular-Expression-Engine How Do Regular Expressions Really Work?](https://i.ytimg.com/vi/u01jb8YN2Lw/mqdefault.jpg)
![Interrupt Safe Ring Buffer :: Bare Metal Programming Series 6
In this episode of the bare metal programming series, were building a ring buffer to back our UART driver. This buffer comes with a set of operations and properties that make it safe and consistent to use from both the main code and interrupt routines.
=[ 🔗 Links 🔗 ]=
🎥 Series Playlist: https://www.youtube.com/playlist?list=PLP29wDx6QmW7HaCrRydOnxcy8QmW0SNdQ
🗣 Discord: https://discord.gg/FPWaVgk
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💻 Github Repo: https://github.com/lowbyteproductions/bare-metal-series Interrupt Safe Ring Buffer :: Bare Metal Programming Series 6](https://i.ytimg.com/vi/uIJnATS9j_0/mqdefault.jpg)
![Virtual Console and printf() //Source Dive// 003
In this installment of //Source Dive//, were back in xv6, looking at how the operating system layers abstractions. The console is a great example, with a low-level driver rooted in the hardware, to an abstract console, to the printf function that eventually outputs characters to the screen.
=[ 🔗 Links 🔗 ]=
🐋 RISC-V Docker Image: https://github.com/francisrstokes/rv-toolchain-docker/pkgs/container/rv-toolchain-docker
🎥 Series Playlist:
🗣 Discord: https://discord.gg/FPWaVgk
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💻 Github Repo: https://github.com/mit-pdos/xv6-riscv Virtual Console and printf() //Source Dive// 003](https://i.ytimg.com/vi/uNp4DElDQyY/mqdefault.jpg)
![Bare Metal Programming Series 0
This is episode 0 of the bare metal programming series! Over the next few videos, were going to be building firmware for a Cortex-M4 STM32 processor (STM32F401RE).
This video introduces:
- the series
- what well be covering
- who the intended audience is
- the goals and the non-goals
- the hardware youll need to follow along
=[ 🔗 Links 🔗 ]=
🎥 Series Playlist: https://www.youtube.com/playlist?list=PLP29wDx6QmW7HaCrRydOnxcy8QmW0SNdQ
🗣 Discord: https://discord.gg/FPWaVgk
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💻 Github Repo: https://github.com/lowbyteproductions/bare-metal-series Bare Metal Programming Series 0](https://i.ytimg.com/vi/uQQsDWLRDuI/mqdefault.jpg)
![C++ NES Emulator: Investigating The Memory Map
In this video were continuing to develop the NES Emulator that will run on a teensy 4.1 microcontroller. Specifically, were investigating the memory map of the NES, what the different registers are and for what theyre used.
=[ 🔗 Links 🔗 ]=
💌 Updates to your inbox: https://tinyletter.com/lowleveljavascript
🗣 Discord: https://discord.gg/FPWaVgk
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💻 Github Repo: C++ NES Emulator: Investigating The Memory Map](https://i.ytimg.com/vi/uQXY27d8Pao/mqdefault.jpg)
![Making WAVs: Understanding, Parsing, and Creating WAV Files in JavaScript
The WAVE file format is a binary format that encodes high fidelity audio data. But how is the audio encoded and stored? How can these files be read and created in JavaScript? Thats what well find out in this video!
=[ 🔗 Links 🔗 ]=
💌 Updates to your inbox: https://tinyletter.com/lowleveljavascript
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
💻 Github Repo: https://github.com/LowLevelJavaScript/Making-WAVs
https://github.com/francisrstokes/arcsecond
https://github.com/francisrstokes/construct-js
http://soundfile.sapp.org/doc/WaveFormat/
https://en.wikipedia.org/wiki/WAV
http://www.tactilemedia.com/info/MCI_Control_Info.html
https://en.wikipedia.org/wiki/Pulse-code_modulation
https://en.wikipedia.org/wiki/Sampling_(signal_processing)#Sampling_rate
https://github.com/francisrstokes/arcsecond
https://github.com/francisrstokes/arcsecond-binary Making WAVs: Understanding, Parsing, and Creating WAV Files in JavaScript](https://i.ytimg.com/vi/udbA7u1zYfc/mqdefault.jpg)
![Twos Complement [The Bits And Bytes Of Binary ep.6]
This mini series is all about binary. Over the course of the series, well be building a library that gives us precise control of every bit and operation.
Youll learn how the logical and arithmetic operations work, how different kinds of numbers are encoded, how to set, clear and toggle bits, and how we can create representations of structured binary data.
1. Bits
2. Operations
3. Unsigned Numbers
4. Addition
5. Zero Extension
6. Twos complement
7. Overflow Addition and Sign Extension
8. Shifting
9. Setting, Clearing, and Toggling Bits
10. Endianness
11. Structures
=[ 🔗 Links 🔗 ]=
💌 Updates to your inbox: https://tinyletter.com/lowleveljavascript
⭐️ Patreon: https://www.patreon.com/lowleveljavascript
🗣 Discord: https://discord.gg/FPWaVgk
🎥 Playlist: https://www.youtube.com/playlist?list=PLP29wDx6QmW47oPsNBFNEi_SYTOLDJXqQ
💻 Github Repo: https://github.com/LowLevelJavaScript/The-Bits-And-Bytes-Of-Binary
=[ 🎶 Music 🎶 ]=
Fender Bender - Bad Snacks Twos Complement [The Bits And Bytes Of Binary ep.6]](https://i.ytimg.com/vi/vgbOTf8lgTQ/mqdefault.jpg)
![Memory Access and Branching (16-Bit VM in JavaScript 002)
In this video we establish the core instruction set of the VM, give the VM the capabilities to read and write to main memory, and also to make decisions about how the program should proceed with branching instructions.
=[ ℹ About ℹ ]=
This series is all about building a powerful virtual machine in JavaScript with the following features:
- A flexible, extensible, register-based virtual machine
- Support for signed, unsigned and floating point operations
- A call stack
- Interrupt capabilities
- Ability to do memory mapping for IO
- An assembly language with macro and module support
- A higher level, C like language. Well use and expand the library from the parser combinators from scratch series
- And finally, to be able to take the whole thing into the browser and exend it to create a sort of fantasy console - an emulator for a machine that never existed
=[ 🔗 Links 🔗 ]=
- ⭐️ Patreon: https://www.patreon.com/lowleveljavascript
- 💌 Updates to your inbox: https://tinyletter.com/lowleveljavascript
- Series Playlist: https://www.youtube.com/playlist?list=PLP29wDx6QmW5DdwpdwHCRJsEubS5NrQ9b&playnext=1&index=1
- Github Repo: https://github.com/LowLevelJavaScript/16-Bit-Virtual-Machine
- 16BitJS: https://github.com/francisrstokes/16bitjs
- VMFC: https://github.com/francisrstokes/vmfc
- Turing Machine: https://en.wikipedia.org/wiki/Turing_machine
- Von Neumann architecture: https://en.wikipedia.org/wiki/Von_Neumann_architecture
- CPU: https://en.wikipedia.org/wiki/Central_processing_unit
- Stack Machine: https://en.wikipedia.org/wiki/Stack_machine
- Register Machine: https://en.wikipedia.org/wiki/Register_machine
- Instruction set architecture: https://en.wikipedia.org/wiki/Instruction_set_architecture Memory Access and Branching (16-Bit VM in JavaScript 002)](https://i.ytimg.com/vi/wJ-pu6Iq0B8/mqdefault.jpg)
![Why 0.1 + 0.2 0.30000000000000004: Implementing IEEE 754 in JS
Floating point math is tricky. In this video, well learn how these numbers work in computers, and build a software implementation from scratch in JavaScript.
=[ 🔗 Links 🔗 ]=
- ⭐️ Patreon: https://www.patreon.com/lowleveljavascript
- 💌 Updates to your inbox: https://tinyletter.com/lowleveljavascript
- Floating Point Arithmetic: https://en.wikipedia.org/wiki/Floating-point_arithmetic
- 16 Bit Floats: https://en.wikipedia.org/wiki/Half-precision_floating-point_format
- IEEE 754 Spec: https://ieeexplore.ieee.org/document/30711
- Fabien Sanglards awesome blog on the subject: http://fabiensanglard.net/floating_point_visually_explained/
- Denormalised Numbers: https://en.wikipedia.org/wiki/Denormal_number
- Github Repo: https://github.com/LowLevelJavaScript/Floating-Point-Implemented-In-JS Why 0.1 + 0.2 0.30000000000000004: Implementing IEEE 754 in JS](https://i.ytimg.com/vi/wPBjd-vb9eI/mqdefault.jpg)