Recent Posts

Pages: 1 ... 8 9 [10]
91
Development Corner / Re: How does OpenMPT's audio pipeline work?
« Last post by Saga Musix on October 12, 2019, 13:07:01 »
Forgot to mention, portaudiocpp takes portaudio return codes and converts them into C++ exceptions. If I don't religiously add catch-all clauses, can this cause audio errors (like unplugging an audio output) to bring down my entire audio thread or program? (Apparently std::terminate() kills the thread, not process.) Is this a reason to avoid portaudiocpp?
Generally if a function is documented to throw something you should of course expect to catch it. I don't know if this was a reason for choosing the PortAudio C API in OpenMPT, but in general it should be said that exception handling in C++ is much more efficient in modern compilers than it used to be.

I said vblank, but I meant tracker ticks.
I tried reading your post again with that perspective in mind but I'm still not quite sure how it would help you or simplify anything. As mentioned before, OpenMPT doesn't attempt to align tracker ticks with anything else in the audio pipeline, in particular since their duration can vary.
92
Previous title:
"How does OpenMPT's "Approximate Real BPM" feature works?"

Previous content:
Is there some kind of mathematical equation to get the musical BPM of a module? I'm using it as a tutorial to trackers in the future. EDIT: I just saw https://forum.openmpt.org/index.php?topic=6231.0 and https://wiki.openmpt.org/Manual:_Song_Properties#Tempo_Mode. But I'm still struggling to understand the manual. :D

New question: How do you find the actual BPM of a module when the speed/tempo periodically changes? The "Approximate Real BPM" feature comes in handy if the module's speed/tempo is the same from start to end. Is there any way to do that or it's currently being worked on yet?

Here are some examples of modules that has periodically-changing speeds:
- "Flowerguy's Pool Party" by Virt (Download: ftp.modland.com/pub/modules/Impulsetracker/Virt/flowerguy's%20pool%20party.it)
- "Weather Girl" by Radix (Download: https://api.modarchive.org/downloads.php?moduleid=68787#weather_girl.xm)
93
Free Music Downloads / [Rock] Free Speech Fight (download OGG)
« Last post by Exhale on October 11, 2019, 21:52:07 »
This time the tune is an OGG download, I am sure you can understand why. Rock done entirely in OpenMPT, time for some headbanging modplugers.

https://drive.google.com/open?id=18Va4ONiwM2qflmeJjie7mUlkOs-JhvyY
94
Help and Questions / Re: Time stretch out the notes to a new tempo?
« Last post by Domarius on October 10, 2019, 04:10:46 »
Ah yes, thank you :)  Yes I had a strong feeling a solution for my situation already existed, I just didn't know what to look for.  You're right about the low resolution, and those buttons are exactly what I needed.  And the Grow and Shrink selection will be very useful too.
95
Development Corner / Re: How does OpenMPT's audio pipeline work?
« Last post by nyanpasu64 on October 10, 2019, 01:41:37 »
Thanks for the help.

A general answer: Even if not perfect, I'd usually prefer a C++ API over a C API when writing C++, unless there are very good reasons not to use it. Even if it does not support RAII by itself, you can still build your own RAII patterns on top, which is what OpenMPT does for various C libraries that it uses.
Forgot to mention, portaudiocpp takes portaudio return codes and converts them into C++ exceptions. If I don't religiously add catch-all clauses, can this cause audio errors (like unplugging an audio output) to bring down my entire audio thread or program? (Apparently std::terminate() kills the thread, not process.) Is this a reason to avoid portaudiocpp?

Quote
Obviously this won't work outside of the console or emulated environment. Apart from the fact that there is typically no easy way of accessing this information on modern platforms, the user can set the refresh rate to anything they want (or their device supports), and then of course there is stuff like FreeSync these days which abandonds the concept of a constant refresh rate. On an oldskool console like NES it makes a lot more sense of course.

I said vblank, but I meant tracker ticks. FamiTracker (and my new tracker) are designed to function similarly in the C++ emulation, and the 6502 asm driver (for NSF file export). As a result, tracker ticks are usually aligned with vblanks (NTSC/PAL), which the C++ code emulates based on "how many cycles were run by the audio thread". But FamiTracker and NSF files have an option to customize the tick rate. (Fun fact, one particular C++ synthesizer had a bug which caused vblank to be delayed every time you switched instruments.)
96
Free Music Downloads / Re: [house] Green Flag (download mptm)
« Last post by Exhale on October 09, 2019, 14:24:09 »
Cheers!
Moar alcohol for this man!
97
Help and Questions / Re: How do Ticks per row translate into normal bpm?
« Last post by Louigi Verona on October 09, 2019, 09:13:59 »
Thank you for all the responses, folks. dem1, huge thanks for the example, I downloaded it and will study it.
98
Help and Questions / Re: Time stretch out the notes to a new tempo?
« Last post by Saga Musix on October 09, 2019, 06:54:38 »
Given the low resolution of patterns I have my doubts that such a feature would be very practicable for any actions other than doubling or halving the pattern / selection length.  But since you explicitely asked for doubling the tempo - are you aware that those two features already exist? There are two buttons for doubling / halving entire patterns above the pattern editor, and the same is available for selections - check out the context menu after making a selection.
99
Help and Questions / Time stretch out the notes to a new tempo?
« Last post by Domarius on October 09, 2019, 02:32:00 »
Many times I find myself in this situation - I pick a tempo lay down a melody, everything seems right, and then (still only one pattern in, mind you), maybe when adding the harmony part, I realise I need more note precision than I have. I need to double the tempo, and space the notes twice as far apart to get that accuracy.

I wished there was a "time stretch" feature where you could select a range of notes, and then "stretch" the selection out to a new length, and all the notes in the selection would automatically be spaced apart to maintain their relative distance to fill in the new length of time.

I've usd this feature in different programs, eg. 3D Studio has this exact same feature for its key frames.  I just figured this might be a common problem for trackers and thought there might be some feature that helps me convert to a new tempo while maintaining the same song speed?
100
Free Music Downloads / [minimal house] Tofu (it)
« Last post by Louigi Verona on October 08, 2019, 20:13:38 »
Hey peeps!

I decided to get back to tracking a little bit. While I have a more melodic tune in the works, I quickly made this minimal house tune.

https://modarchive.org/index.php?request=view_by_moduleid&query=186764
Pages: 1 ... 8 9 [10]