Example #1
0
        /// <inheritdoc />
        public byte[] GetBytes()
        {
            var bytes = new List <byte>();

            var nameBytes = Encoding.ASCII.GetBytes(Name.Length > 12 ? Name.Substring(0, 12) : Name);

            bytes.AddRange(nameBytes);
            bytes.AddRange(ByteUtils.RepeatReserve(12 - nameBytes.Length, 0x20));

            bytes.AddRange(ByteUtils.RepeatReserve(4));

            bytes.Add((byte)Level);
            bytes.AddRange(ByteUtils.NumberTo4MidiPackets(Tempo * 100, ByteUtils.Offset.None));
            bytes.Add(0x00); // Reserve

            //TODO: The hell with that ifs
            if (VocalEffectType != Type.Off)
            {
                bytes.Add((byte)VocalEffectType);

                bytes.AddRange(ByteUtils.RepeatReserve(5));

                bytes.Add((byte)VocalEffectNumber);
                bytes.Add((byte)VocalEffectPart);
            }

            if (VocalEffectType == Type.Vocoder)
            {
                bytes.Add(ByteUtils.BooleanToByte(AutoNote));
            }

            return(bytes.ToArray());
        }
Example #2
0
        /// <inheritdoc />
        public byte[] GetBytes()
        {
            var bytes = new List <byte>
            {
                ByteUtils.BooleanToByte(On),
                (byte)GroupType
            };

            bytes.AddRange(ByteUtils.NumberTo4MidiPackets(GroupId, ByteUtils.Offset.None));
            bytes.AddRange(ByteUtils.NumberTo4MidiPackets((int)LeftWave, ByteUtils.Offset.None));
            bytes.AddRange(ByteUtils.NumberTo4MidiPackets((int)RightWave, ByteUtils.Offset.None));

            bytes.Add((byte)WaveGain);
            bytes.Add(ByteUtils.BooleanToByte(Fxm));
            bytes.Add((byte)FxmColor);
            bytes.Add((byte)FxmDepth);
            bytes.Add(ByteUtils.BooleanToByte(TempoSync));
            bytes.Add((byte)(CoarseTune + 64));
            bytes.Add((byte)(FineTune + 64));
            bytes.Add((byte)(Panorama + 64));
            bytes.Add(ByteUtils.BooleanToByte(RandomPanorama));
            bytes.Add((byte)AlternatePanorama);
            bytes.Add((byte)Level);
            bytes.Add((byte)VelocityRangeLower);
            bytes.Add((byte)VelocityRangeUpper);
            bytes.Add((byte)VelocityFadeWidthLower);
            bytes.Add((byte)VelocityFadeWidthUpper);

            return(bytes.ToArray());
        }
 /// <inheritdoc />
 public void SetAutoNote(bool value, int deviceId)
 {
     using (var output = new OutputDevice(deviceId))
     {
         _logger.DataDump("Dumping Patch.Common.AutoNote");
         output.Send(SysExUtils.GetMessage(_autoNoteOffset, new[] { ByteUtils.BooleanToByte(value) }));
     }
 }
Example #4
0
 /// <inheritdoc />
 public byte[] GetBytes()
 {
     return(new[]
     {
         ByteUtils.BooleanToByte(OneShotMode),
         (byte)(RelativeLevel + 64)
     });
 }
Example #5
0
 /// <inheritdoc />
 public byte[] GetBytes()
 {
     return(new byte[]
     {
         ByteUtils.BooleanToByte(On),
         (byte)Level,
         0x00 // Reserve
     });
 }
Example #6
0
        /// <inheritdoc />
        public byte[] GetBytes()
        {
            var bytes = new List <byte>();

            var nameBytes = Encoding.ASCII.GetBytes(Name.Length > 12 ? Name.Substring(0, 12) : Name);

            bytes.AddRange(nameBytes);
            bytes.AddRange(ByteUtils.RepeatReserve(12 - nameBytes.Length, 0x20));

            bytes.Add((byte)ToneLevel);

            bytes.AddRange(ByteUtils.RepeatReserve(5));

            bytes.AddRange(new[]
            {
                ByteUtils.BooleanToByte(Portamento),
                (byte)PortamentoTime,
                ByteUtils.BooleanToByte(Mono),
                (byte)(OctaveShift + 64),
                (byte)PitchBendRangeUp,
                (byte)PitchBendRangeDown,
                (byte)0x00,  //Reserve

                ByteUtils.BooleanToByte(PartialOneSwitch),
                ByteUtils.BooleanToByte(PartialOneSelect),
                ByteUtils.BooleanToByte(PartialTwoSwitch),
                ByteUtils.BooleanToByte(PartialTwoSelect),
                ByteUtils.BooleanToByte(PartialThreeSwitch),
                ByteUtils.BooleanToByte(PartialThreeSelect),

                ByteUtils.BooleanToByte(Ring)
            });

            bytes.AddRange(ByteUtils.RepeatReserve(14));

            bytes.Add(ByteUtils.BooleanToByte(Unison));

            bytes.AddRange(ByteUtils.RepeatReserve(2));

            bytes.AddRange(new[]
            {
                (byte)PortamentoMode,
                ByteUtils.BooleanToByte(Legato),
                (byte)0x00,  //Reserve
                (byte)AnalogFeel,
                (byte)WaveShape,
                (byte)ToneCategory
            });

            bytes.AddRange(ByteUtils.RepeatReserve(5));

            bytes.Add((byte)UnisonSize);

            bytes.AddRange(ByteUtils.RepeatReserve(3));

            return(bytes.ToArray());
        }
Example #7
0
 /// <inheritdoc />
 public byte[] GetBytes()
 {
     return(new byte[]
     {
         (byte)PitchBendRange,
         ByteUtils.BooleanToByte(ReceiveExpression),
         ByteUtils.BooleanToByte(ReceiveHold1),
         0x00 //Reserve
     });
 }
Example #8
0
 /// <inheritdoc />
 public byte[] GetBytes()
 {
     return(new byte[]
     {
         ByteUtils.BooleanToByte(On),
         (byte)Level,
         0x00, // Reserve
         (byte)ReverbSendLevel
     });
 }
Example #9
0
 /// <inheritdoc />
 public byte[] GetBytes()
 {
     return(new[]
     {
         ByteUtils.BooleanToByte(Portamento),
         (byte)PortamentoTime,
         ByteUtils.BooleanToByte(Legato),
         (byte)(OctaveShift + 64),
         (byte)PitchBendRangeUp,
         (byte)PitchBendRangeDown,
         (byte)0x00  //Reserve
     });
 }
Example #10
0
        /// <inheritdoc />
        public byte[] GetBytes()
        {
            var bytes = new List <byte>();

            bytes.AddRange(ByteUtils.RepeatReserve(3));
            bytes.Add(ByteUtils.BooleanToByte(ArpeggioSwitch));
            bytes.AddRange(ByteUtils.RepeatReserve(10));

            bytes.AddRange(ByteUtils.RepeatReserve(11));    //10 * 2 packets + 1
            bytes.Add((byte)ZoneOctaveShift);
            bytes.AddRange(ByteUtils.RepeatReserve(9));

            return(bytes.ToArray());
        }
Example #11
0
 /// <inheritdoc />
 public byte[] GetBytes()
 {
     return(new[]
     {
         ByteUtils.BooleanToByte(On),
         (byte)Type,
         (byte)Scale,
         (byte)Key,
         (byte)Note,
         (byte)(Gender + 10),
         (byte)Octave,
         (byte)DryWetBalance
     });
 }
Example #12
0
 /// <inheritdoc />
 public byte[] GetBytes()
 {
     return(new byte[]
     {
         ByteUtils.BooleanToByte(On),
         (byte)Envelope,
         (byte)UnknowParameter,
         (byte)MicrophoneSensitivity,
         (byte)SynthLevel,
         (byte)MicrophoneMixLevel,
         (byte)MicrophoneHpf,
         0x00 // Reserve
     });
 }
Example #13
0
 /// <inheritdoc />
 public byte[] GetBytes()
 {
     return(new[]
     {
         (byte)Shape,
         (byte)Rate,
         (byte)FadeTime,
         ByteUtils.BooleanToByte(TempoSync),
         (byte)SyncNote,
         (byte)(PitchDepth + 64),
         (byte)(FilterDepth + 64),
         (byte)(AmpDepth + 64),
         ByteUtils.BooleanToByte(KeyTrigger)
     });
 }
Example #14
0
        /// <inheritdoc />
        public byte[] GetBytes()
        {
            var bytes = new List <byte>
            {
                ByteUtils.BooleanToByte(TransmitProgramChange),
                ByteUtils.BooleanToByte(TransmitBankSelect),
                (byte)KeyboardVelocity,
                (byte)VelocityCurve,
                (byte)(VelocityCurveOffset + 64)
            };

            bytes.AddRange(ByteUtils.RepeatReserve(12));

            return(bytes.ToArray());
        }
Example #15
0
 /// <inheritdoc />
 public byte[] GetBytes()
 {
     return(new[]
     {
         (byte)Shape,
         (byte)Rate,
         ByteUtils.BooleanToByte(TempoSync),
         (byte)SyncNote,
         (byte)PulseWidthShift,
         (byte)0x00,  //Reserve
         (byte)(PitchDepth + 64),
         (byte)(FilterDepth + 64),
         (byte)(AmpDepth + 64),
         (byte)(PanDepth + 64)
     });
 }
        /// <inheritdoc />
        public void Dump(IPatch patch, int deviceId)
        {
            var vfxPatch = (CommonAndVocalEffectPatch)patch;

            using (var output = new OutputDevice(deviceId))
            {
                _logger.DataDump("Dumping Patch.Common");
                output.Send(SysExUtils.GetMessage(_commonOffset, vfxPatch.Common.GetBytes()));

                _logger.DataDump("Dumping Patch.VocalEffect");
                output.Send(SysExUtils.GetMessage(_vfxEffectsOffset, vfxPatch.VocalEffect.GetBytes()));

                _logger.DataDump("Dumping Patch.Common.AutoNote");
                output.Send(SysExUtils.GetMessage(_autoNoteOffset, new[] { ByteUtils.BooleanToByte(vfxPatch.Common.AutoNote) }));
            }
        }
Example #17
0
 /// <inheritdoc />
 public byte[] GetBytes()
 {
     return(new[]
     {
         ByteUtils.BooleanToByte(On),
         (byte)Cutoff,
         (byte)(CutoffKeyfollow / 10 + 64),
         (byte)Resonance,
         (byte)(EnvelopeVelocitySensitivity + 64),
         (byte)Envelope.Attack,
         (byte)Envelope.Decay,
         (byte)Envelope.Sustain,
         (byte)Envelope.Release,
         (byte)(EnvelopeDepth + 64)
     });
 }
Example #18
0
        /// <inheritdoc />
        public byte[] GetBytes()
        {
            var bytes = new List <byte>(new[]
            {
                (byte)0x00,  //Reserve
                (byte)AttackTimeIntervalSensitivity,
                (byte)ReleaseTimeIntervalSensitivity,
                (byte)PortamentoTimeIntervalSensitivity,
                (byte)EnvelopeLoopMode,
                (byte)EnvelopeLoopSyncNote,
                ByteUtils.BooleanToByte(ChromaticPortamento)
            });

            bytes.AddRange(ByteUtils.RepeatReserve(30));

            return(bytes.ToArray());
        }
Example #19
0
        /// <inheritdoc />
        public byte[] GetBytes()
        {
            var bytes = new List <byte>();

            bytes.AddRange(ByteUtils.NumberTo4MidiPackets((int)(MasterTune * 5)));  // TODO: Replace 5 with something
            bytes.Add((byte)(MasterKeyShift + 64));
            bytes.Add((byte)MasterLevel);

            bytes.AddRange(ByteUtils.RepeatReserve(11));

            bytes.Add((byte)ProgramControlChannel);

            bytes.AddRange(ByteUtils.RepeatReserve(23));

            bytes.Add(ByteUtils.BooleanToByte(ReceiveProgramChange));
            bytes.Add(ByteUtils.BooleanToByte(ReceiveBankSelect));

            return(bytes.ToArray());
        }
Example #20
0
        /// <inheritdoc />
        public byte[] GetBytes()
        {
            var bytes = new List <byte>
            {
                ByteUtils.BooleanToByte(ReceiveChannel),
                ByteUtils.BooleanToByte(ReceivePitchBend),
                ByteUtils.BooleanToByte(ReceivePolyphonicKeyPressure),
                ByteUtils.BooleanToByte(ReceiveChannelPressure),
                ByteUtils.BooleanToByte(ReceiveModulation),
                ByteUtils.BooleanToByte(ReceiveVolume),
                ByteUtils.BooleanToByte(ReceivePanorama),
                ByteUtils.BooleanToByte(ReceiveExpression),
                ByteUtils.BooleanToByte(ReceiveHold1),
            };

            bytes.AddRange(ByteUtils.RepeatReserve(5));

            return(bytes.ToArray());
        }