Get Started with Graph Paper

If you need some graph paper... you already know why you're here. incompetech has the best graph paper generators available, and they're all easy to use!

Get Started with Music

If you need free music for your YouTube videos where you get to keep the ad revenue...

If you need music for your film or video game...

If you need music for your presentation or commercial...

Text to Morse to MIDI App

Text -/> Morse -> MIDI

Text to Morse to MIDI takes text, and translates the text to Morse Code, and then outputs a MIDI file of the text.

I understand this is pretty niche, but it didn’t exist yet – so I had to make it.

The Background: I’m currently doing sound design for a Steampunk-based video game. One of the “characters” is the Navigational Computer, a Babbage-style computer that talks in Morse Code. To get her to talk, I needed to translate the dialog to Morse Code that is loaded into my audio editing software. I can then assign the notes to a Tesla Coil sample, and we’re done!

Fun Fact: If you experience the game enough, you start learning Morse Code by following along with the subtitles.

This doesn’t output theoretically perfect Morse Code. It was designed to have a semi-randomized “hand” (like having an accent, but in Morse Code).

Built with Flask, a web framework in Python.

PDF Auto-Duplexer

The number one request I’ve gotten for graph paper is to add a function that makes 2-page documents that can be easily duplex printed. I haven’t done that because it will further complicate the interface. Also, it isn’t fun to work with a 20-year-old codebase written in a dying language.

The new duplexer is written in python with a JavaScript interface. It doesn’t work well with Firefox, and I’m fine with that. It does work well with Edge, Safari, and Chrome.


# read the file, duplicate the page and write to a new pdf
pdf_writer = PdfWriter()
pdf_reader = PdfReader(file)
page = pdf_reader.pages[0] # get the first page

pdf_writer.add_page(page)
pdf_writer.add_page(page) # add the page twice

# save to in-memory file
pdf_bytes = io.BytesIO()
pdf_writer.write(pdf_bytes)
pdf_bytes.seek(0) # go to the start of the file

# create response and set custom header
response = make_response(send_file(pdf_bytes, mimetype='application/pdf', as_attachment=True, download_name=new_file_name))
return response

Chat GPT4 makes graph paper!

It does take an extra step, but it figured it out in python!

The Prompt:
Please write a python script using fpdf that will output a file “my-grid.pdf” which is a landscape a4 pdf file with a background color of dark purple, and has a border of at least 2cm. In the remaining space, figure out how many 1cm x 1cm squares would best fill the remaining space, and build a 1cm x 1cm grid with thin white lines. Do not draw partial squares.

The Code:
from fpdf import FPDF

# Constants
A4_WIDTH = 297 # Width of A4 paper in mm (landscape)
A4_HEIGHT = 210 # Height of A4 paper in mm (landscape)
BACKGROUND_COLOR = (41, 31, 88) # Dark purple
BORDER_WIDTH = 20 # 2cm border width
GRID_SIZE = 10 # 1cm x 1cm squares
GRID_COLOR = (255, 255, 255) # White

# Initialize PDF
pdf = FPDF("L", "mm", "A4")
pdf.set_auto_page_break(False)
pdf.add_page()

# Set background color
pdf.set_fill_color(*BACKGROUND_COLOR)
pdf.rect(0, 0, A4_WIDTH, A4_HEIGHT, "F")

# Calculate grid dimensions
grid_width = A4_WIDTH - 2 * BORDER_WIDTH
grid_height = A4_HEIGHT - 2 * BORDER_WIDTH
grid_columns = grid_width // GRID_SIZE
grid_rows = grid_height // GRID_SIZE

# Draw grid
pdf.set_draw_color(*GRID_COLOR)
pdf.set_line_width(0.3) # Thin lines

for row in range(grid_rows + 1):
y = BORDER_WIDTH + row * GRID_SIZE
pdf.line(BORDER_WIDTH, y, BORDER_WIDTH + grid_columns * GRID_SIZE, y)

for col in range(grid_columns + 1):
x = BORDER_WIDTH + col * GRID_SIZE
pdf.line(x, BORDER_WIDTH, x, BORDER_WIDTH + grid_rows * GRID_SIZE)

# Save PDF
pdf.output("my-grid.pdf")

And the final PDF output (after the script is run locally)

  1. my-grid

If you run into problems at any step of the way, paste your errors into ChatGPT, and it’ll help you out!

Music AI Review: Boomy

What it does: You choose a genre, get some music.

Is it good? No.
When will it get good? Probably never.



I got the $35 annual subscription, so I will review it later this year, but my expectations are low.

What went wrong: Boomy works the way humans do. It puts notes on a timeline, and then uses synths or samples (short recordings) of instruments to make a mix out of them that resembles music. In a way, it builds something like sheet music, and then uses that to generate music.

Sheet Music and a PCM Representation

These are not the same kind of data.

Most image generating AIs work with pixels as their building blocks. The sound-equivalent of this is the sample. It is a number that tells you where on a graph you are, and are usually read at 48,000 samples every second.

In terms of data, a 100×100 pixel image is roughly equivalent to 1 second of audio.
To push the analogy too far, Boomy works by cutting and pasting lots of little pictures together. The catalog of pictures is fixed, and it isn’t that big.

Boomy is clipping from a low quality picture book. That can be updated.
But. The music has very little in the sense of melodic understanding. That can be taught.
But. It also doesn’t display a grasp on overall form of the piece. That can be taught.
But. It just seems to layer the instruments on top of each other, just not caring about interactions between the bass and drums and melodies. That’s gonna require a whole new approach, it is possible.

There’s a giant list of problems that I could describe, and maybe they can fix a few issues, but this approach will never be as versatile, creative, flowing, or beautiful as an AI that uses a sample-based approach.

Killer Application: I don’t see any practical use for this service. I’ll say they have a killer domain name.

Price: Free – $120/year
Quality: No

This review was not sponsored. Obviously.

Shinies for e’rbody!

Goblin Soldier Tinker Spy

“Ya wants ta make things? Piles of things? Make things wit us Goblins! We got sticks and hammers and pokies. You get ta hit things wit udder things. If ya hit a rat, ya gets more stew! If ya hits da stew, ya get hit with rats.”

Teamwork! Steady Progress! Shinies! Work with Goblins today!

You can purchase from iTunes here!

Music AI Review: Tone Transfer

What it does: You give it some audio, and it changes the audio into an instrument.

 

 

There is a website you can play with: https://sites.research.google/tonetransfer
The real power is with the Plug-ins available for your DAW.

I’ve used this to get one of the most realistic saxophone sounds available. Sax samples are notoriously difficult to get to sound good. This does it with relative ease.

If that isn’t mind-blowing enough, you can train your own model by providing at least 10 minutes of the instrument you want to copy and letting it train for a few hours.
If you’re looking for a virtual instrument that no one has sampled yet – this can make them. It can only do instruments that sound one note at a time, so no pianos or guitars.

 

 

The saxophone in this example was realized with Tone Transfer. Note it goes below the actual range of the instrument at times. Amazing!

Killer Application: You’re recording Big Band arrangements, but only play the trumpet. You can record the sax and bone lines on the instrument you’re most familiar with, and the feeling will transfer to the new instrument.

Price: Free
Quality: Very High