World: r3wp
[Sound] discussion about sound and audio implementation in REBOL
older newer | first last |
Rebolek 2-Feb-2006 [141x7] | I said I'll release Sintezar after Competition. Compo is over, so, I'm releasing it :) Download it from http://krutek.info/rebol/SintezarPM101.ZIP . Unpack it somewhere and run %sintezar_pm-101.r I hope it should work. |
It's pretty sub-alpha version. Some buttons do not work, some buttons crash the application. I know that so you do not have to report bugs, it's full of them. | |
Anyway, it works. In the bottom row, there are six buttons. Press second button (load sound) and go to %sounds/ directory. Select a sound and open it. | |
Then press fifth button (compute sound) and wait. Press last button (play sound, looks like triangle) and it should play a sound. | |
You can change waves, adjust modulation, filter, envelopes, wave shaper, bit crusher and so on... | |
There's also some unfinished documentation included. Things that does not work: init sound (first button), LFO (black square button right to envelope button) and playing empty sound. That's what I remember for sure. But editing sound, creating, saving to own format and exporting to WAV works. Have fun. | |
Oh, and the Melody button does not work too. | |
Thør 4-Apr-2006 [148] | . |
Josh 23-Jun-2006 [149] | There isn't a way to do sound input directly from rebol is there? |
james_nak 23-Jun-2006 [150] | Nice Rebolek! |
Anton 24-Jun-2006 [151] | Josh, recording ? There are only OS specific ways so far. |
Sunanda 17-Jun-2008 [152] | Can any one help me reply to this question (received via REBOL.org's feedback form)? Thanks! << Where can I find more Hex Code like in psg-ay-3-8910-study.r Please point me to a tool that I can use for development of Sound Code for the AY-3-8910 where I end up with Hex Code that I can then load into EPROMs which would drive the AY-3-8910. Thanks for any help. http://www.rebol.org/cgi-bin/cgiwrap/rebol/view-script.r?script=psg-ay-3-8910-study.r >> |
Steeve 17-Jun-2008 [153] | I got the data using a free MSX emulator (openMSX). The music come from the game "Auf wiedersehen Monty". You can use a "dump PSG" functionality in openMSX to get the raw data (values of the registers of the PSG). You can find lot of roms (games) for the msx wich contain cool musics and effects for the AY PSG on www.planetemu.net Beware, these roms are not freeware even if you can download them freely. Another way (i have not tried), is to use VortexTracker at http://bulba.at.kz/ (see http://www.youtube.com/watch?v=lYdIqcqgkPMfor a demo) wich is well designed to compose an manipulate raw data for the AY-* PSG. I think many samples are given too. |
amacleod 15-Mar-2009 [154x3] | Any reason I can play pre-recorded .wav files but if try to make my own they do not work: ** Access Error: Bad image data ** Where: narrate ** Near: insert sound-port load talk |
i've tried several .wav recording/converting software...no change. | |
Tried changing the sample rates, channels etc...no difference. I know you should not use compression but I'm pretty sure I'm not. | |
Gregg 16-Mar-2009 [157] | How are you creating them Alan, and what specs? Try generic 44.1Khz stereo. |
amacleod 16-Mar-2009 [158] | I'm using windows sound recorder on XP (Ofcourse, they removed .wav format in VIsta) I just used "cd" quaity which is 44.1khz stereo Converted to 8bit also.... same problem. |
Maxim 16-Mar-2009 [159] | what do you mean they removed .wav format? |
amacleod 16-Mar-2009 [160x2] | You can no longer save in .wav |
wma only | |
Maxim 16-Mar-2009 [162] | oh, for the little mic recorder? |
amacleod 16-Mar-2009 [163] | yes |
Maxim 16-Mar-2009 [164x2] | such a bunch of idiots. I removed Vista... after it corrupted itself on bootup. |
last month... after more than a year of using it. | |
amacleod 16-Mar-2009 [166] | I read that you could start it from teh command line and get it save in .wav but I could not get it to work.. THere are a lot of annyoing things about vista...but I have it on my wife's laptop and I'm forced to use it now and again.. |
Maxim 16-Mar-2009 [167] | did you try using audigy? |
amacleod 16-Mar-2009 [168] | no I'll have a look.. |
Maxim 16-Mar-2009 [169x2] | its the best freeware multi platform recording/editing software |
doesn't even need an install :-) and it works the same on mac and linux. | |
amacleod 16-Mar-2009 [171x3] | thanks |
I do not see it..keep getting references to a sound blaster card.. | |
Is there a web site? or an other name? | |
Maxim 16-Mar-2009 [174] | doh... its audacity... stupid me. |
amacleod 16-Mar-2009 [175x4] | got it thanks |
Maxim, It works...Thank you very much! | |
How can you test if the sound port is already open? | |
Never mind just used an "if error? try [" statement.. | |
Anton 19-Apr-2009 [179] | ICarii, I just quickly tried your synth2.r. It plays the song here on Linux, and matches the score. I wonder, though, how you are going to scale the program. Rebol's sound port is currently underpowered, and Rebol isn't fast at number crunching which is necessary for audio work. I don't like the idea of waiting for hours for a full song to render.. I would be looking for an audio processing system to hook into rebol. |
ICarii 19-Apr-2009 [180x2] | im going to port it to R3 tomorrow and rely on Call to play sounds |
but yes it is horribly slow. | |
Anton 19-Apr-2009 [182] | Well, I've been fiddling with Tiny C Compiler - maybe it can eventually be used for fast crunching. |
ICarii 19-Apr-2009 [183x5] | R3 build-song speed (without optimization) plus write to disk is 1810ms vs R2 of 2862ms. So even without optimizing in R3 there is a large difference in performance. |
added an interpolate function for dual channel sound and works fine :) still slow on initial build though :( interpolate: func [series1 series2 chunksize /local ts1 ts2 c][ ts1: copy series1 ts2: copy series2 c: copy #{} forall ts1 [ insert tail c copy/part ts1 chunksize insert tail c copy/part at ts2 index? ts1 chunksize take/part ts1 chunksize - 1 ] c ] | |
hmm that works with the take/part in the forall but: loop chunksize - 1 [next ts1] may be safer? | |
ahh.. i should have used forskip .. never used that before | |
interpolate: func [series1 series2 chunksize /local ts1 ts2 c][ ts1: copy series1 ts2: copy series2 c: copy #{} forskip ts1 chunksize [ insert tail c copy/part ts1 chunksize insert tail c copy/part at ts2 index? ts1 chunksize ] ] | |
Dockimbel 19-Apr-2009 [188] | Try with : interpolate: func [series1 series2 chunksize /local ts1 ts2 c][ ts1: copy series1 ts2: copy series2 c: copy #{} forskip ts1 chunksize [ insert/part tail c ts1 chunksize insert/part tail c at ts2 index? ts1 chunksize ] ] Why do you copy the 2 series? It's not required here, you're not modifying them. You should also pre-allocate the 'c buffer : c: make binary! <max-size>. |
ICarii 19-Apr-2009 [189x2] | ahh thx - re copy - that was an artifact from the first iteration of the function where i was using take in a loop. |
next on the list of todo's is to separate top and bottom notes and timings and add in rests. | |
older newer | first last |