English Amiga Board

English Amiga Board (http://eab.abime.net/index.php)
-   Amiga scene (http://eab.abime.net/forumdisplay.php?f=2)
-   -   AmigaKlang is out (http://eab.abime.net/showthread.php?t=102203)

virgill 13 May 2020 20:37

AmigaKlang is out
 
A modular crossdev softsynth..

https://www.pouet.net/prod.php?which=85351

https://i.imgur.com/PL3Axpt.png

grond 13 May 2020 21:45

Wow, that looks pretty cool!

Crown 14 May 2020 06:52

OMG, this is fab. Thanks a lot Virgill. :)

Btw, it says v1.0 in the CLI and v0.95 in the GUI

britelite 14 May 2020 07:34

Quote:

Originally Posted by Crown (Post 1399646)
Btw, it says v1.0 in the CLI and v0.95 in the GUI

Probably because AmigaKlang is at version 1.0 and AmigaKlangGUI is at 0.95 ;)

Antiriad_UK 14 May 2020 09:19

Virgil, what is the replayer like performance wise? I’ll add it to my intro framework when I get mo but just interested compared to p61 and pretracker

virgill 14 May 2020 10:33

Antiriad: you can use whatever mod player you want. The exported .bin just renders the synthesized samples to a given memory location. For the "export executable“ function, I've used the Protracker v2. 1a player by Peter Crayon Hanning.

Steril707 14 May 2020 11:13

Sorry for the stupid question/statement, but am I right in thinking that this is "just" an Amiga based softsynth?
I mean, there was a lot of hype around this around Revision, and I don't get quite get it having seen your video about it.
Does this produce smaller mods or what am I missing here?

grond 14 May 2020 11:16

@Steril707: the way I understand it, it produces code that then can be run from your own program and will generate all the samples so that you can use them in your program.

Antiriad_UK 14 May 2020 12:17

Had a look at the readme and it makes a bit more sense.

Code:

Export samples to mod file
--------------------------
Use Save -> Export Samples to mod
Select a mod file in the file dialog.
ATTENTION: All sample data will be overwritten !!



Export to Amiga executable
--------------------------
Use Save -> Export executable
Select a mod file in the file dialog.
Now the "exemusic.exe" can be found in the sub-folder "exe_creator"



Export to Amiga binary
----------------------
Use Save -> Export binary
Now the "a.mingw.bin" can be found in the sub.folder "exe_creator"

Demo coders can use this binary as described here:
The binary contains relocatable code. Put it in memory where you want.
You need an own player and the mod song data, since the binary just contains the sample render code.
It needs following adresses in registers:
a0: startaddress where to render the samples to chipmem .
a1: startaddress of a temporary render buffer (32768 byte)
a2: startaddress of external samples (if used. Include Ismp.raw)
a4: address where the synth puts the rendering progress (e.g. for a progressbar)

The first two make sense. Looks like it exports the samples as full wave forms (taking up mod space) into a standard mod. Then you could I guess play that back with anything you like.

Second is a standalone amiga binary. Makes sense.

The third looks like instead of saving the samples, it creates a piece of code you can run from within your demo to generate the samples on the fly. That would make it good for small 64k like productions as I'm assuming that the precalc code is a lot smaller than saving the final waveforms in your prod.

I'm just a bit confused what you do with the samples once you've precalced them. How do you convert say the p61a replayer to use those samples?

Steril707 14 May 2020 12:21

Quote:

Originally Posted by Antiriad_UK (Post 1399697)
The third looks like instead of saving the samples, it creates a piece of code you can run from within your demo to generate the samples on the fly. That would make it good for small 64k like productions as I'm assuming that the precalc code is a lot smaller than saving the final waveforms in your prod.

That sounds indeed interesting... :)

no9 14 May 2020 13:02

@virgill :bowdown

virgill 14 May 2020 13:40

You've guessed right. It's designed to have low memory footprint for executable music compos or 64k Intros.
Antiriad: can't tell how it behaves with the P61 player since I don't have experience with that one.

virgill 14 May 2020 13:43

Btw, this is what it sounds like: (exe size 27kb)
https://soundcloud.com/virgill/redrum-redrum

Antiriad_UK 14 May 2020 16:50

They sound great, Virgill :great

Quote:

Originally Posted by virgill (Post 1399715)
Antiriad: can't tell how it behaves with the P61 player since I don't have experience with that one.

Ok, no problem. How about how it works with the replayer you are familiar with because I'm missing something here :)

Is this the workflow?

1. In amigaklanggui create instruments.
2. Export those instruments to a mod file
3. Write your mod using those instruments
4. Save mod without samples
5. In amigaklanggui export instruments to binary
6. In own intro, include the PT 2.1a replayer.
7. At the mt_data: label in the replayer include your sample-less module
8. Include the amigaklang binary file
9. Fill in the a0-a4 registers and jsr to to the amigaklang binary file to render samples. (how do you know how big the chipmem buffer needs to be for a0?)


I still don't see how the replayer and the samples link up. I think the sample data in a normal mod file is stored right at the end from what I read on wikipedia. Maybe it's as simple as just placing the target for the rendered samples directly following the mod?:
Code:

mt_data: incbin "mymodule.mod"
klangsamples: dcb.b <however long the samples need to be>

Edit: I know phx has written a standard replayer that allows you to specify the location of samples. I'll give that a go.

Steril707 14 May 2020 18:49

This will come in handy for my 64k intro for next years revision... ;)

DanScott 14 May 2020 19:13

We had issues with P61 player, as the converter also seems to do some stuff to the samples... meaning that the resulting module sample offsets were not correct for the aklang sample renderer.

We switched to use phx's ptplayer (which I then stripped down to remove all the stuff not required for a demo.. sfx playing and master volume etc.), and had no problems with that.

You'll need a tool that splits a module into pattern data and separate sample data.. the advantage is that the pattern data doesn't need to go into chip ram :)


We also have a little cmd line tool in the build process that read the size of the sample file for the module and created an EQU, so if the module changed, we wouldn't have to manually update the dc.b value for the samples

virgill 14 May 2020 19:19

Antiriad: You´re described the workflow absolutely right.
Most replayers expect the sample data directly behind the pattern data.
With others you can have them separated.

The needed size of the sample buffer is shown in the GUI. :)

virgill 14 May 2020 19:23

Oh, and here´s a little overview i did a while ago. Sorry for the bad voice recording :P

https://www.youtube.com/watch?v=1nEcbAgRPtc

DanScott 14 May 2020 19:33

Code:


                                section modpatterns,data
ModuleTrk:                        incbin        "dh0/assets/2020vision/modules/lemonfuturefunk.mod.trk"

                                ifeq        GENERATE_SAMPLES
                                section modulesamples,data_c
ModuleSmp:                        incbin        "dh0/assets/2020vision/modules/lemonfuturefunk.mod.smp"
                                else
                                section modulesamples,bss_c
ModuleSmp:                        ds.b        MOD_SAMPLE_SIZE
                                endif

We did something like this, so we had a define to either include the samples or to generate them... because waiting 30 seconds for the precalc each time was too much when coding the intro

Galahad/FLT 14 May 2020 21:20

Sounds excellent, really clear sounds.


All times are GMT +2. The time now is 20:33.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.

Page generated in 0.05011 seconds with 11 queries