Audio frequency generator: Difference between revisions
Content added Content deleted
No edit summary |
|||
Line 244: | Line 244: | ||
* Volume level and wave shape are graphically displayed. |
* Volume level and wave shape are graphically displayed. |
||
* More shapes, even free wave shape modelling could easily be added. |
* More shapes, even free wave shape modelling could easily be added. |
||
=={{header|Ring}}== |
|||
<lang ring> |
|||
# Project : Audio frequency generator |
|||
# Date : 2018/06/26 |
|||
# Author : Gal Zsolt (~ CalmoSoft ~), Bert Mariani |
|||
# Email : <calmosoft@gmail.com> |
|||
Load "guilib.ring" |
|||
loadlib("C:\Ring\extensions\ringbeep\ringbeep.dll") |
|||
freq = 1000 |
|||
ImageFile = "stock.jpg" |
|||
nbrOfItems = 1 |
|||
curItemNbr = 1 |
|||
curValue = "abcdefgh" |
|||
SelectedValue = "mnopqrst" |
|||
SelectedRow = 1 |
|||
UserIcons = CurrentDir() +"\" |
|||
WinLeft = 80 |
|||
WinTop = 80 |
|||
WinWidth = 1200 |
|||
WinHeight = 750 |
|||
WinRight = WinLeft + WinWidth |
|||
WinBottom = WinTop + WinHeight |
|||
BoxLeft = 80 |
|||
BoxTop = 40 |
|||
BoxWidth = WinWidth -160 |
|||
BoxHeight = WinHeight -100 |
|||
imageW = 400 ; imageH = 400 ; GrowBy = 8 |
|||
volume = 100 |
|||
MyApp = New qapp |
|||
{ |
|||
win1 = new qMainWindow() |
|||
{ |
|||
setwindowtitle("Video and Music Player") |
|||
setgeometry( WinLeft, WinTop, WinWidth, WinHeight) |
|||
if Fexists(ImageFile) |
|||
imageStock = new qlabel(win1) |
|||
{ |
|||
image = new qpixmap(ImageFile) |
|||
AspectRatio = image.width() / image.height() |
|||
imageW = 1000 |
|||
imageH = 600 |
|||
setpixmap(image.scaled(imageW , imageH ,0,0)) |
|||
PosLeft = (BoxWidth - imageW ) / 2 + 80 |
|||
PosTop = (BoxHeight - imageH ) / 2 +40 |
|||
setGeometry(PosLeft,PosTop,imageW,imageH) |
|||
} |
|||
else |
|||
msg = "ImageFile: -- "+ ImageFile +" -- required. Use an Image JPG of your choice" |
|||
SendMsg(msg) |
|||
ok |
|||
videowidget = new qVideoWidget(win1) |
|||
{ |
|||
setgeometry(BoxLeft, BoxTop, BoxWidth, BoxHeight) |
|||
setstylesheet("background-color: green") |
|||
} |
|||
player = new qMediaPlayer() |
|||
{ |
|||
setVideoOutput(videowidget) |
|||
} |
|||
TimerDuration = new qTimer(win1) |
|||
{ |
|||
setinterval(1000) |
|||
settimeoutevent("pTimeDuration()") ### ==>> func |
|||
start() |
|||
} |
|||
oFont = new qFont("",10,0,0) |
|||
setFont( oFont) |
|||
btnBack = new qpushbutton(win1) { |
|||
setGeometry(280,20,80,20) |
|||
settext("Low") |
|||
seticon(new qicon(new qpixmap(UserIcons +"Backward.png"))) |
|||
setclickevent( "pBackward()") |
|||
} |
|||
btnDur = new qpushbutton(win1) { |
|||
setGeometry(360,20,140,20) |
|||
} |
|||
btnFwd = new qpushbutton(win1) { |
|||
setGeometry(500,20,80,20) |
|||
settext("High") |
|||
seticon(new qicon(new qpixmap(UserIcons +"Forward.png"))) |
|||
setclickevent( "pForward()") |
|||
} |
|||
btnVolume = new qpushbutton(win1) { |
|||
setGeometry(760,20,100,20) |
|||
settext("Volume: 100") |
|||
seticon(new qicon(new qpixmap(UserIcons +"Volume.png"))) |
|||
} |
|||
VolumeDec = new qpushbutton(win1) |
|||
{ |
|||
setgeometry(700,20,60,20) |
|||
settext("Low") |
|||
seticon(new qicon(new qpixmap(UserIcons +"VolumeLow.png"))) |
|||
setclickevent( "PVolumeDec()") |
|||
} |
|||
VolumeInc = new qpushbutton(win1) |
|||
{ |
|||
setgeometry(860,20,60,20) |
|||
settext("High") |
|||
seticon(new qicon(new qpixmap(UserIcons +"VolumeHigh.png"))) |
|||
setclickevent( "pVolumeInc()") |
|||
} |
|||
show() |
|||
} |
|||
exec() |
|||
} |
|||
Func pTimeDuration() |
|||
Duration() |
|||
return |
|||
Func Duration() |
|||
DurPos = "Frequency: " + string(freq) + " Hz" |
|||
btnDur.setText(DurPos) |
|||
return |
|||
Func pForward |
|||
freq = freq + 100 |
|||
for n = 1 to 3 |
|||
beep(freq,300) |
|||
next |
|||
return |
|||
Func pBackward |
|||
freq = freq - 100 |
|||
for n = 1 to 3 |
|||
beep(freq,300) |
|||
next |
|||
return |
|||
Func pVolumeDec() |
|||
if volume > 0 |
|||
volume = volume - 10 |
|||
btnVolume.settext("Volume: " + volume) |
|||
player.setVolume(volume) |
|||
ok |
|||
return |
|||
Func pVolumeInc() |
|||
if volume < 100 |
|||
volume = volume + 10 |
|||
btnVolume.settext("Volume: " + volume) |
|||
player.setVolume(volume) |
|||
ok |
|||
return |
|||
</lang> |
|||
Output: |
|||
[https://www.dropbox.com/s/jf5uq0bbts40wto/CalmoSoftFrequency.avi?dl=0 Audio frequency generator] |
|||
=={{header|SuperCollider}}== |
=={{header|SuperCollider}}== |