游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4535|回复: 7

EQ???????VB.NET?

[复制链接]

29

主题

475

帖子

483

积分

中级会员

Rank: 3Rank: 3

积分
483
发表于 2007-8-12 11:35:00 | 显示全部楼层 |阅读模式
??VB.NET?DirectSound?????EQ???????
??????????????TrackBar?
Imports Microsoft.DirectX.DirectSound
Imports Microsoft.DirectX

Public Class Form1
    Inherits System.Windows.Forms.Form

    Dim Dev As Device
    Dim SB As SecondaryBuffer

#Region " Windows ?????????? "

    Public Sub New()
        MyBase.New()

        '???? Windows ??????????
        InitializeComponent()

        '? InitializeComponent() ???????????

    End Sub

    '???? dispose ????????
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    'Windows ?????????
    Private components As System.ComponentModel.IContainer

    '??: ????? Windows ?????????
    '???? Windows ???????????
    '?????????????
    Friend WithEvents Label1 As System.Windows.Forms.Label
    Friend WithEvents Label2 As System.Windows.Forms.Label
    Friend WithEvents Label3 As System.Windows.Forms.Label
    Friend WithEvents Label4 As System.Windows.Forms.Label
    Friend WithEvents Label5 As System.Windows.Forms.Label
    Friend WithEvents Label6 As System.Windows.Forms.Label
    Friend WithEvents Label7 As System.Windows.Forms.Label
    Friend WithEvents Label8 As System.Windows.Forms.Label
    Friend WithEvents Label9 As System.Windows.Forms.Label
    Friend WithEvents Label10 As System.Windows.Forms.Label
    Friend WithEvents Label11 As System.Windows.Forms.Label
    Friend WithEvents Label12 As System.Windows.Forms.Label
    Friend WithEvents Label13 As System.Windows.Forms.Label
    Friend WithEvents TrackBar1 As System.Windows.Forms.TrackBar
    Friend WithEvents TrackBar2 As System.Windows.Forms.TrackBar
    Friend WithEvents TrackBar3 As System.Windows.Forms.TrackBar
    Friend WithEvents TrackBar4 As System.Windows.Forms.TrackBar
    Friend WithEvents TrackBar5 As System.Windows.Forms.TrackBar
    Friend WithEvents TrackBar6 As System.Windows.Forms.TrackBar
    Friend WithEvents TrackBar7 As System.Windows.Forms.TrackBar
    Friend WithEvents TrackBar8 As System.Windows.Forms.TrackBar
    Friend WithEvents TrackBar9 As System.Windows.Forms.TrackBar
    Friend WithEvents TrackBar10 As System.Windows.Forms.TrackBar
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.Label1 = New System.Windows.Forms.Label
        Me.Label2 = New System.Windows.Forms.Label
        Me.Label3 = New System.Windows.Forms.Label
        Me.Label4 = New System.Windows.Forms.Label
        Me.Label5 = New System.Windows.Forms.Label
        Me.Label6 = New System.Windows.Forms.Label
        Me.Label7 = New System.Windows.Forms.Label
        Me.Label8 = New System.Windows.Forms.Label
        Me.Label9 = New System.Windows.Forms.Label
        Me.Label10 = New System.Windows.Forms.Label
        Me.Label11 = New System.Windows.Forms.Label
        Me.Label12 = New System.Windows.Forms.Label
        Me.Label13 = New System.Windows.Forms.Label
        Me.TrackBar1 = New System.Windows.Forms.TrackBar
        Me.TrackBar2 = New System.Windows.Forms.TrackBar
        Me.TrackBar3 = New System.Windows.Forms.TrackBar
        Me.TrackBar4 = New System.Windows.Forms.TrackBar
        Me.TrackBar5 = New System.Windows.Forms.TrackBar
        Me.TrackBar6 = New System.Windows.Forms.TrackBar
        Me.TrackBar7 = New System.Windows.Forms.TrackBar
        Me.TrackBar8 = New System.Windows.Forms.TrackBar
        Me.TrackBar9 = New System.Windows.Forms.TrackBar
        Me.TrackBar10 = New System.Windows.Forms.TrackBar
        CType(Me.TrackBar1, System.ComponentModel.ISupportInitialize).BeginInit()
        CType(Me.TrackBar2, System.ComponentModel.ISupportInitialize).BeginInit()
        CType(Me.TrackBar3, System.ComponentModel.ISupportInitialize).BeginInit()
        CType(Me.TrackBar4, System.ComponentModel.ISupportInitialize).BeginInit()
        CType(Me.TrackBar5, System.ComponentModel.ISupportInitialize).BeginInit()
        CType(Me.TrackBar6, System.ComponentModel.ISupportInitialize).BeginInit()
        CType(Me.TrackBar7, System.ComponentModel.ISupportInitialize).BeginInit()
        CType(Me.TrackBar8, System.ComponentModel.ISupportInitialize).BeginInit()
        CType(Me.TrackBar9, System.ComponentModel.ISupportInitialize).BeginInit()
        CType(Me.TrackBar10, System.ComponentModel.ISupportInitialize).BeginInit()
        Me.SuspendLayout()
        '
        'Label1
        '
        Me.Label1.Location = New System.Drawing.Point(8, 8)
        Me.Label1.Name = "Label1"
        Me.Label1.Size = New System.Drawing.Size(32, 16)
        Me.Label1.TabIndex = 0
        Me.Label1.Text = "12dB"
        '
        'Label2
        '
        Me.Label2.Location = New System.Drawing.Point(8, 64)
        Me.Label2.Name = "Label2"
        Me.Label2.Size = New System.Drawing.Size(24, 16)
        Me.Label2.TabIndex = 1
        Me.Label2.Text = "0dB"
        '
        'Label3
        '
        Me.Label3.Location = New System.Drawing.Point(8, 120)
        Me.Label3.Name = "Label3"
        Me.Label3.Size = New System.Drawing.Size(40, 16)
        Me.Label3.TabIndex = 2
        Me.Label3.Text = "-12dB"
        '
        'Label4
        '
        Me.Label4.Location = New System.Drawing.Point(56, 144)
        Me.Label4.Name = "Label4"
        Me.Label4.Size = New System.Drawing.Size(24, 16)
        Me.Label4.TabIndex = 3
        Me.Label4.Text = "100"
        '
        'Label5
        '
        Me.Label5.Location = New System.Drawing.Point(96, 144)
        Me.Label5.Name = "Label5"
        Me.Label5.Size = New System.Drawing.Size(24, 16)
        Me.Label5.TabIndex = 4
        Me.Label5.Text = "200"
        '
        'Label6
        '
        Me.Label6.Location = New System.Drawing.Point(136, 144)
        Me.Label6.Name = "Label6"
        Me.Label6.Size = New System.Drawing.Size(24, 16)
        Me.Label6.TabIndex = 5
        Me.Label6.Text = "400"
        '
        'Label7
        '
        Me.Label7.Location = New System.Drawing.Point(176, 144)
        Me.Label7.Name = "Label7"
        Me.Label7.Size = New System.Drawing.Size(24, 16)
        Me.Label7.TabIndex = 6
        Me.Label7.Text = "600"
        '
        'Label8
        '
        Me.Label8.Location = New System.Drawing.Point(216, 144)
        Me.Label8.Name = "Label8"
        Me.Label8.Size = New System.Drawing.Size(24, 16)
        Me.Label8.TabIndex = 7
        Me.Label8.Text = "1k"
        '
        'Label9
        '
        Me.Label9.Location = New System.Drawing.Point(256, 144)
        Me.Label9.Name = "Label9"
        Me.Label9.Size = New System.Drawing.Size(24, 16)
        Me.Label9.TabIndex = 8
        Me.Label9.Text = "3k"
        '
        'Label10
        '
        Me.Label10.Location = New System.Drawing.Point(296, 144)
        Me.Label10.Name = "Label10"
        Me.Label10.Size = New System.Drawing.Size(24, 16)
        Me.Label10.TabIndex = 9
        Me.Label10.Text = "6k"
        '
        'Label11
        '
        Me.Label11.Location = New System.Drawing.Point(336, 144)
        Me.Label11.Name = "Label11"
        Me.Label11.Size = New System.Drawing.Size(24, 16)
        Me.Label11.TabIndex = 10
        Me.Label11.Text = "12k"
        '
        'Label12
        '
        Me.Label12.Location = New System.Drawing.Point(376, 144)
        Me.Label12.Name = "Label12"
        Me.Label12.Size = New System.Drawing.Size(24, 16)
        Me.Label12.TabIndex = 11
        Me.Label12.Text = "14k"
        '
        'Label13
        '
        Me.Label13.Location = New System.Drawing.Point(416, 144)
        Me.Label13.Name = "Label13"
        Me.Label13.Size = New System.Drawing.Size(24, 16)
        Me.Label13.TabIndex = 12
        Me.Label13.Text = "16k"
        '
        'TrackBar1
        '
        Me.TrackBar1.Location = New System.Drawing.Point(56, 0)
        Me.TrackBar1.Maximum = 12
        Me.TrackBar1.Minimum = -12
        Me.TrackBar1.Name = "TrackBar1"
        Me.TrackBar1.Orientation = System.Windows.Forms.Orientation.Vertical
        Me.TrackBar1.Size = New System.Drawing.Size(45, 136)
        Me.TrackBar1.TabIndex = 13
        Me.TrackBar1.TickStyle = System.Windows.Forms.TickStyle.None
        '
        'TrackBar2
        '
        Me.TrackBar2.Location = New System.Drawing.Point(96, 0)
        Me.TrackBar2.Maximum = 12
        Me.TrackBar2.Minimum = -12
        Me.TrackBar2.Name = "TrackBar2"
        Me.TrackBar2.Orientation = System.Windows.Forms.Orientation.Vertical
        Me.TrackBar2.Size = New System.Drawing.Size(45, 136)
        Me.TrackBar2.TabIndex = 14
        Me.TrackBar2.TickStyle = System.Windows.Forms.TickStyle.None
        '
        'TrackBar3
        '
        Me.TrackBar3.Location = New System.Drawing.Point(136, 0)
        Me.TrackBar3.Maximum = 12
        Me.TrackBar3.Minimum = -12
        Me.TrackBar3.Name = "TrackBar3"
        Me.TrackBar3.Orientation = System.Windows.Forms.Orientation.Vertical
        Me.TrackBar3.Size = New System.Drawing.Size(45, 136)
        Me.TrackBar3.TabIndex = 15
        Me.TrackBar3.TickStyle = System.Windows.Forms.TickStyle.None
        '
        'TrackBar4
        '
        Me.TrackBar4.Location = New System.Drawing.Point(176, 0)
        Me.TrackBar4.Maximum = 12
        Me.TrackBar4.Minimum = -12
        Me.TrackBar4.Name = "TrackBar4"
        Me.TrackBar4.Orientation = System.Windows.Forms.Orientation.Vertical
        Me.TrackBar4.Size = New System.Drawing.Size(45, 136)
        Me.TrackBar4.TabIndex = 16
        Me.TrackBar4.TickStyle = System.Windows.Forms.TickStyle.None
        '
        'TrackBar5
        '
        Me.TrackBar5.Location = New System.Drawing.Point(216, 0)
        Me.TrackBar5.Maximum = 12
        Me.TrackBar5.Minimum = -12
        Me.TrackBar5.Name = "TrackBar5"
        Me.TrackBar5.Orientation = System.Windows.Forms.Orientation.Vertical
        Me.TrackBar5.Size = New System.Drawing.Size(45, 136)
        Me.TrackBar5.TabIndex = 17
        Me.TrackBar5.TickStyle = System.Windows.Forms.TickStyle.None
        '
        'TrackBar6
        '
        Me.TrackBar6.Location = New System.Drawing.Point(256, 0)
        Me.TrackBar6.Maximum = 12
        Me.TrackBar6.Minimum = -12
        Me.TrackBar6.Name = "TrackBar6"
        Me.TrackBar6.Orientation = System.Windows.Forms.Orientation.Vertical
        Me.TrackBar6.Size = New System.Drawing.Size(45, 136)
        Me.TrackBar6.TabIndex = 18
        Me.TrackBar6.TickStyle = System.Windows.Forms.TickStyle.None
        '
        'TrackBar7
        '
        Me.TrackBar7.Location = New System.Drawing.Point(296, 0)
        Me.TrackBar7.Maximum = 12
        Me.TrackBar7.Minimum = -12
        Me.TrackBar7.Name = "TrackBar7"
        Me.TrackBar7.Orientation = System.Windows.Forms.Orientation.Vertical
        Me.TrackBar7.Size = New System.Drawing.Size(45, 136)
        Me.TrackBar7.TabIndex = 19
        Me.TrackBar7.TickStyle = System.Windows.Forms.TickStyle.None
        '
        'TrackBar8
        '
        Me.TrackBar8.Location = New System.Drawing.Point(336, 0)
        Me.TrackBar8.Maximum = 12
        Me.TrackBar8.Minimum = -12
        Me.TrackBar8.Name = "TrackBar8"
        Me.TrackBar8.Orientation = System.Windows.Forms.Orientation.Vertical
        Me.TrackBar8.Size = New System.Drawing.Size(45, 136)
        Me.TrackBar8.TabIndex = 20
        Me.TrackBar8.TickStyle = System.Windows.Forms.TickStyle.None
        '
        'TrackBar9
        '
        Me.TrackBar9.Location = New System.Drawing.Point(376, 0)
        Me.TrackBar9.Maximum = 12
        Me.TrackBar9.Minimum = -12
        Me.TrackBar9.Name = "TrackBar9"
        Me.TrackBar9.Orientation = System.Windows.Forms.Orientation.Vertical
        Me.TrackBar9.Size = New System.Drawing.Size(45, 136)
        Me.TrackBar9.TabIndex = 21
        Me.TrackBar9.TickStyle = System.Windows.Forms.TickStyle.None
        '
        'TrackBar10
        '
        Me.TrackBar10.Location = New System.Drawing.Point(416, 0)
        Me.TrackBar10.Maximum = 12
        Me.TrackBar10.Minimum = -12
        Me.TrackBar10.Name = "TrackBar10"
        Me.TrackBar10.Orientation = System.Windows.Forms.Orientation.Vertical
        Me.TrackBar10.Size = New System.Drawing.Size(45, 136)
        Me.TrackBar10.TabIndex = 22
        Me.TrackBar10.TickStyle = System.Windows.Forms.TickStyle.None
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
        Me.ClientSize = New System.Drawing.Size(448, 166)
        Me.Controls.Add(Me.TrackBar10)
        Me.Controls.Add(Me.TrackBar9)
        Me.Controls.Add(Me.TrackBar8)
        Me.Controls.Add(Me.TrackBar7)
        Me.Controls.Add(Me.TrackBar6)
        Me.Controls.Add(Me.TrackBar5)
        Me.Controls.Add(Me.TrackBar4)
        Me.Controls.Add(Me.TrackBar3)
        Me.Controls.Add(Me.TrackBar2)
        Me.Controls.Add(Me.TrackBar1)
        Me.Controls.Add(Me.Label13)
        Me.Controls.Add(Me.Label12)
        Me.Controls.Add(Me.Label11)
        Me.Controls.Add(Me.Label10)
        Me.Controls.Add(Me.Label9)
        Me.Controls.Add(Me.Label8)
        Me.Controls.Add(Me.Label7)
        Me.Controls.Add(Me.Label6)
        Me.Controls.Add(Me.Label5)
        Me.Controls.Add(Me.Label4)
        Me.Controls.Add(Me.Label3)
        Me.Controls.Add(Me.Label2)
        Me.Controls.Add(Me.Label1)
        Me.MaximizeBox = False
        Me.Name = "Form1"
        Me.Text = "EQ???"
        CType(Me.TrackBar1, System.ComponentModel.ISupportInitialize).EndInit()
        CType(Me.TrackBar2, System.ComponentModel.ISupportInitialize).EndInit()
        CType(Me.TrackBar3, System.ComponentModel.ISupportInitialize).EndInit()
        CType(Me.TrackBar4, System.ComponentModel.ISupportInitialize).EndInit()
        CType(Me.TrackBar5, System.ComponentModel.ISupportInitialize).EndInit()
        CType(Me.TrackBar6, System.ComponentModel.ISupportInitialize).EndInit()
        CType(Me.TrackBar7, System.ComponentModel.ISupportInitialize).EndInit()
        CType(Me.TrackBar8, System.ComponentModel.ISupportInitialize).EndInit()
        CType(Me.TrackBar9, System.ComponentModel.ISupportInitialize).EndInit()
        CType(Me.TrackBar10, System.ComponentModel.ISupportInitialize).EndInit()
        Me.ResumeLayout(False)

    End Sub

#End Region

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dev = New Device
        Dev.SetCooperativeLevel(Me, CooperativeLevel.Normal)
        SB = New SecondaryBuffer("D:\????2\DRIVERS\DIGTEST.wav", Dev)
        Dim EDes(9) As EffectDescription
        For i As Integer = 0 To 9
            '???EQ??
            EDes(i).GuidEffectClass = DSoundHelper.StandardParamEqGuid
        Next
        SB.SetEffects(EDes)
        '??????
        Dim FreqDur() As Integer = {100, 200, 400, 600, 1000, 3000, 6000, 12000, 14000, 16000}
        '???????????????
        For i As Integer = 0 To 9
            Dim EQEffect As ParamEqEffect
            Dim EffectsOfEQ As EffectsParamEq
            EQEffect = SB.GetEffects(i)
            EffectsOfEQ = EQEffect.AllParameters
            '??????
            EffectsOfEQ.Center = FreqDur(i)
            '??????
            EffectsOfEQ.Bandwidth = 36
            EQEffect.AllParameters = EffectsOfEQ
        Next
        '??????????
        SB.Play(0, BufferPlayFlags.Looping)
    End Sub

    Private Sub ChangeGain(ByVal FreqIndex As Integer, ByVal Value As Integer)
        Dim EQEffect As ParamEqEffect
        Dim EffectsOfEQ As EffectsParamEq
        EQEffect = SB.GetEffects(FreqIndex)
        EffectsOfEQ = EQEffect.AllParameters
        '????
        EffectsOfEQ.Gain = Value
        EQEffect.AllParameters = EffectsOfEQ
    End Sub

    Private Sub TrackBar1_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TrackBar1.ValueChanged
        ChangeGain(0, TrackBar1.Value)
    End Sub

    Private Sub TrackBar2_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TrackBar2.ValueChanged
        ChangeGain(1, TrackBar2.Value)
    End Sub

    Private Sub TrackBar3_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TrackBar3.ValueChanged
        ChangeGain(2, TrackBar3.Value)
    End Sub

    Private Sub TrackBar4_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TrackBar4.ValueChanged
        ChangeGain(3, TrackBar4.Value)
    End Sub

    Private Sub TrackBar5_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TrackBar5.ValueChanged
        ChangeGain(4, TrackBar5.Value)
    End Sub

    Private Sub TrackBar6_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TrackBar6.ValueChanged
        ChangeGain(5, TrackBar6.Value)
    End Sub

    Private Sub TrackBar7_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TrackBar7.ValueChanged
        ChangeGain(6, TrackBar7.Value)
    End Sub

    Private Sub TrackBar8_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TrackBar8.ValueChanged
        ChangeGain(7, TrackBar8.Value)
    End Sub

    Private Sub TrackBar9_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TrackBar9.ValueChanged
        ChangeGain(8, TrackBar9.Value)
    End Sub

    Private Sub TrackBar10_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TrackBar10.ValueChanged
        ChangeGain(9, TrackBar10.Value)
    End Sub
End Class

15

主题

2093

帖子

2093

积分

金牌会员

Rank: 6Rank: 6

积分
2093
发表于 2007-8-12 15:02:00 | 显示全部楼层

Re:EQ???????VB.NET?

??????????

31

主题

249

帖子

259

积分

中级会员

Rank: 3Rank: 3

积分
259
发表于 2007-8-12 16:36:00 | 显示全部楼层

Re: EQ???????VB.NET?

????????

26

主题

537

帖子

537

积分

高级会员

Rank: 4

积分
537
发表于 2007-8-13 08:59:00 | 显示全部楼层

Re:EQ???????VB.NET?

SecondaryBuffer?????????????

29

主题

475

帖子

483

积分

中级会员

Rank: 3Rank: 3

积分
483
 楼主| 发表于 2007-8-13 09:25:00 | 显示全部楼层

Re:EQ???????VB.NET?

?????????ControlEffect?True???????????~?????????~~

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2007-9-15 17:17:00 | 显示全部楼层

Re:EQ???????VB.NET?

????,???????????

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2007-9-15 17:20:00 | 显示全部楼层

Re:EQ???????VB.NET?

?.net?directsound???

29

主题

475

帖子

483

积分

中级会员

Rank: 3Rank: 3

积分
483
 楼主| 发表于 2007-9-17 21:13:00 | 显示全部楼层

Re:EQ???????VB.NET?

?DX8?VB6??????
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-17 13:17

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表