Human Development in Africa is essential as development is about people. To be effective, development strategies must be people-oriented and development aid must empower people. The European Union leads the way in development cooperation partners in Africa. In October 2005, the European Commission approved a new "Strategy for Africa", with a firm commitment to do "more, better and faster".
The aim of this pedagogical kit is to help you and your pupils to go a step deeper and get a better understanding of development cooperation by working on a case study based on real facts.
In a summarized version you find relevant information about the specific development issues of a central African country. A problem solving methodology helps you to work on this real case and come to reasonable solutions. Additional country information helps you to embed the case study into the country's context.
The case study and the methodology are provided by EuropeAid, the Commission's co-operation office which manages EU external aid programmes.


As civil unrest continues to flare up in disparate markets worldwide, corporate risk managers must be aware of the impact that sanctions and regulatory changes can have on their political risk coverage.
The line between economics and politics is becoming even finer for risk managers trying to protect their multinationals' assets, employees and finances against the expanding perils of political risk. Corporate risk officers are grappling with how best to pinpoint those countries needing protection through an insurance mechanism. Adding to the unknown is the expanding use of financial sanctions and economic embargoes by regulators and governments around the world.
Roger Schwartz, a senior vice president of Aon Risk Solutions, says it is essential for corporate compliance officers and other senior executives to stay abreast of the shifting global landscape of economic embargoes and sanctions. Multinationals should steer clear of the affected countries, says Schwartz, who runs Aon's political risk practice.
Recent unforeseen outbursts of civil unrest—in countries such as Egypt, Turkey, Brazil and remote parts of China—have pushed the political-risk time bomb into the C-suite and boardroom. Factor in the lagging economic indicators of the so-called BRICS—Brazil, Russia, India, China and South Africa—and the impact on global markets of such recent developments as slowing US Fed easing and the equation for assessing political risk becomes even more complicated.
"Boards are rethinking where should we insure…How do we predict where unrest will unfold," says Evan Freely, global political risk and trade credit practice leader at Marsh, the insurance broker and risk management firm. Contagion risk looms large for corporate risk managers, and their bosses want to know where the potential for risks and losses lies throughout the corporate system, he adds.
Freely says multilateral agencies have been stepping in to fill the void as insurers pull back from some newly turbulent areas. Although regional institutions can work with local companies based in an unstable region, the Multilateral Investment Guarantee Agency (MIGA), the political risk insurance arm of the World Bank, is playing a role by issuing new investment guarantees to encourage foreign direct investment around the globe.
Olga Sclovscaia, sector manager of the finance and telecommunications operations group at MIGA, says the agency has carried out more business in the Middle East and North Africa since the onset of the Arab Spring than it did before the unrest began. Demand for its cover has also increased in sub-Saharan Africa, where MIGA issued a record $1.5 billion in investment guarantees for the fiscal year 2013, which ended June 30. Most of this cover was directed toward the energy sector.
Côte d'Ivoire, for example, was benefiting from MIGA investment guarantees, or insurance, meant to back the ongoing operations and expansion of a power plant. Emerging from years of civil strife, the West African country's economy will receive a boost with the upgrade of the existing Azito thermal power plant. The upgrade will let the plant produce more electricity without using more gas. Once completed, the Azito facility will become the largest independent power generator in sub-Saharan Africa. MIGA's guarantees cover the investment of Globeleq Holdings (Azito) for up to 20 years against any breach of contract by the Côte d'Ivoire government.
In June of this year, MIGA provided non-honoring of financial obligations coverage—which protects a lender, typically a commercial bank, against losses if a government or state-owned enterprise doesn't ante up with its payments—to HSBC Bank, Société Générale and BHF-Bank. The cover will protect about $401 million of the banks' financing to the Angolan government for the Cambambe hydroelectric power station, located along the Kwanza River.
Unlike breach-of-contract cover, the MIGA guarantee holder does not need to obtain an arbitral award before filing a claim for compensation with the agency. One of MIGA's advantages, Sclovscaia adds, is that it can offer policyholders cover for debt repayment schedules of longer time periods: up to 15 or 20 years.
One outcome of the increased evaluation and boardroom scrutiny is that risk officers are securing cover for longer time periods than they used to. Where before they might have signed a three-year policy, policies are now usually being written for five-to-seven years, as companies tap into the lower prices accompanying today's soft insurance market, Freely says.
Supply is ample in the global commercial insurance market, with the presence of traditional underwriters, such as AIG, Zurich Insurance Group, ACE Group and XL Group, plus the entry of new players into the specialty insurance market at Lloyd's in London. Yet brokers agree it is difficult to nail down a typical price tag for political risk cover, as annual premium costs hinge on a variety of factors—from the geographic locations of a company's facilities to the industry to the insured perils.
Notes Schwartz: "All the variables are tossed into an underwriting matrix." He adds that although underwriters have seen an uptick in submissions for political risk cover, the desire for secrecy on the part of multinationals makes it difficult to gauge actual premium growth. "It's like kidnap and ransom insurance," he says, referring to underwriting clauses that can negate the cover if corporate officers disclose its existence.
Alessandro De Felice, chief risk officer for the Prysmian Group, a global company based in Milan, adds that it is critical for corporate risks officers to run political risk assessments during merger and acquisition activity. Multinationals need to ensure their operations won't run afoul of regulations, laws and sanctions in the pending countries of operation.


Rotation isn't a problem if you are sure the antifungals you are going to take are effective against the yeast specie/strain is affecting you. The problem arise when you pick up an antifungal that don't touch the yeast is affecting you. I wrote a clear example in the other post. It is all to you if you want to take the risk. Regarding to people experience, some will tell you rotation worked because they were lucky choosing effective antifungals. It is a gambling game. The best way, if you don't have a sensitivity test, is to take multiples antifungals at the same time. In this form, you have a better chance that at least one of them be working. If all are working, better, and you probably have a synergistic effect , and more activity against the fungus. I posted it to alert people about the risk of rotating antifungals.
Decide yourself if you want to rotate or not, but a least you know what may happen.
I forgot, yes, coconut oil has antifungal properties. Lauric Acid and Caprylic Acid are found in coconut oil. Both are antifungal substances.


The 2019 Fighting Clams headed down to New Castle, DE with a relatively light roster due to a few injuries and MIAA playoff commitments. They battled all weekend and showed great signs for the summer ahead. A few guys really proved that they belong on the national stage and others showed more of the great things they have been doing throughout their Clam careers.
With a few gaps in the roster due to last minute injuries, specifically at the face off X, the team fought tooth and nail for every possession and came out of day one with a 2-1 record with wins over Boneyard and BBL, as well as a 1 goal loss to the Juiced Cherries. Johnny Kantaros was all over the field all weekend, taking almost every face off with his long pole and scoring 5 goals for good measure. Jake Tellers was there to play attack on the right side filling in a huge gap, and he did not disappoint (8g 1a). Pat Mahoney kept us in games all weekend with outstanding goalie play (57% Save PCT).
The 2020 Fighting Clams traveled to New Castle, Delaware this past weekend to compete against some of the most talented club teams in the country. The tournament was well-run and hosted at a venue with a mix of turf fields and grass fields that played and looked like turf. Nearly every DI program had representatives at this event, many of whom sent head coaches to watch the 2020's playing at NALA. It was great exposure for the boys.
During the practices leading up to this event, the 2020 Clams focused on the triangle rotation in the 2-3-1 set. We emphasized the options that midfield dodgers had after drawing a slide and spent a number of repetitions on the midfield dodge and roll back. It was rewarding to see many of the midfielders execute this on the field this past weekend. We had a number of instances when a midfielder would penetrate the defense with an alley dodge, roll back to the replacing midfielder, and then quickly move the ball to the midfielder popping off the crease to the 10×10 spot for a beautiful, open shot.
Zach Frank (3g, 1a), Nils Holland (2g), and Zach DiMuccio (1g) executed this party-starting dodge perfectly throughout the weekend, earning the "hockey assist" as their dodge and pass resulted in beautifully placed goals for open teammates. Dylan Brown (5g, 1a) and Tucker Spencer (2g, 4a) paced the offense from the attack. Brown had success dodging this past weekend while Spencer demonstrated great vision.
In the first event of the summer, the 2021 Fighting Clams traveled to New Castle, Delaware to participate in what was billed as one of the top events of the summer. With a mixture of eagerness and angst, the boys gathered near our field Saturday morning watching their older peers before strapping on the gear.
In the first test of the day, the boys were tasked with battling the Annapolis Hawks, a team who traditionally has had the better of the Clam program. But it wasn't the Hawks day, as the Clams jumped out to a quick lead before finishing the contest 10-1. Everyone seemed to make a contribution and the chemistry began building with a number of players in the scoring column. This confidence may have gone too far as our next contest did not turn out as well. A combination of face-off dominance combined with careless turnovers allowed the NH Tomahawks to take it to us with a similar score. Valuable lessons were learned and discussed by the coaches following that game supporting the idea that we had too much talent to fall apart at the seams when adversity struck. The boys responded well by jumping out to an early lead against the West Coast Stars in their final contest of the day. Unfortunately, the Stars made a few second half plays and earned a tie in the comeback effort. On Sunday morning, we rose to face Sweetlax Upstate with an identical record understanding it was a "win and you're in" situation regarding a playoff spot. The talented Sweetlax team tested us, but our strong play once again resulted in a tie. With a matching record, the final playoff spot from our pool would come down to a tiebreaker and unfortunately Sweetlax had given up fewer goals on the weekend and therefore this Clam group missed a chance at the tourney. The boys were frustrated by the result, but pleased to be playing such competitive teams to close games and finished the weekend with a solid 4-2 win over Rising Sons in the consolation round.
The 2021 Fighting Clams saw contributions from a variety of people in a variety of positions. Daniel Addonizio was the leading scoring on the weekend netting a balanced 3 goals and 3 assists. Jack Taylor and Teddy Lisa both contributed several goals, while a variety of other players scored showing a well balanced offensive group. Luke Curtin and Fitz Frechette combined to be a formidable pair at the face-off X, with the support of excellent wing and short stick defense from Jack Fates and Jack Taylor. Jimmy Freehil was the catalyst on defense and even scored a few goals as part of the man up group. His defensive efforts were supported by many takeaways from Keegan Palmer and a shut down Trever Brooks. Michael Marinello was the rock behind it all, turning away countless quality chances on the weekend.
The boys were happy to finish the weekend in the plus against top competition, but are hungry to build on the plays left out there this coming weekend.
The Clams program got going in earnest this past weekend. It was the biggest weekend for overall participation of the summer, as seven teams in total were in action in two different locations. This writeup will cover the four teams who were in action at the Prime Time Shootout at Babson College, an event that is emerging as one the best New England tournament options of the summer.
Overall, our program finished with 12 wins and 8 losses. Three of the four teams advanced to the playoffs, one claimed third place with their semi-final win, and one team lost a Championship game heartbreaker, by a single goal. Most importantly, college coaches were present in surprisingly big numbers, earnestly watching our sophomores and juniors. We collaborated with Prime Time to help draw coaches, and together, our two organizations both had reason to feel quite proud of the showing (the number exceeded 50, a big number at a point in time when many college coaches are drawn south by the preponderance of overlapping mid-atlantic events).
The team that surged the furthest was the Fighting Clams 2019 squad. Their 4-2 record was hard-earned. While their second Championship loss to a very strong and spirited Brotherhood team out of New Jersey certainly stung, it was worth noting that the highly competitive 6-7 loss in game #2 felt completely different than the lackluster 3-7 loss to the same team to open the tournament. It showed clear improvement, which is our #1 goal in this part of the summer. The team's offense was paced by the electric performance of Team MVP attackman Matt Gill (Duxbury HS), whose 9 goals and 16 points were the most of any player on any of the four Clam teams in attendance. After Matt, there was impressive offensive balance, as five different players notched between 5 and 7 points. The defense was as strong as the offense, as standouts Jack Venturelli (Duxbury HS) and Boyd Hall (St. Mark's/Quinnipiac) formed the backbone of an at-times dominant unit. Rishi Banerjee (Belmont Hill), his trademark cat-like quickness, and Cory Bannon (Hopkinton HS), backstopped the group very well. One more player clearly deserving of mention is Adam Canfield (Cushing/Clarkson), who took the majority of the draws after that not being his primary role this spring; he didn't miss a beat, bailing us out due to the absence of the player who was to be our FOGO.
The 2020 class had player competing on two Clam teams. These teams were a combined 7-3. The team which consisted entirely of 2020's played to a 4-1 record, falling only to eventual Champions Laxachusetts Navy in the Sunday AM game. The 2020/2021 team fought to a 3-2 record, which was especially gratifying given the fact that half players on this squad were playing up in age. Each team had its clear offensive standout. For the Fighting Clam 2020's, it was Team MVP Von Mabbs (St. Mark's), who notched a team-high 12 points. Included in Von's exceptional tournament was a 3 v 3 Braveheart victory that earned us 3rd place, and was a downright gritty effort in which he simply willed his way to the cage. The Clam 2020/2021 team had its own offensive standout in Team MVP Alec Matho (Hebron Academy). Like fellow MVP's Gill and Mabbs, Matho is also a lefty; like Mabbs, he was responsible for his own 3 v 3 Braveheart winner. Playing in his first tournament as a Clam, Alec may have been the surprise of the tournament. Going in, we didn't quite know what we had. Coming out, we knew we had a player who will rise up the depth chart rapidly. Each team had its defensive standouts as well. For the 2020's, Hugh Curran (Needham HS) jumped out most notably, for the smothering tenacity he displayed throughout. Hayden Zellar (Weston HS) and Tyler Zanini (Hopkinton HS) also drew pointed praise. For the 2020/2021's, it was a pair of 2021's who coaches singled out, as Jack Kinsella (Blackstone Valley Tech) and Sam Duffy (Newton South HS) got repeated mentions for their play.
The Clam 2021's slugged their way to a 1-3 record, but we were very proud of the way they finished off the event, with a solid 6-4 win vs. Rising Stars. We went back and forth with regards to this team's bracket placement. But in the end, we chose the more competitive option, and this made for tough sledding. That said, coaches did not feel this team was out of their league, and noticeable improvement took place throughout. The offensive leader was Emmett Lyne (Wellesley HS), who saved his best for last, notching 3 much needed points in the team's sole victory; Emmett's 5 points were a team-high. The defensive unit's most notable and consistent performer was Chris Perri (Lawrence Academy), who played from start to finish between the pipes, and managed 30 saves vs. his 25 goals against. Things were trying at times on the defense end, and Chris saw a lot of shots. True to what we've come to expect, he never backed down.


Many people feel the change in altitude and climate when coming to Loveland. Dehydration is the most common problem, manifesting in tiredness and headaches, along with the more obvious symptoms of thirst, dry mouth and other typical signs of dehydration. There's a very simple solution: drink as much water as possible! Keep a water bottle handy at all times, and be sure to take it with you whenever participating in outdoor activities.
Loveland's official elevation is 4,982 feet. Estes Park is at 7,522 feet, and the highest point of Trail Ridge Road in Rocky Mountain Nation Park is a whopping 12,183 feet! Did you know you can get sick simply by going higher in elevation? You can, and many do. Higher altitude increases your chance of dehydration, severe sunburn, and aggravation of pre-existing medical conditions. In addition, mountain sickness manifests itself in headaches, nausea, and dizziness. When venturing up into the mountains, be sure to drink much water (we really mean it!), and wear sunscreen, sunglasses and protective clothing. While there is a hospital in Estes Park, it's a long way from the Alpine Visitor Center down to the hospital; if you begin to feel sick, dizzy, nauseous, headaches, or other physical problems, please descend to lower elevations as quickly as possible.
Weather in Colorado changes rapidly, and you can often see it coming over the mountains. Spring and Fall can easily see one day sunny in the 70's and snow the next. In the mountains, it's even more extreme, where it can go from the 70's to wind, rain and snow in just an hour. Be prepared for changing conditions.
Questions about this site may be submitted via the contact form.
Advertising opportunities are available. If your business or service will benefit Loveland visitors, please view our Advertising Kit.
VisitLoveland.Org is a service of digital marketing company, Reeves Digital Development.
Unless otherwise credited, all articles and photos © Copyright 2012-2015 Reeves Digital Development and LKPoole.


conveniently access the raw API of Wwise Reflect.
packages data for Wwise Reflect.
It is a game-side SDK component that wraps a part of the Wwise sound engine, as shown in the following flowchart.
Diffraction occurs when a sound wave strikes a small obstacle, or when it strikes the edge of a large obstacle or opening, and bends around it. It represents sound that propagates through openings (portals) and towards the sides, meaning that a listener does not need to be directly in front of the opening to hear it. Diffraction is usually very important in games because it gives a hint to players about paths that exist between sound emitters and them. The following figure is a sound field plot of a plane wave coming from the top right and hitting a finite surface (the black line) that starts in the center of the figure. The perturbation caused by this edge is called diffraction. The region on the left is the View Region, where the plane wave passes through unaltered. The region on the top right is the Reflection Region, where reflection with the surface occurs and is mixed with the incident wave, resulting in this jagged pattern. The region on the lower right is the Shadow Region, where diffraction plays a significant role. This figure is just a coarse approximation; in real life the field is continuous at the region boundaries, and edge diffraction occurs in the View Region as well, although it is generally negligible compared to the incident wave itself.
We see that the edge can be considered as a point source, with amplitude decreasing with distance. Also, the amplitude of higher frequencies decreases faster than that of lower frequencies, which means that it can be adequately modeled with a low-pass filter. Wwise Spatial Audio models diffraction via two of its APIs. Refer to Rooms and Portals' Diffraction to understand how Rooms and Portals lets you model portal diffraction, and to Using the Geometry API for Simulating Diffraction (EXPERIMENTAL) to understand how geometry may be used to model diffraction of emitters and their early reflections.
Another relevant acoustic phenomenon is the absorption of sound by obstacles and its reciprocal, transmission, which is the proportion of energy that passes through an obstacle. Typically, when an opening exists nearby, the proportion of transmitted energy is negligible compared to the energy reaching the listener from diffraction.
After sufficient time, a sound emitter produces a diffuse field that depends on the acoustical properties of the environment it is in. In games, this is typically implemented using reverb effects with parameters that are tweaked to represent the environment with which they are associated. Diffuse fields also make their way across openings (and through walls) and reach the listener.
Obstruction represents a broad range of acoustical phenomena, and refers to anything that happens when a sound wave strikes an obstacle. Occlusion is similar but implies that sound cannot find its way around an obstacle. The Wwise sound engine lets games set Obstruction and Occlusion values on game objects, which are mapped to a global set of volume, low-pass filter, and high-pass filter curves. The difference between the two is that Obstruction affects only the dry/direct signal between an Actor-Mixer or bus and its output bus, whereas Occlusion also affects the auxiliary sends. Obstruction, therefore, better emulates obstruction by obstacles when emitter and listener are in the same room, whereas Occlusion is better to model transmission through closed walls.
Beyond AK::SpatialAudio::Init(), Basic Functions are used to make Spatial Audio aware of game objects as emitters and/or listeners and their position, in order to use the other services of Spatial Audio. The Rooms and Portals API is a simple, high-level geometry abstraction used for modeling propagation of sound emitters located in other rooms. The Geometry API uses triangles directly to compute image sources for simulating dynamic early reflections with Wwise Reflect, or to compute geometric diffraction. Spatial Audio also exposes helper functions for accessing the raw API of Wwise Reflect directly.
Initialize Spatial Audio using AK::SpatialAudio::Init().
All game objects need to be registered to the Wwise sound engine with AK::SoundEngine::RegisterGameObj, but in order to use them with Spatial Audio, you also need to register them to AK::SpatialAudio as emitters, using AK::SpatialAudio::RegisterEmitter.
You also need to register your one and only listener to AK::SpatialAudio with AK::SpatialAudio::RegisterListener.
Warning: At the moment, Spatial Audio only supports one top-level listener.
To let Spatial Audio know where emitters and the listener are, call AK::SpatialAudio::SetPosition instead of its AK::SoundEngine counterpart (AK::SoundEngine::SetPosition). Also, since it may set game-defined auxiliary sends transparently, you need to call AK::SpatialAudio::SetEmitterAuxSendValues instead of AK::SoundEngine::SetGameObjectAuxSendValues if you want to set your own custom game-defined auxiliary sends without interfering with what Spatial Audio does.
Note: You may replace all your calls to AK::SoundEngine::SetPosition and AK::SoundEngine::SetGameObjectAuxSendValues with those of AK::SpatialAudio. The calls for which the object has not been registered to Spatial Audio via AK::SpatialAudio::RegisterEmitter are forwarded directly to AK::SoundEngine.
Warning: Spatial Audio handles multiple calculated positions of Rooms and Portals. However, multiple positions cannot be specified for Spatial Audio emitters or listeners. So, if you have set multiple positions for a game object, do not register it to Spatial Audio as either an emitter or a listener.
The Geometry API allows the game to send a triangle mesh to Wwise Spatial Audio, for two purposes: 1. Simulating edge diffraction of sound propagating from emitters to listener (see Using the Geometry API for Simulating Diffraction (EXPERIMENTAL)). 2. Simulating early reflections using Wwise Reflect (see Using the Geometry API for Simulating Early Reflections).
Vertices (AkVertex) are defined in an array, AkGeometryParams::Vertices, which is separate from the triangles, and each triangle in the triangle array AkGeometryParams::Triangles references indices in the vertex array.
Each triangle also includes an index to an AkAcousticSurface structure, which defines the acoustic texture, description string, and reflector channel mask.
The correspondence between acoustic surfaces and triangles is up to the user. For example, the user may choose to have one surface for each triangle, a single surface for all triangles, or something in between.
Defining acoustic surfaces is optional. If it is not desired to customize the acoustic properties of a surface, the triangles may be left as AK_INVALID_SURFACE and NULL may be passed into AkGeometryParams::Surfaces and AkGeometryParams::NumSurfaces set to zero.
Generally, any triangle mesh can be used with Wwise Spatial Audio, however there are a number of important considerations.
The mesh should be as simple as possible. Acoustic calculations involve a large number of ray tracing operations and can get expensive. The smallest number of triangles that can be used to represent a scene is best.
All triangles are double-sided. Acoustic reflections occur off of both sides of the triangle, therefore it can be beneficial to create meshes that have no interior volume. For example, a wall could be a plane rather than a box.
Duplicate vertices should be "welded" together in order to create a continuous mesh. In other words, two connected triangles should reference the same two vertices in the vertex array. This is important for diffraction calculations, otherwise it is possible for sound to leak through the mesh.
All vertex coordinates are in world space.
Meshes that are sent to spatial audio via multiple calls to set geometry cannot reference the same vertices, and therefore are not considered connected or continuous. In this case, diffraction edges will not be generated for edges that span multiple meshes.
Meshes must not have any degenerate triangles. All triangles must have an area greater than zero.
Additional rules apply if you wish to use Geometric Diffraction with your geometry. Refer to Using the Geometry API for Simulating Diffraction (EXPERIMENTAL) for more details.
The Geometry API uses emitter and listener positions, and triangles of your game's (typically simplified) geometry in order to compute image sources for simulating dynamic early reflections, in conjunction with the Wwise Reflect plug-in. Sound designers control translation of image source positions directly in Wwise Reflect, per tweaking of properties based on distance and materials.
Please refer to our Image Source Approach to Dynamic Early Reflections and Creating compelling reverberations for virtual reality blogs, for example, for an introduction to geometry-driven early reflections (ER for short).
For each emitter that should support dynamic ER, call AK::SpatialAudio::RegisterEmitter() after having registered the corresponding game object to the sound engine. Use the AkEmitterSettings for determining the parameters of the reflections calculation.
AkEmitterSettings::reflectAuxBusID: The ID of the Auxiliary Bus that hosts the desired Wwise Reflect plug-in. Spatial Audio will establish an aux send connection to this bus. It will, however, be to an instance of the bus that is associated with the same game object as the emitter. This means that different emitters will send to different instances of the Auxiliary Bus, and thus to different instances of the plug-in. This is crucial because sets of early reflections are unique to each emitter. This is illustrated in the screenshot of the Voices Graph in 'Wwise project setup', seen below.
AkEmitterSettings::reflectionsAuxBusGain: The send level directed towards the Auxiliary Bus.
AkEmitterSettings::reflectionsOrder: The order of reflections to be calculated. Reflections caused by hitting one surface are called first order reflections. Second order reflections are produced by sounds hitting two surfaces before reaching the listener, and so on. Beware! The number of generated reflections grows exponentially with each order.
AkEmitterSettings::reflectionMaxPathLength: A heuristic to stop the computation of reflections. It should be set to no more than the sounds' Max Distance played by this emitter. Use AK::SpatialAudio::SetPosition and AK::SpatialAudio::SetEmitterAuxSendValues for these emitters instead of the sound engine's functions. Push the relevant geometry to SpatialAudio using AK::SpatialAudio::SetGeometry and AK::SpatialAudio::RemoveGeometry. See Using the Geometry API for more details on the Geometry API. The geometry is assigned acoustic surfaces, which you may tie to an Acoustic Texture ShareSet, as defined in the Wwise Project. See AkAcousticSurface::textureID. These Acoustic Textures may be seen as the material's reflective properties, and will have an effect on the filtering applied to the calculated early reflections.
You need to understand the following aspects of the bus structure design for handling dynamic environmental effects in your Wwise project effectively.
Typically, different Auxiliary Busses are used to represent different environments, and these busses may host different reverb ShareSets that emulate the reverberating characteristics of these environments. When using dynamic ER, such as those processed by Wwise Reflect under Spatial Audio, late reverberation may still be designed using reverbs on Auxiliary Busses. However, you may want to disable the ER section of these reverbs (if applicable), as this should be taken care of by Wwise Reflect.
On the other hand, Wwise Reflect should run in parallel with the aux busses used for the late reverberation. The figure below shows a typical bus structure, where the three Auxiliary Busses under the EarlyReflections bus each contain a different ShareSet of Wwise Reflect. You will note that in this design, we only use a handful of ShareSets for generating early reflections. This is motivated by the fact that the "spatial aspect" of this Effect is driven by the game geometry at run-time. We only use different ShareSets here because we want different attenuation curves for sounds emitted by the player (listener) than those emitted by other objects.
The ER bus (hosting Wwise Reflect) will exist in as many instances as there are emitters for which you want early reflections to be generated. This is done by registering these emitters with the Spatial Audio API and sending them to this bus, as was described in the previous section. In order for this to work properly, you need to enable the Positioning check box for this bus, as shown in the image below. By doing this, the signal generated by the various instances of the ER bus will be properly mixed into a single instance of the next mixing bus, downstream. This single instance corresponds to the game object that is listening to this emitter (set via AK::SoundEngine::SetListeners), which is typically the final listener, that corresponds to the player (or camera).
Warning: Although the ER bus's Listener Relative Routing must be enabled in order to ensure that all its emitter-instances merge into the listener's busses, the 3D Spatialization mode must be set to None, to avoid "double 3D spatialization" by Wwise. Likewise, you should not use attenuation, unless you want additional attenuation to be applied on top of the image-source curves in Wwise Reflect.
Also, by virtue of the game object (emitter) sending to the Auxiliary Bus used to process the late reverberation, a connection will also be made between the ER bus and the late reverb bus. This is usually desirable because the generated ER are then utilized to color and "densify" the late reverb. In order to enable this, you need to make sure you enable the Use game-defined auxiliary sends check box on the ER bus. You may then use the Volume slider below to balance the amount of early reflections you want to send to the late reverb against the direct sound.
The following figure is a run-time illustration of the previous discussion.
For each reflecting triangle, the game passes the ID of a material. These materials are edited in the Wwise Project in the form of Acoustic Textures, in the Virtual Acoustics ShareSets. This is where you may define the absorption characteristics of each material.
While Wwise Reflect may be used and controlled by the game directly using AK::SoundEngine::SendPluginCustomGameData, Spatial Audio makes its use easier by providing convenient per-emitter bookkeeping, as well as packaging of image sources. Also, it lets you mix and match "raw" image sources with surface reflectors (potentially on the same target bus/plug-in).
Call AK::SpatialAudio::SetImageSource for each image source. Target the bus ID and optional game object ID (note that the game object ID may also be a listener or the main listener). Refer to AkReflectImageSource for more details on how to describe an image source.
Image sources may be provided to Reflect by game engines that already implement this functionality, via ray-casting or their own image-source algorithm, for example.
See the Wwise project setup above for the Using the Geometry API for Simulating Early Reflections - which is the same. You can also refer to the Wwise Reflect documentation in the Wwise Help for an example design of Reflect on FPS sound.
The Spatial Audio module exposes a simple, high-level geometry abstraction called Rooms and Portals, which allows it to efficiently model sound propagation of emitters located in other rooms. The main features of room-driven sound propagation are diffraction and coupling and spatialization of reverbs. It does so by leveraging the tools at the disposal of the sound designer in Wwise, giving them full control of the resulting transformations to audio. Furthermore, it allows you to restrict game engine-driven raycast-based obstruction, which is highly game engine-specific, and typically costly in terms of performance, to emitters that are in the same room as the listener.
Rooms are dimensionless and are connected with one another by Portals, which together form a network of rooms and apertures by which sound emitted in other rooms may reach the listener. Spatial Audio uses this network to modify the distance traveled by the dry signal, the apparent incident position, and the diffraction angle. The diffraction angle is mapped to obstruction and/or to a built-in game parameter called Diffraction, which designers may bind to properties (such as volume and low-pass filtering) using RTPC. Spatial Audio also positions adjacent rooms' reverberation at their portals, and permits coupling of these reverbs into the listener's room reverb, using 3D busses. Lastly, rooms have an orientation, which means that inside rooms the diffuse field produced by the associated reverb is rotated prior to reaching the listener, tying it to the game's geometry instead of the listener's head.
As with all Spatial Audio services, you need to register emitters and the listener with AK::SpatialAudio::RegisterEmitter and AK::SpatialAudio::RegisterListener after having registered the corresponding game objects to the sound engine (see AK::SoundEngine::RegisterGameObj). The only emitter setting that pertains to Rooms and Portals is AkEmitterSettings::roomReverbAuxBusGain, which gives you per-emitter control of the send level to aux busses.
You need to create Rooms and Portals, based on the geometry of your map or level, with AK::SpatialAudio::SetRoom and AK::SpatialAudio::SetPortal. Rooms and Portals have settings that you may change at run-time by calling these functions again with the same ID. Then the game calls AK::SpatialAudio::SetGameObjectInRoom for each emitter and the listener to tell Spatial Audio in what room they are. From the point of view of Spatial Audio, Rooms don't have a defined position, shape, or size. They can thus be of any shape, but it is the responsibility of the game engine to perform containment tests to determine in which Room the objects are.
Warning: Beware of Room IDs. They share the same scope as game objects, so make sure that you never use an ID that is already used as a game object.
Warning: Under the hood, Spatial Audio registers a game object to Wwise for each Room. This game object should not be used explicitly in calls to AK::SoundEngine.
The most important Room setting is AkRoomParams::ReverbAuxBus, which tells Spatial Audio to which auxiliary bus emitters should send when they are in that Room. Other settings will be discussed in sections below (see Using 3D Reverbs and Transmission).
Portals represent openings between two Rooms. Contrary to Rooms, Portals have position and size, so Spatial Audio can perform containment tests itself. Portal size is given by the Portal setting AkPortalParams::Extent. Width and height (X and Y) are used by Spatial Audio to compute diffraction and spread, while depth (Z) defines a region in which Spatial Audio performs a smooth transition between the two connected Rooms by carefully manipulating the auxiliary send levels, Room object placement, and Spread (used by 3D Spatialization). Refer to sections Using 3D Reverbs and About Game Objects below for more details. Additionally, Portals may be enabled (open) or disabled (closed) using the AkPortalParams::bEnabled Portal setting.
When using any Spatial Audio services for a given emitter, you should use AK::SpatialAudio::SetPosition instead of AK::SoundEngine::SetPosition. Incidentally, you cannot use AK::SoundEngine::SetMultiplePositions with a Spatial Audio emitter because Spatial Audio relies on raw multi-positioning internally. However there is no problem with using AK::SoundEngine::SetMultiplePositions on game objects that are not used with Spatial Audio. AK::SoundEngine::SetMultiplePositions should be considered like a low-level positioning feature: if you use it then you are on your own for managing its environments. Likewise, you should never use AK::SoundEngine::SetGameObjectAuxSendValues with Spatial Audio emitters. However, you may use AK::SpatialAudio::SetEmitterAuxSendValues with Spatial Audio emitters that are in Rooms. See section Implementing Complex Room Reverberation for more details.
Additionally, you should not use AK::SoundEngine::SetObjectObstructionAndOcclusion or AK::SoundEngine::SetMultipleObstructionAndOcclusion with Spatial Audio emitters. Spatial Audio manages obstruction/occlusion for you when emitters are in other Rooms, via the more accurate concepts of diffraction and transmission. In-room obstruction needs to be set via AK::SpatialAudio::SetEmitterObstructionAndOcclusion and AK::SpatialAudio::SetPortalObstructionAndOcclusion. Refer to section Modeling Sound Propagation from Other Rooms and Modeling Sound Propagation from the Same Room for more details on obstruction and occlusion and how to use them with Spatial Audio Rooms and Portals.
The Integration Demo sample (in SDK/samples/IntegrationDemo) has a demo page which shows how to use the API. Look for Demo Positioning > Spatial Audio: Portals.
In the context of Wwise Spatial Audio, sound propagation from other rooms is entirely managed by the Rooms and Portals abstraction. Rooms with no open Portals will utilize Wwise Occlusion to model transmission, while Rooms with at least one propagation path to the listener via open Portals will use either Obstruction or the Diffraction built-in game parameter. For same-room obstruction, games are invited to implement their own algorithm based on the geometry or raycasting services they have at their disposal and the desired level of detail. But, they need to use AK::SpatialAudio::SetEmitterObstructionAndOcclusion and AK::SpatialAudio::SetPortalObstructionAndOcclusion so that it does not compete with diffraction from Spatial Audio. Refer to section Modeling Sound Propagation from the Same Room for more detail on how to use same-room obstruction with Spatial Audio.
Refer to Spatial Audio Concepts for a review of these acoustic concepts.
The table below summarizes the features of Spatial Audio Rooms and Portals by grouping them in terms of acoustic phenomena, describing what Spatial Audio does for each, and how sound designers can incorporate them in their project.
The Auxiliary Bus design used with Spatial Audio Rooms and Portals is not fundamentally different than in the traditional modeling of environments. It requires that an Auxiliary Bus be assigned for each Room, mounted with the reverb Effect of the designer's choice, and it is the same bus that is used whether the listener is inside or outside the Room. The only difference is that it should be made 3D by enabling Listener Relative Routing (in the Positioning tab) and setting the 3D Spatialization to either Position + Orientation or Position, as shown in the figure below. This way, Spatial Audio may spatialize the reverberation of adjacent Rooms at the location of their Portal by acting on the Rooms' underlying game object position and Spread.
The Room's reference orientation is defined in the room settings (AkRoomParams::Up and AkRoomParams::Front), and never changes. The corresponding game object's orientation is made equal to the Room's orientation. When the listener is in a Room, the bus's Spread is set to 100 (360 degrees) by Spatial Audio. Thanks to 3D positioning, the output of the reverb is rotated and panned into the parent bus based on the relative orientation of the listener and the Room. This happens because the Auxiliary Bus is tied to the Room's game object, while its parent bus is tied to the listener. The screenshot below shows an emitter, the radio, sending to the Auxiliary Bus Mezzanine2. You can see that a separate game object has been created for this room, Ak_RV_Mezzanine, that is neither the Radio nor the listener (PlayerCameraManager_0).
If, for example, there is a spatialized early reflection pattern "baked" into the reverb (such patterns exist explicitly in the Wwise RoomVerb's ER section, and implicitly in multichannel IR recordings used in the Wwise Convolution Reverb), then they will be tied to the Room instead of following the listener as it turns around. This is desirable for proper immersion. On the other hand, it is preferable to favor configurations that "rotate well". Ambisonic configurations are invariant to rotation, so they are favorable. Standard configurations (4.0, 5.1, and so on), less so. When using standard configurations, it is better to opt for those without a center channel, to use identical configurations for aux busses and their parent, and to set a Focus to 100. In these conditions, with a 4.0 reverb oriented with the Room towards the north, a listener looking at the north would hear the reverb exactly as if it were assigned to speakers directly. A listener looking straight east, west, or south would hear the original reverb but with channels swapped. Finally, a listener looking anywhere in between would hear each channel of the original reverb being mixed into a pair of output channels.
When the listener is away from a room's Portal, Spatial Audio reduces the spread according to the Portal's extent, which seamlessly contracts the reverb's output to a point source as it gets farther away. The Spread is set to 50 (180 degrees) when the listener is midway into the Portal. And, as it penetrates into the room, the Spread is increased even more with the "opening" being carefully kept towards the direction of the nearest Portal.
The adjacent Room's reverberation should be regarded as a source located at the Portal, and you may use an Attenuation ShareSet in the Auxiliary Bus's Positioning tab to determine the behavior with respect to distance from the listener. If you select the Enable Game-Defined Sends check box on this bus, you allow it to be further sent to the reverb of the listener's Room (see figure below). You may tweak the amount that is sent to the listener's reverb with the Game-Defined Send Offset, and with distance using the Game-Defined Attenuation. The ShareSet used in the example below is called "Portal" because it is designed according to the behavior of the Rooms' Portals: as the listener moves away from a Portal, it becomes a point source. At distance zero, the listener has completely crossed the Portal and is inside the Room.
Warning: Note that in order to let Spatial Audio modify the Spread according to the Portal's geometry, you must not have a Spread curve in your Auxiliary Busses' attenuation settings. Using a Spread curve there would override the value computed by Spatial Audio.
Inside Rooms, the Room game object position is maintained by Spatial Audio at the same location as the listener, so the attenuation curves are all evaluated at distance 0.
Spatial Audio Rooms and Portals work by manipulating the position of the game objects known to the Wwise sound engine (emitters registered by the game and Room game objects registered by Spatial Audio), and some of their inherent properties, like game-defined sends, obstruction, and occlusion.
When the Spatial Audio's initialization setting DiffractionFlags_CalcEmitterVirtualPosition is set, the position of the emitters located in Rooms that are adjacent to the listener is modified such that they seem to appear from the diffracted angle, if applicable. In the screenshot of the 3D Game Object Profiler, below, the listener (Listener L) is on the right of the Portal and the "real" emitter is on the lower left (Emitter E, without orientation vectors). Spatial Audio thus repositions the emitter to the upper left, so that the apparent position seems to come from the corner, all while respecting the traveled distance. The listener is about 45 degrees into the shadow zone of the Portal edge, resulting in a diffraction factor of 27%, as written at the junction between the two line segments.
When there are multiple Portals connecting two Room, Spatial Audio may assign multiple positions to an emitter (one per Portal). The MultiPosition_MultiDirection mode is used, so that enabling or disabling a Portal does not affect the perceived volume of other Portals.
Warning: Note that you cannot use multipositions with Spatial Audio emitters. Only Spatial Audio can, under the hood.
Spatial Audio registers one game object to Wwise per Room, under the hood.
Warning: This game object should not be used directly.
When the listener is in a Room, the Room's game object is moved such that it follows the listener. Thus, the distance between the Room and the Listener object is approximately 0. However, its orientation is maintained to that which is specified in the Room settings (AkRoomParams). See Using 3D Reverbs for a discussion on the orientation of 3D busses.
When the listener is outside of a Room, that Room's game object adopts the position(s) of its Portal(s). More precisely, it is placed in the back of the Portals, at the location of the projection of the listener to the Portals' tangent, clamped to the Portals' extent. This can be verified by looking at the Room's game object, as seen in the screenshot of the 3D Game Object Profiler, above, in section Emitters.
For multiple Portals, a Room's game object is assigned multiple positions, in MultiPosition_MultiDirection mode, for the same reason as with emitters.
When transitioning inside a Portal, the "in-Room" and "Portal" behaviors are interpolated smoothly.
With Spatial Audio Rooms and Portals, sound propagation in Rooms other than that of the listener is managed by the Rooms and Portals abstraction. An emitter in another Room reaches the listener via Portals, and their associated diffraction, or, if no such path exists, via transmission through rooms' "walls".
For each emitter in adjacent Rooms, Spatial Audio computes a diffraction angle from the Shadow Boundary, from the closest edge of the connecting Portal. See Diffraction, above. This diffraction angle, which may go to up to 180 degrees, is then mapped to a coefficient between 0 and 100%, and given to the Wwise user for driving corresponding audio transformations, by one of two means. It can set the Obstruction value on the emitter game object or set the value of a built-in game parameter, Diffraction. Whether Spatial Audio does one or the other, or both, depends on the choice of AkDiffractionFlags with which you initialize it.
To use the Diffraction built-in parameter, you need to create a game parameter and set its Bind to Built-in Parameter drop-down menu to Diffraction. Values pushed to this game parameter are scoped by game object, so they are unique for each emitter. You may then use it with an RTPC to control any property of your Actor-Mixer. The most sensible choice is the Output Bus Volume and Output Bus LPF, to emulate the frequency-dependent behavior of diffraction. Output Bus Volume and LPF are privileged over the base Volume and LPF because they should apply to the direct signal path only, and not to the auxiliary send to the Room's reverb.
Rooms' diffuse energy is also included in the sound propagation model of Spatial Audio as the output of Rooms' Auxiliary Busses. Spatial Audio computes diffraction for this too ("wet diffraction"). Spatial Audio assumes that the diffuse energy leaks out of a Room perpendicular to its Portals. Thus, it computes a diffraction angle relative to the Portal's normal vector. This diffraction value can be used in Wwise exactly like with emitters' dry path. When using the built-in game parameter, it should be used with an RTPC on the room's auxiliary bus, typically on the bus's Output Bus Volume and Output Bus LPF. The bus's Output Bus Volume property should be favored over the Bus Volume property for the same reason as with Actor-Mixers: it should not affect the auxiliary send path that is used for coupling this reverb to the reverb of the listener's room.
Alternatively, users can use built-in, project-wide obstruction for modifying audio from Spatial Audio's diffraction. When doing so, Spatial Audio uses the computed Diffraction value to drive obstruction. Compared to the Diffraction built-in game parameter, project-wide obstruction is mapped to curves that are global to a Wwise Project. They can be authored in the Project Settings. Obstruction Volume, LPF, and HPF are effectively applied on Output Bus Volume, LPF, and HPF, as discussed above. Because the obstruction curves are global, project-wide obstruction is less flexible than the Diffraction built-in game parameter. On the other hand, they require less manipulation and editing (using RTPCs). Also, different Obstruction values apply to each position of a game object, whereas built-in game parameters may only apply a single value for all positions of a game object. (When multiple values are set, the smallest is taken.) Recall that multiple game object positions are used when a Room has more than one Portal.
When no propagation path with active Portals exists between an emitter and the listener, Spatial Audio falls back to model transmission (through walls), and does it using the emitter game object's Occlusion. The Occlusion value is taken from the Room settings' AkRoomParams::WallOcclusion; the maximum occlusion value is taken between the listener's Room and the emitter's Room. Occlusion maps to volume, LPF, and HPF via global, project-wide curves, defined in the Obstruction/Occlusion tab of the Project Settings. As opposed to Obstruction, Occlusion also affects the signal sent to auxiliary busses, so the contribution of an occluded emitter to its Room's reverb, and any coupled reverb, will be scaled and filtered according to the Occlusion curves. Occlusion thus properly models absorption (transmission).
Note: Spatial Audio cannot model diffraction and transmission at the same time, in parallel, due to limitations in the Wwise sound engine. However, the energy transmitted through a wall is typically negligible compared to the energy diffracted through an open door.
The diffuse energy of adjacent rooms penetrating into the listener's room through Portals can be seen as sources located at these Portals and, as such, they should also contribute to exciting the listener's room. In other words, they should send to the Auxiliary Bus of the listener's Room. As written earlier, you can do this by checking the Enable Game-Defined Sends check box on the adjacent Room's auxiliary bus. You may tweak the amount that is sent to other rooms' reverb with the Game-Defined Send Offset, and with distance using the Game-Defined Attenuation.
Obstruction of sound emitted from the same room as that of the listener is not covered by Spatial Audio Rooms and Portals, and is therefore deferred to the game. The representation of geometry, methods, and the desired level of details for computing in-room obstruction is highly game-engine specific. Games typically employ ray-casting, with various degrees of sophistication, to carry out this task.
With Spatial Audio Rooms and Portals though, you don't need to do this for all emitters, but only those that are in the same Room as the listener. This is beneficial because ray-casting is usually much more expensive than the algorithm used by Spatial Audio for computing propagation paths. Since in-room obstruction between an emitter and the listener happens in the same room, by definition, we assume that the obstacle will not cover the listener or emitter integrally, and that the sound will reach the listener through its reflections in the room. This can be properly modeled by affecting the dry/direct signal path only, and not the auxiliary send, which means that Obstruction is the proper mechanism. For this purpose, the game should call AK::SpatialAudio::SetEmitterObstructionAndOcclusion instead of AK::SoundEngine::SetObjectObstructionAndOcclusion. This is the only way to let Spatial Audio know that there is in-room obstruction between the emitter and listener, so that it can incorporate it in its calculations without interfering with its own use of Obstruction and Occlusion for other purposes (diffraction and transmission).
Furthermore, Portals to adjacent rooms should be considered like sound emitters in the listener's Room. Therefore, games should also run their obstruction algorithms between the listener and the Portals of the Room in which it is. Then, they need to call AK::SpatialAudio::SetPortalObstructionAndOcclusion for each of these portals in order to safely declare in-room obstruction with the listener.
Warning: You should never call AK::SoundEngine::SetObjectObstructionAndOcclusion or AK::SoundEngine::SetMultipleObstructionAndOcclusion for game objects that are registered as Spatial Audio emitters.
Sound propagation also works across multiple rooms. The Room tree is searched within SpatialAudio when looking for propagation paths. Circular connections are avoided by stopping the search when Rooms have already been visited. The search depth may be limited by Spatial Audio's initialization setting AkSpatialAudioInitSettings::uMaxSoundPropagationDepth (default is 8).
As opposed to AK::SoundEngine::SetGameObjectAuxSendValues which overrides the game object send values and should never be used with Spatial Audio emitters, AK::SpatialAudio::SetEmitterAuxSendValues adds up to the auxiliary sends already set by Spatial Audio. This may be useful when designing complex reverberation within the same room, for example, if there are objects or terrain that call for different environmental effects. A Room's AkRoomParams::ReverbAuxBus can also be left to "none" (AK_INVALID_AUX_ID), so that its send busses are only managed by the game via AK::SpatialAudio::SetEmitterAuxSendValues.
The geometry passed to Wwise Spatial Audio may be used to emulate diffraction of sound. As such, it can completely replace your game engine's raycasting methods for computing obstruction. When an emitter is hidden from a listener by an object, Spatial Audio computes paths along its edges and, if some are found, computes the diffraction coefficient resulting from the sound bending around these edges. The apparent angle of incidence of the emitter is modified accordingly, and the diffraction value is sent to Wwise where you may control how it ultimately affects the sound. Typically, diffraction results in low-pass filtering.
The image below is a screenshot of the 3D Game Object Viewer in Wwise and shows a sound diffracting around the edges of a thin wall.
Warning: While geometric diffraction can be used to entirely replace your game engine's raycasting method for computing obstruction, the performance cost grows fast against the complexity of the geometry. At the moment, diffraction calculation should only be used with simple geometry, in reasonable amounts. This is why this feature is tagged as experimental. Also, it is good to use the efficient Rooms and Portals abstraction (see Using Rooms and Portals) in conjunction with Geometric Diffraction in order to reduce the computational complexity of the latter.
Geometric diffraction can be used to affect the direct sound propagation path between the emitter and listener, but also the path of its early reflections, when used in conjunction with Wwise Reflect.
Each geometry set that is passed to Spatial Audio needs to say explicitly whether it should be considered for calculating diffraction paths. This is done via the AkGeometryParams::EnableDiffraction flag. This flag enables generation of edge data that is necessary for diffraction calculations, and is used for both geometric diffraction on the direct path and for diffraction of reflections.
Also, consider whether or not you want the boundary edges of a mesh to be able to diffract sound. For a given mesh, a boundary edge is defined as an edge that is connected to only one triangle and, therefore, exists on the boundary of the manifold. The complexity of the diffraction calculation increases with the number of edges, so the option should be disabled if your mesh contains boundary edges that should not diffract sound.
Finally, note that acoustic textures assigned to acoustic surfaces do not have any effect on diffraction because edge materials don't absorb energy. Edges simply bend sound.
You are invited to review the Geometric Diffraction demo in the Integration Demo sample (in SDK/samples/IntegrationDemo) for an example of using geometry for the purpose of geometric diffraction of the direct path. Look for Demo Positioning > Spatial Audio: Geometry.
Each sound emitter that requires geometric diffraction of the direct path must have appropriate AkEmitterSettings. In particular, AkEmitterSettings::diffractionMaxEdges, AkEmitterSettings::diffractionMaxPaths, and AkEmitterSettings::diffractionMaxPathLength should be greater than 0. Refer to their respective documentation for more details.
Diffraction may be observed in the 3D Game Object Viewer, provided the proper profiling settings and view options are set (see images below). The calculated diffraction factor on a path from emitter to listener is displayed for each diffracting edge. This diffraction factor is conveyed to Wwise via either the Built-In Game Parameter called Diffraction or via the emitter's Obstruction value, or both, according to the AkSpatialAudioInitSettings::uDiffractionFlags that were passed when initializing Spatial Audio. Built-in Game Parameter values may be profiled directly in the RTPC curves where they are used, and Obstruction may be profiled in the Profiler's Obs/Occ tab.
Like with Portals, the Diffraction value is 0 when the emitter is in direct sight of the listener, and it begins to increase as the emitter penetrates the shadow zone (see Diffraction). Also, please refer to Rooms and Portals' Diffraction for more details on shadow zone diffraction and for a discussion about using the Built-in Diffraction Game Parameter versus Obstruction.
With Spatial Audio Rooms and Portals (Using Rooms and Portals), Portals also model diffraction of direct sounds in adjacent rooms. The two systems complement each other in that no geometry-driven diffraction paths are searched for emitters that are not in the same room as the listener. Provided that Rooms and Portals are much more efficient to calculate than geometry, it is beneficial to use both systems together to reduce computational complexity.
As was noted above, early reflections may diffract off of edges, and Spatial Audio supports modeling this phenomenon when emitters are routed to Wwise Reflect.
Prior to explaining how to do it, we need to define view zone diffraction.
Consider the figure below. The emitter is in direct sight of the listener, but the listener is not hit by specular reflections. It is thus is in the view zone. As was said in Diffraction, diffraction occurs in the view zone as well. However, in Wwise Spatial Audio, neither the Rooms and Portals or Geometric Diffraction of direct path models consider diffraction in the view zone, as it is negligible compared to the actual direct path. However, for reflections, view zone diffraction has a dramatic impact. Without diffraction, early reflections are heard in the reflection zone only, where they are purely specular. As soon as the listener enters the view zone, reflections become silent. With diffraction enabled, the edge contributes to diffract the reflected wave. Thus, the listener perceives the reflection, albeit with additional filtering and attenuation as she goes around and away from the reflection zone.
In the reflection zone, no diffracted path and, therefore, no diffraction value is calculated, because the specular reflection is assumed to take over. The calculated view zone diffraction of a given edge is 0% at the boundary between the reflection zone and the view zone, and 100% at the boundary between the view zone and the shadow zone.
With higher orders of early reflections, both view and shadow zone diffraction come into play.
In code, just set the desired emitter to send to Wwise Reflect, with desired reflection order, as you would normally do. Refer to Game side setup for more details. There is no specific setting needed to enable diffraction for the purpose of reflections' diffraction, apart from enabling diffraction on the geometry.
Reflections that undergo diffraction effects will appear as image sources in Wwise Reflect. You may design the effect of diffraction on reflections with the three curves that depend on diffraction: Diffraction Attenuation, Diffraction LPF, and Diffraction HPF. See Wwise Reflect's documentation for more details.
At the moment, Spatial Audio Rooms and Portals and early reflection calculations are not aware of one another. Consequently, reflections and, a fortiori, diffracted reflections are computed even when an emitter and listener are in different rooms.
Applying Positioning to Busses in the Wwise Help.
Emitter-Listener Associations in the Wwise Help.
Wwise Reflect in the Wwise Help.


I'm sure it's just me, but I prefer to reserve the "picture of the day" thread for pictures---a nice, non-verbal gallery for a change of pace. Right now it's mostly memes, which are OK but not really my thing.
Let's see if a separate thread for memes and text-based images will take off.
But my favorite memes are so old they don't have pictures!


text:
Q: How do I correctly use the os.path to locate a file stored in a specific folder? I'm new to python and I've not used os.path that often, but as my projects grew and I started trying to integrate multiple folders together, I realized that it is probably best that I start using the os.path method.
I'm currently trying to get to a json file data.json in a folder (that is within several other folders). I looked at the way it is done online but I think I confused myself.
import os
import json

x = os.path.join('c:', 'data.json')
data = json.loads(open(x).read())
print(data)

Error message:
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\Obada\\OneDrive\\Documents\\VS Code Projects\\Basic Chatbot\\data'

A: I would suggest using os.listdir() method for seeing the existing files in the currently active folder (you can use os.getcwd()) to see that.
import os
import json

files = os.listdir()
x = os.path.join('c:', 'data.json')
for i in files:
    if x in files:
        data = json.loads(open(x).read())
        print(data)
    else:
        print("File doesn't exist!")

There are better ways to do this, but I am trying to keep it beginner-friendly as you are new to python.

A: The path.join() function is for programs that you want to run in diferent os, in this example you dont have to use the join function.
The join function just join the 2 strings with a / or \ depending on the os
In this example its windows so it use \
If its in the c partition you can just use the full (raw) address.
But if the address is relative like this example:
.\example.json

Its depend on the current file or folder that you are in, in this case the python script, you should use the join function

A: if you are on Windows, you can reach a file in C:\ by using something like this. Note that the second slash is because we need to tell python that it is a \
import os
fullfilename = os.path.join('C:\\', 'data.json')
data = json.loads(open(fullfilename).read())
print(data)

Another useful option is getcwd, which will give you the current directory python is running on.
currdir = os.getcwd()
FILEPATH = os.path.join(currdir,"data.json")

This will ensure that everything is working relative to the directory you are running your code from... no matter where you move the code

redpajama_set_name: RedPajamaStackExchange


What Is The Refund Policy At The IRS?
Paying taxes is always a pain, particularly when starting a new business. Because there are so many details that you have to remember, the whole process can be a bit complicated. There are numerous forms and payments that you have to make, which may or may not be 100% accurate. As such, you can usually wind up overpaying. What happens if that occurs? Well, the IRS has a … [Read more...] about What Is The Refund Policy At The IRS?


text:
home genetic news bioinformatics biotechnology literature journals ethics positions events sitemap
HUM-MOLGEN -> Events -> Courses and Workshops
Pharmaceutical Technology Transfer and Post-Approval Changes
Pharma Development and Business
CfPA-The Center for Professional Advancement, Amsterdam, The Netherlands
This course is intended for individuals from:
• Formulation and Process Development/Validation
• Regulatory Affairs, QA, QC
• Analytical Methods Development
• Package Development/Engineering
• Manufacturing and Technical Support
• Project Management and Planning
Participants will benefit by gaining a better understanding of the complexities of technology transfer of various dosage forms in the pharmaceutical industry.
This 3-day intensive, accredited course will provide a basic understanding of the technology transfer of analytical methods, quality control standards, packaging components/operations and various pharmaceutical dosage forms from R&D to manufacturing. It is designed to provide an understanding of the issues affecting the transfer within and outside a company. Topics will include transfer of technology to/from international sites as well as to/from third parties. This course will also provide an understanding of the FDA Scale-up and Post Approval Changes Guidelines & the 2004 FDA guideline on changes to an approved NDA or ANDA. The issues affecting batch size scale-up/scale-down, various post approval formulation component or composition changes, site of manufacturing changes, manufacturing process changes, and equipment changes will be addressed along with the issues affecting analytical methodology, packaging and labeling changes. Speakers will use practical examples to highlight issues critical to successful technology transfer in compliance with FDA regulations.
Interactive case studies based on real examples will allow participants to develop strategies and plans in a team environment.
Organized by: CfPA-The Center for Professional Advancement
Invited Speakers:
Walter G. Chambliss, Ph.D., Associate Vice Chancellor for Research and Professor of Pharmaceutics and Drug Delivery, University of Mississippi
Walter G. Chambliss, Ph.D., is Associate Vice Chancellor for Research and Professor of Pharmaceutics and Drug Delivery at the University of Mississippi where he teaches graduate courses and helps manage the university's research enterprise. He received a B.S. in Pharmacy, a M.S. in Pharmaceutics and a Ph.D. in Pharmaceutics from the University of Mississippi. He joined the University as Associate Director in the National Center for Natural Products Research. He worked for 17 years in research and development in the pharmaceutical industry at G.D. Searle, Bristol-Myers and Schering-Plough where he was Vice President of R&D for the HealthCare Products Division. He has extensive experience in formulation development and process development of a wide variety of dosage forms. Dr. Chambliss is a Fellow of the American Pharmaceutical Association and an active member of APhA-APRS, AAPS, the Licensing Executive Society and the Association of University Technology Managers and has authored or co-authored over twenty publications including three book chapters in pharmaceutical research.
Mukund "Mike" Yelvigi; Principal and Managing Partner, Center for Pharmaceutical Integration, LLC. New Jersey
Mike Yelvigi is Principal and Managing Partner at Center for Pharmaceutical Integration LLC, which provides consultation service to the industry in the area of CMC support &Technology Integration and Transfers (mergers & acquisitions). He retired as Sr. Director and Head of CMC Therapeutic Area Management function at Pfizer/Wyeth Inc. NY. He had responsibility for co-ordination of CMC activities related to drug substance synthesis, drug product formulation, analytical development and regulatory filing for several therapeutic areas. He has over thirty years extensive experience in pharmaceutical formulation, process development/scale-up, process validation, manufacturing and pre-approval inspections and has successfully launched several products globally. Earlier to this, he was Head of Process Development and clinical supply group at Hoffman-La Roche Company, New Jersey. Other companies he has worked include Parke Davis (USA), G.D Searle and Organon Inc. He obtained his undergraduate degree in Pharmacy from Bombay University and graduate degree in Pharmacy, from Philadelphia College of Pharmacy.
He is an adjunct Assistant Professor of Pharmaceutics at the School of Pharmacy, University of Mississippi. He is an active member of AAPS, ISPE, AAiPS, FIP and has lectured at many symposiums in the pharmaceutical technology, drug development areas. He was the Chairperson of the AAPS Manufacturing Science & Engineering section and is also an Executive committee member of the Industrial Pharmacy Section of FIP. He is a editorial board member of Pharma Times journal.
Additional Faculty
Michael J. Valazza, Vice President of Business Development, Catalent Pharma Solutions
Deadline for Abstracts: n/a
Registration: Please click here for registration information.
E-mail: jmorbit@cfpa.com
Generated by meetings and positions 5.0 by Kai Garlipp
WWW: Kai Garlipp, Frank S. Zollmann.
7.0 © 1995- HUM-MOLGEN. All rights reserved. Liability, Copyright and Imprint.

redpajama_set_name: RedPajamaCommonCrawl


While I have many faults, there is one which comes up every time I head to an art museum: no matter what I'm looking at, I will likely end up drawing a parallel between the artwork in front of me and a piece of music I know. Blends of colors and indeterminacy in impressionistic paintings always lead me to one or another piece of Debussy. The balance of strict proportion and high ornamentation in 18th Century portraiture will lead me to C.P.E Bach or Gluck. Medieval paintings of courtly love mingled with the divine parable of human sacrifice correspond to the motets of Guillaume de Machaut.
It's hard to say whether it's a filter, a means of translation or a tendency to apply some complementary historical context. More often that not, there's little direct historical or constructive correlation between art and a piece of music I see. It's all very vague, general. There are similarities between art and music, admittedly, but often the difference between the physical phonomena of light and sound often render the two mutually exclusive. Take ornamentation for instance. A musical ornament strikes me as spontaneous, and even superfluous to a musical performance. A musician can leave it out, lengthen it, change it. But an extra flower, a touch of gilding or any other small addition in a painting is usually seen as a product of something far more willful. Once it's on the canvas, it's done (though presumably the artist may have changed his mind several times in the process).
It's often the case that performers tend to think of process of music as an action executed in real time, while a painting is often seen as a finished product of a past action, somehow immutable. Such distinctions are arguably false, as the composition of music is a process unseen (though often less glorious than painting), and the very processes of how a painting was constructed can be divined through some careful gazing. It's really a matter of where you want to position yourself when you look at a piece of art or listen to a piece of music. That's why I love getting to see a piece of art or music that challenges you to sit in multiple time spaces at once.
In visiting Francisco de Zubarán's (1598-1664) paintings of Jacob and his twelve sons at the Frick, I was struck by their sheer size. Each is not just life-size, but larger, close to seven feet tall. And yet, despite their size, none seemed unsubtle or overblown. Every detail about the sons' clothing, posture, and possessions bore to me the significance of the blessings bestowed upon by their father in Genesis 49.
Some like Issachar are more conventional and obvious.
Benjamin, Jacob's youngest son, is dressed as a dandy. His duplicity can be seen not just in his posture, but in the occlusion of half of his face, starkly contrasted against the Carvaggio-esque green paleness of the half left in the sunlight.
And at the evening dividing the spoil.
Asher has more layers. Carrying a loaves of bread and sporting an emblem on his garb used in Zubarán's Adoration of the Magi, he prefigures Christ as the final incarnation of Melchisedech.
But in Naphtali, there was something different. He's sporting a shovel. Why?
His stance is also oddly commanding compared to that of his brothers. In looking at the Frick's informational plaque, it said that this particular study was based on a depiction Naphtali's by Jacques de Gheyn's II (1565-1629) prints of Karel van Mander I (1548-1606). In particular the rhetorical shape of the hand is very similar. It's open, though not relaxed. The face in van Mander's is based on a woodblock of Christ's apparition to Mary Magdalene by Albrecht Dürer (1471-1528). Christ's garb and sporting of the shovel however, are seen explicitly in Zubarán's later painting. Dürer's? On an engraving of Saint Bartholomew by Martin Schongauer (1445-1491).
Immediately, the music of organist and harpist Antonio de Cabezón (1510-1566) came to mind. In 1570, his son Hernando published a volume of what he described as "mere crumbs of his father's achievements." The collection included some of the larger and more popular keyboard works that Antonio had composed in his lifetime, transcribed by his son due to a near total loss of his sight. The volume contains a work entitled "Stabat Mater I" and another, "Stabat Mater II." Containing the same harmonies but with different variations and ornaments, they stand out because the cantus firmus (that is, the fundamental melody) doesn't align with any contemporary liturgical chant setting of the Stabat Mater.
Indeed, it turns out that they are both embellishments of Josquin des Prez's (1455-1521) monumental setting of the hymn, which uses not a Gregorian chant as its basis, but a secular melody taken from composer Gilles Binchois (1400-1460). Binchois melody was originally set to a text also about the sorrows of a woman.
I desire death, day and night.
The trick in performing Cabezón's piece however comes in deciding a tempo. There are phenomenal number of notes, indeed too many to play on a keyboard at once.
There are several possibilities (all conjecture, mind you). Perhaps that the work is intended for the harp, where the natural sustaining quality of the strings allows you pluck a note and leave it. Alternatively, maybe all the notes aren't meant to be played – much music of this period was written down for the purpose of showing people how to improvise themselves, rather than be performed directly from the score. But supposing that decision is made, what speed to we play it at? There are roughly sixteen of Cabezón's notes in scales for every half note beat of Josquin's motet. Is the piece meant to go at a speed similar to which it's supposed to be sung? Or is it "its own thing?" Indeed, in teasing out how to perform the work, you're subconsciously determining primacies of authorship, based on pure aesthetics and gut feeling.
I look at Zubarán and I can't help but wonder if these are really "his" paintings? We know his students' hands are on them, and we know that the emotive symbols that make each of the characters individual are borrowed from earlier masters. While I can see Zubarán's genius in bringing all these elements together, I can't help but also see the beauty in the accumulation of symbols and influences across centuries. In the end, authorship or attempts to divine a scheme of construction dissipate the more you look. It's as if the artist – or artists – fade away. These are paintings intended to showcase not the self, but the divine – that is, something untouched by time.


text:
NSAttributedString + UITextView + Markdown  Syntax highlighting.

![Capture](http://gyazo.com/b5619abe667f0061997ef2a715d3e713.gif)

![Screenshot](https://www.monosnap.com/image/fxcjssMHQfPX7dqGwjRVip2Ns.png)

## Contributing

1. Fork it!
2. Create your feature branch: `git checkout -b my-new-feature`
3. Commit your changes: `git commit -am 'Add some feature'`
4. Push to the branch: `git push origin my-new-feature`
5. Submit a pull request :D

## License

MIT

Contain [adamhoracek/KOKeyboard](https://github.com/adamhoracek/KOKeyboard "adamhoracek/KOKeyboard")

redpajama_set_name: RedPajamaGithub


text:
Michèle Mouton And Girls On Track Are Dedicated To Brightening The Future For Women In Motorsport
Elizabeth Blackstock
Photo: Staff / AFP (Getty Images)
To this day, Michèle Mouton remains one of the most accomplished women in motorsport and the only woman to win an FIA-certified World Championship. A championship-winning rally driver and a dominating force at Pikes Peak, her name will forever remain etched in the annals of racing history. And now, she's setting up young women for their own futures in the world of sport.
Girls on Track – Rising Stars started out in 2018 as a way for young women to become better racers and more knowledgeable individuals in motorsport. It was absorbed by Susie Wolff's Dare to Be Different program and is now, in part, overseen by Mouton, the head of the FIA Women in Motorsport commission.
"It's tough for anyone to get to the to the top, especially in Formula 1, only few men are succeeding," Mouton said in an interview with Motorsport. "So it's not easy to reach the top of the pyramid, then compared to men our base has been too small. So, of course, fewer could rise to the top."
Rallying's Most Tenacious Driver Was A Woman
Michèle Mouton could have been anything. From a young age, her athletic ability was unrestricted:…
In terms of that pyramid, Mouton is referencing what she hopes will be accomplished with Girls on Track, a four-year program designed for girls aged 14-16 that teaches on-track skills and off-track skills like STEM education, environmental awareness, and safety—all things that make for a strong, well-rounded racer and which is especially important when it comes to women. As Mouton mentioned, it's difficult for any racer to succeed, but women generally require a much larger skillset to make them more attractive to potential teams and sponsors.
Mouton also hopes to expand the program so that it doesn't just focus on drivers: it would also encourage women to engineers, mechanics, race officials, team principals, communication leaders, and marketing gurus. Basically, Girls on Track is pursuing any and all ways to get interested women working with motorsport in a hands-on way.
"I am convinced the best way to get there is first to increase this base of pyramid to have more girls interested in motorsport, then to go and continue fighting in a mixed championship," Mouton said. "This is very important. And to give more opportunity and same material to women. So this is the work our commission is doing to create more opportunity to work with professional teams and also manufacturers. And I think we are nearly there."
Girls on Track is formatted as something of a mini-championship of its own with a single winner ultimately claiming a place in the Ferrari Driver Academy, which supports racers throughout the ranks with the ultimate goal of getting them into F1.
Thousands of girls applied, but only a handful were invited out to the shootout at Paul Ricard in October. The 12 best drivers at that shootout were invited to a training camp immediately afterward. A second training camp in November would determine the four top drivers, at which point a one-week training camp would take place. The winner was set to be announced in December.
That said, a positive COVID-19 test among the competitors has postponed that final training camp.
Once a selection is made, that driver will work with both the Ferrari Driver Academy and Women in Motorsport for three years to develop her career and establish herself in the racing world.
The process will start all over again the following year, with another 20 racers getting a chance to take home a place in the Ferrari Driver Academy.
After the W Series was announced, both Alanis King and I took umbrage with the format. Instead of a championship that easily segregates women out of mixed-gender competition, why not develop a scholarship format that cultivates the career of a few select drivers progressing through the ranks.
Girls on Track seems to be an answer to some of our concerns. While it doesn't provide a scholarship to women moving through the ranks of the open-wheel ladder, it does give young women a chance to get their foot in the door, to make crucial connections and impressions that can help her forge a successful career.


text:
The Word "Queer" Was Used As A Slur Against Pete Buttigieg; Jonathan Groff Dressed As Mary Poppins; Ryan Field Books
The Word "Queer" Was Used As a Slur Against Pete Buttigieg
This is what an elected official in Tennessee recently said about Pete Buttigieg.
"We've got a queer running for president, if that ain't about as ugly as you can get," Sevier County Commissioner Warren Hurst said to the crowd after telling them to "wake up."
You can read the rest, here. The county where this guy was elected issued apologies. But that still doesn't change anything about the word he used. The word "Queer" is still a pejorative for many homophobic people, and it always will be.
Jonathan Groff Dressed As Mary Poppins
I like this article for several reasons, one of which is that there's always been speculation that Mary Poppins was a lesbian. The author of Mary Poppins, PL Travers, was most likely a lesbian and even though it's rarely mentioned people have been discussing this for a while. I posted a few things about it a while back.
I also like Jonathan Groff and I haven't seen him in the news in a while. He's in a new Broadway production of Little Shop of Horrors, and he's a huge, serious fan of Julie Andrews.
In fact, he was able to prove his love of the actress stretches back to his earliest years. When he was aged 3, he was so obsessed with the movie Mary Poppins, his mom allowed him to dress as the character for Halloween, complete with lipstick, trademark hat, and bag.
Here's more, with a seriously adorable video of Groff.
The Straight Pride Parade
Amazon Free Kindle Unlimited
How to be a Good Gay Bottom
Here's a link to Amazon
The Rescuer
A Starr Is Born
Kendle's Fire
More 'Call Me By Your Name,' Once Again; Surviving Conversion Therapy and Embracing Queerness; Ryan Field Books
The "Masc 4 Masc" Debate Continues; Hong Kong Ban On Same Sex Marriage; Ryan Field Books
RT @CitizenScreen: TV icons Jean Stapleton, Bea Arthur, and Betty White c. 1978 https://t.co/o78C3SGBDr 10 hours ago


Elderly men and women with Alzheimer's and other serious memory problems who got home visits and care assessments from a nurse and memory care coordinator were able to remain at home much longer than those who didn't get such visits, a new study found. The results show that relatively simple measures like assessing home safety, vision and hearing checks and daily activity plans can produce improvements at relatively low costs.
The 18-month pilot study, from researchers at Johns Hopkins School of Medicine in Baltimore, assessed 303 elderly city residents with dementia and mild cognitive impairment. As part of the study, 110 of them got a home visit from a memory care coordinator and nurse.
The care team provided follow-up visits as needed and looked at various care needs, including home and driving safety checks and whether individuals were at risk of wandering and getting lost, concerns for a vast majority of the participants. The care team also addressed meal and nutrition plans, assessed what kinds of daily activities were available beyond simply watching TV, including programs at local community centers, taught patients and family members about Alzheimer's, and provided informal counseling and discussed legal issues like advance directives and wills.
In addition to such services, the care team looked at untreated medical problems like hearing or vision loss, diabetes and high blood pressure and worked with a medical team to provide reviews of the medications that patients were taking.
The health team then developed a personalized care plan and, over time, worked with family members to oversee progress and attend to new needs that arose. Coordinators contacted family members at least once a month.
The experimental program, known as the Maximizing Independence (MIND) at Home, allowed those with Alzheimer's and similar problems to stay in their homes almost 10 months longer than those who didn't get such help, a two year follow-up found. Remaining at home, rather than going to a nursing home or assisted living center, was strongly preferred by those in the study.
"The project demonstrated that we were able to help such people age in place without sacrificing their quality of life," said study leader Quincy Miles Samus, an assistant professor of psychiatry and behavioral sciences at Johns Hopkins. "This can make a huge difference in terms of comfort, money and quality of life for those involved." The findings were published in The American Journal of Geriatric Psychiatry.
The researchers found that participants who met regularly with coordinators were significantly less likely to leave their homes than those who didn't get such care. They also lived longer, with a better quality of life.
The memory care coordinators were community workers and did not have clinical backgrounds or prior training in caring for people with memory disorders. They received four weeks of training, including lectures, role play and observation of dementia patients in clinical settings, so the investment in educating the care coordinators was not extensive.
Some insurance programs do not cover home help, so the study was designed to assess whether such programs can produce better results at lower costs. It seemed to do both, since care in nursing homes or hospitals costs far more than home care.
Sources: Johns Hopkins Medicine. Quincy M. Samus, Deirdre Johnston, Betty S. Black, Edward Hess, et al: "A Multidimensional Home-Based Care Coordination Intervention for Elders with Memory Disorders: The Maximizing Independence at Home (MIND) Pilot Randomized Trial ." The American Journal of Geriatric Psychiatry. Jan. 6, 2014.