Jump to content
IGNORED

Need help with my music player code


Recommended Posts

10 hours ago, Synthpopalooza said:

I also tried this:

 

aubiopitch -i sweep-8x-179-poly9-mod7.wav -B 48510 -H 48510 -u hertz -v -s -90 -p yinfast

 

And it screamed at me over 48510 not being a power of 2.  ?

 


pitch method: default, pitch unit: hertz, buffer_size: 48510, hop_size: 48510, tolerance: 0.000000
AUBIO ERROR: fft: can only create with sizes power of two, requested 48510, try recompiling aubio with --enable-fftw3

 

How did you acquire the aubiopitch binary? I assumed the binary packages would contain full blown binaries with all options enabled.

 

I compiled from source and configured with --enable--fftw3.

 

Link to comment
Share on other sites

Finally, v1.0rc1 (release candidate 1)

 

Here's channel 1, 8-bit $Ax, tuned to A-4, that is playing in 16-bit resolution on the second Pokey.

Running on a 600XL with BASIC enabled ;)

 

altirra-screenshot.thumb.png.6207fddc82301414b5fa444663e052d2.png

 

CTRL-T turns tuning note on/off

CTRL-V and CTRL-B increase or decrease the volume

, and . round-robin through 12 notes and 10 octaves respectively

 

Edit: tuning is disabled when there's no second pokey detected.

Edit: tuning ranges from C0-B9

 

pokeyexp-v1.0rc1-ntsc.xex pokeyexp-v1.0rc1-pal.xex

Edited by ivop
  • Like 1
  • Thanks 1
Link to comment
Share on other sites

On 9/25/2020 at 4:45 PM, ivop said:

The table on page 15 [of pavros' paper] is something I didn't know. I thought all channels sampled the poly stream at the same time, but they do not. Fascinating ;)

While preparing for a possibly new implementation of the audio portion of Pokey in C99, I am reading a lot of documentation, and I noticed the same being described in phaeron's Altirra Hardware Manual at page 98. Just two sentences, but very important. I think these are the only two documents where this is described.

 

"The outputs of the noise generators are delayed to each audio channel by one clock apart to prevent the channels from receiving the exact same noise. A given pattern bit arrives at channeles 1, 2, 3, and then 4, in that order."

 

  • Like 2
Link to comment
Share on other sites

Thanks! :)  I'm currently investigating the easiest way to batch process automated sweeps. Current options I'm considering:

 

1. Reimplement C99 Pokey according to Altirra specs and reimplement Pokey Explorer as a native command line utility. Batch process with a shell script and aubiopitch.

 

2. Patch atari800 to make it possible to programatically end the emulator from within the emulated machine. Prepare a whole bunch of different .xex files with different sweep settings with a patched Pokey Explorer that does no keypresses, but sweeps immediately and exits after that. Run them all sequentially and use -pokeyrec. Pray that the sub-par emulation does not interfer too much with aubiopitch frequency detection.

 

3. Fix atari800's Pokey emulation and continue with step 2.

 

4. The same as step 2, but with (wine) Altirra. Not sure if Altirra supports a command line option to enable audio recording. Would need help from Phaeron anyway, because I don't have Windows and Visual Studio.

 

5. Run all the patched Pokey Explorer binaries sequentially on real hardware and record the audio ouput.

 

Any other ideas?

 

The easiest is #5 or #2. The most useful is #1, also for somebody who might want to write a new tracker. Another thing I have thought about was implementing a way to control atari800 through a socket connection. You run it once, but you can reset the machine, load binaries, read/write memory, et cetera. And then hope that phaeron implements the Altirra side ;)  This could be option 6. The important benefit of having a native tracker running its player code on a full blown emulator back-end, is that when the emulator improves, your sound replay improves, too.

 

Edited by ivop
Link to comment
Share on other sites

Just occurs to me that the batch processing could also be done on the Atari side. Create an alternate Pokey Explorer that does not react to keypresses, but just does a bunch a predefined (at compile time) sweeps and then stops. That could be run in the background with audio muted (hopefully) and would result in a huge audio file, but that's easily cut up in pieces according to the buzzing count down before and after each sweep. So,

 

6. Emulator socket thing I described above.

 

7. Do batch processing on the Atari itself (either emulation or real hardware).

 

Link to comment
Share on other sites

4 hours ago, ivop said:

4. The same as step 2, but with (wine) Altirra. Not sure if Altirra supports a command line option to enable audio recording. Would need help from Phaeron anyway, because I don't have Windows and Visual Studio.

You could download Win10, install it in virtualbox, download VS and rebuild altirra yourself. Win10 is free, you just need to jump through a few hoops to register it (no need for any kind of hack though)... VS community is free too.

 

Worked for me.

 

  • Thanks 1
Link to comment
Share on other sites

11 hours ago, ivop said:

Just occurs to me that the batch processing could also be done on the Atari side. Create an alternate Pokey Explorer that does not react to keypresses, but just does a bunch a predefined (at compile time) sweeps and then stops. That could be run in the background with audio muted (hopefully) and would result in a huge audio file, but that's easily cut up in pieces according to the buzzing count down before and after each sweep.

 

 

 

This would be ideal for the mode I am trying to do now:  AUDCTL=$64 AUDC1=$2x AUDC3=$00 ... I figured out that using values from my 8-bit $2x @1.79 mhz table in channel 1 makes tones that will be in tune ... so you'd just need a series of 256 note sweeps for every note in that table. 

Link to comment
Share on other sites

It would also be ideal for me, as this is the least work :)  Funny how things work. You write down all your known options, and by writing it down, you get a new idea that's better than all the previous ones. Bonus is that it can also be run on real hardware.

 

Next few day's I'll be working on a compile time option to automatically do a series of sweeps without any user intervention. So you can feed it a table with initial pokey settings and sweep settings for each sweep you want to do.

 

Link to comment
Share on other sites

On 10/8/2020 at 9:01 AM, ivop said:

How did you acquire the aubiopitch binary? I assumed the binary packages would contain full blown binaries with all options enabled.

 

I compiled from source and configured with --enable--fftw3.

 

I downloaded the windows binaries from the zip file here:

 

https://aubio.org/download

 

Maybe you can send me the binary you made ... it might work better for me.   Just attach it in this thread ... still having troubles

 

Link to comment
Share on other sites

14 hours ago, Synthpopalooza said:

I downloaded the windows binaries from the zip file here:

 

https://aubio.org/download

 

Hmm, I would have expected full blown binaries with all options enabled. Seems that's not the case then.

 

Quote

Maybe you can send me the binary you made ... it might work better for me.   Just attach it in this thread ... still having troubles

I'm on Linux, so my binary won't be of any use. I used to have a win64 cross compile toolchain active, but I haven't upudated that in years. Would need to (re)compile a whole lot of libraries before I can even start crosscompiling aubiopitch :(

 

Edit: I have contacted the authors through their webform on aubio.org. Hoping for a swift reply!

Edited by ivop
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...