standalone midi piano synthesizer
standalone midi piano synthesizer
midipiano_chung is a standalone midi piano synthesizer which plays piano samples based sounds as midi data income in the selected midi input port (if any) of your computer. easily customizable by modifying the sound files in the ./sounds/ folder.The program is written in freebasic and uses fbsound with max 128 notes polyphony / 15 channels.
=> http://chungswebsite.blogspot.com/searc ... iano_chung
=> http://chungswebsite.blogspot.com/searc ... iano_chung
Last edited by chung on Oct 01, 2011 8:51, edited 1 time in total.
in fact,it doesnt crash, but there is a message "no response" in the title bar
while the music keeps playing, with an attempt to draw the screen one row larger than expected.
it may be because i did "locate 0:cls" just after opening the window
i have replaced it by "cls:locate 1" as locate is 1 based, works better ?
bug found : an array index out of bounds ....
while the music keeps playing, with an attempt to draw the screen one row larger than expected.
it may be because i did "locate 0:cls" just after opening the window
i have replaced it by "cls:locate 1" as locate is 1 based, works better ?
bug found : an array index out of bounds ....
-
- Posts: 8586
- Joined: May 28, 2005 3:28
- Contact:
Hello chung,
i won't teach you in audio DSP coding
but
you are using fbs_Sound_Speed() to play notes in different frequencies.
The most powerfull part of FBSound are the realtime pitchshifter
(you won't find it in any other free open source sound lib)
The result of changing only the playback speed
is more a kind of micky mouse voice.
You know what my bad english says ?
If you have 2 samples per octave and you are willing
to use the pitchshifter you can create perfect results
same as YAMAHA, KORG, ROLAND etc.
How ever i like your idea of an virtual piano.
Joshy
edit:
The math behind the pitchshifter needs some CPU power
for example if you will play 24 or more voices together on a slower/older PC and runs in to trouble
you have the choice to use the pitchshifter only once while you are load a new bank of samples.
one more hint
If you will play other sounds with your virtual sound generator
e.g. strings, flutes, organs, guitars ...
you should thing about a system of loop points and of course ADSR
http://en.wikipedia.org/wiki/ADSR_envel ... R_envelope
i won't teach you in audio DSP coding
but
you are using fbs_Sound_Speed() to play notes in different frequencies.
The most powerfull part of FBSound are the realtime pitchshifter
(you won't find it in any other free open source sound lib)
The result of changing only the playback speed
is more a kind of micky mouse voice.
You know what my bad english says ?
If you have 2 samples per octave and you are willing
to use the pitchshifter you can create perfect results
same as YAMAHA, KORG, ROLAND etc.
How ever i like your idea of an virtual piano.
Joshy
edit:
The math behind the pitchshifter needs some CPU power
for example if you will play 24 or more voices together on a slower/older PC and runs in to trouble
you have the choice to use the pitchshifter only once while you are load a new bank of samples.
one more hint
If you will play other sounds with your virtual sound generator
e.g. strings, flutes, organs, guitars ...
you should thing about a system of loop points and of course ADSR
http://en.wikipedia.org/wiki/ADSR_envel ... R_envelope
hi !
pitch shifter is not documented in the doc folder.
speed +-30% is fast and dont modify the original sound.
i am interested in piano sounds only because its the only sound i use with my midi player (midi_chung).All i wanted is to enhance the default midi GS Wavetable grand piano sound of the computer, and add sounds i can modify or record with a sound editor like Audacity (1 per octave).
i have tested several free piano VSTi instruments with Cantabile_lite or VSThost ,but i think mine is better.
you can even record your own acoustic piano and add it to the piano8..piano12 free banks (see readme.txt file).
if you are interested, i can post a version with enveloppe editor (you can draw a gain curve with the mouse) but it doesnt sounds as well as the natural sounds.
pitch shifter is not documented in the doc folder.
speed +-30% is fast and dont modify the original sound.
i am interested in piano sounds only because its the only sound i use with my midi player (midi_chung).All i wanted is to enhance the default midi GS Wavetable grand piano sound of the computer, and add sounds i can modify or record with a sound editor like Audacity (1 per octave).
i have tested several free piano VSTi instruments with Cantabile_lite or VSThost ,but i think mine is better.
you can even record your own acoustic piano and add it to the piano8..piano12 free banks (see readme.txt file).
if you are interested, i can post a version with enveloppe editor (you can draw a gain curve with the mouse) but it doesnt sounds as well as the natural sounds.
your work looks impressive... well done...
but...
I wonder if you forgot to include a module or something (compiled FBSound lib perhaps? - I thought FBSound would be linked statically by default - but I am probably mistaken)
But I get "No free playback driver" - it seems, it does not find my admittedly non-standard but otherwise functional sound card drivers in WinXP. I *have* ran FBSound demos before successfully, btw - so I have had FBsound work with my sound card drivers. edit: it may have been testing his ASIO .... ??) /edit
No big deal, it was more a curiosity on my part...so no need for jumping through hoops or anything :)
Cheers.
but...
I wonder if you forgot to include a module or something (compiled FBSound lib perhaps? - I thought FBSound would be linked statically by default - but I am probably mistaken)
But I get "No free playback driver" - it seems, it does not find my admittedly non-standard but otherwise functional sound card drivers in WinXP. I *have* ran FBSound demos before successfully, btw - so I have had FBsound work with my sound card drivers. edit: it may have been testing his ASIO .... ??) /edit
No big deal, it was more a curiosity on my part...so no need for jumping through hoops or anything :)
Cheers.