Tuesday, July 29, 2025

wpa_supplicant no longer works to setup wifi on boot

nmtui worked for me to connect my rav filehub
I'm using it so I can run a server with music on a raspberry pi that I can connect to from the ios files app
It's cool because I can use Tau DJ without worrying about running out of internal storage space

Tuesday, July 22, 2025

Kwanzaa Fonts

don't sleep on the kwanzaa Fonts

the google fonts link
  • Monoton
  • Bungee Hairline
  • Sankofa Display

Monday, July 21, 2025

fixing smb read only from pi to ios

add to /etc/samba/smb.conf

force user = bweew
vfs objects = streams_xattr

Friday, July 18, 2025

loopy pro + bs-16

Instrument MIDI Command
drums B0 00 78 B0 20 00 C0
piano B0 00 00 B0 20 00 C0 01
bass B0 00 00 B0 20 00 C0 21
jazz-gt B0 00 00 B0 20 00 C0 1A

on release, scroll down to the bottom where Midi Actions are to choose send midi message. Custom hex midi messages are key! Before I tried using program change and it wouldn't let me get my drums even if i told it it send on midi channel 10.

my updated loopy pro template

zxcv records first 4 loops, asdf selects drums,bass,jazzgt,piano. I added buttons to select other sounds, kept it small to work on an iphone se but more roomy on a bigger screen of course.

bash ghostscript conversion of color pdfs to b&w


#!/bin/bash
# Loop through all PDF files in the current directory
for file in *.pdf; do
  # Skip if no PDF files
  [ -e "$file" ] || continue

  # Set output file name
  output="${file%.pdf}.bw.pdf"

  echo "Converting: $file -> $output"

  # Ghostscript command to convert to grayscale
  gs \
    -sDEVICE=pdfwrite \
    -dCompatibilityLevel=1.4 \
    -dProcessColorModel=/DeviceGray \
    -dColorConversionStrategy=/Gray \
    -dColorConversionStrategyForImages=/Gray \
    -dAutoRotatePages=/None \
    -dNOPAUSE -dBATCH -dQUIET \
    -sOutputFile="$output" "$file"
done

Tuesday, July 15, 2025

offline transcription/dictation on raspberry pi with vosk

I installed vosk in a venv inside a directory for nerd-dictation which is another script that works great if you want to run vosk in the background and output it into vim. Heres my transcribe.sh for running vosk-transcriber on audio files


#!/bin/bash
# Activate the virtual environment
source "$HOME/.applications/nerd-dictation/venv/bin/activate"
# Check if a file argument was provided
if [[ -z "$1" ]]; then
    echo "Usage: $0 "
    exit 1
fi
AUDIO_FILE="$1"
# Check that the file exists
if [[ ! -f "$AUDIO_FILE" ]]; then
    echo "Error: File '$AUDIO_FILE' not found."
    exit 1
fi
# Run transcription and output to file
vosk-transcriber -i "$AUDIO_FILE" -o test.txt
# Print the output to the terminal
echo "Transcription output:"
cat test.txt

heres my vosk.sh for running nerd-dictation


#!/bin/bash
# Absolute path to the project
BASEDIR="$HOME/.applications/nerd-dictation"
# Activate the virtual environment
source "$BASEDIR/venv/bin/activate"
# Run nerd-dictation with the 'begin' command
"$BASEDIR/nerd-dictation" begin

shapescript is like openscad for iphones

came across this 5mb app on the hunt for a parametric modeller for cad stuff. you can import text files extrude them, set the background green and key them out in lumafusion to add cool 3d animated text. This is my basic script:

define words import "Text.txt"

font "Menlo-Bold"
color grey

extrude {
  size 2 2 0.5 
  metallicity 0.9

  text words
}
//background green

shapescript mobile on the app store

Thursday, July 10, 2025

png to svg by ethisham niazi

a 6.99$ cad vectorizing app that seems promising for local offline use, 15mb. its nice to see something thats a one time payment instead of subscription.

heres the link to it
on the app store

Tuesday, July 8, 2025

list of tall condensed fonts for movie posters

Font Name Style Common Use Case License Info
Bebas Neue All-caps, tall, condensed Action, thriller, indie posters Free for commercial use
League Spartan (Condensed) Bold, geometric, narrow Modern drama, minimalist films Open source (OFL)
Nexa Light / Thin Light, clean, minimalist Sci-fi, tech, design-driven Commercial license needed
Futura Condensed Geometric, classic sans Sci-fi, classic films Commercial license needed
Gotham Narrow / Light Modern, versatile sans Drama, thriller, biopics Commercial license (Hoefler)
Roboto Condensed Light Digital, minimal Sci-fi, modern thrillers Free (Google Fonts)
Helvetica Neue Thin Sleek, iconic sans Drama, minimalist Commercial license (Adobe)
DIN Condensed Industrial, narrow, bold Thriller, noir, military themes Commercial license needed
Montserrat Thin Elegant, modernist Romance, indie, drama Free (Google Fonts)
Eurostile Condensed Futuristic, squarish Cyberpunk, tech, space themes Commercial license needed

minimal raspberry pi os file manager lacked an unzip option

The fix - thunar archive plugin
I knew I needed xarchiver but despite being installed it wasn't showing up. what i needed was the plugin version


sudo apt install xarchiver thunar-archive-plugin

converting csv to xlsx on ios

csvxlsx converter app on the ios app store

Affinity publisher on ipad doesn't support csv imports. Datamerge is only on the desktop version. You can import xlsx spread sheets. I prefer being able to quickly enter in data using textastic as csv or shortcuts actions to streamline the prompting of forms for quickly capturing things. I opened up an xlsx made from some free csv converter websites hoping it would look like xml but it was unreadable junk. Thankfully I found a small app that does exactly what I want locally it was only a buck and it doesn't ask for permissions or take up tons of space. numbers is great but its huge. This is perfect because its only 2mb. Hopefully affinity adds csv support but for now im happy with this work around for prettying up my tables.

Learn To Speak Typographers Slang - A Glossary of Type

Term Definition
BaselineThe invisible line on which most letters sit.
Cap Height / Cap LineThe top boundary of uppercase letters.
X‑HeightThe height of lowercase letters (like “x”), excluding ascenders and descenders.
AscenderThe part of a lowercase letter that extends above the x‑height (e.g., “h”, “b”).
DescenderThe part of a lowercase letter that extends below the baseline (e.g., “g”, “y”).
SerifSmall strokes attached at the end of letterforms; found in serif typefaces.
Sans‑Serif / GrotesqueTypefaces without serifs; “Grotesque” is an early sans‑serif category.
Slab SerifSerif typeface with thick, block‑like serifs.
MonospacedA font where each character takes up the same horizontal width.
LigatureTwo or more characters joined into a single glyph (e.g., “fi”, “æ”).
KerningAdjustment of space between specific letter pairs.
TrackingUniform adjustment of spacing across a range of characters.
Leading (Line‑Spacing)Vertical space between baselines of consecutive lines of text.
WeightThe thickness of strokes in a typeface (e.g., Light, Bold).
Italic / ObliqueA slanted version of the font; italics are redesigned, obliques are mechanically slanted.
Typeface vs. FontTypeface is the design; font refers to a specific file or style implementation.
GlyphA single visual representation of a character in a font.
Alternate Glyph / SwashOptional stylized or decorative glyph variations.
Stroke / StemThe lines that make up a glyph; stems are the main vertical strokes.
Bowl / Counter / ApertureEnclosed or partially enclosed spaces in letters; apertures are open counters.
Arm / Leg / Shoulder / SpineSpecific stroke parts—arms and legs extend, shoulders curve, the spine is the central curve of an “S”.
Apex / VertexThe upper (apex) or lower (vertex) pointed junctions of strokes.
ArcA curved stroke element within letters.
Foot / SpurThe base of a stroke or a small projection from a curved stroke.
Ball / Teardrop TerminalRounded decorative stroke endings, often found on serif fonts.
Joint / CrotchThe point where two strokes meet, like in “v”.
Double‑StoryLetters like “a” or “g” with two counters (e.g., Times “a”).
Point SizeThe size of the font, measured in points (~1/72 inch).
Em / En (units)Em equals the current font size; En is half that. Used for spacing metrics.
Condensed / ExpandedWidth-variant styles of a typeface.
ContrastVariation between thick and thin strokes in a font.
Typographic Color / RhythmThe overall texture or ‘grayness’ of text blocks.
Hierarchy / ScaleVisual importance created through size, weight, etc.
Legibility / ReadabilityHow easily text can be read, influenced by spacing, x‑height, etc.
Copyfitting / Optimal Line LengthAdjusting font and layout for readability—ideal line length is typically 50–70 chars.
Widows / Orphans / RiversLayout issues—lone lines or distracting vertical spaces in paragraph text.
Dingbats / FleuronsSymbol or ornamental fonts (bullet fonts, decorative elements).
Drop CapA large initial letter spanning multiple lines.
Pilcrow / Ellipsis / OctothorpSpecial characters like ¶, …, and #.
Raster / Anti‑aliasingPixel rendering of fonts and smoothing techniques on screens.
HintingInstructions in fonts improving legibility at small sizes.
Static / Kinetic / Fluid TypographyStatic, animated, or responsive typographic styles.
Axis / StressThe orientation of stroke thickness variation in letterforms.
Small CapsCapital letterforms scaled to x‑height.
Subscript / SuperscriptSmaller characters positioned below or above the baseline.
GutterSpacing between columns in multi-column layouts.
JustifyAligning text evenly to both left and right margins.
TypographyThe craft and technique of arranging type.
GSUB (Glyph Substitution Table)OpenType table that substitutes glyphs—used for ligatures, alternates, contextual forms. :contentReference[oaicite:1]{index=1}
GPOS (Glyph Positioning Table)OpenType table that handles precise glyph placement—kerning, mark positioning, cursive attachments. :contentReference[oaicite:2]{index=2}
GDEF (Glyph Definition Table)OpenType table that classifies glyphs (base, mark, ligature) and defines caret positions.
BASE (Baseline Table)OpenType table for baseline alignment across scripts (e.g., roman, ideographic, hanging).
JSTF (Justification Table)OpenType table that supports script-specific justification (e.g., Arabic kashida).
UnicodeThe universal character encoding standard covering nearly all scripts and symbols.
BlackletterA Gothic script style (Textura, Fraktur) with medieval calligraphic texture.
Transitional SerifSerif style between old-style and modern (e.g., Baskerville), moderate contrast.
Old‑style SerifSerif faces with diagonal stress and bracketed serifs; inspired by Renaissance writing.
Didone / Modern SerifHigh-contrast serif fonts with vertical stress and fine hairlines (e.g., Bodoni).
Display TypefaceHighly stylized fonts for headlines or large sizes, often too decorative for body text.
Text TypefaceFonts optimized for body text and readability at small sizes.
Geometric Sans‑SerifSans fonts based on simple geometric shapes (e.g., Futura).
Humanist Sans‑SerifSans faces with calligraphic influence and subtle stroke contrast.
Neo‑Grotesque Sans‑SerifNeutral, modern sans-serifs (e.g., Helvetica, Univers).
Script TypefaceTypefaces that mimic cursive handwriting or calligraphy.
Variable FontA single font file that supports multiple axes (weight, width, optical size).
Ligature CaretA marker in ligature glyphs to define cursor/caret placement.
Contextual Alternates (calt)An OpenType feature for substituting glyphs based on context.
Stylistic Set (ssXX)Predefined alternate glyph sets that can be turned on manually.
Oldstyle Figures (onum)Numerals with varied heights and alignments for flowing text.
Lining Figures (lnum)Numerals aligned to cap height, consistent with uppercase letters.
Proportional Figures (pnum)Numbers with variable widths designed for visual harmony.
Tabular Figures (tnum)Monospaced numerals for tables and aligned columns.
Discretionary Ligatures (dlig)Decorative ligatures applied optionally for stylistic effect.
Fractions (frac / afrc)OpenType features that auto-create fraction glyphs.
Swash CapitalsHighly decorative uppercase glyphs, often with flourishing strokes.
Initial/Final Forms (init / fina)Contextual forms used at the beginning or end of words (common in Arabic).
Split DiacriticsDiacritics positioned separately from base glyphs (e.g., Vietnamese).
Glyph CoverageThe set of Unicode blocks and scripts supported by a font.
Script TagAn OpenType label identifying the script for a set of features (e.g., “latn”).
Feature TagA four-letter code defining OpenType features (e.g., kern, liga).
Lookup TableA GSUB/GPOS structure defining specific substitutions or positioning rules.
Coverage TableSpecifies which glyphs are affected by a lookup in GSUB/GPOS.

9 hour font making tutorial

bewilder entertainment's youtube video showing how to use inkscape and fontforge to make a font

Fixing Screen Resolution On Raspberry Pi 4 Running Wayland Labwc and Raindrop With i3wm

Arandr was scriptable and made sense after being replaced with raindrop I couldn't find any info on setting up a config for raindrop the drop in Arandr replacement. First I added an exec no startup id to load raindrop on login with i3 but I finally came up with a better solution.


  exec --no-startup-id xrandr --output HDMI-1 --mode 1680x1050
  

The raspberry pi loads perfectly when I am on my smaller computer monitor but when on the TV text would be cut off on the top of the screen. This was bugging me for ages. I'm glad I finally have this sorted out so all I have to do is plug it in and it auto starts

Wednesday, July 2, 2025

getting mixxx to recognize the fc310 as hid

you need to flick the switch on the back of the controller to d instead of x for direct mode instead of x mode
you get a permissions error about usb devices to fix that create a udev rule


sudo vim /etc/udev/rules.d/99-logitech-f310.rules

# Logitech F310 Gamepad in DirectInput mode
KERNEL=="hidraw*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c216", MODE="0666", GROUP="plugdev"

sudo udevadm control --reload
sudo udevadm trigger

sudo usermod -aG plugdev $USER
my hid mapping

its cool not needing to use antimicrox, this is as far as I got with the mapping. I was hoping to map the superknobs to controll the delay but have'nt figured it out yet
I still need to add the left/right nudge functionality

Tuesday, July 1, 2025

stuff I added to the mixxx custom keyboard config.

shift 1-8 for samples, removed the loop stuff because i never use it,
ctrl vx turn deck 1 super knob up and down c resets
ctrl r angle and m are up and down for deck 2 super knob
ctrl c and ctrl left angle bracket turn super knob send to zero


[Sampler1]
cue_gotoandplay Shift+!

[Sampler2]
cue_gotoandplay Shift+@

[Sampler3]
cue_gotoandplay Shift+#

[Sampler4]
cue_gotoandplay Shift+$

[Sampler5]
cue_gotoandplay Shift+%

[Sampler6]
cue_gotoandplay Shift+^

[Sampler7]
cue_gotoandplay Shift+&

[Sampler8]
cue_gotoandplay Shift+*

// -----------
// THE SUPER KNOB
// -----

[QuickEffectRack1_[Channel1]_Effect1]
enabled b
[QuickEffectRack1_[Channel1]]
super1_down Ctrl+x
super1_set_default Ctrl+c
super1_up Ctrl+v

[QuickEffectRack1_[Channel2]_Effect1]
enabled n
[QuickEffectRack1_[Channel2]]
super1_down Ctrl+m
super1_set_default Ctrl+,
super1_up Ctrl+.

How To Edit Metadata Using Clipboard Managers, Puddletags And Autohotkey

Its like a spreadsheet its really easy to see everything this way.
trying a few clipboard managers out so I don't need to manually type everything out each time.
diodon, parcellite, copyq
out of all of these my favorite is autohotkey
With it I can easily set it up to label genres like shift 1 jungle shift 2 footwork etc..