rualark / MGen

MGen: Windows PC C++ music generation and analysis laboratory, playing into MIDI port and exporting MIDI
http://arkhipenko.weebly.com
GNU Affero General Public License v3.0
45 stars 12 forks source link

Support multichannel instruments #2649

Closed rualark closed 5 years ago

rualark commented 5 years ago

General approaches:

rualark commented 5 years ago

Sending dynamics cc in LASS:

The problem with dynamics cc is that as music moves from one articulation to another, cc should follow. Approaches:

rualark commented 5 years ago

So, the most simple solution is just to duplicate all cc and ksw in all channels of an instrument. Removing unneeded ccs can be done this way:

  1. Scan through all notes until first note of needed channel is found. Remove all dynamics CCs before this note.
  2. Go to next note in this channel. Check if it is separated with distance longer than 2 seconds. Remove dynamics CCs in between.
  3. After approaching last note in this channel, remove all dynamics CCs after it.
rualark commented 5 years ago

Todo: