wAxScore Music Data Entry Plug-In

Basic and Machine Language

Moderator: Moderators

Post Reply
User avatar
chysn
Vic 20 Scientist
Posts: 1205
Joined: Tue Oct 22, 2019 12:36 pm
Website: http://www.beigemaze.com
Location: Michigan, USA
Occupation: Software Dev Manager

wAxScore Music Data Entry Plug-In

Post by chysn »

As I finish my current game, I needed a way to enter composed music data into memory, for transfer to my cross-assembler. The format needed to be lightweight and flexible, and the player needed the same attributes.

I built the scoring tool, wAxScore, as a plug-in for wAx. This is likely how I'll approach new development tools for the foreseeable future, since wAx already has a comprehensive set of data management stuff in place, with a simple API.

The music is entered with a step entry system that uses

Code: Select all

 2 3   5 6 7
Q W E R T Y U I
to enter notes, and SPACE to enter rests. Note duration is selected with f1 (eighth note), f3 (quarter), f5 (half), f7 (whole). Durations can be dotted by pressing the period key. You can dot multiple times, as in standard music notation. There's an infinite-level Undo function if (when) you make mistakes.

The data format is one byte per note, with the high nybble being the duration and the low nybble being a chromatic degree (1-13) or rest (0). There's also an effect command format that allows for changes to octave, volume, tempo, and whatever else you care to implement in your player.

Once the music data is in memory, it can be transferred out via SD2IEC, or incorporated directly into programs. It can be edited with wAx, of course.

On macOS, my workflow is to (1) Compose the music as written notation, old-school-like, (2) Play it into the VIC via wAxScore, and (3) Save it as a file and then use xxd to turn it into hex data, which I paste into my source code.

Multi-track scores can be supported by the player. I haven't developed a multi-track player yet, but I'll probably make one for my next game.

I can't demo this with screen shots, so here's a video.

https://www.youtube.com/watch?v=m5iK7hTS5wY
VIC-20 Projects: wAx Assembler, TRBo: Turtle RescueBot, Helix Colony, Sub Med, Trolley Problem, Dungeon of Dance, ZEPTOPOLIS, MIDI KERNAL, The Archivist, Ed for Prophet-5

WIP: MIDIcast BASIC extension

he/him/his
User avatar
Noizer
Vic 20 Devotee
Posts: 297
Joined: Tue May 15, 2018 12:00 pm
Location: Europa

Re: wAxScore Music Data Entry Plug-In

Post by Noizer »

Amazing work as usual😏 Nice to hear your voice
Valid rule today as earlier: 1 Byte = 8 Bits
-._/classes instead of masses\_.-
User avatar
chysn
Vic 20 Scientist
Posts: 1205
Joined: Tue Oct 22, 2019 12:36 pm
Website: http://www.beigemaze.com
Location: Michigan, USA
Occupation: Software Dev Manager

Re: wAxScore Music Data Entry Plug-In

Post by chysn »

Noizer wrote: Sat Aug 08, 2020 8:18 am Amazing work as usual😏 Nice to hear your voice
Thanks!
VIC-20 Projects: wAx Assembler, TRBo: Turtle RescueBot, Helix Colony, Sub Med, Trolley Problem, Dungeon of Dance, ZEPTOPOLIS, MIDI KERNAL, The Archivist, Ed for Prophet-5

WIP: MIDIcast BASIC extension

he/him/his
Post Reply