1st of December, 2023. I will explore and play with takumar's "perma-audio" code and see what I can get done by the end of the month. (feed)
I'll work late at night after putting the kid to bed, doing some recreational programming before crashing. So, the log might be a bit weird. Please forgive spelling errors, typos and grammatical insanities.
2022-12-27
I feel in my bones that the project is complete. Though my attempt to obtain a proper heart sound wasn't successful, I am content with what I have. It seems fitting to conclude this adventure at this time.
27 days ago, I embarked on this journey with no expectations. Today, I am thrilled with the results.
I sourced parts to make Jerdehl Zero more compact — it will take a while for them to arrive. I'll continue working on it occasionally and create a Jerdehl Zero project page that will link to this one.
Another busy day. Even so, I made jerdehl zero sing louder and worked on the heart oscillator. I keep listening to it with headphones while I read, and it's so good.
2022-12-24
Busy day with the family. I hope to spend some time with jerdehl zero, fine-tuning her.
2022-12-23
Had a huge breakthrough: jerdehl.c now sings by herself through a PI Zero. Just power it up, connect the line to the $7 USB audio interface, and off she goes. I can't believe it works, but it does.
Still working on the heart oscillator. Praise.
Current Setup
A PI zero WH (with unused headers)
Old Anker power bank with a micro USB output
As mentioned, a $7 USB audio dongle with a micro USB adapter so it can be connected to the PI. It will be replaced by a line-out shim as soon as I get it
A (too long) p2 cable
An IKEA FREKVENS Portable.
I must mess with the parameters; the sound is too low, even on my "nice" speakers. I also need to find out:
A shorter P2 Cable
A slimmer battery, that can somehow be attached to the PI
Ideally, the battery should be able to charge the FREKVENS, too.
Have two sound modes, one tuned for the FREKVENS and one for headphones.
I am thinking about how to map a wave file of a crackling fire noise in Matlab to a list of frequencies I can loop over the oscillator. More thinking then doing, but that's fine.
2022-12-19
Had a bad, low energy day. Not much progress.
2022-12-18
Weird day. Instead of coding something, I made an ASCII art header for jerdehl.c with some help from my mentor, Velkani (the one who made the art for the amazing
H7v2 ASCII T-Shirt (DATAT18) shirt.
The process goes through weird paths. Find people to guide you through the unknown.
2022-12-17
Started conjuring a heart oscillator that starts fast and then gets to 65bpm. Hope I can make it happen. Praise.
2022-12-16
I'm stuck improving jerdehl.c, so to get inspired, I decided to let her chat with my DYI Norns, and I really enjoyed it. Here's a roughly 2-minute field recording (MP3) from my phone, lightly processed to remove the air conditioner sound (It's 40c in Rio).
2022-12-15
Intermission. Not touching the project today.
2022-12-14
I'm a bit sick and dizzy, so couldn't do much. I added a noise oscillator as an experiment but couldn't do much more. :sadpanda:
2022-12-13
Another low-key day. jerdehl.c is much more concise now; cleaned it up a lot and added documentation where needed. Will still do a bit more polishing today using macros to simplify experiments, but it's going well.
Update: Refactored a bit more. Also came up with ideas for what to do next. Current options:
A fire crackling oscillator (because of what happened a couple da of days ago)
A very low volume heartbeat oscillator at around 65bpm. Jerdehl is alive.
Cicadas. Again.
2022-12-12
A simpler version of jerdehl.c is singing again. Life is random like her.
2022-12-11
Crazy, Crazy day. The clamp function didn't properly fixed the "no audio" issue, so I lighted a scented candle and got deep into debug, getting no audio most of the time, until the candle was almost burning the house. Looks like I should stop for a bit.
2022-12-10
It's time to start removing instead of adding to it. Let's see how it goes
I was able to solve the "no audio" issue by using a simple clamping function:
float clamp(float value, float min, float max) {
if (value < min) return min;
if (value > max) return max;
return value;
}
out = clamp(out, -1.0f, 0.1f)
Very happy with the current state. Next step is to add a fade out to the notes instead of just bumping them to zero. Will do it tomorrow.
Update 2: The drone is too loud. Must to check that.
2023-12-09
Spent some time trying to fix the "no audio" issue, and I think I found a solution. Need to debug it more. Had to rest today again, very low enegy.
2023-12-08
No #decemberAdventure for me today. I need to relax and recover. I hope Jerdehl understands.
2023-12-07
Not a great day. jerdehl.c isn't singing most of the time. Spent hours trying to fix it, but no luck. Starting fresh and retracing my steps. Low energy day anyway.
2023-12-06
Today, I organized the code to make it more cohesive and added scripts for snapshots. I also began incorporating a new modulator oscillator (another Lisa) to explore its possibilities.
Tomorrow's plan: Update the envelope to maintain sound below the volume threshold.
2023-12-05
Removed a bunch of oscillators that weren’t adding to the soundscape in the way I wanted. I also added some a random chords oscillator, and it sounds very “devotional” now (at least to me). You can hear a 4 min sample here (mp3 file)
This is really getting into the shadow realm.
I don’t have much more time for it today, but I’m happy with what I did. Tomorrow, I plan to refactor my mess into something more organized.
Praise Jerdehl.
2023-12-04
I'm feeling a bit sick today, but I was able to start the implementation of two new oscillators: a tape deck emulator and a cicada-like engine. The deck is supposed to envelop the entire soundscape and the cicada to play randomly before dying out.
And with that, I'm off to a nap.
Update: Got the pipeline working on OSX, no need for a Linux VM anymore.
2023-12-03
Busy day ahead, so I woke up early and made some progress on the project, while drinking tons of coconut water. Here’s the gist of it:
Decided to dedicate the project to Jerdehl. She deserves it. Look her up if you want.
Organized the repository. Renamed files and added a session.sh file that uses entr(1) to kill, recompile, and play the updated file every time I save jerdehl.c.
Got the drone more aggressive by changing the parameters of the existing oscillators
Added another Lisa loop LFO to enhance the mix between the waves
Implemented a new oscillator influenced by a random number generator to simulate the sound of waves. Still early days and can be much improved.
Thinking about the possible hardware options to convert the final result into something I can touch. My current idea is to use an RPI zero with a Pimoroni Line Out DAC Shim and somehow load the app in the bootloader.
I plan on starting having samples of the sound in the next few days. I’m having lots of fun!
Update: Woke up 3am with the idea of converting this into an instrument. Maybe an esp32 board that boots up to the program and plays it forever. Will deal with the details later.
Update 2: I must add a README file to the repository.
2023-12-01
I prepared the stage yesterday, creating a Linux VM to properly pipe the audio to aplay (I couldn't find something like it in the OSX world). For today, I'm letting Takumar's original composition play over the day and studying about Numerically controlled oscillators. Besides that, play with the parameters in the code.
The December Adventure is low key. The goal is to write a little bit of code every day in December.