Приложение для маскировки нежелательных звуковых эффектов
Выбор и реализация модели базы данных. Концептуальная модель базы данных. Описание логической модели базы данных, 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