• Skip to primary navigation
  • Skip to main content

antpb

Just another WordPress dev

  • Home
  • Music
  • Dev Blog
  • Bio
  • Donate

Default

Pure Data Gibberish Generator for Unity3D

antpb · Feb 2, 2019 · Leave a Comment

I made a fun dialogue system for my game recently. I thought it would be great to have a gibberish system to translate text dialogue to the user’s preferred language while still feeling conversational. I think I can work out translation side pretty easily, but what I found to be a blocker was making convincingly conversational gibberish sounds. The solution was obvious; Pure Data excels at this task. Below is a rough sketch of a patch I made to generate the 'words.'

I took an oscillator and created an 8 step sequencer of slopes. These slopes will randomly animate the pitch of the oscillator from one value to the other. The slope step is chosen at random by a random number generator that is triggered by each word of the dialogue. The oscillator goes out to another oscillator to give us that robotic FM synthesis sound. I think it’s a solid foundation that I can build on going forward. Maybe sample rate reduction on the voice or some type or robotic effect.

Here’s a video of it in action:

A bit about the Unity side of things

Let’s talk a bit about the Unity side of this! You’ll see in the Unity editor screenshot there is an editor script for the dialogue triggers and the manager for all the objects to assign information to and manage Pure Data messages to send at the start and end of the conversation. In the case of the video above, it sends a message of thronStart to the patch. When dialogue has reached the last line, it sends throneEnd which I have routed to start the metronome and song. This editor script is great because I can make different versions of the voice patch and change the character name associated to give voices some variation. This is stored in the Pure Data Character Name field (in screenshot, defined as orbVoice.)

Next I hope to make the system more aware of pauses in speech. Currently it’s just triggering at a uniform space of time between words. I’d like for it to later recognize commas or periods and translate those to pauses and more dynamic delivery of the phrase. Maybe even have properties for each line of dialogue to define the emotion of the delivery (angry, sad, scared, etc.) Onward!

Browser Based Music Interface Design

antpb · Jan 5, 2019 · Leave a Comment

I have an idea! I'm writing this to hold myself to it. If you've not been keeping up with my personal happenings lately, let me catch you up really quick.

The last few years I've been chipping away at this idea of building a music performance application for XR (Extended Reality). I hacked together a somewhat stable framework for demo purposes and over the last year, I've refined it to something stable that finally builds for Windows (more platforms eventually ?.) The result has morphed into a game that I call Broken Place. The game's audio relies heavily on an open source visual programming language called Pure Data, which is extremely popular for multimedia. You can build very complex pieces of music using this language and I have developed a way to interface with this from Unity UI components. One thing I particularly like about this language is the patch file size is usually kilobytes but still generates complex sounds. This makes it super easy to handle users uploading on a post editor and downloading from an XR headset.

*The actual source will be open sourced as soon as it is cleaned up and stable. 🙂

Screenshot from an early demo of the game.

Before I get on with the idea, some more backstory about WordPress things

If you don't already know, my day job is WordPress development and I spend a great deal of that time contributing to the WordPress open source project. Recently, I found myself in a position to help as one of the handful of release leads heading up one of the largest changes in the history of the project. In this release, the old content creation process was rebuilt with new block based approach to managing post content. This change brings a considerable chunk of the web to an open future for content creation in a browser. Users of all skill levels are empowered to create content in interesting ways. This content does not have to be specific to a web browser. On to the idea....

Music interfaces designed in a web/browser based editor

I’ve been thinking through how I could use the new block based WordPress editor for music interfaces in my game. I imagine a user logging into a WordPress to a custom song post type with the option to upload a Pure Data music file. The editor could be used for making grid layouts. The block would have placeholder images representing the custom performance interface element (knobs, buttons, sequencers.) In the example below, we see a grid layout of knobs. The caption of each is defined by the user. These messages could be very important messages for something like a Pure Data patch which is listening for parameters associated with those messages. In the game, we would know how many cells to put across a row by querying the column block's number attribute. In 3D world space, the game would then populate the components associated with the attributes of each block queried from WordPress. Each block's attributes represents what type of 3D UI element drops in the cell and even detailed parameters about that element (maybe min/max ranges).

Editor screenshot of a 5 Column grid with 1 "Knob Block" per cell 
knob1
cutoff1
reverb
kickTone
kickDecay
attackSynth
decaySynth
sustainSynth
releaseSynth
rvbSynth

Blockers and a spiffy option

Currently WordPress Core out of the box cannot query via REST API to get individual block data. Roy Sivan is currently working on a plugin that would allow this to happen( Hi Roy!) Here's the github link if you want to test or contribute: https://github.com/royboy789/gutenberg-object-plugin

The plugin allows for block data to be exposed via REST API. This will be crucial as I start building a web editor for my game.

More to come as I find time to work on this. I'm open to dialogue with any that are interested. Feel free to leave thoughts below.

test

antpb · Nov 21, 2018 · Leave a Comment

  • Pumpkins23
  • minidisk
  • testvr
  • testpod
  • Test GLB

antpb · Oct 20, 2018 · Leave a Comment

adsfasdfasdfasdf

https://antpb.com/1880-2/

antpb · Oct 20, 2018 · Leave a Comment

https://antpb.com/1866-2/

  • « Go to Previous Page
  • Go to page 1
  • Go to page 2
  • Go to page 3
  • Go to Next Page »

A website made with WordPress on WP Engine

 

Loading Comments...