Приложение для маскировки нежелательных звуковых эффектов

Выбор и реализация модели базы данных. Концептуальная модель базы данных. Описание логической модели базы данных, SQL-запросов, приложения маскировки эффектов, контрольного примера, программных средств работы. Инструкция по эксплуатации программы.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 19.05.2014
Размер файла 693,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Private Declare Function mciSendString Lib "winmm.dll" _

Alias "mciSendStringA" _

(ByVal lpstrCommand As String, _

ByVal lpstrReturnString As String, _

ByVal uReturnLength As Long, _

ByVal hwndCallback As Long) As Long

Public Sub ReadFile(Path As String)

FileName = Path

Open FileName For Binary As #1

Get #1, , Riff

Get #1, , Wave

Get #1, , Data

ReDim samples(1 To Riff.lenOfFileData / 2)

Рисунок А.1 - Фрагмент листинга класса AudioSignal

Get #1, , samples

Close #1

StartFragment = 0

EndFragment = 0

End Sub

Public Sub SaveFile(FileName As String)

Open FileName For Binary As #2

Put #2, , Riff

Put #2, , Wave

Put #2, , Data

Put #2, , samples

Close #2

MsgBox "Saved!"

End Sub

Public Sub ProcessSignalWithSilence(StartPos As Long, EndPos As Long)

SamplesPerMS = Wave.samplesPerSecond / 1000

StartFragment = StartPos * SamplesPerMS

EndFragment = EndPos * SamplesPerMS

For i = StartFragment To EndFragment

samples(i) = 0

Next i

End Sub

Public Sub ProcessSignalWithSound(StartPos As Long, EndPos As Long, Fragment As AudioSignal)

SamplesPerMS = Wave.samplesPerSecond / 1000

StartFragment = StartPos * SamplesPerMS

EndFragment = StartPos * SamplesPerMS + Fragment.GetSamplesNumber - 1

For i = StartFragment To EndFragment

samples(i) = Fragment.GetSample(i - StartPos * SamplesPerMS + 1)

Next i

End Sub

Public Function GetBitsPerSample() As Integer

GetBitsPerSample = Wave.bitsPerSample

End Function

Public Function GetSamplesPerSecond() As Long

GetSamplesPerSecond = Wave.samplesPerSecond

End Function

Public Function GetSample(pos As Long) As Integer

GetSample = samples(pos)

End Function

Public Function GetSamplesNumber() As Long

GetSamplesNumber = Riff.lenOfFileData / 2

End Function

Рисунок А.1, лист 2

Public Function GetChannels() As Integer

GetChannels = Wave.channels

End Function

Public Function GetLength() As String

GetLength = Riff.lenOfFileData / (2 * Wave.samplesPerSecond / 1000) & " ms"

End Function

Public Sub PlayFragment(StartPos As Long, EndPos As Long)

cmd = "stop fragment"

mciSendString cmd, 0, 0, 0

cmd = "close fragment"

mciSendString cmd, 0, 0, 0

cmd = "open " & FileName & " type waveaudio alias fragment"

mciSendString cmd, 0, 0, 0

cmd = "play fragment from " & StartPos & " to " & EndPos

mciSendString cmd, 0, 0, 0

End Sub

Рисунок А.1, лист 3

Public Signal As AudioSignal

Public Fragment As AudioSignal

Private ZoomFactor As Long

Private Sub Command1_Click()

Signal.PlayFragment CLng(StartPosText.Text), CLng(EndPosText.Text)

End Sub

Private Sub ExitMenuItem_Click()

End

End Sub

Private Sub Form_Load()

Set Signal = New AudioSignal

ZoomFactor = 140

End Sub

Private Sub HelpMenuItem_Click()

frmAbout.Show

End Sub

Private Sub OpenMenuItem_Click()

Set ofdg = New OpenFileDialog

ofdg.Show 1

Signal.ReadFile (ofdg.FileName)

FillFileInfo

DrawWave

End Sub

Рисунок А.2 - Фрагмент листинга формы MaskerForm

Public Sub FillFileInfo()

SamplesText.Text = Signal.GetSamplesPerSecond

BitsText.Text = Signal.GetBitsPerSample

If (Signal.GetChannels = 1) Then

ChannelsText.Text = "Mono"

Else

ChannelsText.Text = "Stereo"

End If

LengthText.Text = Signal.GetLength

End Sub

Public Sub DrawWave()

Picture1.Cls

picWidth = CInt(ScaleX(Picture1.Width, vbHimetric, vbPixels)) * 1.75

picHeight = CInt(ScaleX(Picture1.Height, vbHimetric, vbPixels)) * 1.75

Step = Signal.GetSamplesNumber / picWidth

' Рисуем закрашенный красным цветом прямоугольник

Picture1.FillStyle = 0

Picture1.FillColor = &H80&

Picture1.Line (Signal.StartFragment / Step, 0)-(Signal.EndFragment / Step, picHeight), , B

Dim i As Long

Dim j As Long

For j = 1 To picWidth - 2

i = j * Step

Picture1.Line (j, Signal.GetSample(i) / ZoomFactor + 150)-(j + 1, Signal.GetSample(i + Step) / ZoomFactor + 150), vbYellow

Next j

End Sub

Public Sub DrawFragmentWave()

picWidth = CInt(ScaleX(Picture2.Width, vbHimetric, vbPixels)) * 1.75

Step = Fragment.GetSamplesNumber / picWidth

Dim i As Long

Dim j As Long

For j = 1 To picWidth - 5

i = j * Step

Picture2.Line (j, Fragment.GetSample(i) / 300 + 75)-(j + 1, Fragment.GetSample(i + Step) / 300 + 75), vbWhite

Next j

End Sub

Private Sub Picture1_Paint()

If Signal.GetSamplesPerSecond > 0 Then

DrawWave

End If

End Sub

Рисунок А.2, лист 2

Private Sub Picture2_Paint()

If Signal.GetSamplesPerSecond > 0 Then

DrawFragmentWave

End If

End Sub

Private Sub ProcessMenuItem_Click()

If CLng(StartPosText.Text) >= CLng(EndPosText.Text) Then

MsgBox "Incorrect Diapazone"

ElseIf Option1.Value = True Then

Signal.ProcessSignalWithSound CLng(StartPosText.Text), CLng(EndPosText.Text), Fragment

Else

Signal.ProcessSignalWithSilence CLng(StartPosText.Text), CLng(EndPosText.Text)

End If

DrawWave

End Sub

Private Sub SaveMenuItem_Click()

Set sfdg = New SaveFileDialog

sfdg.Show 1

Signal.SaveFile (sfdg.SaveFileName)

End Sub

Private Sub SoundsMenuItem_Click()

Set sform = New SoundsForm

sform.Show 1

Set Fragment = sform.FragmentFile

Picture2.Cls

DrawFragmentWave

End Sub

Private Sub ZoominMenuIem_Click()

ZoomFactor = ZoomFactor + 50

DrawWave

End Sub

Private Sub ZoomoutMenuItem_Click()

ZoomFactor = ZoomFactor - 50

DrawWave

End Sub

}

Рисунок А.2, лист 3

Public FileName As String

Public FragmentFile As AudioSignal

Private Sub Command1_Click()

Hide

End Sub

Рисунок А.3 - Фрагмент листинга формы SoundsForm

Private Sub Dir1_Change()

File1.Path = Dir1.Path

End Sub

Private Sub Drive1_Change()

Dir1.Path = Drive1.Drive

End Sub

Private Sub File1_Click()

FileName = File1.Path & "\" & File1.FileName

FragmentFile.ReadFile FileName

Picture1.Cls

DrawFragmentWave

End Sub

Public Sub DrawFragmentWave()

picWidth = CInt(ScaleX(Picture1.Width, vbHimetric, vbPixels)) * 1.75

Step = FragmentFile.GetSamplesNumber / picWidth

Dim i As Long

Dim j As Long

For j = 1 To picWidth - 5

i = j * Step

Picture1.Line (j, FragmentFile.GetSample(i) / 300 + 75)-(j + 1, FragmentFile.GetSample(i + Step) / 300 + 75), vbBlack

Next j

End Sub

Private Sub Form_Load()

Set FragmentFile = New AudioSignal

End Sub

Рисунок А.3, лист 2

Размещено на Allbest.ru


Подобные документы

  • Методика и основные этапы проектирования логической и физической модели базы данных. Реализация спроектированной модели в системе управления базами данных, принципы создания и апробация специального клиентского приложения для работы данной программы.

    курсовая работа [1,3 M], добавлен 27.06.2013

  • Проектирование логической модели системы: контекстная диаграмма и детализация процессов, реализация ссылочной целостности. Описание работоспособного программного обеспечения для проекта. SQL-определения запросов. Описание базы данных контрольного примера.

    курсовая работа [91,4 K], добавлен 01.09.2010

  • Анализ и оценка эффективности существующей системы обработки информации. Выбор технических и программных средств. Описание этапов проектирования базы данных "Аудиотека" и ее особенностей. Разработка инфологической модели и программного приложения.

    курсовая работа [877,9 K], добавлен 06.06.2013

  • Инфологическая и даталогическая модели данных. Описание пользовательской части и используемых sql-запросов. Физическая и логическая модель web-приложения. Описание используемых программных средств, языка программирования и информационных технологий.

    курсовая работа [1,3 M], добавлен 29.04.2015

  • Создание базы данных с помощью ACCESS для автоматизации работы базы отдыха. Оценка возможностей пользователей при работе с данной базой. Построение информационно-логической модели базы данных. Разработка запросов для корректировки и выборки данных.

    курсовая работа [1,1 M], добавлен 19.10.2010

  • Проектирование логической структуры базы данных методом нормальных форм, сущность связь. Сравнительный анализ спроектированной базы данных и базы данных существующих информационных систем. Выбор и обоснование состава технических и программных средств.

    курсовая работа [3,0 M], добавлен 22.12.2014

  • Логическая и физическая модели базы данных. Запрет на содержание неопределенных значений. Размещение базы данных на сервере. Реализация клиентского приложения управления базой данных. Модульная структура приложения. Основные экранные формы приложения.

    курсовая работа [1,4 M], добавлен 13.06.2012

  • Системный анализ и анализ требований к базе данных. Концептуальная и инфологическая модель предметной области. Типы атрибутов в логической модели базы. Физическая модель проектируемой базы данных в методологии IDEF1X. Требования к пользователям системы.

    курсовая работа [2,3 M], добавлен 21.11.2013

  • Особенности разработки инфологической модели и создание структуры реляционной базы данных. Основы проектирования базы данных. Разработка таблиц, форм, запросов для вывода информации о соответствующей модели. Работа с базами данных и их объектами.

    курсовая работа [981,4 K], добавлен 05.11.2011

  • Формулировка предметной задачи. Анализ требований к программе. Функциональная модель системы. Выбор языка и программных средств реализации. Описание логической модели базы данных. Концептуальная модель данных информационной системы Интернет-библиотеки.

    курсовая работа [4,4 M], добавлен 13.10.2017

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.