Git Product home page Git Product logo

ayumi-lv2's Introduction

What is this?

ayumi-lv2 is an LV2 plugin implementation of ayumi.

ayumi parameters are controlled via MIDI messages.

MIDI mappings

ayumi is an SSG (PSG) emulator for AY-3-8910 or YM2149, and therefore handles at most 3 monophonic channels. Since each channel can be configured with mixer, volume, pan etc., every PSG channel is assigned an entire MIDI channel that are 0, 1, or 2. Other channels are ignored, and you cannot have any polyphonic outputs for one single channel.

The accepted MIDI messages are:

MIDI message Ayumi message MIDI to ayumi mappings
Note Off (8xh) note off (set_mixer) -
Note On (9xh) note on (set mixer,_set tone) tone: 0-127 -> 0-4095 (indirect)
Program Change (Cxh) set noise, set mixer noise: 0-31 + mixer
CC - Bank MSB (Bxh-00h) set mixer 1: tone off, 2: noise off, 4: envelope on
CC - Volume (Bxh-07h) set volume 0-127 -> 0-14
CC - Pan MSB (Bxh-0Ah) set pan 0-127 -> 0.0-1.0
CC - 10h envelope High bits 0-65535 with 11h/12h
CC - 11h envelope Middle bits 0-65535 with 10h/12h
CC - 12h envelope Low bits 0-65535 with 10h/11h
CC - 13h envelope shape 0-15
CC - 50h remove dc

On Program Change messages, partial mixer settings can be added to noise as follows:

  • tone off: +32
  • noise off: +64

The same can be specified by CC Bank Change, which also supports envelope switch.

For some reason, ayumi does not process volume 15 as expected. Therefore it is rounded to 14.

Licenses

The plugin is distributed under the MIT license, as well as ayumi itself.

ayumi-lv2's People

Contributors

atsushieno avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

berarma

ayumi-lv2's Issues

noteoff is weird

It seems that processing note off with this plugin is weird... Once it processes note off, then it will not anymore, keeping note on state forever.

It needs some lowcut or whatever causing noises

When I use this plugin on a host, whenever it gets activated, other audio apps start sounding like having noise filters.

If I apply EQ to cut low band width like this sshot (DISTRHO 3 Band EQ), it goes away, which likely means ayumi outputs some glitchy unheard "noisy" wave output. I cannot hear such noise as the plugin by itself, so it is likely result of additive audio outputs.

image

The final sample output is calculated like this:

  ay->left = decimate(fir_left);
  ay->right = decimate(fir_right);

Maybe they need some filtering after call to decimate(). I have no right idea what it would be like though.

split noise level and mixer

noise needs 5 bits, and mixer needs 3 bits. It is fine on PC registers, but not as a MIDI message (should be 7 bits).

set correct tone

There is some rough and inaccurate assumption when note_on is transformed into call to ayumi_set_tone(). There seems some conversion formula to map to the actual address values (e.g. on ym2149-test).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.